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.