ESP-Hosted

Belangrijkste kenmerken

  • Draadloze connectiviteit: Wi-Fi, Bluetooth/BLE en 802.15.4 via één bekabelde verbinding.
  • Open source: Volledig open-source code voor zowel de coprocessor als de host.
  • Brede ondersteuning: Geschikt voor verschillende hosts, waaronder MCU's en Linux.
  • Diverse bus-opties: Ondersteuning voor SDIO, SPI, SPI-HD, UART en combinaties hiervan.
  • Wi-Fi beveiliging: Ondersteuning voor standaardbeveiliging zoals Open, WPA, WPA2 en WPA3.
  • Bluetooth: Ondersteuning voor Classic Bluetooth, BLE en BTDM (versies 4.2 t/m 6.0).
  • Gedeeld netwerk: De ESP en de host kunnen hetzelfde IP-adres delen.
  • Energiezuinig: Bevat modi voor laag energieverbruik, ideaal voor batterijgevoede toepassingen.

Architectuur

ESP-Hosted oplossingen

esp-hosted-linux

Een FullMAC-oplossing voor Linux-hosts:

  • Implementatie in één stap.
  • Naadloze connectiviteit direct uit de doos.
  • Native Wi-Fi-interface (wlan0).
  • Integratie met Linux cfg80211.
  • Ondersteuning voor wpa_supplicant en NetworkManager.
  • Bluetooth via HCI.
  • De 802.11 MAC draait op de ESP-coprocessor.

esp-hosted-mcu

Een RPC-gebaseerde oplossing voor MCU- en Linux-hosts:

  • ESP-IDF methode: Maakt gebruik van volledig compatibele ESP-IDF API's en event handlers die op de host bruikbaar zijn.
  • Controle: De applicatie beheert alle functies. API's worden vertaald naar draagbare, op protobuf gebaseerde RPC-verzoeken naar de coprocessor.
  • Events: De host kan transparant esp_event gebruiken voor gebeurtenissen van de coprocessor.
  • Custom frames: Gebruikers kunnen eigen frames verzenden tussen de host en de coprocessor.
  • Interfaces: 802.3 Ethernet-interface en Bluetooth via HCI.
  • Protocolondersteuning: 802.15.4 ondersteunt Thread en Zigbee.
  • Netwerkbeheer: Host en ESP kunnen één IP-adres delen, waarbij de ESP de verbinding in stand houdt terwijl de host in slaapmodus is.

Kiezen van de juiste oplossing

De keuze hangt primair af van de manier waarop de host toegang wil hebben tot Wi-Fi.

Selectie op basis van interface

HostWi-Fi interface van de hostOplossing
LinuxLinux networking stack: wlan0, cfg80211, wpa_supplicant, NetworkManageresp-hosted-linux
Linux of MCUESP-IDF espwifi*() API'sesp-hosted-mcu

Selectie op basis van gebruiksscenario

GebruiksscenarioAanbevolen oplossing
Standaard Linux Wi-Fi configuratie (NetworkManager, wpa_supplicant)esp-hosted-linux
Een native draadloze interface, zodat bestaande tools en scripts blijven werkenesp-hosted-linux
Linux met custom of propriëtaire controle over Wi-Fiesp-hosted-mcu
Embedded Linux boards (bijv. Raspberry Pi, BeagleBone)Beide mogelijk
ESP-IDF applicatiecode die ongewijzigd op de host moet draaienesp-hosted-mcu
Wi-Fi in AP + station-modus op Linuxesp-hosted-mcu
Wi-Fi en Bluetooth/BLE gelijktijdigBeide mogelijk
Classic BluetoothBeide mogelijk
Connectiviteit behouden terwijl de host slaaptBeide mogelijk

Vergelijking van oplossingen

ESP-Hosted-Linux (FullMAC)

  • Naadloze connectiviteit.
  • Netwerking direct uit de doos.
  • Bestaande Linux-tooling en scripts blijven functioneel.

ESP-Hosted-MCU (Custom oplossing)

  • Zowel Linux- als MCU-hosts maken gebruik van standaard ESP-IDF API's.
  • Eén enkele firmware voor de coprocessor voor zowel MCU- als Linux-hosts.
  • Dezelfde host-applicatie werkt op zowel een MPU als een MCU.

Aan de slag

De actieve ontwikkeling vindt plaats in de volgende repositories:

RepositoryDoelOndersteuning
esp-hosted-linuxStandaard Linux-oplossingLinux Issues
esp-hosted-mcuCustom oplossing voor MCU- en Linux-hostsMCU Issues

Bijdragen en issues

Bijdragen zijn welkom, waaronder bugrapporten, fixes, nieuwe functies en documentatie. ESP-Hosted wordt open ontwikkeld en elke wijziging gaat door een reviewproces. Voor substantiële wijzigingen wordt verzocht eerst een issue te openen, zodat de aanpak kan worden afgestemd voordat de code wordt geschreven.

Verouderde implementaties

Verouderde implementatieGemigreerd naarStatusCode
ESP-Hosted-NGesp-hosted-linuxLegacylegacy/fg-ng
ESP-Hosted-FGesp-hosted-mcuLegacylegacy/fg-ng