Elettronica
KiCad 10: quando il PCB diventa arte
Con KiCad 10 un PCB può essere progettato anche come un oggetto programmabile: Python consente di posizionare e modificare footprint con precisione matematica, mentre kicad-cli automatizza DRC, Gerber, forature ed esportazioni dentro pipeline CI/CD. Il vecchio modulo pcbnew funziona ancora nella serie 10, ma è già deprecato: per i nuovi sviluppi KiCad indica la IPC API e le binding ufficiali kicad-python come strada futura.
Se avete mai progettato un PCB abbastanza complesso saprete certamente che arriva un momento nel quale il mouse smette di essere lo strumento più intelligente a disposizione. Posizionare a mano dieci componenti va benissimo, posizionarne cento secondo una geometria precisa comincia già ad essere un altro mestiere, mentre matrici di LED, anelli concentrici, antenne RF, strutture ripetitive oppure statori per motori brushless sono esattamente il tipo di progetto nel quale continuare a trascinare footprint uno alla volta significa chiedere ad un essere umano di fare ciò che una formula sa fare molto meglio. KiCad 10, rilasciato nel marzo 2026 ed ormai arrivato ad una maturità che rende quasi riduttivo chiamarlo semplicemente software di disegno elettronico, permette di affrontare il problema in un altro modo: una parte del PCB può diventare CODICE, realizzando di fatto un concetto ormai dominio degli strumenti altamente professionali, ovvero il PCB come oggetto programmabile. In KiCad 10 esiste ancora la console Python integrata nel PCB Editor e, importando il modulo pcbnew, possiamo ottenere un riferimento alla scheda attualmente aperta con pcbnew.GetBoard(), cercare footprint per reference, modificarne posizione ed orientamento e poi aggiornare l'interfaccia. È, per così dire, una vista programmabile della struttura interna della board: invece di dire al mouse dove mettere D7 possiamo dire al software quale relazione geometrica deve esistere fra D1, D2, D3 e tutti gli altri componenti, lasciando che siano trigonometria ed algoritmi a produrre le coordinate.
Qui però c'è una precisazione importante, perché proprio con le versioni recenti KiCad sta cambiando pelle anche sul fronte dell'automazione. Il modulo pcbnew utilizzato dagli script storici è basato sulle binding SWIG ed è DEPRECATO da KiCad 9, anche se in KiCad 10 continua ad essere presente e perfettamente utilizzabile; il progetto ha già indicato KiCad 11 come punto di rimozione, mentre per i nuovi plugin la direzione consigliata è la IPC API, accessibile da più linguaggi, con kicad-python come binding Python ufficiale. Quindi l'esempio qui sotto ha senso ed oggi funziona proprio sulla serie 10, ma se state iniziando adesso un sistema destinato a vivere per anni conviene già conoscere la nuova API. Immaginate ad esempio di avere dodici LED con reference da D1 a D12 e di volerli disporre su una circonferenza perfetta da 20 millimetri di raggio, centrata alle coordinate 100,100 mm. A mano si può fare, naturalmente, ma il punto è che NON HA MOLTO SENSO farlo a mano quando la geometria è già una formula. Dalla console Python del PCB Editor possiamo scrivere: