LabHub

Blog

Embedded Systems & Firmware Development 2026 — STM32, ESP32-C6, RP2040, Raspberry Pi 5, Arduino, PlatformIO, Zephyr RTOS, ESP-IDF Deep Dive

한국어English日本語

1. Embedded 2026 — MCU, SBC, and the FPGA Boundary

The first axis every embedded developer must internalise is chip class. In 2026 there are three.

ClassRepresentative chipsPropertiesOS
MCUSTM32, ESP32, RP2040KB-MB of memory, microamp sleepBare-metal / RTOS
SBCRaspberry Pi 5, Jetson OrinGBs of memory, GPU/NPULinux
FPGALattice ECP5, Xilinx Artix-7Gate-level parallelism, HDL synthesisNone / soft-core

MCUs are for deterministic real-time control, SBCs for a full OS and AI, FPGAs for hardware pipelines. They do not substitute for each other. In a single device they often coexist. An industrial machine-vision camera typically pairs an FPGA reading the sensor, an MCU running the motor, and an SBC running neural inference.

This article focuses on MCUs and SBCs, but it also flags where FPGAs are necessary.


2. STM32 — The De Facto Cortex-M Standard

STMicroelectronics' STM32, launched in 2007, has become the de facto standard for Cortex-M based MCUs. In 2026 the line-up is broad.

SeriesCoreNotesRepresentative part
STM32F0Cortex-M0Entry / low-costSTM32F030
STM32G0Cortex-M0+New entrySTM32G031
STM32F4Cortex-M4 + FPUGeneral purposeSTM32F407
STM32F7Cortex-M7DSP / imagingSTM32F746
STM32H7Cortex-M7 480 MHzHigh performanceSTM32H743
STM32L4/L5Cortex-M4/M33Ultra-low-powerSTM32L476
STM32U5Cortex-M33 + TrustZoneSecurity + LPSTM32U585
STM32WB/WLM4 + M0+BLE / LoRaSTM32WB55
STM32H5Cortex-M33New mainstreamSTM32H573
STM32MP1/MP2Cortex-A7/A35 + M4/M33Heterogeneous (Linux + RTOS)STM32MP157

Development flow

A typical STM32 workflow is:

  1. STM32CubeMX to configure pins, clocks, peripherals (USART, SPI, I2C, ADC) and generate HAL code.
  2. STM32CubeIDE (or VS Code + Cortex-Debug) for code.
  3. ST-Link V3 to flash and debug.
  4. STM32CubeMonitor to visualise variables in real time.

ST-Link is usually embedded on Nucleo boards, so no separate purchase is needed. A Nucleo-F411RE board is about USD 15.

HAL vs LL vs bare-metal

ST ships two libraries. HAL (Hardware Abstraction Layer) is heavily abstracted; LL (Low Layer) is close to register access. Real-time-critical code uses LL or drops to bare-metal registers. CubeMX can emit either.


3. ESP32 — A WiFi/BT-First MCU

Espressif's ESP32, launched in 2016, became the de facto standard for IoT. The 2026 line-up:

ChipISAWiFiBT/BLECores
ESP32 (Classic)Xtensa LX644.2 / BLE 4.2Dual 240 MHz
ESP32-S2Xtensa LX74NoneSingle
ESP32-S3Xtensa LX74BLE 5.0Dual + AI accel
ESP32-C3RISC-V4BLE 5.0Single 160 MHz
ESP32-C6RISC-V6BLE 5.3 + Thread/ZigbeeSingle 160 MHz
ESP32-H2RISC-VNoneBLE 5.3 + 802.15.4Single
ESP32-P4RISC-VNone (external co-proc)NoneDual 400 MHz + MIPI

ESP32-C6 (2023) is the first line that combines WiFi 6, Thread, Zigbee and Matter in one chip. ESP32-P4 (2024 production) trades WiFi for a dual RISC-V 400 MHz core, MIPI-CSI/DSI, targeted at camera and display applications.

ESP-IDF v5.4

The official Espressif SDK adds Rust integration, formal ESP32-P4 support, and OpenThread 1.3 in v5.4 (2024). The command line is simple.

idf.py set-target esp32c6
idf.py menuconfig
idf.py build flash monitor

idf.py menuconfig toggles WiFi stack, partition table and compiler options from a kconfig tree.

