With the availability of free and open source C/C++ compilers today, you might wonder why someone would be interested in assembler language. What is so compelling about the RISC-V Instruction Set Architecture (ISA)? How does RISC-V differ from existing architectures? And most importantly, how do we gain experience with the RISC-V without a major investment? Is there affordable hardware available?
The availability of the Espressif ESP32-C3 chip provides a way to get hands-on experience with RISC-V. The open sourced QEMU emulator adds a 64-bit experience in RISC-V under Linux. These are just two ways for the student and enthusiast alike to explore RISC-V in this book.
The projects in this book are boiled down to the barest essentials to keep the assembly language concepts clear and simple. In this manner you will have “aha!” moments rather than puzzling about something difficult. The focus in this book is about learning how to write RISC-V assembly language code without getting bogged down. As you work your way through this tutorial, you’ll build up small demonstration programs to be run and tested. Often the result is some simple printed messages to prove a concept. Once you’ve mastered these basic concepts, you will be well equipped to apply assembly language in larger projects.
ESP32-C3-WROOM-02U is a general-purpose Wi-Fi and Bluetooth LE module. The rich set of peripherals and high performance make the module an ideal choice for smart homes, industrial automation, health care, consumer electronics, etc.
ESP32-C3-WROOM-02U features an external SPI flash and comes with a connector for an external antenna.
ESP32-C3-WROOM-02U has an operating ambient temperature option of –40∼85°C, embedded with the ESP32-C3 chip. ESP32-C3 has a 32-bit RISC-V single-core processor. It integrates a rich set of peripherals, ranging from UART, I²C, I²S, remote control peripheral, LED PWM controller, general DMA controller, TWAI controller, USB Serial/JTAG controller, temperature sensor, ADC, etc. It also includes SPI, Dual SPI and Quad SPI interfaces.
Features
Flash: 4 MB (Quad SPI)
Dimensions: 18.0 x 20.0 x 3.2 mm
Downloads
Datasheet
A Guide to Powerful Programming for Embedded Systems
You must be a well-rounded professional to excel in the ever-evolving, rapidly developing embedded design and programming industry. Simply put, when it comes to electronics design and programming, the more topics you can master, the more you’ll flourish at your workplace and at your personal workbench. This shouldn’t be a surprise, as the line between the skills of a hardware engineer and software engineer is blurring. The former should have a good grasp of programming in order to build efficient systems. The latter should understand the details of the design (whether it’s a physical or virtual application) for which he or she is writing code. Thus, to be successful, a modern professional electronics engineer must have a solid grasp of both hardware design and programming.
Assembly Language Essentials is a matter-of-fact guide to Assembly that will introduce you to the most fundamental programming language of a processor. Unlike other resources about Assembly that focus exclusively on specific processors and platforms, this book uses the architecture of a fictional processor with its own hardware and instruction set. This enables you to consider the importance of Assembly language without having to deal with predetermined hardware or architectural restrictions.
You’ll immediately find this thorough introduction to Assembly to be a valuable resource, whether you know nothing about the language or you have used it before. The only prerequisite is that you have a working knowledge of at least one higher-level programming language, such as C or Java.
Assembly Language Essentials is an indispensible resource for electronics engineering professionals, academics, and advanced students looking to enhance their programming skills. The book provides the following, and more:
An introduction to Assembly language and its functionality
Significant definitions associated with Assembly language, as well as essential terminology pertaining to higher-level programming languages and computer architecture
Important algorithms that may be built into high-level languages, but must be done the “hard way” in Assembly language — multiplication, division, and polynomial evaluation
A presentation of Interrupt Service Routines with examples
A free, downloadable Assembler program for experimenting with Assembly
AVR Architecture and Programming An in-depth look at the 8-bit AVR architecture found in ATtiny and ATmega microcontrollers, mainly from a software and programming point of view. Explore the AVR architecture using C and assembly language in Microchip Studio (formerly Atmel Studio) with ATtiny microcontrollers. Learn the details of how AVR microcontrollers work internally, including the internal registers and memory map of ATtiny devices. Program ATtiny microcontrollers using an Atmel-ICE programmer/debugger, or use a cheap hobby programmer, or even an Arduino Uno as a programmer. Most code examples can be run using the Microchip Studio AVR simulator. Learn to write programs for ATtiny microcontrollers in assembly language. See how assembly language is converted to machine code instructions by the assembler program. Find out how programs written in the C programming language end up as assembly language and finally as machine code instructions. Use the Microchip Studio debugger in combination with a hardware USB programmer/debugger to test assembly and C language programs, or use the Microchip Studio AVR simulator. DIP packaged ATtiny microcontrollers are used in this volume for easy use on electronic breadboards, targeting mainly the ATtiny13(A) and ATtiny25/45/85. Learn about instruction timing and clocks in AVR microcontrollers using ATtiny devices. Be on your way to becoming an AVR expert with advanced debugging and programming skills.
Complete ESP32 microcontroller learning course featuring a custom-designed MCU expansion board, hands-on projects, and a comprehensive online guide – perfect for learning hardware, programming, and connectivity step by step.
A Practical Introduction to Embedded Systems with the ESP32
This course is designed for readers who are new to embedded systems and looking for a structured, example-driven way to get started. If you’ve explored general-purpose electronics or Arduino-based materials but found them too broad or lacking in practical guidance, this course offers a more focused alternative.
Using the "ESP32 by Example Kit" (EEK) – a compact and affordable set of components featuring LEDs, sensors, an OLED display, and a motion processor – you’ll work with a consistent hardware setup throughout the course. Once assembled, the EEK stays mostly unchanged, allowing you to concentrate on learning and experimentation without constant reconfiguration.
Topics include:
Understanding and programming the ESP32 microcontroller
Writing and deploying code with the Arduino IDE
Exploring cyber-physical systems, culminating in basic drone control
No prior experience with Arduino or embedded development is required. Each section features hands-on examples and mini-projects designed to reinforce key concepts and inspire deeper exploration. By the end of the course, you’ll be able not only to reproduce the book’s examples but also to build on them with your own ideas and applications.
Whether you're interested in embedded programming, interactive systems, or introductory drone control, this course provides a clear and practical path to getting started.
What you'll learn?
Embedded programming with the ESP32 using the Arduino IDE
Real-time sensor input and control via buttons, LEDs, and displays
Gesture-based interaction using the MPU6050 motion sensor
Bluetooth gamepad integration and drone control simulation
Wi-Fi and UDP networking, local web servers, and NTP
MQTT communication with cloud platforms like AWS and Arduino IoT
How to build and deploy full-featured IoT systems
Perfect for
Students and self-learners exploring embedded systems
Makers and IoT enthusiasts looking to improve their hardware skills
Educators and trainers seeking ready-to-teach material
Developers moving beyond Raspberry Pi or Arduino basics
Support when you need it
Access to instructors via Elektor Academy
Helpful community forums and essential documentation
What's inside the Box (Course)?
New 384-page book: "ESP32 by Example" (valued at €45)
Elektor ESP32 by Example Kit (EEK): Microcontroller Extension Board with 6 LEDs and 6 Buttons installed + OLED Display, MPU6050 3-axis Accelerometer and Gyroscope Module (valued at €40)
Adafruit HUZZAH32 – ESP32 Feather MCU Board (valued at €30)
ESP32 Cheap Yellow Display Board (valued at €25)
DHT11 Humidity & Temperature Sensor
Breadboard
Jumper wires
USB-C cable
Access to the full course on the Elektor Academy Pro Learning Platform
Instructional videos
Downloadable Arduino project files for every module
Learning Material (of this Box/Course)
▶ Click here to open
Module 1 – Getting Started with the ESP32 & EEK
Module 2 – Digital Output – LEDs and GPIO
Module 3 – Switches and Input Handling
Module 4 – EEK and PWM
Module 5 – OLED and Display Output
Module 6 – Motion Sensing with the MPU6050
Module 7 – Capstone Project (EEK in Action)
Module 8 – WiFi and Web Control with ESP32
Module 9 – Cloud Concepts using EEK
Module 10 – Hands-on: Arduino IoT Cloud and EEK
Module 11 – BlueTooth and EEK GamePad Integration
Module 12 – Why Drones?
Module 13 – Drone Simulator Concepts
Module 14 – Simple Drone Flight Control
Module 15 – Real-Time Drone Flight Control
Module 16 – Drone Control Mini-Projects
Module 17 – Middleware and Python Scripting
Module 18 – Python Applications for Drone Control
Module 19 – Capstone EEK Control Project and Presentation
About the Author
Dr. Jim Solderitsch is an educator, software architect, systems developer, and cybersecurity researcher with a focus on cyber-physical systems. He currently serves as an Adjunct Professor in Computing Sciences at Villanova University in Pennsylvania.
What is Elektor Academy Pro?
Elektor Academy Pro delivers specialized learning solutions designed for professionals, engineering teams, and technical experts in the electronics and embedded systems industry. It enables individuals and organizations to expand their practical knowledge, enhance their skills, and stay ahead of the curve through high-quality resources and hands-on training tools.
From real-world projects and expert-led courses to in-depth technical insights, Elektor empowers engineers to tackle today’s electronics and embedded systems challenges. Our educational offerings include Academy Books, Pro Boxes, Webinars, Conferences, and industry-focused B2B magazines – all created with professional development in mind.
Whether you're an engineer, R&D specialist, or technical decision-maker, Elektor Academy Pro bridges the gap between theory and practice, helping you master emerging technologies and drive innovation within your organization.
The Elektor ESP32 Energy Meter is a device designed for real-time energy monitoring and smart home integration. Powered by the ESP32-S3 microcontroller, it offers robust performance with modular and scalable features.
The device uses a 220 V-to-12 V step-down transformer for voltage sampling, ensuring galvanic isolation and safety. Its compact PCB layout includes screw-type terminal blocks for secure connections, a Qwiic connector for additional sensors, and a programming header for direct ESP32-S3 configuration. The energy meter is compatible with single-phase and three-phase systems, making it adaptable for various applications.
The energy meter is simple to set up and integrates with Home Assistant, offering real-time monitoring, historical analytics, and automation capabilities. It provides accurate measurements of voltage, current, and power, making it a valuable tool for energy management in homes and businesses.
Features
Comprehensive Energy Monitoring: Get detailed insights into your energy usage for smarter management and cost savings.
Customizable Software: Tailor functionality to your needs by programming and integrating custom sensors.
Smart Home Ready: Compatible with ESPHome, Home Assistant, and MQTT for full Smart Home integration.
Safe & Flexible Design: Operates with a 220 V-to-12 V step-down transformer and features a pre-assembled SMD board.
Quick Start: Includes one Current Transformer (CT) sensor and access to free setup resources.
Specifications
Microcontroller
ESP32-S3-WROOM-1-N8R2
Energy Metering IC
ATM90E32AS
Status Indicators
4x LEDs for power consumption indication2x Programmable LEDs for custom status notifications
User Input
2x Push buttons for user control
Display Output
I²C OLED display for real-time power consumption visualization
Input Voltage
110/220 V AC (via step-down transformer)
Input Power
12 V (via step-down transformer or DC input)
Clamp Current Sensor
YHDC SCT013-000 (100 A/50 mA) included
Smart Home Integration
ESPHome, Home Assistant, and MQTT for seamless connectivity
Connectivity
Header for programming, Qwiic for sensor expansion
Applications
Supports single-phase and three-phase energy monitoring systems
Dimensions
79.5 x 79.5 mm
Included
1x Partly assembled board (SMDs are pre-mounted)
2x Screw terminal block connectors (not mounted)
1x YHDC SCT013-000 current transformer
Required
Power transformer not included
Downloads
Datasheet (ESP32-S3-WROOM-1)
Datasheet (ATM90E32AS)
Datasheet (SCT013-000)
Frequently Asked Questions (FAQ)
From Prototype to Finished Product
What started as an innovative project to create a reliable and user-friendly energy meter using the ESP32-S3 microcontroller has evolved into a robust product. Initially developed as an open-source project, the ESP32 Energy Meter aimed to provide precise energy monitoring, smart home integration and more. Through meticulous hardware and firmware development, the energy meter now stands as a compact, versatile solution for energy management.
Learn how to use the ESP32 Microcontroller and MicroPython programming in your future projects!
The project book, written by well-known Elektor author Dogan Ibrahim, holds many software- and hardware-based projects especially developed for the MakePython ESP32 Development Kit. The kit comes with several LEDs, sensors, and actuators. The kit will help you acquire the basic knowledge to create IoT projects.
The book’s fully evaluated projects feature all the supplied components. Each project includes a block diagram, a circuit diagram, a full program listing, and a complete program description.
Included in the kit
1x MakePython ESP32 development board with LCD
1x Ultrasonic ranging module
1x Temperature and humidity sensor
1x Buzzer module
1x DS18B20 module
1x Infrared module
1x Potentiometer
1x WS2812 module
1x Sound sensor
1x Vibration sensor
1x Photosensitive resistance module
1x Pulse sensor
1x Servo motor
1x USB cable
2x Button
2x Breadboard
45x Jumper wire
10x Resistor 330R
10x LED (Red)
10x LED (Green)
1x Project book (206 pages)
46 Projects in the Book
LED Projects
Blinking LED
Flashing SOS
Blinking LED – using a timer
Alternately flashing LEDs
Button control
Changing the LED flashing rate using pushbutton interrupts
Chasing-LEDs
Binary-counting LEDs
Christmas lights (random-flashing 8 LEDs)
Electronic dice
Lucky day of the week
Pulsewidth Modulation (PWM) Projects
Generate a 1000-Hz PWM waveform with 50% duty cycle
LED brightness control
Measuring the frequency and duty cycle of a PWM waveform
Melody maker
Simple electronic organ
Servo motor control
Servo motor DS18B20 thermometer
Analog To Digital Converter (ADC) Projects
Voltmeter
Plotting the analog input voltage
ESP32 internal temperature sensor
Ohmmeter
Photosensitive resistance module
Digital To Analog Converter (DAC) Projects
Generating fixed voltages
Generating a sawtooth-wave signal
Generating a triangular-wave signal
Arbitrary periodic waveform
Generating a sinewave signal
Generating accurate sinewave signal using timer interrupts
Using The OLED Display
Seconds counter
Event counter
DS18B20 OLED based digital thermometer
ON-OFF temperature controller
Measuring the temperature and humidity
Ultrasonic distance measurement
Height of a person (stadiometer)
Heart rate (pulse) measurement
Other Sensors Supplied with the Kit
Theft alarm
Sound-activated light
Infrared obstacle avoidance with buzzer
WS2812 RGB LED ring
Timestamping temperature and humidity readings
Network Programming
Wi-Fi scanner
Remote control from the Internet browser (using a smartphone or PC) – Web Server
Storing temperature and humidity data in the Cloud
Low-Power Operation
Using a timer to wake up the processor
The Arduino Nano ESP32 is a Nano form factor board based on the ESP32-S3 (embedded in the NORA-W106-10B from u-blox). This is the first Arduino board to be based fully on an ESP32, and features Wi-Fi, Bluetooth LE, debugging via native USB in the Arduino IDE as well as low power.
The Nano ESP32 is compatible with the Arduino IoT Cloud, and has support for MicroPython. It is an ideal board for getting started with IoT development.
Features
Tiny footprint: Designed with the well-known Nano form factor in mind, this board's compact size makes it perfect for embedding in standalone projects.
Wi-Fi and Bluetooth: Harness the power of the ESP32-S3 microcontroller, well-known in the IoT realm, with full Arduino support for wireless and Bluetooth connectivity.
Arduino and MicroPython support: Seamlessly switch between Arduino and MicroPython programming with a few simple steps.
Arduino IoT Cloud compatible: Quickly and easily create IoT projects with just a few lines of code. The setup takes care of security, allowing you to monitor and control your project from anywhere using the Arduino IoT Cloud app.
HID support: Simulate human interface devices, such as keyboards or mice, over USB, opening up new possibilities for interacting with your computer.
Specifications
Microcontroller
u-blox NORA-W106 (ESP32-S3)
USB connector
USB-C
Pins
Built-in LED pins
13
Built-in RGB LED pins
14-16
Digital I/O pins
14
Analog input pins
8
PWM pins
5
External interrupts
All digital pins
Connectivity
Wi-Fi
u-blox NORA-W106 (ESP32-S3)
Bluetooth
u-blox NORA-W106 (ESP32-S3)
Communication
UART
2x
I²C
1x, A4 (SDA), A5 (SCL)
SPI
D11 (COPI), D12 (CIPO), D13 (SCK). Use any GPIO for Chip Select (CS)
Power
I/O Voltage
3.3 V
Input voltage (nominal)
6-21 V
Source Current per I/O pin
40 mA
Sink Current per I/O pin
28 mA
Clock speed
Processor
Up to 240 MHz
Memory
ROM
384 kB
SRAM
512 kB
External Flash
128 Mbit (16 MB)
Dimensions
18 x 45 mm
Downloads
Datasheet
Schematics
Over 40 Fully Tested ESP32 Projects Using Arduino IDE and the LVGL Graphics Library
This bundle includes the ESP32 Cheap Yellow Display (CYD) – a compact development board combining a standard ESP32 microcontroller with a 320x240 pixel TFT color display. The board also features multiple connectors for GPIO, serial communication (TX/RX), power, and ground. The built-in display is a major advantage, allowing users to create complex, graphics-based projects without the need for external LCDs or displays.
The accompanying book introduces the CYD board's hardware and on-board connectors in detail. It provides a range of beginner to intermediate-level projects developed using the popular Arduino IDE 2.0. Both basic graphics functions and the powerful LVGL graphics library are covered, with practical projects illustrating each approach.
All included projects have been fully tested and are ready to use. The book provides block diagrams, circuit schematics, complete code listings, and step-by-step explanations. With the LVGL library, readers can create modern, full-color graphical interfaces using widgets such as buttons, labels, sliders, calendars, keyboards, charts, tables, menus, animations, and more.
ESP32 Cheap Yellow Display Board
This development board (also known as "Cheap Yellow Display") is powered by the ESP-WROOM-32, a dual-core MCU with integrated Wi-Fi and Bluetooth capabilities. It operates at a main frequency of up to 240 MHz, with 520 KB SRAM, 448 KBROM, and a 4 MB Flash memory. The board features a 2.8-inch display with a resolution of 240x320 and resistive touch.
Furthermore, the board includes a backlight control circuit, touch control circuit, speaker drive circuit, photosensitive circuit, and RGB-LED control circuit. It also provides a TF card slot, serial interface, DHT11 temperature and humidity sensor interface, and additional IO ports.
The module supports development in Arduino IDE, ESP-IDE, MicroPython, and Mixly.
Applications
Image transmission for Smart Home device
Wireless monitoring
Smart agriculture
QR wireless recognition
Wireless positioning system signal
And other IoT applications
Specifications
Microcontroller
ESP-WROOM-32 (Dual-core MCU with integrated Wi-Fi and Bluetooth)
Frequency
Up to 240 MHz (computing power is up to 600 DMIPS)
SRAM
520 KB
ROM
448 KB
Flash
4 MB
Operating voltage
5 V
Power consumption
approx. 115 mA
Display
2.8-inch color TFT screen (240 x 320)
Touch
Resistive Touch
Driver chip
ILI9341
Dimensions
50 x 86 mm
Weight
50 g
Downloads
GitHub
Contents of the Bundle
The ESP32 Cheap Yellow Display Book (normal price: €35)
ESP32 Cheap Yellow Display Board (normal price: €25)
1x ESP32 Dev Board with 2.8" Display and acrylic Shell
1x Touch pen
1x Connector cable
1x USB cable
Practical Multitasking Fundamentals
Programming embedded systems is difficult because of resource constraints and limited debugging facilities. Why develop your own Real-Time Operating System (RTOS) as well as your application when the proven FreeRTOS software is freely available? Why not start with a validated foundation?
Every software developer knows that you must divide a difficult problem into smaller ones to conquer it. Using separate preemptive tasks and FreeRTOS communication mechanisms, a clean separation of functions is achieved within the entire application. This results in safe and maintainable designs.
Practicing engineers and students alike can use this book and the ESP32 Arduino environment to wade into FreeRTOS concepts at a comfortable pace. The well-organized text enables you to master each concept before starting the next chapter. Practical breadboard experiments and schematics are included to bring the lessons home. Experience is the best teacher.
Each chapter includes exercises to test your knowledge. The coverage of the FreeRTOS Application Programming Interface (API) is complete for the ESP32 Arduino environment. You can apply what you learn to other FreeRTOS environments, including Espressif’s ESP-IDF. The source code is available from GitHub. All of these resources put you in the driver’s seat when it is time to develop your next uber-cool ESP32 project.
What you will learn:
How preemptive scheduling works within FreeRTOS
The Arduino startup “loopTask”
Message queues
FreeRTOS timers and the IDLE task
The semaphore, mutex, and their differences
The mailbox and its application
Real-time task priorities and its effect
Interrupt interaction and use with FreeRTOS
Queue sets
Notifying tasks with events
Event groups
Critical sections
Task local storage
The gatekeeper task
Easy and Affordable Digital Signal ProcessingThe aim of this book is to teach the basic principles of Digital Signal Processing (DSP) and to introduce it from a practical point of view using the bare minimum of mathematics. Only the basic level of discrete-time systems theory is given, sufficient to implement DSP applications in real time. The practical implementations are described in real time using the highly popular ESP32 DevKitC microcontroller development board. With the low cost and extremely popular ESP32 microcontroller, you should be able to design elementary DSP projects with sampling frequencies within the audio range. All programming is done using the popular Arduino IDE in conjunction with the C language compiler.After laying a solid foundation of DSP theory and pertinent discussions on the main DSP software tools on the market, the book presents the following audio-based sound and DSP projects:
Using an I²S-based digital microphone to capture audio sound
Using an I²S-based class-D audio amplifier and speaker
Playing MP3 music stored on an SD card through an I²S-based amplifier and speaker
Playing MP3 music files stored in ESP32 flash memory through an I²S-based amplifier and speaker
Mono and stereo Internet radio with I²S-based amplifiers and speakers
Text-to-speech output with an I²S-based amplifier and speaker
Using the volume control in I²S-based amplifier and speaker systems
A speaking event counter with an I²S-based amplifier and speaker
An adjustable sinewave generator with I²S-based amplifier and speaker
Using the Pmod I²S2 24-bit fast ADC/DAC module
Digital low-pass and band-pass real-time FIR filter design with external and internal A/D and D/A conversion
Digital low-pass and band-pass real-time IIR filter design with external and internal A/D and D/A conversion
Fast Fourier Transforms (FFT)
Introducing the Elecrow ESP32 Terminal, a revolutionary handheld device engineered to elevate your projects to new heights. Boasting a 3.5″ 480 × 320 TFT capacitive...