Published Sunday 14 April 2013
Categories: Android | Arduino | DIY Pick and Place | Projects |

Share this Share on Facebook Share on Twitter Share on Google Plus
Post View Counter 668

Following from the Arduino pick and place update blog post video and Automatic component feeders post we have now completed the first version of the Android tablet control software  which uses bluetooth to communincate with an Arduino Mega to control an X and Y axis on the component selector and also to a second Arduino Mini board which controls the pick and place needle rotation.

Android UI

Component picker in useThe system communicates using serial commands using Bluetooth between the Android tablet and Arduino Mega and this uses the AccelStepper library to allow much smoother control of the stepper motors.

The component picker assembly uses a pair of NEMA 17 motors to drive the X and Y axis driven via MD430 stepper motor drives sourced from ebay. The motors came from a scrapped vinyl cutter which was given to me a few years ago.

The Android app sends a single character to the control board to either select a component feeder, turn the picker needle or to perform a reset of the system.

When a reset command is received or upon start up the Y axis retracts up until an IR break beam sensor is broken which then sets the Y axis zero point. The X axis then slowly moves to the side until the second IR break beam sensor is triggered which then sets the X axis zero point. All component pickers are then referenced by an array in the Arduino code for the stepper position.

On the back of the main pick and place machine is a dual break beam sensor Motion Direction Controller (code and circuit on GitHub) which sends back a command via interrupts on the Arduino to the Android app. On the next version of the app which will be fully automatic, this will tell the tablet that the component has been picked and the selector can now move to the next required component and also rotate the picker needle if required.

Whilst researching various Pick and Place system and machines we looked at a lot of the commercial machines which cost several thousand for a manual system with basic tape holders to the fully automatic pick and place machines which cost tens of thousands and also at a lot of the DIY pick and place machines which hobbyists have made.

On the first version of our pick and place machine we had basic tape holders which we found to be difficult and slow to use so we looked at a lot of the commercial feeders to see if we could make something similar at a reasonable cost. I found the Panasonic Ratchet Type Component Feeders on ebay which were being sold for only £20 each and after buying a couple of feeders and modifying them, we found it would be ideal for our needs and much cheaper and more reliable than trying to build our own feeders.

The ebay seller later listed 40 more of the feeders for both embossed reals and paper reals and we agreed for us to buy in bulk to take them all off their hands. Each feeder needed 7 different modifications on the mill so we created small cut files for each action and got the overall time to modify each feeder down under 20 minutes.

Photo shows component feeder activated and Nexus 7 tablet mounted on the side.

Component picker in use

Photo shows feeder dispenser end and a completed Com Pi board.

Feeders and pcb

The completed control box with Arduino boards on right and power supply on left. The stepper drivers are at the front of the box with the green connectors.

Control box and power supply

All the code for his project including the Android application and graphics, Arduino code for the Mega and Mini boards and PIC processor code for the direction board is available to download fromGitHub, The PCB files are in Diptrace format and you can download a demo version of Diptrace from

The video below shows our first test run building Raspberry Pi serial boards.


The video below shows our first test run building Raspberry Pi serial boards using a new automated component picker app which automatically selects each component and rotates if needed.