I apologize: I have not been blogging much in the past weeks :-(. One reason is that I’m working on a DIY SMT/SMD Pick&Place machine which keeps me busy most of my spare time :-). I admit that this project is not finished yet, but now is the time I can give a sneak preview: a SMD/SMT pick and place machine:
I will present that project at the Embedded Computing Conference 2018 (June 5th), both in a conference talk and have the machine in the exhibition area.
The machine is based on OpenPnP framework, and is not finished yet, and I have published status updates on Twitter. It uses mostly standard components, special parts have been 3D printed or produced with a laser cutter.
Below a picture with the controller and LCD board, stepper motor drivers, power supply and diaphragm pump. The machine runs G-code with NXP LPC ARM Cortex-M3 microcontroller.
The machine is not intended to be very fast or the least expensive one. The goal is to have a reliable, flexible and user-friendly pick and place machine, which can be used to produce smaller batches of boards (1-50 boards).
- 24V high torque stepper motors
- Microstepper drivers (100 μm) X/Y resolution
- Dual head with rotating nozzles
- Automatic nozzle change based on SMD package/size (5 different nozzles per head)
- Reliably place passive components down to 0805/0603 (target is 0402, not yet there)
- Graphical LCD for status and manual control
- Runs G-Code with OpenPnP
- Imports CAD/Board position information (e.g. from KiCAD, Eagle or Altium)
- Magnetic tape and PCB holders
- Cut tape strip feeders (3D Printed SMT Cut Tape Holder)
- Dual camera vision system with LED rings
- Head camera to locate SMD cut tapes and loose (bin) parts
- Head camera to detect PCB location and orientation using fiducial markers
- Optical min/max endstop
- Visual homing with fiducial marker
- Emergency stop button
- Bottom camera to correct part alignment (angle, offset)
- Diaphragm pressure pump with high-speed solenoids
- Motorized SMD tape feeders (work in progress)
- Solder Dispensing (future feature)
- Pressure monitoring (work in progress)
The speed of the machine has not been optimized yet as the first priority is to get accurate SMD component placement. Currently the machine is able to place around 400 components/h.
The motorized tape feeder is work in progress by a student contributing to that project. The feeders use NXP Kinetis K20 and K22 microcontroller (ARM Cortex-M4 running FreeRTOS with Processor Expert). Another subproject (not started yet) is to add a solder dispensing option.
The video below shows how the board (PCB) fiducial markers are used to find the board origin position alignment. All what I have to do is to place the board ‘near’ the origin, and the machine will adjust the SMD component based on the fiducial markers. I have configured the system to average three measurements. The LED rings for the cameras are used for only a short time (flash 3 times for each fiducial marker). Because the original board did not had fiducial markers on it, they have been added to the board later.
The video below shows how the head and head camera is iterating through the component placement list:
Below is a video with the machine running a test run:
A video how it changes the nozzles. In the video I’m doing I’m triggering the change from the machine XML file, but while placing parts it will do it automatically:
Would this something you could consider to have on your desk or in your lab? Clearly, for more than 40-50 boards I send them to an external assembly place. But for less than that, for all the prototype stages with a handful boards, or for a classroom setup with 30-40 boards? I can get 10×10 cm dual layer boards from China for a total of $5 (plus shipping) in less than a week. The hard work is to get them assembled, or it is expensive to have them assembled by a contracting house. That machine fills that gap. So what do you think?
Happy Picking 🙂
PS: I plan to write-up more articles about the machine (how-to, BOM, …) with more videos and pictures.