Arduino-ESP32 vs ESP-IDF

ESP32 also runs as an Arduino core. With void setup(void) and void loop(void), WiFi/BLE blink demos take five minutes. But OTA, dual-core scheduling and low-power sleep are more natural in ESP-IDF, driving the FreeRTOS API directly.


4. RP2040 and RP2350 — The Raspberry Pi MCU

The 2021 Raspberry Pi Pico's RP2040 reset the entry-level baseline. Dual Cortex-M0+ at 133 MHz, 264 KB SRAM, and a unique peripheral called PIO (Programmable I/O) — eight small state machines that bit-bang demanding protocols like VGA, DPI, or WS2812 LED chains directly in hardware.

RP2350 (released August 2024)

The RP2040 successor, RP2350 (Raspberry Pi Pico 2), was announced in August 2024.

ItemRP2040RP2350
CoresDual Cortex-M0+Dual Cortex-M33 + dual Hazard3 RISC-V
Clock133 MHz150 MHz
SRAM264 KB520 KB
SecurityNoneTrustZone, OTP, boot-ROM verification
Pico-board priceUSD 4USD 5

RP2350's real twist is its dual-ISA core. The same socket can boot either Cortex-M33 or RISC-V Hazard3; the decision is made at SDK build time.

Pico SDK

pico-sdk is CMake-based and surprisingly clean.

cmake_minimum_required(VERSION 3.13)
include(pico_sdk_import.cmake)
project(blink)
pico_sdk_init()
add_executable(blink blink.c)
target_link_libraries(blink pico_stdlib)
pico_add_extra_outputs(blink)

Build to a uf2, hold BOOTSEL while plugging in USB, drag the file onto the mounted drive — done. No programmer required.


5. Arduino Uno R4 — A Generational Change After 16 Years

Arduino Uno used the ATmega328P (8-bit AVR) since 2010, but the Uno R4 released in 2023 changed the silicon for the first time in 16 years, moving to Renesas RA4M1 (Cortex-M4 48 MHz, 256 KB Flash, 32 KB SRAM).

Two variants:

Pin-compatible with Uno R3 so existing shields keep working. CAN, DAC, OpAmp, and USB HID are new. Memory grew roughly 1000-fold over the original ATmega328P.

Some 8-bit-era libraries had compatibility issues at launch. Through 2024-2025 most popular libraries were updated to support R4.


6. Nordic nRF52 / nRF54 — The BLE Champion

For BLE-only silicon, Nordic Semiconductor dominates. The 2026 spine of the family:

Nordic ships the nRF Connect SDK (NCS), which is built on Zephyr RTOS internally. Working on nRF52 naturally pulls you into Zephyr. The classic SoftDevice (BLE stack binary blob) is being replaced by the Zephyr-native Bluetooth host/controller.


7. Other MCU Families — Microchip, NXP, TI, WCH

Beyond the top four, the embedded world is wide.

Chip choice is often a function of supply stability, price and tool maturity. Since the 2021-2022 chip shortage, multi-vendor designs that avoid betting on one family are common.


8. Raspberry Pi 5 and the SBC Ecosystem

Raspberry Pi 5 (released October 2023, broadly available 2024) reset the SBC baseline.

ItemPi 4Pi 5
SoCBCM2711 (A72)BCM2712 (A76)
Clock1.5 / 1.8 GHz2.4 GHz
Memory1/2/4/8 GB LPDDR44/8/16 GB LPDDR4X
PCIeNonePCIe 2.0 x1 (external NVMe)
PowerUSB-C 15 WUSB-C 25 W (5 A recommended)
PriceUSD 35-75USD 60-120

Pi 5 offloads its I/O to a separate RP1 chip connected over PCIe, dramatically increasing USB/Ethernet throughput versus Pi 4. Attaching an NVMe SSD via HAT has become a standard configuration.

Other SBCs

Selection usually goes community size, then driver maturity, then price, then specs. Pi's strength sits in the first two.


9. RTOS — FreeRTOS, Zephyr, ThreadX, NuttX

Bare-metal is fine for simple apps but quickly runs out as soon as you need more than one task. The 2026 RTOS landscape:

FreeRTOS 11

Zephyr RTOS 4.0

Eclipse ThreadX (formerly Azure RTOS)

