Tooling

MCU Wireless Stacks

Wireless protocols and stacks for embedded — Wi-Fi, BLE, ESP-NOW, Zigbee, Thread, Matter, LoRaWAN, BT Mesh.

The radio side of MCU work — what protocols you can speak from a chip and what stacks implement them. Hardware support depends on the chip family; for OTA over those radios see MCU OTA & Fleet Updates.

Wi-Fi

  • ESP32 family (all variants) — Wi-Fi 4 (b/g/n) on classic / S2 / S3 / C3; Wi-Fi 6 (ax) on C5 / C6. STA + AP modes; mesh via ESP-MESH.
  • Pi Pico W / Pico 2 W — Wi-Fi 4 via Infineon CYW43439; supported in Pico SDK + MicroPython + arduino-pico.
  • nRF7002 — Wi-Fi 6 companion chip from Nordic; pair with nRF52/53/54.
  • Cellular as Wi-Fi alternative — see MCU Platforms.

Common Wi-Fi stacks:

  • ESP-IDF Wi-Fi driver — Espressif's blob-based driver; baked into IDF, exposed in Arduino-on-ESP, MicroPython, Embassy + esp-wifi, etc.
  • lwIP — the de-facto TCP/IP stack underneath ESP-IDF, Zephyr, NuttX, Mongoose OS.
  • smoltcp / embassy-net — Rust pure-source TCP/IP stack; used by Embassy.
  • WolfSSL / Mbed-TLS — TLS libs typically pulled in next to lwIP.

BLE — Bluetooth Low Energy

  • NimBLE (Apache Mynewt origins; now an Apache project) — open-source BLE host stack used by ESP-IDF (esp-nimble-host), Zephyr, NuttX. The dominant BLE host stack outside Nordic.
  • Bluedroid (Android-derived) — ESP-IDF's older BLE host; still selectable but NimBLE is recommended for new projects (smaller footprint, dual-mode).
  • Zephyr Bluetooth — Zephyr's own BLE stack; first-class on Nordic chips, also runs on STM32WB and ESP32.
  • Nordic SoftDevice — Nordic's binary BLE stack (s140, s132, s113); rock-solid, closed-source. Default on nRF52 unless using Zephyr.
  • Apache MyNewt + NimBLE — full RTOS + BLE for nRF / SAMD / STM32.
  • trouble — pure-Rust BLE host (cross-chip). See Embedded Rust.
  • SiLabs Gecko BLE / Bluetooth Mesh — Silicon Labs' BLE stacks for EFR32 / MGM family.
  • STM32 BLE (STM32WB / WBA) — ST's stack for their dual-radio MCUs.

BT Classic / EDR / A2DP / HFP

  • ESP32 (classic chip only) — has Bluetooth Classic + A2DP + HFP via Bluedroid. The newer ESP variants are BLE-only.
  • STM32WB BT-Classic — limited; not the strong suit.

ESP-NOW

  • ESP-NOW — Espressif's connectionless Wi-Fi-PHY protocol; ~250 byte payloads, no AP needed. Excellent for low-latency MCU-to-MCU links and battery sensors. Supported on every ESP variant. Open API; ships in IDF, Arduino, MicroPython, esp-wifi (Rust). Often the right choice instead of BLE for low-bandwidth ESP-to-ESP traffic.

802.15.4 — Zigbee, Thread, Matter

The 2.4 GHz mesh radio that underpins all of these.

Chips with 802.15.4

  • ESP32-C6 / ESP32-H2 (Espressif).
  • nRF52840 / nRF5340 / nRF54 (Nordic).
  • STM32WB / STM32WBA (ST).
  • Silicon Labs EFR32MG / EFR32xG24 / EFR32xG28 (Zigbee/Thread specialists).

Zigbee

  • OpenThread / Zigbee with ESP-Zigbee SDK — Espressif's Zigbee 3.0 stack on C6 / H2.
  • ZBOSS (DSR Corp.) — Zigbee stack used on Nordic chips (under nRF Connect SDK) and elsewhere.
  • Z-Stack (Texas Instruments) — TI's CC2652 / CC1352-based stack; foundation of many commercial Zigbee devices.
  • Silicon Labs EmberZNet — SiLabs' commercial Zigbee stack; ships on EFR32 / MGM modules. Closed-source but well-supported by Zigbee2MQTT.
  • Zigbee2MQTT — see Self-Hosted Automation; the host-side bridge that talks to Zigbee dongles.
  • ZHA (Zigbee Home Automation) — Home Assistant's built-in Zigbee integration; uses bellows / zigpy.

