espressif / esp-hosted

Hosted Solution (Linux/MCU) with ESP32 (Wi-Fi + BT + BLE)
Other
710 stars 170 forks source link

ESP-Hosted

ESP-Hosted is an open source solution that provides a way to use Espressif SoCs and modules as a communication co-processor. This solution provides wireless connectivity (Wi-Fi and BT/BLE) to the host microprocessor or microcontroller, allowing it to communicate with other devices.

Following is the high level block diagram for ESP-Hosted. Detailed block diagram is available in subsequent sections.

alt text

1. ESP-Hosted Flavours

The ESP-Hosted solution is available in two flavours as mentioned below. The differentiation factor here is the type of network interface presented to host and the way Wi-Fi on ESP SoC/module is configured/controlled. Both the flavours have their respective host and firmware software.

1.1 ESP-Hosted-NG

This is the Next-Generation ESP-Hosted solution specifically designed for hosts that run Linux operating system. This flavour of the solution takes a standard approach while providing a network interface to the host. This allows usage of standard Wi-Fi applications such as wpa_supplicant to be used with ESP SoCs/modules.

This solution offers following:

This flavour is available in esp_hosted_ng

Please proceed with the detailed documentation for setup and usage instructions.

1.2 ESP-Hosted-FG

This is a first generation ESP-Hosted solution. This is a flavour, which provides a standard 802.3 (Ethernet) network interface to the host. Thought process behind this solution is to keep the host software simple while providing suite of connectivity features.

In order to achieve this, the host is presented with following:

Although this flavour supports Linux host, the nature of this solution makes it ideal to be used with MCU hosts which do not have complex communication interfaces such as Ethernet, Wi-Fi, BT/BLE etc.

This flavour is available in esp_hosted_fg

Please proceed with the detailed documentation for setup and usage instructions.

2. ESP-Hosted-FG vs ESP-Hosted-NG

Now that we offer two flavours of this solution, it could cause a little confusion. This section will try to explains similarities and differences in both the flavours and help you make a choice.

2.1 Similarities

2.2 Key Differences

Following table summarizes this entire discussion.

Features ESP-Hosted
First
Generation
ESP-Hosted
Next
Generation
Supported platforms MCU & Linux host Linux only host
Wi-Fi Configuration mechanism Custom control interface nl80211 / cfg80211
Network Interface available 802.3 Ethernet Interface 802.11 Wi-Fi interface
Recommended Host Type MCU Host Linux Host
Wi-Fi features 802.11 b/g/n
Transport Layer SDIO, SPI, UART
Usable transport combinations SPI only, SPI+UART, SDIO only, SDIO+UART
Wi-Fi Mode Station, SoftAP Station, SoftAP
Wi-Fi Security Protocols Open / WPA / WPA2 / WPA3
Bluetooth features BLE 4.2, BLE 5.0, BLE 5.3
Chipsets supported ESP32, ESP32-C2/C3/C5/C6/S2/S3 ESP32, ESP32-C2/C3/C6/S2/S3

3. Our Recommendation