Seriële communicatie wordt niet alleen gebruikt voor logs, maar ook om firmware naar het flashgeheugen van een microcontroller te uploaden. Voor de ESP8266 en ESP32 gebeurt dat met Espressifs programma esptool, dat via de seriële interface met de rombootloader van deze chips communiceert.
Esptool is eenvoudig te installeren als Python-pakket met pip install esptool, maar zoals we zagen, is de lokale installatie van ontwikkeltools niet altijd aangewezen of mogelijk. Adafruit ontwikkelde daarom twee jaar geleden Web Serial ESPTool, waarmee je in een Web Serial-compatibele webbrowser firmware naar Espressifs microcontrollers kunt uploaden. De broncode is beschikbaar onder de MIT-licentie.
Ondertussen ontwikkelde Espressif zijn JavaScript-implementatie van esptool met Web Serial, esptool-js. Naast de versie op GitHub Pages kun je ook de broncode downloaden, de afhankelijkheden installeren met npm install en daarna met python3 -m http.server 8080 een lokale webserver opzetten. De webinterface is dan beschikbaar op http://localhost:8080/.
ESP Web Tools
Adafruits Web Serial ESPTool en Espressifs esptool-js zijn in feite slechts webgebaseerde versies van esptool. Ze vereisen dan ook nog altijd wat voorkennis van de gebruiker. Zo moet de gebruiker een baudrate kiezen, een flashadres instellen en het juiste firmwarebestand selecteren.
Nabu Casa, het bedrijf achter Home Assistant en ESPHome, ontwikkelde daarom ESP Web Tools als gebruiksvriendelijke wrapper. Initieel baseerde Nabu Casa zich daarvoor op Adafruits Web Serial ESPTool, en even nam het bedrijf dit project zelfs over als officiële beheerder, maar in juli schakelde Nabu Casa voor ESP Web Tools over naar esptool-js.
ESPHome-mediaspelers
Een voorbeeld van de gebruiksvriendelijkheid is te zien op de webpagina ESPHome Media Players. Deze installeert een ESPHome-configuratie op je apparaatje waarmee je er een mediaspeler van maakt die je rechtstreeks vanuit Home Assistant aanstuurt. Je sluit gewoon je apparaat (Raspiaudio ESP Muse Luxe, Raspiaudio ESP Muse Proto, M5Stack Atom Speaker Kit of M5Stack Atom Echo Development Kit zijn ondersteund) via USB aan, selecteert het in de lijst en klikt op 'Connect', waarna de melding van Web Serial komt om een seriële interface te kiezen. Als je geen apparaat vindt en annuleert, geeft de webpagina een handige checklist van wat je kunt proberen om het probleem op te lossen, zoals een andere kabel of de installatie van de juiste drivers.
Nadat de verbinding met je apparaat is opgezet, krijg je de vraag om of de firmware te installeren, of een console te openen om de logs te bekijken. Kies je voor de installatie en bevestig je, dan wordt de firmware op het bordje geïnstalleerd. Bij sommige apparaten moet je de bootknop ingedrukt houden terwijl je de installatie start. Bij onze M5Stack Atom Echo moesten we de resetknop aan de zijkant indrukken vlak voordat we op het installatieknopje van de webpagina drukten.
/i/2005473174.png?f=imagenormal)