ESP-Hosted
ESP-Hosted is an open-source solution that enables Espressif SoCs/modules (like ESP32) to act as wireless communication co-processors for external host systems.
It allows host devices (Linux-based systems or microcontrollers, MCUs) to add Wi-Fi and Bluetooth/BLE capabilities via standard interfaces like SPI, SDIO, or UART.🔑 Key Features
Flexible Connectivity: Wi-Fi + Bluetooth/BLE
Broad Host Support: Works with Linux and MCU-based systems
Multiple Interfaces: SPI, SDIO, UART
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 Variants
ESP-Hosted is available in three main variants:🔹 ESP-Hosted-NG (Next Gen)
Best for Linux hosts needing standard Wi-Fi and Bluetooth integration:
Acts as a native 802.11 wireless device
Configurable via cfg80211 / wpa_supplicant
Supports NetworkManager
Bluetooth via standard HCI interface🔹 ESP-Hosted-FG (First Gen)
Designed for Linux hosts, with custom lightweight RPC-based control:
Ethernet 802.3 interface
Wi-Fi configuration via protobuf-based RPC
Fully customizable APIs
Bluetooth via standard HCI
Python or C integration
ESP maintains network when the host is powered off🔹 ESP-Hosted-MCU
Optimized for resource-constrained MCUs:
Minimal memory footprint
Wi-Fi configuration via protobuf-based RPC
Power-efficient operation
Ready port of ESP and STM32 as host
Bluetooth via standard HCI
ESP stays connected even when the host is in deep sleep or powered off📊 Variant Comparison
FeatureESP-Hosted-NGESP-Hosted-FGESP-Hosted-MCU
Target HostLinuxLinuxMCU
Wi-Fi Configurationcfg80211RPC (protobuf)RPC (protobuf)
Network Interface802.11 Wi-Fi802.3 Ethernet802.3 Ethernet
Same IP for ESP & Host❌✅✅
Power Management✅ Planned✅
Wi-Fi ModesSTA, APSTA, AP, STA+APSTA, AP, STA+AP
Bus InterfacesSPI, SDIO, UART (and combos)SameSame
Wi-Fi SecurityWPA, WPA2, WPA3, OpenSameSame
Standards802.11 b/g/n/ax, BLE 4.2/5.0/5.3SameSame
Supported ESP ChipsESP32, C2/C3/C5/C6/C61, S2/S3SameSame
🤔 Choosing the Right Variant
Use CaseRecommended Variant
Standard Linux Wi-Fi config (NetworkManager, wpa_supplicant)ESP-Hosted-NG
Linux with custom/proprietary control over Wi-FiESP-Hosted-FG
Embedded Linux platforms (e.g. Raspberry Pi, BeagleBone)NG or FG
Minimal resource devices (low RAM/CPU MCUs)ESP-Hosted-MCU
Custom networking or duplicate stack (same IP on host & ESP)FG or MCU
IoT use cases requiring both BLE and Wi-FiAny
Need for protocol customization / Deep Packet InspectionFG or MCU
Classic Bluetooth supportAll Variants
📚 Documentation & ResourcesESP-Hosted-NG
📄 Documentation
🐞 Issues
📈 Throughput BenchmarksESP-Hosted-FG
📄 Documentation
🐞 Issues
📈 Throughput BenchmarksESP-Hosted-MCU
📄 Documentation
🐞 Issues
📈 Throughput Benchmarks