Thread

  • OpenThread — open source (BSD-3); reference Thread implementation. Used by ESP-IDF (esp_thread), nRF Connect SDK, Zephyr, Silicon Labs SDK, Apple, Google. The standard.
  • Thread Border Router — bridges Thread mesh to Wi-Fi/Ethernet IPv6. ESP32-S3 + ESP32-H2 reference; Apple HomePod / Google Nest hubs do this commercially.

Matter (over Thread or Wi-Fi)

  • Connectedhomeip / Matter SDK — open source (Apache 2.0); the official cross-vendor Matter SDK. Builds for ESP32, nRF, EFR32, STM32, Linux. Underlying every commercial Matter device.
  • ESP-Matter — Espressif's productized Matter SDK on top of ESP-IDF; first-class for ESP32-C6 (Wi-Fi) and ESP32-H2 (Thread).
  • nRF Connect SDK Matter — Nordic's productized Matter; first-class on nRF5340 + nRF54.
  • Silicon Labs Matter — first-class on EFR32xG24/28.

BT Mesh

  • Bluetooth Mesh — Bluetooth SIG mesh on top of BLE; supported by Zephyr, Nordic SoftDevice, Silicon Labs, ESP-IDF. Lighting / building automation; mostly commercial deployment.

LoRa / LoRaWAN

  • LoRaWAN — long-range, low-bandwidth (sub-GHz: 868/915/923 MHz). Bands and duty cycles are regional.
  • LoRaMAC-node (Semtech) — open-source LoRaWAN reference stack; basis of most ports.
  • The Things Stack (TTS) — open-source LoRaWAN network server; "The Things Network" runs the free public version. Apache 2.0.
  • ChirpStack — open-source LoRaWAN network server (alternative to TTS). MIT.
  • Helium (commercial) — public LoRaWAN coverage with crypto-token incentives; mature in 2026.
  • Meshtastic — see WLED & Special-Purpose MCU Firmware — Meshtastic uses LoRa raw, not LoRaWAN.

LoRa hardware in MCUs:

  • STM32WL — STM32 with built-in SX126x; the single-chip LoRaWAN node.
  • Semtech SX1262 / SX1276 / LR1110 / LR1121 — module-level LoRa transceivers; pair with any MCU.
  • Murata Type ABZ — STM32L0 + SX1276 module; classic LoRaWAN module.

Sub-GHz proprietary

  • CC1101 (TI) — 433 / 868 / 915 MHz transceiver; "the chip Flipper Zero uses." Loved by RF hobbyists.
  • RFM69 (HopeRF) — popular FSK transceiver for cheap home-grown sensor networks.
  • nRF24L01+ — 2.4 GHz proprietary; old-school cheap mesh-ish networks; obsolete for new designs.

Cellular IoT

  • LTE-M (Cat-M1) — low-power LTE for IoT.
  • NB-IoT (Cat-NB) — narrower, even-lower-power LTE.
  • 2G / GPRS — being shut down globally; avoid for new designs.
  • DECT NR+ (NR+) — newer; on Nordic nRF91 chips.

Stacks: lwM2M / OMA-LwM2M / nRF Cloud / AWS IoT Core / Azure IoT Hub. Coverage handled by the SIM (Soracom, Hologram, 1NCE, Onomondo, etc.).

Wired serial / fieldbus (briefly)

  • CAN / CAN-FD — STM32 / SAMD / RP2350 (with PIO) / SAME5x.
  • RS-485 / Modbus RTU — most MCUs over UART + transceiver; PyModbus on the host.
  • Ethernet — STM32H7 / SAME5x / W5500 SPI module / RP2040 + W5500 / ESP32 + LAN8720.

Pick this if…

  • Default low-power MCU-to-MCU link on ESP: ESP-NOW.
  • Default BLE on ESP: NimBLE (in IDF) or trouble (in Rust).
  • Default BLE on Nordic, professional product: SoftDevice or Zephyr Bluetooth.
  • Default Matter / Thread device, 2026: ESP32-C6 (Wi-Fi Matter) or ESP32-H2 (Thread Matter); or nRF5340 + nRF7002.
  • Long-range, low-bandwidth sensor, public network: LoRaWAN on STM32WL or RAK WisBlock.
  • Off-grid mesh radio chat: Meshtastic (LoRa raw, not LoRaWAN).
  • Cellular IoT, professional product: Nordic nRF9151.
  • Cheap home-grown 433 MHz network: CC1101 + a custom protocol — but consider Meshtastic instead unless you have a reason.

On this page