Modding CNC machine to double as pick and place with Prop's help
T Chap
Posts: 4,223
Hey guys. I am adapting a CNC machine for manufacturing a set of PCBs on a regular basis. I created a software that will contain the XY for each part, including the part name and value(for reference) plus the part height(package), plus the orientation(vertical or horizontal only 0 - 90).
All parts will get manually placed (with orientation) into a staging area into milled out areas where the parts will sit perfectly waiting to be picked up. This may actually be a laser cut mylar that gets held down with tape, or it may be one fixture of Delrin that holds both the PCB and staging area. The PCBs will get bolted on with their existing mount holes. Small passive parts like 0603(many) and 0805 parts will be placed at the time they are ready to be picked up. They will be placed in either a vertical slot or horizontal slot by hand.
All parts will get entered into the program manually with XY and other info. Once the board is ready with solder, the board is screwed to the fixture, the fiducials are checked for alignment. Then each indidual part is loaded in the popup menu, the fields are all populated. There are buttons missing still, like "Get Part" which will go to the staging area and pick up the part. For the abundant 0603 parts, just go to Pick Passive R (resistor) or its vertical option, or pick the caps. Heights for the parts are manually entered, and saved with the board setup prefs.
Any manual move can be done by entering values. Nav kets <> and up down and page up and page down are used to scroll the parts by hand. Any part can be updated or deleted from the list. All changes saved to the board.
20 threads per inch @ 200 pulses per rev X 10 micro steps = 40,000 steps per inch or .000025" accuracy not considering backlash, which can be compensated in software with X and Y ABL offsets.
The software is very close and does it's job. I bought a 24VDC normally closed 230 PSI air valve which the software controls on/off, and now am trying to find a cheap solution for vacuum and part pick up. The largest part is the Propeller, 0603 being the smallest. I need suggestions on a method to pick up all parts with one nozzle if possible, and what vacuum to use. Anyone that has any ideas please let me know. Thanks
Post Edited (TChapman) : 8/14/2009 5:41:55 AM GMT
All parts will get manually placed (with orientation) into a staging area into milled out areas where the parts will sit perfectly waiting to be picked up. This may actually be a laser cut mylar that gets held down with tape, or it may be one fixture of Delrin that holds both the PCB and staging area. The PCBs will get bolted on with their existing mount holes. Small passive parts like 0603(many) and 0805 parts will be placed at the time they are ready to be picked up. They will be placed in either a vertical slot or horizontal slot by hand.
All parts will get entered into the program manually with XY and other info. Once the board is ready with solder, the board is screwed to the fixture, the fiducials are checked for alignment. Then each indidual part is loaded in the popup menu, the fields are all populated. There are buttons missing still, like "Get Part" which will go to the staging area and pick up the part. For the abundant 0603 parts, just go to Pick Passive R (resistor) or its vertical option, or pick the caps. Heights for the parts are manually entered, and saved with the board setup prefs.
Any manual move can be done by entering values. Nav kets <> and up down and page up and page down are used to scroll the parts by hand. Any part can be updated or deleted from the list. All changes saved to the board.
20 threads per inch @ 200 pulses per rev X 10 micro steps = 40,000 steps per inch or .000025" accuracy not considering backlash, which can be compensated in software with X and Y ABL offsets.
The software is very close and does it's job. I bought a 24VDC normally closed 230 PSI air valve which the software controls on/off, and now am trying to find a cheap solution for vacuum and part pick up. The largest part is the Propeller, 0603 being the smallest. I need suggestions on a method to pick up all parts with one nozzle if possible, and what vacuum to use. Anyone that has any ideas please let me know. Thanks
Post Edited (TChapman) : 8/14/2009 5:41:55 AM GMT
Comments
Most of the "serious" solder equipment sites have vacuum pickup tools.· You can also search for "vacuum pickup tools" or "luer lock pickup tips", and variations.· (Luer Lock is the "standard" configuration for syringes and needles.
You can also find much of this stuff at Adhesive resellers for dispensing.
For the pump, you probably don't need much, depends on how much you want to spend.·
In concept, you could even use an aquarium pump, but you have to put it in a sealed container, with the normall output just passing through and exposed to the atmosphere, and then have a hose barb on the container to attach the pickup to.
Personally, I'd go with a small vacuum pump from one of the soldering equipment houses, or find one at a surplus shop.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
John R.
Click here to see my Nomad Build Log
As far as selling it, I would give the app to anyone here no problem. Eventually I will have a motor setup feature that allows any threads per inch or micro step values to be entered. As far as the machine, I wont build a machine to sell, but there are numerous benchtop models for cheap out there. All you need is a parallel port for the app.
Lots of fun! Thought some might get a kick out of it.
The idea of positive airflow is that you create an outward even airflow over the top of an object at close proximity to the object itself. Similar to the wing of an airplane, because the air is moving faster across the top than the bottom of the object it creates lift, holding the object in place for placement.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
Interesting, but would it work? At my house, we don't have AC so we have to open up all the windows every night and put fans in. They always blow out the curtains into a big balloon. I think to get any lift you'd have to direct the air stream parallel to the surface.
I have tried the card trick in the past and it does work, it seems that the harder you blow, the more lift you can create. I had assumed this was because of the increased amount of air-flow which directly relates to pressure, but this article says that it's only pressure and that airflow and has nothing to do with it. I think both theories are flawed, but essentially they are describing the same thing:
www.seykota.com/rm/spool_card/spool_card.htm
www.seykota.com/rm/Overview.htm
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
Post Edited (Beau Schwabe (Parallax)) : 8/12/2009 3:56:38 PM GMT
Do you have any video and or pictures of your Pick and Place in action? I think this is an excellent project and would love to see more mechanical details as well. I applaud all of your efforts, this is not an easy task.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
I just got the final software bugs sorted out today. Will shoot some video soon, waiting on missing parts to arrive to try the first dense board. It is pretty much straight forward in the practice runs. Surely there are hidden things to come up. Fortunately I had a great Realbasic coder to help out executing my vision behind the scenes. The Propeller sure makes this easy though.
Early stages of testing, poor quality cell video of first attempt moving 0603. There will be significant speed increase soon.
My shop is quite the mess at the moment!
I (crudely) added a servo on the spindle today to test the idea of rotation, worked very well. The neat thing about this servo I found was that there is a .375 hole in the center of the output shaft, so for testing all I had to do was run the vacuum tube through the pulley, down though the spindle on the machine and into the syringe mounted on the tool collet. I milled a custom collet to attach to the syringe, the syringes of various sizes simply screw on.
I send to the Propeller various ID's, and a value with the ID. In the case of the rotation, I send "RID" and the pulse width for each angle, 0, 90, 180, 270. The pulsewidth gets updated in a continuous loop outputting the pulse plus a fixed off time, I found that true PWM was not required, just set the pulse width and leave an off time. There is a micro adjustment for the rotation as well for fine tuning a fine pitch part if needed at time of placement.
The SPIN code got converted to ASM and the motors run quite fast now. Some new features added this week:
Anti-backlash compensation.
Programmed Rotation per part
Run Pick and Place script on same part values
System for mounting all sizes of cut tape and incrementing manually via pins (not shown)
System to route boards with same application while mounted.
Once the bugs are worked out, I'll build a dedicated machine from scratch. Only a few details left and soon I will make a batch of boards. I will make a good quality video at that time.
Some pics of the mess:
Post Edited (TChapman) : 8/27/2009 2:18:16 AM GMT