Progetto tecnico — revisione A, prototipo modulare
1. Architettura e confini
Raspberry Pi Zero 2 W gestisce display, interfaccia Python, file e rapporti. ESP32-S3 gestisce I²C, infrarossi, ingressi digitali, scansione Wi-Fi e modulo CC1101. Il collegamento fra i due è USB-UART a 115200 baud. Questo evita di occupare la UART GPIO del Raspberry e rende possibile provare la scheda separatamente dal PC.
La scheda ESP32 scelta è N8 senza PSRAM. GPIO 19/20 sono riservati all'USB nativo e GPIO 43/44 alla seriale di servizio; non usarli per i moduli. Non usiamo pin di strap o pin potenzialmente occupati da memoria. La revisione fisica deve essere confrontata con il manuale Espressif prima dell'acquisto.
La versione base è deliberatamente realizzabile per moduli. La tabella collegamenti è completa per questi moduli, ma non sostituisce uno schema di produzione con simboli e footprint qualificati. Il prodotto commerciale richiede una successiva progettazione del circuito stampato e della protezione delle porte.
2. Alimentazione
Prototipo: alimentatore USB/power bank stabilizzato 5 V, dimensionato per l'assorbimento effettivo. Budget iniziale di progetto: fino a 3 A complessivi, da misurare. Non è una misura né una garanzia che qualsiasi power bank o cavo sia adatto.
Distribuzione in stella tramite piccolo distributore 5 V protetto di fornitore qualificato:
- Ramo A → porta PWR IN del Raspberry.
- Ramo B → ingresso alimentazione dedicato del display HDMI.
- ESP32 alimentato solo dalla USB-UART collegata all'hub USB del Raspberry; non aggiungere una seconda alimentazione ai pin 5 V.
Il Raspberry usa adattatore micro-USB OTG e hub USB 2.0 senza alimentazione esterna per ESP32 e touch. Controllare che assorbimenti e hub siano compatibili. Il display deve accettare alimentazione separata e collegamento touch senza backfeed: scegliere un modello documentato o un'interfaccia USB dati che interrompa il solo VBUS del touch dove consentito dal costruttore. Non costruire cavi di alimentazione improvvisati con uscite di power bank in parallelo.
Non è prevista una cella Li-ion nuda nel case. Il power bank rimane esterno nella revisione A. Dimensionamento di batteria interna, ricarica, protezione e misura stato di carica appartengono a una futura revisione.
Linea 3,3 V del DevKit → CC1101 e ricevitore IR. Verificare che il regolatore della revisione acquistata supporti il carico aggiunto. Posizionare 100 nF ceramici vicino a ciascun modulo e 10 µF sul ramo CC1101. I moduli esterni I²C possono essere alimentati solo entro il margine misurato del regolatore. Masse comuni per tutti i moduli della base.
3. Connessioni elettriche
Usare collegamenti.csv come netlist di montaggio e
schema.svg per orientamento. I nomi dei segnali sul modulo
CC1101 contano più della posizione fisica: i breakout non hanno un
pinout universale.
| ESP32 | Destinazione | Note |
|---|---|---|
| GPIO8 | SDA I²C | Pull-up 4,7 kΩ a 3,3 V, unico set sul bus |
| GPIO9 | SCL I²C | Pull-up 4,7 kΩ a 3,3 V, 100 kHz |
| GPIO10 | CC1101 CSn | Pull-up 10 kΩ a 3,3 V |
| GPIO11 | CC1101 SI/MOSI | SPI, fili corti |
| GPIO12 | CC1101 SCLK | SPI 1 MHz |
| GPIO13 | CC1101 SO/MISO | Readiness verificata con timeout |
| GPIO4 | TSOP4838 OUT | Ricezione IR; 100 Ω in serie sul suo ramo Vcc, 100 nF locale |
| GPIO5 | Ingresso digitale | 1 kΩ in serie; solo 0–3,3 V, non protetto da sovratensioni |
| GPIO6 | Pulsante a massa | Pull-up interno, stato grezzo, debounce non implementato |
CC1101 GDO0/GDO2 non collegati. Solo moduli con quarzo 26 MHz e adattamento antenna per 433 MHz. Antenna e modulo sono un insieme da verificare. Nessun amplificatore RF. Il firmware non emette comandi di trasmissione CC1101. Il suo uso in ricezione non trasforma il dispositivo in un analizzatore di spettro calibrato.
Per TSOP4838 verificare orientamento e pin sul datasheet: OUT, GND, Vs non devono essere dedotti dall'aspetto. I²C e ingresso digitale sono porte da banco non isolate. La resistenza serie non rende l'ingresso tollerante a 5 V. Non collegare tensioni di rete, uscite automotive o circuiti alimentati a tensioni superiori. Usare solo piccoli circuiti SELV a 3,3 V con massa compatibile.
4. Firmware
Il firmware usa Arduino-ESP32 della piattaforma PlatformIO fissata a
espressif32@6.9.0, non un generico pacchetto “latest”. Non
richiede librerie RF di terze parti. All'avvio Wi-Fi spento, CS radio
alto, ingressi con pull-up. La scansione Wi-Fi è passiva e non si
associa a reti. Non legge password.
Il CC1101 è inizializzato su richiesta, validando i registri part/version. La misura RSSI entra in RX, legge il registro e torna in IDLE. Il valore in dBm usa una correzione iniziale di 74 dB: è una stima da calibrare, non una misura certificata. Il registro raw è conservato nella risposta. Non ci sono replay, jamming, cattura di credenziali, clonazione chiavi o apertura veicoli.
Il sensore IR conta fronti di un segnale già demodulato; non ricostruisce la portante. L'interfaccia apre la seriale per ogni comando e questo può riavviare il DevKit: il conteggio IR è dunque limitato alla sessione corrente. Per misure continue serve un successivo collegamento seriale persistente. I risultati GUI rimangono in memoria fino all'esportazione manuale; un nuovo risultato sostituisce il precedente.
I²C cerca indirizzi, non identifica automaticamente i componenti. Nessun driver PN532, iButton, Bluetooth, CAN o RS-485 è incluso. Queste funzioni richiedono scelte hardware e prove dedicate.
5. Case e aspetto
Direzione estetica: guscio grafite, cornice frontale chiara, accento verde, etichette brevi, connessioni incassate. Ingombro di studio: 180 × 105 × 38 mm inclusi base da 35 mm e coperchio da 3 mm, senza sporgenze dei connettori. È un palmare da banco, non un dispositivo tascabile delle dimensioni di un telecomando.
Display 3,5 pollici HDMI sul lato sinistro del frontale. Raspberry sotto al display su supporto isolante; ESP32 e cablaggi sul lato destro; CC1101 verso il bordo lontano dai convertitori e dal display. Non posizionare metallo davanti alle antenne. Il layout SVG è indicativo, non una distinta di forature.
Il modello OpenSCAD contiene guscio, passacavo, aperture di ventilazione, quattro colonnine e coperchio con finestra. La finestra proposta 78 × 50 mm va adattata al modulo reale: diagonale “3,5 pollici” non determina PCB, touch e cornice. Il pannello sinistro contiene una apertura generica per cablaggio, non una presa USB qualificata. Supporti display e delle schede non sono definiti finché non sono disponibili i modelli meccanici dei moduli scelti. Non incollare schede o montare metallo a contatto con piste.
Gli STL sono studi di volume per prova a vuoto, non un case pronto per assemblaggio commerciale. Prima stampare solo cornice e dima su carta in scala 1:1; verificare cavi mini-HDMI, curvatura, prese, accesso microSD, raffreddamento e pulsanti. La versione finale dovrà avere strain relief, fissaggi, protezione delle antenne e accesso manutenzione.
6. Sequenza di collaudo richiesta
- A dispositivi spenti: confrontare cablaggio con tabella, verificare polarità e assenza di cortocircuiti 5 V/GND e 3,3 V/GND.
- Accendere solo Raspberry/display con alimentazione limitata; misurare tensione e assorbimento. Verificare assenza di retroalimentazione nelle USB.
- Provare ESP32 da PC senza moduli, compilare e caricare;
INFOdeve rispondere JSON. - Collegare pulsante e ingresso:
INPUTdeve cambiare fra 0 e 1 con contatti a massa, senza tensioni esterne. - Collegare un solo sensore I²C noto:
I2Cdeve rilevare il suo indirizzo. Verificare assenza di bus bloccato. - Collegare ricevitore IR: confrontare
IRcon telecomando proprio e assenza di segnale. Il contatore non è una prova di correttezza del protocollo. - Collegare CC1101: prima verificare rilevamento; poi confrontare RSSI con sorgente da laboratorio e strumento di riferimento, in condizioni controllate.
WIFI: confrontare canali e livelli con access point del laboratorio; non salvare o pubblicare SSID/BSSID altrui come dati di esempio.- Collegare GUI Raspberry, verificare timeout, scollegamento seriale e salvataggio file con errori di filesystem.
- Solo dopo: assemblare nel case e provare assorbimenti, stabilità, temperatura interna e assenza di interferenze tra moduli per un ciclo prolungato.
Nessuno di questi test fisici è stato eseguito durante la creazione dei file.
7. Passaggio a prodotto
Gate A: banco funzionante e rapporto prove. Gate B: selezione finale display/hub, revisione elettrica, schemi EDA e PCB, verifica footprint/ERC/DRC. Gate C: campioni assemblati, test termici/ESD/RF e revisione del case. Gate D: valutazione indipendente dei requisiti applicabili, documentazione tecnica, licenze e processo produttivo. Il progetto non dichiara conformità CE o altri marchi e non è offerto in vendita.
Per il lotto pilota mantenere seriali e revisioni tracciabili, test di fine linea con alimentatore limitato, verifica versioni e checksum firmware. Il futuro accesso ai connettori dovrà essere protetto con componenti dimensionati e testati: il prototipo corrente non ha protezione industriale.
8. Fonti tecniche verificate il 17/10/2026
- Espressif, DevKitC-1: https://documentation.espressif.com/esp-dev-kits/en/latest/esp32s3/esp32-s3-devkitc-1/user_guide_v1.1.html
- Espressif, API Wi-Fi Arduino: https://docs.espressif.com/projects/arduino-esp32/en/latest/api/wifi.html
- PlatformIO, scheda N8: https://docs.platformio.org/en/latest/boards/espressif32/esp32-s3-devkitc-1.html
- Texas Instruments, CC1101: https://www.ti.com/lit/ds/symlink/cc1101.pdf
- Vishay, TSOP48: https://www.vishay.com/docs/82459/tsop48.pdf
- Raspberry Pi Zero 2 W: https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/
I collegamenti e il case sono elaborazioni progettuali da verificare, non reference design approvati da questi produttori.