Frameworks#
Vendor and community SDKs for embedded targets. Each bundles a toolchain, a board-support package (peripheral drivers, startup code, linker scripts), a build system, and usually some flavour of HAL or hardware abstraction. The operator picks one per target family and lives inside its conventions; jumping between frameworks for the same chip is rarely worth the friction.
Frameworks#
Framework |
Target |
Note |
|---|---|---|
Arduino / |
AVR, ARM (SAMD), ESP32, RP2040, and more |
The hobby default. |
ESP-IDF |
ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 |
Espressif’s official SDK. FreeRTOS-based, CMake-driven,
integrated |
STM32Cube (HAL + LL + CubeMX) |
STM32 (F, G, H, L, U series) |
ST’s BSP. CubeMX is the GUI peripheral configurator; HAL is the high-level driver layer, LL is the low-level register-level layer. |
Pico SDK |
RP2040 (Raspberry Pi Pico), RP2350 (Pico 2) |
Bare-metal CMake-based SDK; pairs with the PIO state machines unique to the RP family. |
mbed OS / Mbed Studio |
ARM Cortex-M across many vendors |
Arm’s framework; supports a wide board list. Now maintenance-mode in favor of Zephyr. |
nRF Connect SDK |
Nordic nRF5x, nRF91x |
Nordic’s Zephyr-based SDK. The path to Bluetooth LE and Thread on Nordic SoCs. |
PlatformIO |
Most of the above |
Cross-vendor wrapper. Lives in VS Code as an extension; pulls toolchains, frameworks, and libraries on demand. |
Zephyr |
700+ boards across many vendors |
Linux-Foundation RTOS and SDK. The successor to mbed for
multi-vendor embedded; |
Renode + Yocto |
Embedded Linux on custom hardware |
When the target is a full Linux system: Yocto for the distro, Renode for simulating it before the hardware arrives. |
When to pick#
Arduino when the target has an Arduino core, the operator is prototyping, or the existing libraries cover the peripherals.
ESP-IDF for any serious ESP32 project. Arduino-on-ESP32 works but hides the FreeRTOS and Wi-Fi knobs the operator needs for non-trivial work.
STM32Cube for STM32 production work. CubeMX saves hours of clock-tree and pin-mux configuration.
Pico SDK for RP2040 / RP2350. The PIO state machines are the chip’s defining feature; the SDK is the only good way to drive them.
Zephyr when targeting many boards from one codebase or when the project needs an RTOS, networking, and device-tree configuration in one tree.
PlatformIO when the operator wants one IDE and CLI across many targets, especially for short-lived prototypes.
References#
Toolchains for the compilers underneath the frameworks.
RTOS for the RTOS layer most frameworks ship with.