ESP-Hosted

September 9, 2026 ยท View on GitHub

ESP-Hosted, an open-source connectivity solution, leverages Espressif SoCs as dedicated wireless co-processors for Linux systems and microcontrollers.

It offloads protocol management to the co-processor, providing the host with full Wi-Fi, Bluetooth/BLE, and Thread capabilities via standard peripheral buses (SDIO, SPI, or UART).

๐Ÿ”‘ Key features

  • Wi-Fi, Bluetooth/BLE and 802.15.4 over a single wired link
  • Fully open source code โ€” both co-processor and host
  • Broad host support: an MCU, or Linux
  • Several buses: SDIO, SPI, SPI-HD, UART, and combinations
  • Standard Wi-Fi security: Open, WPA, WPA2, WPA3
  • Classic Bluetooth, BLE, BTDM (4.2..6.0)
  • Shared networking: ESP and host can share the same IP address
  • Power efficient: low power modes for battery-powered use cases

๐Ÿ”— High-Level Architecture

The host runs an application above a TCP/IP stack, a Bluetooth stack and an 802.15.4 stack, with the ESP-Hosted host driver and a bus driver below them. Over SDIO, SPI, SPI-HD or UART sits the ESP co-processor, whose ESP-Hosted firmware runs above the ESP-IDF Wi-Fi, Bluetooth and 802.15.4 drivers.

๐Ÿ’ก ESP-Hosted Solutions

๐Ÿ”น esp-hosted-linux

FullMAC solution for Linux hosts:

  • Single step solution
  • Seamless, out-of-the-box connectivity
  • Native Wi-Fi interface (wlan0)
  • Linux cfg80211 integration
  • wpa_supplicant and NetworkManager support
  • Bluetooth using HCI
  • 802.11 MAC runs on the ESP co-processor

๐Ÿ”น esp-hosted-mcu

RPC-based solution for MCU and Linux hosts:

  • ESP-IDF way: fully-compatible ESP-IDF APIs, and event handlers usable at host
  • App controls everything. APIs translate into portable protobuf based RPC requests to co-processor
  • Host can use esp_event for co-processor events transparently
  • Users can send their custom frames between host and co-processor
  • 802.3 Ethernet interface
  • Bluetooth using HCI
  • 802.15.4 supports Thread and Zigbee
  • Host and ESP can share a single IP address while the ESP maintains connectivity during host sleep

๐Ÿค” Choosing the Right Solution

The first question is how the host wants to reach Wi-Fi.

HostHost Wi-Fi interfaceSolution
LinuxLinux networking stack: wlan0, cfg80211, wpa_supplicant, NetworkManageresp-hosted-linux
Linux or MCUESP-IDF esp_wifi_*() APIsesp-hosted-mcu

By use case:

Use caseRecommended
Standard Linux Wi-Fi config (NetworkManager, wpa_supplicant)esp-hosted-linux
A native wireless interface, so existing tooling and scripts keep workingesp-hosted-linux
Linux with custom or proprietary control over Wi-Fiesp-hosted-mcu
Embedded Linux boards (Raspberry Pi, BeagleBone)either
ESP-IDF application code that should run unchanged on the hostesp-hosted-mcu
Wi-Fi in AP + station mode on Linuxesp-hosted-mcu
Wi-Fi and Bluetooth/BLE togethereither
Classic Bluetootheither
Connectivity kept up while the host sleepseither

๐Ÿ“Š Solution Comparison

ESP-Hosted-Linux โ€” FullMAC ESP-Hosted-MCU โ€” custom solution
On a Linux host the application reaches wpa_supplicant through cfg80211 on the control path and the TCP/IP stack on the data path. Below them the ESP-Hosted host driver and the bus driver talk to the ESP co-processor, which runs Wi-Fi and Bluetooth. On an MCU or Linux host the application reaches Protobuf RPC on the control path and the TCP/IP stack on the data path. Below them the ESP-Hosted host driver and the bus driver talk to the ESP co-processor, which runs Wi-Fi, Bluetooth and Thread.
  • Seamless connectivity
  • Out-of-the-box networking
  • Existing Linux tooling and scripts keep working
  • Both Linux and MCU hosts use standard ESP-IDF APIs
  • Single co-processor firmware for MCU and Linux hosts
  • Same host app works on MPU and MCU

See the detailed comparison to understand how the two solutions differ.

๐Ÿš€ Getting Started

Active development is currently taking place in these repositories:

RepositoryPurposeSupport
esp-hosted-linuxStandard Linux SolutionLinux Issues
esp-hosted-mcuCustom solution for MCU and Linux hostsMCU Issues

๐Ÿค Contributing and issues

Contributions are welcome โ€” bug reports, fixes, new features and documentation. ESP-Hosted is developed in the open, and every change goes through review. For anything substantial, please open an issue first so the approach can be agreed before you write the code.

๐Ÿ•ฐ๏ธ Legacy implementations

Legacy implementationMigrated toStatusCode
ESP-Hosted-NGesp-hosted-linuxLegacylegacy/fg-ng
ESP-Hosted-FGesp-hosted-mcuLegacylegacy/fg-ng