Frameworks

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 / arduino-cli

AVR, ARM (SAMD), ESP32, RP2040, and more

The hobby default. Sketch model with setup() and loop(); massive third-party library ecosystem. Use arduino-cli for scripted builds.

ESP-IDF

ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6

Espressif’s official SDK. FreeRTOS-based, CMake-driven, integrated idf.py CLI. The operator’s path to the full Wi-Fi / Bluetooth stacks.

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; west is the CLI.

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#