← Tutti i casi studioR&D interna · laboratorio

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.

Render 3D di una scheda di controllo per pick & place: microcontrollore STM32F4, driver dei motori passo-passo e connettori per assi, vuoto, luci e feeder
0,194 → 0,036 mm
errore di piazzamento, prima e dopo la calibrazione
0402
passivi piazzati in automatico
Architettura dopo la conversione
File di montaggioBOM e coordinate dal CAD
OpenPnP sul PCjob · fiducial · visione
Camere USBdall'alto e dal basso
Firmware del controlloreSTM32F4 bare-metal · G-code su UART
Meccanicaassi · camma Z · vuoto · feeder

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.

Hai una scadenza?

Raccontaci il progetto: entro 48 ore ricevi un’offerta con fasi e date. Se serve, firmiamo l’NDA prima di vedere i tuoi file.