ESP32 Combat UnitESP32 Combat Unit – Dal caos allo 0 errori: KiCad, Freerouting e tutto quello che è andato stortoDisegnare lo schema è stata la parte facile. Il bello è arrivato quando ho provato a trasformarlo in un PCB vero, da mandare in produzione senza sorprese. In questo articolo vi racconto il percorso completo: gli errori nascosti nello schema, il primo sbroglio automatico con Freerouting, i 14 errori del DRC e il trucco della netclass che mi ha fatto perdere mezz'ora. Alla fine il risultato è una scheda con il 100% delle piste collegate, 0 errori e parità con lo schema verificata. 1. Lo schema sembrava perfetto. Non lo eraPrima ancora di toccare il PCB, una revisione attenta dello schema ha tirato fuori quattro problemi. Nessuno avrebbe bruciato qualcosa, ma un paio avrebbero reso il radiocomando inutilizzabile. ![]() L'etichetta "GND" che non era massaGli interruttori J7 e J8 chiudono i pin D18 e D19 verso massa. Peccato che sul pin 2 avessi messo un'etichetta di rete chiamata "GND", non il simbolo di alimentazione GND. In KiCad sono due cose diverse: l'etichetta locale crea una rete tutta sua. Risultato possibile: interruttori collegati al nulla, e firmware che legge sempre "alto". ![]() Il trucco per accorgersene: la scritta nera è un'etichetta, quella blu-verde col triangolino è il simbolo vero. Il partitore della batteria fuori scalaPer leggere la tensione della 2S uso un partitore verso il pin GPIO39. Con 20k e 10k, a batteria carica (8,4 V) sul pin arrivavano 2,8 V. Sotto i 3,3 V, quindi sicuro, ma l'ADC dell'ESP32 è lineare solo fino a circa 2,45 V: sopra la lettura si appiattisce. Portando R1 a 33k arrivo a 1,95 V a piena carica, dentro la zona precisa. Nota per il firmware: il fattore di conversione passa da 3,0 a 4,3, cioè (33 + 10) / 10. Il LED RGB mezzo spentoRosso, verde e blu non si accendono alla stessa tensione: circa 2,0 V il rosso, circa 3,0 V verde e blu. Con 3,3 V dal GPIO e 220 Ω su tutti, il rosso prendeva circa 6 mA e gli altri poco più di 1 mA. Ho abbassato R4 e R5 a 100 Ω per bilanciare i colori. Simboli uno sopra l'altroSu diversi connettori il triangolo GND finiva sopra il pin accanto. Elettricamente era tutto giusto, ma a colpo d'occhio sembrava un cortocircuito. Li ho distanziati: uno schema che si legge male è uno schema dove prima o poi sbagli. 2. Primo giro di Freerouting: tutto collegato, ma…KiCad non ha un autorouter integrato, nemmeno nella versione 10. La soluzione è Freerouting, gratuito e open source, che si installa come plugin in un minuto:
Il primo risultato sembrava già una scheda finita. ![]() Guardandolo con calma, però, i problemi c'erano eccome:
![]() La lezione: Freerouting collega i punti, ma non sa nulla di antenne, correnti o condensatori. Quelle regole gliele devi dare tu. 3. Netclass: insegnare a Freerouting quali piste fare largheFreerouting traccia le piste con la larghezza che trova nelle netclass di KiCad. Quindi, invece di allargarle a mano dopo, gliele faccio tracciare larghe da subito. Si fa da File → Impostazioni scheda → Regole di progettazione → Netclass. | Netclass | Larghezza pista | Reti | | --- | --- | --- | | Power | 1 mm | /BAT+, /VBAT, /5V\_DCDC | | Supply3V3 | 0,5 mm | +3V3, +5V, GND | | Default | 0,3 mm | tutto il resto | GND e +5V li ho tenuti a 0,5 mm di proposito: a 1 mm Freerouting fa fatica a infilarsi tra i pin ravvicinati dell'ESP32 e dei connettori. Il trucco della barra che mi ha fatto perdere mezz'oraNella prima versione avevo scritto i nomi delle reti così come li vedevo nello schema: ![]() Il motivo: in KiCad le reti create con un'etichetta si chiamano con la barra davanti, quindi ![]() Il consiglio: dopo ogni riga, clicca sul motivo e guarda se a destra compare qualcosa. Se è vuoto, la regola non sta facendo niente. 4. Secondo giro: 100% sbrogliato in meno di 4 secondiCon schema corretto, impronte nuove e netclass a posto, ho ripreso da zero:
Il riepilogo parla da solo: 44 reti, 0 connessioni incomplete, 0 violazioni di distanziamento, solo 6 via e un punteggio di 1000 su 1000. ![]() E questa è la scheda che ne è uscita. Le piste dell'alimentazione ora sono larghe, Q1 e D1 hanno le impronte nuove e la serigrafia riporta i valori giusti. ![]() Un'avvertenza onesta: in questo screenshot si vede ancora una pista blu sotto l'antenna, lungo il bordo superiore. Per evitarla, prima di lanciare Freerouting va disegnata un'area vietata sotto l'antenna (Piazza → Aggiungi area con regole, F.Cu e B.Cu, tutte le voci "Vieta" attive). Il DRC non la segnala, quindi va controllata a occhio. 5. Il DRC finale: 0 errori, 0 non connessi, parità verificataUltimo controllo, questa volta con l'opzione "Controlla la parità tra C.S. e schema elettrico" attiva. Serve a verificare che PCB e schema dicano esattamente la stessa cosa: stessi componenti, stessi valori, stesse connessioni. Restano un avvisi:
Ecco la lista componenti definitiva, aggiornata con tutte le modifiche di questo articolo. ![]() ![]() ![]() Questa è la checklist che userò dal prossimo progetto:
Nel prossimo articolo: Gerber, ordine su PCBWay e montaggio della scheda. Stay tuned! |
● In breveQuesto progetto è correlato alla costruzione del robot da combattimento, essendo prgrammabile è possibile personalizzarlo a piacere ● Vai a |