Il firmware nuovo per la nostra pick & place, e un errore di piazzamento sceso di cinque volte
Il laboratorio è nato con una pick & place da banco chiusa e poco precisa. Ne abbiamo sostituito il firmware del controllore per farla lavorare con OpenPnP e l'abbiamo calibrata ugello per ugello. È ancora la macchina con cui montiamo i prototipi.

- 0,194 → 0,036 mm
- errore di piazzamento, prima e dopo la calibrazione
- 0402
- passivi piazzati in automatico
Il contesto
Il nostro laboratorio è partito con una pick & place da banco. La macchina aveva un firmware chiuso, si programmava solo dal touch screen e non aveva nessun collegamento con il PC. Ogni scheda andava reimpostata a mano e la precisione non bastava per i passivi più piccoli.
Il problema
Sostituire il firmware di una macchina in produzione vuol dire toccare motori, vuoto e camere senza documentazione del costruttore. Un errore può bloccare la macchina o danneggiare la testa. E una volta riprogrammata, la precisione dipende da come si calibra: un modello del movimento sbagliato di pochi centesimi basta per spostare un 0402 dal pad.
Le scelte tecniche, e perché
Prima il backup, poi il resto. Abbiamo salvato il firmware originale e verificato la protezione della memoria prima di qualsiasi scrittura, così la conversione restava reversibile.
Un firmware bare-metal che parla G-code. Siamo partiti da un progetto open source per il controllore STM32F4 e lo abbiamo esteso. La macchina riceve comandi G-code sulla seriale che prima andava al display, e il PC con OpenPnP diventa il suo pannello di controllo: i job arrivano direttamente dai file del CAD.
Asse Z a camma gestito nel firmware. I due ugelli condividono un solo motore che ruota una camma. La conversione tra quota lineare e rotazione la fa il controllore, così per OpenPnP l’asse resta un asse normale.
Camere nuove e visione dal basso. Le camere originali elaboravano l’immagine a bordo e non erano accessibili. Le abbiamo sostituite con camere USB: ogni componente viene fotografato sull’ugello e corretto in posizione e rotazione prima di essere posato.
Calibrazione ugello per ugello. L’errore residuo non era casuale: i due ugelli spostavano i pezzi in direzioni opposte. Lo abbiamo misurato a 12 angoli diversi e corretto separatamente per ciascun ugello, e abbiamo portato il fuoco della camera alla quota di posa.
Come l’abbiamo verificato
- Misura dell’errore di piazzamento con la camera della macchina, a ogni giro di correzione, su pad e componenti reali.
- Ripetibilità del controllo dei fiducial sulla scheda.
- Pausa di verifica dopo ogni allineamento durante la messa a punto, con rimisura sullo stesso pezzo.
Il risultato
L’errore di piazzamento è sceso da 0,194 a 0,036 mm, sotto la risoluzione della camera, con passivi fino al formato 0402. La macchina è ancora quella con cui montiamo i prototipi: i job partono dai file di progetto, senza reimpostare nulla a mano.
Cosa portiamo nei vostri progetti
Firmware bare-metal su STM32, controllo di motori e attuatori, protocolli seriali, e il metodo con cui abbiamo trovato l’errore: misurare, separare le cause e correggerle una alla volta.