Apache NuttX

CMSIS-RTOS / RTX

Mbed OS

The usual selection axes are certification needs, multi-architecture support, and community activity. For new projects, FreeRTOS (lightness first) or Zephyr (ecosystem first) are the usual picks.


10. Embedded Language Diversification — Rust, TinyGo, MicroPython

C is still number one, but in 2026 there are serious alternatives.

Rust embedded

#[embassy_executor::main]
async fn main(spawner: Spawner) {
    let p = embassy_rp::init(Default::default());
    let mut led = Output::new(p.PIN_25, Level::Low);
    loop {
        led.toggle();
        Timer::after(Duration::from_millis(500)).await;
    }
}

Blink the on-board LED on Pico's GPIO 25 — async/await really does work.

TinyGo

MicroPython / CircuitPython

import machine, time
led = machine.Pin(25, machine.Pin.OUT)
while True:
    led.toggle()
    time.sleep(0.5)

TinyMaix, picoTLS

Specialised libraries for tighter performance and memory budgets. TinyMaix fits a neural-network inference engine in 200 KB of Flash.


11. PlatformIO — The De Facto Standard for Multi-Target Builds

PlatformIO, started in 2014 by Ukraine-based Ivan Kravets, is a multi-platform embedded build system. By 2026 it supports about 1,300 boards, 50 platforms and 20 frameworks.

[env:esp32-c6]
platform = espressif32
board = esp32-c6-devkitc-1
framework = arduino
monitor_speed = 115200
upload_speed = 921600

[env:nucleo_f411re]
platform = ststm32
board = nucleo_f411re
framework = stm32cube
debug_tool = stlink

Define both environments in one folder and pio run -e esp32-c6 builds for ESP32, pio run -e nucleo_f411re for STM32. Library management uses SemVer ranges like lib_deps = adafruit/Adafruit BME280 Library@^2.2.4.

The VS Code extension is the most popular front-end. Stronger than Arduino IDE, lighter than Eclipse-based ST IDE.


12. ESP-IDF v5.4 and the ESP32 Workflow in Depth

ESP-IDF is Espressif's official SDK and bundles FreeRTOS, LwIP and the WiFi stack into one toolchain. Headline changes in v5.4 (2024):

Build pipeline

idf.py build calls CMake + Ninja under the hood and produces bootloader, app binary and NVS region according to the partition table:

build/bootloader/bootloader.bin   # secondary bootloader (after ROM)
build/partition_table/partition-table.bin
build/myapp.bin                   # application
build/ota_data_initial.bin        # OTA-slot metadata

Flashing uses esptool.py write_flash or idf.py flash.

Using both cores

ESP32 Classic and S3 are dual-core. FreeRTOS's xTaskCreatePinnedToCore pins a task to a core.

xTaskCreatePinnedToCore(network_task, "net", 8192, NULL, 5, NULL, 0);
xTaskCreatePinnedToCore(sensor_task,  "sen", 4096, NULL, 5, NULL, 1);

Core 0 commonly carries the WiFi/BT stack load; core 1 takes application logic.


Bare-metal debugging is usually two-stage: a debug probe connected to the board's SWD pins, and a host GDB driving the chip through the probe.

Debug probes

OpenOCD and probe-rs

The host GDB server is traditionally OpenOCD. Its C codebase is old and the configuration is fiddly. In the late 2020s probe-rs (Rust) rose. cargo flash --chip STM32F411RETx is all that is needed to flash a board.

GDB itself remains the standard. VS Code's Cortex-Debug extension and CLion's embedded debugger both wrap GDB.


14. Communication — SPI, I2C, UART, CAN, USB

About 90% of MCU work involves these five serial protocols directly.

ProtocolSpeedPin countNotes
UARTtypically 115200 bps2 (TX/RX)Simplest. Asynchronous.
SPItens of MHz4 (MOSI/MISO/SCK/CS)Fast and symmetric.
I2C100k/400k/1M2 (SDA/SCL)Multi-slave. Pull-ups required.
CAN1 Mbps2 (CAN-H/L)Differential, automotive standard.
RS-48510 Mbps2 (A/B)Differential, industrial long-haul.
USB FS/HS12 / 480 Mbps4 (D+/D-/VBUS/GND)Host/device.

