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
๐ก 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
cfg80211integration wpa_supplicantandNetworkManagersupport- 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_eventfor 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.
| Host | Host Wi-Fi interface | Solution |
|---|---|---|
| Linux | Linux networking stack: wlan0, cfg80211, wpa_supplicant, NetworkManager | esp-hosted-linux |
| Linux or MCU | ESP-IDF esp_wifi_*() APIs | esp-hosted-mcu |
By use case:
| Use case | Recommended |
|---|---|
Standard Linux Wi-Fi config (NetworkManager, wpa_supplicant) | esp-hosted-linux |
| A native wireless interface, so existing tooling and scripts keep working | esp-hosted-linux |
| Linux with custom or proprietary control over Wi-Fi | esp-hosted-mcu |
| Embedded Linux boards (Raspberry Pi, BeagleBone) | either |
| ESP-IDF application code that should run unchanged on the host | esp-hosted-mcu |
| Wi-Fi in AP + station mode on Linux | esp-hosted-mcu |
| Wi-Fi and Bluetooth/BLE together | either |
| Classic Bluetooth | either |
| Connectivity kept up while the host sleeps | either |
๐ Solution Comparison
| ESP-Hosted-Linux โ FullMAC | ESP-Hosted-MCU โ custom solution |
|---|---|
![]() |
![]() |
|
|
See the detailed comparison to understand how the two solutions differ.
๐ Getting Started
Active development is currently taking place in these repositories:
| Repository | Purpose | Support |
|---|---|---|
| esp-hosted-linux | Standard Linux Solution | Linux Issues |
| esp-hosted-mcu | Custom solution for MCU and Linux hosts | MCU 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 implementation | Migrated to | Status | Code |
|---|---|---|---|
| ESP-Hosted-NG | esp-hosted-linux | Legacy | legacy/fg-ng |
| ESP-Hosted-FG | esp-hosted-mcu | Legacy | legacy/fg-ng |

