
Scheda di sviluppo ESP32-C3 ultra-compatta progettata per la ricerca sulla sicurezza embedded, con un esempio di captive portal con scansione WiFi e controllo LED. Include una guida dettagliata alla costruzione hardware e istruzioni per il flashing del firmware.
La f32 è una scheda di sviluppo ESP32 ultra-compatta progettata per essere montata direttamente dietro un connettore USB-C. Il PCB misura solo 9,85 mm x 8,45 mm. È alimentata dal microcontrollore ESP32-C3FH4 ed è stata creata principalmente per la ricerca e come una sorta di stress test per l'ESP32, poiché ignora intenzionalmente molte linee guida di progettazione standard. C'è solo un GPIO esposto ed è collegato a un LED integrato, quindi la maggior parte dello sviluppo su di esso sarebbe più orientato al wifi/web.
Per testare la f32 è stata creata un'applicazione di esempio con cui gli utenti possono interagire. L'applicazione trasforma la f32 in un captive portal, così quando viene accesa apparirà come un punto di accesso aperto che l'utente può selezionare tra le reti WiFi disponibili. L'utente viene quindi automaticamente reindirizzato alla pagina di controllo della f32 dove può interagire con alcune delle sue funzionalità di base, come accendere un LED o scansionare le reti WiFi circostanti. C'è anche una pagina "Informazioni" che fornisce una breve panoramica del dispositivo. Di seguito sono riportati alcuni screenshot e una gif dell'interazione con il dispositivo.
Pagina principale del captive portal. |
Ricerca WiFi e LED acceso. |
Pagina Informazioni. |
Inizialmente la f32 sembrava non voler funzionare. Non riuscivo a connetterla a nessuna rete o a farle trasmettere la propria rete. Sono sicuro al 100% che sia dovuto al circuito antenna scarso o alla sua mancanza, ma sono riuscito a farla funzionare dopo aver aggiunto un'ulteriore micro-antenna sull'antenna chip, come si vede nell'immagine qui sotto. Era solo un pezzo di filo piegato saldato al terminale finale e sospeso sopra il primo terminale.
Poiché non dispongo di sofisticate apparecchiature per test del segnale, mi sono affidato a test manuali, come verificare se riuscivo ancora a connettermi al dispositivo e controllare il LED. In un test a vista libera, con la f32 posizionata a circa 3 piedi da terra, sono riuscito a connettermi ed eseguire scansioni/controllare il LED a circa 120 piedi! Questo può essere visto nella mia rappresentazione assolutamente necessaria qui sotto.
Il PCB è stato progettato usando DipTrace e prodotto da PCBWay con uno spessore della scheda di 0,6 mm, dimensione minima del foro di 0,2 mm e traccia/spazio minimi di 4/4mil. Al momento della realizzazione costava solo $10,75 per 5 schede spedite! Mi stupisce ancora. PCBWay offre anche servizi di assemblaggio, ma ho scelto di assemblare a casa e soffrire un po'. Ci sono voluti alcuni tentativi ed errori con componenti così piccoli, ma ho deciso che il metodo migliore per me era abbandonare lo stencil e fare del flussante il mio migliore amico.
Strumenti e parti utilizzati:
Passaggi per costruirne uno:
f32_gerber.zip che si trova nella cartella hardware a PCBWay con le specifiche menzionate sopra.f32_bom.pdf. Questi componenti si trovano sia su DigiKey che su Mouser, tranne l'antenna. Non ricordo dove li avessi ordinati originariamente, ma credo siano CrossAir CA-C03.
f32_reference.pdf.
Dopo l'assemblaggio puoi usare l'estensione ESP-IDF per VSCode o Arduino e caricare quello che vuoi sulla scheda oppure puoi caricare la mia applicazione di esempio usando i passaggi seguenti.
esptool.py.esptool sia v4 o successiva.<PORT> con la porta a cui è collegato il dispositivo, ad esempio su Windows tipicamente qualcosa come COM5 o su Linux /dev/ttyACM0esptool.py -p <PORT> -b 460800 --before default_reset --after hard_reset --chip esp32c3 write_flash --flash_mode dio --flash_freq 80m --flash_size 2MB 0x0 firmware/bootloader.bin 0x10000 firmware/f32_internal.bin 0x8000 firmware/partition-table.bin
Beh, sta a te deciderlo. Ho iniziato questo progetto per una ricerca personale e anche come esperienza di apprendimento divertente. Avevo sempre desiderato un progetto che utilizzasse componenti 01005 da quando ne avevo ordinati alcuni per sbaglio anni fa. Qualunque cosa tu scelga di usarci, tieni presente che questo progetto trascura intenzionalmente diversi componenti fondamentali come condensatori di disaccoppiamento adeguati, un circuito di adattamento dell'antenna, resistori di terminazione USB e probabilmente altro. Funziona, ma è intenzionalmente spoglio.
Infine, una divertente coincidenza, il chip ESP32, l'antenna e l'LDO sono tutti modelli "C3"!