Seminar: Camera-based PCB Analysis for Solder Paste Dispensing

2013-12-02_20.02.29

The lectures during my last semester were largely focused on digital image processing. Combining this with the inspiration for 3D printing, I gathered through my trip though South Korea, resulted in the following seminar paper. Seminars are a compulsory part of our curriculum which I like due the self-contained work and the ability to pick an individual topic.

Over the past year, I’ve built my own Kossel 3D printer. The Mini Kossel is based on a novel parallel delta kinematic which was developed by Johann C. Rocholl, a Google engineer from Germany.

This paper is targeting the automation of solder paste dispensing onto printed circuit boards by using computer vision and RepRap robots.

Full Slides as PDF
Full Paper as PDF
Source Code at GitHub

Seminar: Image Processing and Content Analysis

Camera-based PCB Analysis for Solder Paste Dispensing

Steffen Vogel (steffen.vogel@rwth-aachen.de)
Academic Advisor: Wei Li (wei.li@lfb.rwth-aachen.de)
Institute of Imaging & Computer Vision (LfB)
Rheinisch-Westfälische Technische Hochschule (RWTH), 52056 Aachen

1 Abstract

Two of the main challenges for PCB prototyping are the time-consuming setup of involved machines and their economic feasibility for small laboratories and hobbyists. This paper tries to offer solutions for both of these issues:

  1. The complex setup process of industrial machines can be accelerated by computer vision. It is preferable to automate this process as far as possible to enable the operation by untrained personnel and hobbyists. The workflow can be further simplified by not relying on external CAD data. This includes: detection of components, pads and footprints; mapping between available components and footprints and planning of shortest tool paths.
  2. The adaption of proven 3D printers allows to lower the costs for such machines. The lightweight and fast kinematics of parallel 3D-delta robots like the RepRap Mini Kossel are perfectly suited for the assembly of PCBs. Only the print head has to be exchanged between the individual steps of the process.

This work presents a workflow to control DIY 3D printers for the purpose of PCB assembly. By using cheap and easy-obtainable parts like proven RepRap 3D printers, this technique is viable for small laboratories, FabLabs and hobbyists. During the seminar, a analysis and control software for RepRap printers was written. Hence, we focus on the overall workflow and tools and less on algorithms and theory.
Here, the task of solder paste dispensing was chosen to be explored in detail. This work establishes the groundwork for more complex task like the pick and placing of electronic components.

2 Motivation

The ongoing miniaturization of electronic products like smartphones and Ultra Books has led to a new form factor for electronic components. Surface-mounted devices (SMD) are already widespread in electronic design and production. As a result, previously used through-hole components are gradually phased out. This miniaturization of SMD components is an ongoing trend and raises the barrier for hobbyists to produce PCBs themselves. Soldering and placement of 0401-sized resistors or BGA packages is not possible by hand any longer.

This work is motivated by the vision to build an all-in-one machine for the complete process of prototype PCB assembly (PCBA). To accelerate the development process and to reduce the costs, all of these tasks can be handled by a single workbench 3D printer / CNC mill. The PCB production process roughly can consists of the following steps:

  1. Isolation milling or pen plotting of PCB traces
  2. Drilling of holes and contours
  3. Solder paste dispensing for SMD pads with a syringe
  4. Pick-and-place of SMT components with vacuum
  5. Soldering with hot air, a hot plate or by a laser

For the scope of this paper, the process of solder paste dispensing was chosen. This task offers the biggest margin to profit from computer vision. Industrial mass production uses stencils to apply solder paste onto the PCB. For small prototype assemblies the fabrication of stencils is not worthwhile. Therefore, solder paste is applied manually with a pressurized syringe, which is hold by hand.
The dispensing of solder paste requires the knowledge exact solder pad positions and dimensions. Traditionally, this information is exported by CAD design tools and is required to produce the stencils.
But sometimes the CAD data is not available or stored in an inaccessible proprietary format. This paper presents techniques to gather the pad locations and dimensions by means of computer vision.

Fig. 1: Solder paste dispensing techniques
Fig. 1: Solder paste dispensing techniques
smd0805
Fig. 2: 0805-sized resistor
Seminar: Camera-based PCB Analysis for Solder Paste Dispensing weiterlesen

EAGLE Libraries: Raspberry Pi

Für mein neuestes Projekt habe ich mir die Mühe gemacht und meine EAGLE Bibliotheken aufgeräumt. EAGLE ist ein CAD Programm der Firma Cadsoft, das vornehmlich im Elektronik/DIY Bereich zum Designen von Schaltplänen und Platinen eingesetzt wird.

