]>
Commit | Line | Data |
---|---|---|
374f085e MM |
1 | # ESP-Hosted |
2 | ||
22dbd2ce | 3 | 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. |
950e0ba1 | 4 | |
22dbd2ce | 5 | Following is the high level block diagram for ESP-Hosted. Detailed block diagram is available in subsequent sections. |
950e0ba1 | 6 | |
774e9b2e MM |
7 | ![alt text](basic_block_diagram.jpg "Basic Block Diagram") |
8 | ||
9 | ||
10 | ||
7506884d | 11 | ## 1. ESP-Hosted Flavours |
774e9b2e | 12 | |
b184ca3a | 13 | 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. |
2f806355 | 14 | |
950e0ba1 | 15 | |
7506884d | 16 | ### 1.1 ESP-Hosted-NG |
950e0ba1 | 17 | |
b184ca3a | 18 | 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. |
950e0ba1 | 19 | |
774e9b2e | 20 | This solution offers following: |
950e0ba1 | 21 | |
774e9b2e MM |
22 | * 802.11 network interface which is a standard Wi-Fi interface on Linux host |
23 | * Configuration of Wi-Fi is supported through standard cfg80211 interface of Linux | |
24 | * A standard HCI interface | |
950e0ba1 | 25 | |
b184ca3a | 26 | This flavour is available in [esp_hosted_ng](esp_hosted_ng) |
950e0ba1 | 27 | |
b184ca3a | 28 | Please proceed with the [detailed documentation](esp_hosted_ng/README.md) for setup and usage instructions. |
774e9b2e MM |
29 | |
30 | ||
31 | ||
7506884d | 32 | ### 1.2 ESP-Hosted-FG |
b22dadbb | 33 | |
b184ca3a | 34 | 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. |
774e9b2e | 35 | |
b184ca3a | 36 | In order to achieve this, the host is presented with following: |
ac8fb798 | 37 | |
b184ca3a SR |
38 | * A standard 802.3 network interface which essentially is an Ethernet interface |
39 | * A light weight control interface to configure Wi-Fi on ESP board | |
40 | * A standard HCI interface | |
41 | ||
42 | 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. | |
774e9b2e | 43 | |
b184ca3a | 44 | This flavour is available in [esp_hosted_fg](esp_hosted_fg) |
950e0ba1 | 45 | |
b184ca3a | 46 | Please proceed with the [detailed documentation](esp_hosted_fg/README.md) for setup and usage instructions. |
950e0ba1 | 47 | |
950e0ba1 | 48 | |
7506884d | 49 | ## 2. ESP-Hosted-FG vs ESP-Hosted-NG |
950e0ba1 | 50 | |
b184ca3a | 51 | 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. |
950e0ba1 | 52 | |
7506884d | 53 | ### 2.1 Similarities |
950e0ba1 | 54 | |
b184ca3a SR |
55 | - Both the flavours share the same aim, to conveniently use ESP's Wi-Fi and Bluetooth/BLE capabilities from host |
56 | - Both the flavours aim to support same set of ESP SoCs/modules and same set of transports like SPI/SDIO/UART for connectivity needs | |
950e0ba1 | 57 | |
7506884d | 58 | ### 2.2 Key Differences |
950e0ba1 | 59 | |
b184ca3a SR |
60 | - ESP-Hosted-FG supports both Linux and MCU hosts. ESP-Hosted-NG supports only Linux host. |
61 | - ESP-Hosted-FG exposes 802.3 network interface (Ethernet) to the host. Where as, ESP-Hosted-NG exposes 802.11 interface (Wi-Fi). | |
62 | - ESP-Hosted-FG uses custom control path to configure Wi-Fi as opposed to ESP-Hosted-NG which uses standard nl80211/cfg80211 configuration. | |
950e0ba1 | 63 | |
a5943cd2 | 64 | |
774e9b2e | 65 | Following table summarizes this entire discussion. |
950e0ba1 | 66 | |
b184ca3a SR |
67 | <table> |
68 | <tr> | |
69 | <th>Features</th> | |
70 | <th>ESP-Hosted</br>First</br>Generation </th> | |
71 | <th>ESP-Hosted</br>Next</br>Generation </th> | |
72 | </tr> | |
73 | <tr> | |
74 | <td>Supported platforms</td> | |
75 | <td>MCU & Linux host</td> | |
76 | <td>Linux only host</td> | |
77 | </tr> | |
78 | <tr> | |
79 | <td>Wi-Fi Configuration mechanism</td> | |
80 | <td>Custom control interface</td> | |
81 | <td>nl80211 / cfg80211</td> | |
82 | </tr> | |
83 | <tr> | |
84 | <td>Network Interface available</td> | |
85 | <td>802.3 Ethernet Interface</td> | |
86 | <td>802.11 Wi-Fi interface</td> | |
87 | </tr> | |
88 | <tr> | |
89 | <td>Recommended Host Type</td> | |
90 | <td><span style="font-weight:bold">MCU Host</span></td> | |
91 | <td><span style="font-weight:bold">Linux Host</span></td> | |
92 | </tr> | |
93 | <tr> | |
94 | <td>Wi-Fi features</td> | |
95 | <td colspan="2" style="text-align:center">802.11 b/g/n</td> | |
96 | </tr> | |
97 | <tr> | |
98 | <td>Transport Layer</td> | |
99 | <td colspan="2" style="text-align:center">SDIO, SPI, UART</td> | |
100 | </tr> | |
7506884d SR |
101 | <tr> |
102 | <td>Usable transport combinations</td> | |
103 | <td colspan="2" style="text-align:center">SPI only, SPI+UART, SDIO only, SDIO+UART</td> | |
104 | </tr> | |
b184ca3a SR |
105 | <tr> |
106 | <td>Wi-Fi Mode</td> | |
107 | <td>Station, <span style="font-weight:bold">SoftAP</span></td> | |
108 | <td>Station</td> | |
109 | </tr> | |
110 | <tr> | |
111 | <td>Wi-Fi Security Protocols</td> | |
8cdcc67d | 112 | <td colspan="2" style="text-align:center">Open / WPA / WPA2 / WPA3</td> |
b184ca3a SR |
113 | </tr> |
114 | <tr> | |
115 | <td>Bluetooth features</td> | |
d1b38ce1 | 116 | <td colspan="2" style="text-align:center">BLE 4.2, BLE 5.0, BLE 5.3</td> |
b184ca3a SR |
117 | </tr> |
118 | <tr> | |
119 | <td>Chipsets supported</td> | |
5ade5ecf | 120 | <td>ESP32, <span>ESP32-C2/C3/C6/S2/S3</span></td> |
debb4bb1 | 121 | <td>ESP32, <span>ESP32-C2/C3/C6/S2/S3</span></td> |
b184ca3a SR |
122 | </tr> |
123 | </table> | |
7506884d | 124 | |
fadb81aa SR |
125 | - **Iperf Throughput** |
126 | - [ESP-Hosted-FG](esp_hosted_fg/README.md#5-throughput-performance) | |
127 | - [ESP-Hosted-NG](esp_hosted_ng/README.md#4-throughput-performance) | |
7506884d SR |
128 | |
129 | ## 3. Our Recommendation | |
130 | ||
131 | * If you are using MCU host, you do not have choice but to use ESP-Hosted-FG | |
132 | * If you are using Linux host, we recommend ESP-Hosted-NG since it takes a standard approach which makes it compatible with widely used user space applications/services such as wpa_supplicant, Network Manager etc. | |
133 |