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
The Milk-V Duo 256M is an ultra-compact embedded development platform based on the SG2002 chip. It can run Linux and RTOS, providing a reliable, low-cost, and high-performance platform for professionals, industrial ODMs, AIoT enthusiasts, DIY hobbyists, and creators.
This board is an upgraded version of Duo with a memory boost to 256M, catering to applications demanding larger memory capacities. The SG2002 elevates computational power to 1.0 TOPS @ INT8. It enables seamless switching between RISC-V/ARM architectures and supports simultaneous operation of dual systems. Additionally, it includes an array of rich GPIO interfaces such as SPI, UART, suitable for a wide range of hardware development in edge intelligent monitoring, including IP cameras, smart peephole locks, visual doorbells, and more.
SG2002 is a high-performance, low-power chip designed for various product fields such as edge intelligent surveillance IP cameras, smart door locks, visual doorbells, and home intelligence. It integrates H.264 video compression and decoding, H.265 video compression encoding, and ISP capabilities. It supports multiple image enhancement and correction algorithms such as HDR wide dynamic range, 3D noise reduction, defogging, and lens distortion correction, providing customers with professional-grade video image quality.
The chip also incorporates a self-developed TPU, delivering 1.0 TOPS of computing power under 8-bit integer operations. The specially designed TPU scheduling engine efficiently provides high-bandwidth data flow for all tensor processing unit cores. Additionally, it offers users a powerful deep learning model compiler and software SDK development kit. Leading deep learning frameworks like Caffe and Tensorflow can be easily ported to its platform. Furthermore, it includes security boot, secure updates, and encryption, providing a series of security solutions from development, mass production, to product applications.
The chip integrates an 8-bit MCU subsystem, replacing the typical external MCU to achieve cost-saving and power efficiency goals.
Specifications
SoC
SG2002
RISC-V CPU
C906 @ 1 Ghz + C906 @ 700 MHz
Arm CPU
1x Cortex-A53 @ 1 GHz
MCU
8051 @ 6 KB SRAM
Memory
256 MB SIP DRAM
TPU
1.0 TOPS @ INT8
Storage
1x microSD connector or 1x SD NAND on board
USB
1x USB-C for power and data, USB Pads available
CSI
1x 16P FPC connector (MIPI CSI 2-lane)
Sensor Support
5 M @ 30 fps
Ethernet
100 Mbps Ethernet with PHY
Audio
Via GPIO Pads
GPIO
Up to 26x GPIO Pads
Power
5 V/1 A
OS Support
Linux, RTOS
Dimensions
21 x 51 mm
Downloads
Documentation
GitHub
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.
At the core of this module is ESP32-S2, an Xtensa 32-bit LX7 CPU that operates at up to 240 MHz. The chip has a low-power co-processor that can be used instead of the CPU to save power while performing tasks that do not require much computing power, such as monitoring of peripherals. ESP32-S2 integrates a rich set of peripherals, ranging from SPI, I²S, UART, I²C, LED PWM, TWAITM, LCD, Camera interface, ADC, DAC, touch sensor, temperature sensor, as well as up to 43 GPIOs. It also includes a full-speed USB On-The-Go (OTG) interface to enable USB communication.
Features
MCU
ESP32-S2 embedded, Xtensa single-core 32-bit LX7 microprocessor, up to 240 MHz
128 KB ROM
320 KB SRAM
16 KB SRAM in RTC
WiFi
802.11 b/g/n
Bit rate: 802.11n up to 150 Mbps
A-MPDU and A-MSDU aggregation
0.4 µs guard interval support
Center frequency range of operating channel: 2412 ~ 2484 MHz
Hardware
Interfaces: GPIO, SPI, LCD, UART, I²C, I²S, Camera interface, IR, pulse counter, LED PWM, TWAI (compatible with ISO 11898-1), USB OTG 1.1, ADC, DAC, touch sensor, temperature sensor
40 MHz crystal oscillator
4 MB SPI flash
Operating voltage/Power supply: 3.0 ~ 3.6 V
Operating temperature range: –40 ~ 85 °C
Dimensions: 18 × 31 × 3.3 mm
Applications
Generic Low-power IoT Sensor Hub
Generic Low-power IoT Data Loggers
Cameras for Video Streaming
Over-the-top (OTT) Devices
USB Devices
Speech Recognition
Image Recognition
Mesh Network
Home Automation
Smart Home Control Panel
Smart Building
Industrial Automation
Smart Agriculture
Audio Applications
Health Care Applications
Wi-Fi-enabled Toys
Wearable Electronics
Retail & Catering Applications
Smart POS Machines
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.
At the core of this module is ESP32-S2, an Xtensa® 32-bit LX7 CPU that operates at up to 240 MHz. The chip has a low-power co-processor that can be used instead of the CPU to save power while performing tasks that do not require much computing power, such as monitoring of peripherals. ESP32-S2 integrates a rich set of peripherals, ranging from SPI, I²S, UART, I²C, LED PWM, TWAITM, LCD, Camera interface, ADC, DAC, touch sensor, temperature sensor, as well as up to 43 GPIOs. It also includes a full-speed USB On-The-Go (OTG) interface to enable USB communication.FeaturesMCU
ESP32-S2 embedded, Xtensa® single-core 32-bit LX7 microprocessor, up to 240 MHz
128 KB ROM
320 KB SRAM
16 KB SRAM in RTC
WiFi
802.11 b/g/n
Bit rate: 802.11n up to 150 Mbps
A-MPDU and A-MSDU aggregation
0.4 µs guard interval support
Center frequency range of operating channel: 2412 ~ 2484 MHz
Hardware
Interfaces: GPIO, SPI, LCD, UART, I²C, I²S, Camera interface, IR, pulse counter, LED PWM, TWAI (compatible with ISO 11898-1), USB OTG 1.1, ADC, DAC, touch sensor, temperature sensor
40 MHz crystal oscillator
4 MB SPI flash
Operating voltage/Power supply: 3.0 ~ 3.6 V
Operating temperature range: –40 ~ 85 °C
Dimensions: 18 × 31 × 3.3 mm
Applications
Generic Low-power IoT Sensor Hub
Generic Low-power IoT Data Loggers
Cameras for Video Streaming
Over-the-top (OTT) Devices
USB Devices
Speech Recognition
Image Recognition
Mesh Network
Home Automation
Smart Home Control Panel
Smart Building
Industrial Automation
Smart Agriculture
Audio Applications
Health Care Applications
Wi-Fi-enabled Toys
Wearable Electronics
Retail & Catering Applications
Smart POS Machines
Easy and Affordable Digital Signal Processing
The 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)
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
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...