Robin Szemeti - G1YFG
So, not much going on over the weekend, work seems a little quiet, I thought you might like a bit of an update on what I've been up to with my SMD pick and place machine.
I usually use it for stuff I do at work, and we have a chap who has the offline programming software who comes in and sets up the programs for us, which is fine for paying production runs, but I have long wanted to be able to program it myself for ad-hoc projects and prototypes. I can enter all the parts manually, but that is no fun, and I really wanted to be able to go direct from a PCB in Eagle to a completed board popping out of the machine.
With lockdown showing no signs of ending, and we have another 2 of these machines in the USA for production, I dragged the one back home from my unit to my shed, where I could waste many hours on it. When it's just at the bottom of the garden it seems an easier task than driving into town to the unit.
The official offline programming software costs a fortune, so i couldn't really justify it for projects but I did find some free software that will parse an Eagle PCB file and write a production file for the machine, but sadly, only for a slightly different version of machine firmware. After a bit of asking around, I managed to get a later version of the machine firmware.
For added fun, the firmware I managed to get was DOS files ... and it is stored on the machine in some EPROMS. I managed to read out the contents of the EPROMS, combine them together into one file and mount it as a DOS FAT12 file system, then replace the files with the new ones, split it up into 3 eproms worth and re-write the eproms. Its years since I wrote an eprom and finding a computer with a working parallel port was quite a big hurdle!
Unfortunately, after all that effort, even this new version of firmware did not work with the "free" programming tool, so, I wrote my own. Reverse engineering the binary file format was a bit of a task, lots of trial and error. After many, many hours of work, I had a pretty good "map" of the binary file format, althoug I never quite managed to get to the bottom of some of the internal checksums, so the first time it loads it moans about checksum error, but once re-saved to disc it is fine.
The first version succesfully read an Eagle file and spat out a Juki PCB machine file ... assigning all components to feeders and you just tell the machine to ignore the ones you don't have
It ran the bulk components on the Ionica 9cm transverter boards without issue:
That got a bunch of the "reel fed" components done, but there was still a significant number of "odds and sods" to sort out and I really did not fancy doing them by hand.:
Small runs and prototypes often need just a few weird one off components, not something you would want to buy a whole reel of .. and with 70 or 80 different components on a design, even if you buy part reels, there is a £3.50 re-reeling charge from Farnell for each one, it soon adds up!
What the machine can do, as well as picking from reels and stick feeders is pick parts from a tray, with a grid of components ... I had the idea if I could arrange strips of cut-tape components on a flat surface, the machine could treat it like a matrix tray (in strips of 20x1 components, 2mm or 4mm pitch) ... lay each strip down next to each other and tell it that it has 40 "trays", each one column wide and 20 components long.
I modified the board parser software to pull the data out of the board file and put it into a database, then produced a simple web interface to go through the database and let me decide if the component is going to be "reel fed", "tray" or "hand placement" ...
So in the web interface, I have a list of boards:
And for each board, I have a list of components, with their position, rotation, package data:
And finally, I have a list of feeders, with how many components of each type are needed.
To make the construction of the "trays" idiot proof, I print out a sheet of A4 on the laser printer that has the components laid out in cut strip, with the value and package shown, along with the quantity required. I'm going to stick these down to A4 pieces of MDF, use sticky spray to mount the component strips and then mount the pre-prepared slab in the machine, removing the plastic top tape when its all set up.
The production file is all set up with the machine position offsets, so in theory I just load the bulk components on the reels, the oddballs onto the "sticky A4 sheet", use the camera and cross-hairs to confirm the base pick positions and off it should go! Providing I don't jiggle the tray and bounce the components out anyway ...
I'll stick the software on GitHub, just in case it is ever useful to anyone apart from me, which I very much doubt.
Robin Szemeti - G1YFG