Following from the previous Pick and Place Controller V3 Part 1 post we have now built and installed the new control board for the pick and place machine.
While building and testing the board we found an issue with one of the pins on the main microcontroller needed to be connected to the USB ports input power so we used a small wire to add this to the board.
Once the new KFlop motion controller was installed and the new driver and power board was fitted we found an issue with the break-beam sensors used on the X and Y axis’s not being recognised by the KFlop board. To resolve this we used a pair of buffers to give a cleaner logic level shift when the machine reaches the homing / limit sensors. Another issue we found once the PCB’s arrived was the RJ45 socket being backwards but this turned out to be a good thing as the space to fit a RJ45 plug and cable was very restricted so we connected the wires direct to the board.
The windows application which we used to drive the previous board via Mach3 is being rebuilt to work with the standalone motion controller and the new microcontroller is controlled via USB commands.
RF Shield fitted
I am working on a new version of the control software for the pick and place machine using a Windows WPF application and .NET 4.5 which I hope to have running soon. The new application will make use of the cameras to allow the creation of the XML PCB placement files using the camera on the picker head to move it to each components location and then save the X/Y points into the PCB placement file.
Initial testing of the new control board and motion controller has shown a greatly increased speed for the stepper motors and once everything has been calibrated we should be able to place components at speeds of a component every two seconds for tape feeder supplied parts.
The PCB files, software and Microcontroller code are available on my GitHub page on github.com/briandorey/PNPControllerKFlop
The microcontroller code was written and compiled with MPLAB from .microchip.com/pagehandler/en-us/family/mplabx/ and uses the XC32 compiler from microchip.com/mplabxc/