Pin identifiers use chip-specific macros like GPIO_NUM_2. Pull-up/-down, drive strength and open-drain are set alongside.


15. Wireless — WiFi 6, BLE 5.4, Thread, Matter

The biggest 2026 wireless story is Matter 1.4 going mainstream.

Chip choice carries non-trivial RAM/Flash cost for the wireless stack. A BLE host plus controller typically consumes 100-200 KB of Flash and 30-50 KB of RAM.


16. Sensors — BME680, VL53L5, MPU6050, GPS

A representative shortlist.

I2C address collisions are a frequent pitfall. To use two chips with the same address either insert an I2C multiplexer like TCA9548A or move one address with the SDO/ADDR pin.


17. AI on MCU — TFLM, Edge Impulse, STM32Cube.AI

Running small neural nets on MCUs — so-called TinyML — became seriously industrialised in the late 2020s.

Cortex-M55 (Helium MVE) and Ethos-U55/U65 NPU cores push 0.5-1.0 TOPS-class inference into MCUs. Classifying a single image frame within 100 ms is now feasible.


18. OTA — SUIT, mender, ESP32 OTA

Post-deployment firmware update is one of the hardest operational problems in embedded.

Meeting requirements for A/B slots, rollback, signing, integrity check and partial (delta) updates is hard. That difficulty is why SaaS-based offerings are growing.


19. PCB CAD — KiCad 8, Altium, EasyEDA

Tools for schematics and PCBs.

For small makers, KiCad + JLCPCB is effectively standard. Five 100x100 mm two-layer PCBs cost roughly USD 7 and ship in three days.


20. Korean and Japanese Embedded Ecosystems

Korea

Japan

Both regions have active maker scenes, but English documentation still dominates, so Korean and Japanese developers read English docs in practice.


21. Maker Fairs and Crowdfunding — Hackaday, Tindie, Crowd Supply

How open-hardware projects become products.

Korea's Wadiz/Tumblbug and Japan's Campfire/Makuake have embedded categories too, although smaller than the English-speaking platforms.


22. Simulation — Wokwi, Renode, QEMU

Tools to run firmware without real boards.

Per-commit firmware regression testing essentially requires simulation. Plugging 100 boards into a CI server is not feasible.


23. Enclosures — 3D Printing and CAD

Embedded products usually get their housings from 3D printing or injection moulding. At the maker stage, 3D printing rules.

PETG, ABS, ASA, PC and Nylon are common for housings. PLA is fine for prototypes but deforms above 60 C, so it is unsuitable for automotive interiors.


24. Security — Secure Boot, TrustZone, OTP

IoT-device security is no longer optional. The EU's Cyber Resilience Act (CRA), adopted in 2024, comes into full force in December 2027.

Adding an external secure IC like ATECC608A to small MCUs is increasingly common.


25. Learning Resources — Books, Talks, Conferences

In Korean, Yoon Duk-yong's "AVR Microcontroller" series and instructor Jang Mun-cheol's YouTube channel are well known. In Japanese, CQ Publishing's monthly "Transistor Gijutsu" is approaching 70 years of continuous publication.


26. Closing — Small Chips, Big World

Embedded development sits closer than any other discipline to the hardware-software boundary. Identical code can behave differently when two boards have different pull-up values. One C statement can damage a motor through a 100 microsecond interrupt latency. That proximity is both the appeal and the difficulty of embedded.

In 2026 the tooling has improved dramatically. PlatformIO and Wokwi lowered the barrier to entry. Rust embedded and Zephyr strengthened safety and portability. KiCad and JLCPCB democratised PCB fabrication. The new silicon — RP2350's dual-ISA, ESP32-P4's RISC-V, nRF54L15's BLE 5.4 — sells at prices that were unthinkable five years ago.

The learning order is simple.

  1. Blink an LED on an Arduino Uno R3 or Pi Pico.
  2. Read one sensor over UART, SPI or I2C.
  3. Tidy your environment with PlatformIO or ESP-IDF.
  4. Run two FreeRTOS tasks.
  5. Talk to the cloud or to a phone over WiFi or BLE.
  6. Order your own PCB from KiCad.

Six steps and you are an embedded engineer. One step at a time. The joy of small chips moving a big world waits at the end.


References

Comments

No comments yet.

Sign in to leave a comment