DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Related

  • Dynamic Forms With Camunda and Spring StateMachine
  • Structured Logging in Spring Boot 3.4 for Improved Logs
  • Symbolic and Connectionist Approaches: A Journey Between Logic, Cognition, and the Future Challenges of AI
  • Power of Azure B Series Virtual Machines

Trending

  • A Complete Guide to Modern AI Developer Tools
  • 5 Subtle Indicators Your Development Environment Is Under Siege
  • Customer 360: Fraud Detection in Fintech With PySpark and ML
  • Understanding IEEE 802.11(Wi-Fi) Encryption and Authentication: Write Your Own Custom Packet Sniffer
  1. DZone
  2. Data Engineering
  3. AI/ML
  4. DIY SMT Pick and Place Machine With OpenPnP

DIY SMT Pick and Place Machine With OpenPnP

This clever self-made project features a pick and place machine for rapid, largely automated microcontroller assembly with some help from the OpenPnP framework.

By 
Erich Styger user avatar
Erich Styger
·
May. 10, 18 · Tutorial
Likes (1)
Comment
Save
Tweet
Share
40.4K Views

Join the DZone community and get the full member experience.

Join For Free

I’m working on a DIY SMT/SMD Pick&Place machine. I admit that this project is not finished yet, but now I can give a sneak preview: an SMD/SMT pick and place machine:

Pick&Place Machine

Pick&Place machine

I will present that project at the Embedded Computing Conference 2018 (June 5th), both in a conference talk and in the exhibition area.

The machine is based on the OpenPnP framework and is not finished yet, though I have published status updates on Twitter. It uses mostly standard components, and special parts have been 3D printed or produced with a laser cutter.

Below is a picture with the controller and LCD board, stepper motor drivers, power supply, and diaphragm pump. The machine runs G-code with an NXP LPC ARM Cortex-M3 microcontroller.

Electronics of PnP Machine

The machine is not intended to be very fast, or be the least expensive option out there. The goal is to have a reliable, flexible, and user-friendly pick and place machine that can be used to produce smaller batches of boards (1-50 boards).

Main features:

  • 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 a work in progress by a student contributing to that project. The feeders use the NXP Kinetis K20 and K22 microcontrollers (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 that 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 have fiducial markers on it, they were 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 of the machine running a test run:

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 of 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. This 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.

Links

  • OpenPnp: http://openpnp.org/
  • Embedded Computing Conference 2018: http://www.swisst.net/ecc18.html
Machine

Published at DZone with permission of Erich Styger, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Dynamic Forms With Camunda and Spring StateMachine
  • Structured Logging in Spring Boot 3.4 for Improved Logs
  • Symbolic and Connectionist Approaches: A Journey Between Logic, Cognition, and the Future Challenges of AI
  • Power of Azure B Series Virtual Machines

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: