← Slot Car Web Tools

Installer ESP32

Firmware del ponte ESP32 per le centraline DS200 / DS300: le porta senza cavo al Cronometro web — in rete (WebSocket) o via Bluetooth — e pubblica i dati su MQTT. Per vedere la gara serve il Cronometro web. Installalo e configura la rete dal browser. ⚠️ La parte più acerba del sito.

1 · Collega l'ESP32

Collega la scheda ESP32 al PC via USB. Chiudi ogni altro programma che usa la porta seriale (Arduino IDE Serial Monitor, pio device monitor, ecc.).

2 · Installa il firmware e configura il WiFi

Premi il pulsante, scegli la porta USB dell'ESP32 e segui la procedura. A fine flash il pulsante propone “Connect to Wi-Fi” (via Improv): scegli la tua rete e inserisci la password — niente captive portal necessario.

Browser non supportato (serve Web Serial). Apri la pagina via https:// o http://localhost.

In alternativa al WiFi via Improv-Serial, il firmware espone un captive portal DS200-Setup e legge i default da config.h / .env.

2-bis · Configura il WiFi dal telefono (Improv-BLE)

Il firmware supporta anche Improv via Bluetooth: senza cavo, da telefono o PC, apri improv-wifi.com (con Web Bluetooth: Chrome/Edge) oppure l'app Home Assistant, scegli il dispositivo ds200 e inserisci la rete. Si può disattivare con ENABLE_IMPROV_BLE 0.

3 · Apri l'interfaccia del dispositivo

Dopo la connessione, l'ESP32 mostra il suo indirizzo IP sulla seriale. Apri http://<ip>/ oppure http://ds200.local/: il ponte serve il Cronometro web vero, quello di questo sito, e si collega da solo. I dati vengono anche pubblicati su MQTT con timestamp NTP.

Il ponte espone la centralina in tre modi, tutti insieme: pagina servita da lui, WebSocket /ws e Bluetooth (servizio NUS). Il Bluetooth è l'unico che funziona dal sito pubblicato senza configurare niente — vedi il passo qui sotto.

4 · Usarlo dal sito pubblicato (facoltativo)

Una pagina servita in https:// non può aprire un ws:// verso un indirizzo di rete locale: il browser lo blocca, ed è una regola di sicurezza, non un difetto da aggirare. Ci sono due strade:

Nessuna autorità firma un indirizzo IP privato: serve per forza un nome. E la chiave privata resta in chiaro nella memoria del dispositivo — va bene per una centralina da pista, non per altro.

Download & flash da riga di comando

File (presenti quando la pagina è ospitata su GitHub Pages / build CI):

Flash completo via esptool (immagine unita):

esptool.py --chip esp32 --baud 921600 write_flash 0x0 ds200-esp32-merged.bin

Factory reset (cancella tutto: WiFi/MQTT salvati incl.):

esptool.py --chip esp32 erase_flash

Aggiornamento via rete: non funziona, e non è un difetto di questa pagina. La tabella delle partizioni in uso ha una sola area applicativa, quindi non esiste uno slot dove scrivere il firmware nuovo mentre gira quello vecchio — né da browser né con ArduinoOTA. Si aggiorna via USB. La pagina /update del dispositivo lo dice guardando le partizioni vere, invece di offrire un modulo che fallisce.

Build locale: cd esp32 && pio run — i .bin sono in esp32/.pio/build/esp32dev/; l'immagine unita si crea con lo script di merge in esp32/README.