In den letzten Jahren haben sich einige selbsterstellte Bibliotheken angesammelt. Mit ihnen können die bereits mitgelieferte Datenbank von Bauteilen (Footprints und Symbole) erweitert werden.
Diese Bibliotheken und noch einige Skripte, Einstellungen, CAM Jobs etc. findet ihr in meinem GitHub Repository.

Ein Layout mit dem RPi Shield

Interessant ist vielleicht noch die Raspberry Pi Bibliothek. Bisher hab es noch keine EAGLE Bibliothek mit der man einfach Shields (vgl. Arduino) für den Board-Computer layouten konnte.
Die Bibliothek enthält die genauen Abmessungen des Pi’s und die Belegung aller GPIO Stiftleisten. Aber die folgenden Bilder erklären das sicher viel besser.

Viel Spaß damit!

Give Away: fnordlichtmini Platinen

gplv3-127x51Für das fnordlichtmini (flm) von Alexander Neumann gibt es nun auch ein EAGLE CAD Layout. Zuvor war leider nur ein Schaltplan offen verfügbar. Gleichzeitig habe ich auch meine restlichen Projekte aufgeräumt und sie unter der OSHW Lizenz GPL veröffentlicht.

Vielleicht habt ihr ja Lust ein kleines Ambilight zu basteln? Ich habe noch ne Menge der Platinen übrig, die ich gerne in Aachen verschenken oder tauschen würde. LEDs sind dir zu langweilig? Ich hab auch noch andere Platinen übrig…

In meinen älteren Beträgen (hier und hier) gibt es auch noch ein paar kleine Anregungen was man alles mit dem flm so anstellen kann.

fnordstripe

fnordstripe_1In diesem und folgendem Beitrag geht es wieder um fnordlichter. Ja genau, ich habe schon vor einem Jahr mal darüber gebloggt.

fnordlichter sind kleine LED Module die über einen gemeinsamen Bus angesteuert werden können. Ich nutze diese Module zur intelligenten Beleuchtung unserer Wohnung. Sie können uns über neue Mails, den aktuellen Stromverbrauch, das Wetter, Serverstatus etc. benachrichtigen oder einfach als Stimmungs-Licht oder Party-Beleuchtung genutzt werden.

Da die einzelnen Module leider nicht genügen um damit mein ganzes Zimmer zu beleuchten, habe ich mich entschieden für diesen Zweck eigene Hardware zu entwickeln.

Wie der Name dieses Betrages es bereits andeutet können meine fnordstripe Module ganze Bänder/Streifen von LEDs ansteuern. Ausgehend von dem fnordlichmini Design habe ich die LEDs und Konstantstromquellen durch drei MOSFETs ersetzt, die jeweils einige hundert LEDs betreiben können. Im Bild oben wurden die MOSFETs aus Platzgründen auf der Unterseite der Platine verlötet.

Die Bänder sind recht einfach aufgebaut. Alle LEDs besitzen eine gemeinsame Anode und sind parallel geschaltet. Das erlaubt es Bänder beliebiger Länge zusammen zu schalten. Je nach Farbe ist jede LED mit einem Vorwiderstand beschaltet, sodass sie direkt an 12 Volt betrieben werden kann.

led_stripe

module

Sourcecode, Schaltpläne und Firmware gibt es in meinem github Repository.

Die Firmware der originalen fnordlichter konnte dabei unverändert übernommen werden.

fnordstripe2LED „Stripes“ sind über eBay in der RGB-Variante bereits für ca. 20 € pro 5m erhältlich. Einfarbige Varianten oder kürzere Länge sind entsprechend günstiger.

Entsprechend teurer gibt es auch intelligente Varianten der LED Bänder. Sie erlauben die individuelle Addressierung jeder LED. Damit lassen sich dann Farbübergänge, Regenbögen, ein VU Meter etc. realisieren.
Da hier die Programmierung etwas kniffliger ist, verschiebe ich das auf den nächsten Beitrag.

Logic Analyzer

salea_clone_3Für Einsteiger können die ersten Schritte beim Basteln mit Mikrocontrollern häufig etwas frustrierend sein. Ja, das ist leider auch meine eigene Erfahrung. Der Fehler liegt dann meist im Verborgenen: Wackelkontakte, eine instabile Spannungsversorgung, Softwarefehler etc. Helfen kann hierbei nur viel Geduld und geeignete Messgeräte. Dass dies aber nicht immer direkt ein teures Oszilloskop sein muss, möchte ich in diesem Beitrag zeigen.

Ich konzentriere mich dabei auf einige fast baugleiche Geräte: Saleae Logic & USBee AX. Beide basieren auf dem gleichen Mikrocontroller, dem Cypress FX2, und werden per USB an den Rechner angeschlossen. Bei eBay, AliExpress und Co. sind sie für unter 10 € erhältlich.
Logic Analyzer weiterlesen