Brainstorming "Teach" mode for CNC Pick&Place machine

Go To Last Post
31 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm in the process of making a rudimentary Pick & Place machine for PCB assembly. Since I'm a mechanical engineer and have my own CNC machine shop, the mechanics are the "easy" part. I plan to use and Arduino with grbl to operate it (actually I'm considering a Smoothieboard - it has an ARM processor as I recall). Again, this part is also pretty straightforward.

 

The part that seems like the biggest challenge is the program to move the SMD parts from the tapes to the PCB. Most of my ideas are tedious at best.

 

Then I ran across this video https://www.youtube.com/watch?v=aMomxqVB2hY of a manual pick and place machine.

 

It shows a person manually moving the vacuum pickup stylus to grab the part and sliding the carriage and placing it on the PCB. It got me thinking that a good way to program a CNC Pick & Place machine is to "Teach" it on the first PCB by manually moving it in this manner. Then the remaining boards would be automated.

 

I envision a system that is completely separate from the stepper motors and control. It would consist of encoders on each axis and an MCU to monitor X/Y position, and some buttons to indicate "Pick" and "Place" (to actuate the vacuum). Obviously the motors will be disabled for the teaching session.

 

The MCU could likely be either an ATtiny26 or an ATmega328 (if the tiny is, well... too tiny).

 

My Questions:

 

What is the best way to store the list of coordinates as they are gathered?

 

I suppose that it would take some time to wear out the EEPROM if I were to use it to store the list. 10,000 erase cycles would be quite a few PCB designs. But then there is the issue of getting the list from the MCU to a computer....

 

I don't know much about USB communication with a laptop... would that be a better way to go?

If so, what do I need on the laptop to receive the data and store it?

 

Once I have the list of coordinates, I can manipulate it with "snap to grid" or other functions to clean it up (since most parts on my PCBs line up with a .025" grid).

 

Are there any other suggestions I haven't thought of?

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

Last Edited: Fri. Dec 2, 2016 - 06:18 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If you've designed a pcb, then you'd get the pick n place file from it so all you'd need to do is align the reference position.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
If you've designed a pcb, then you'd get the pick n place file from it so all you'd need to do is align the reference position.

That assumes I have all the appropriate software... which I don't. Also, knowing where the parts go on the PCB is only half the story. Somehow, the machine needs to know where the parts are to begin with. Plus, since I am making a "rudimentary" Pick & Place machine, it won't have any feeders, the parts will be short strips of cut tape in slots on the table. When a part is picked out of the tape, it will have to go to a different location to retrieve the next one (since the previous location is now vacant).

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

aeroHAWK wrote:

The MCU could likely be either an ATtiny26 or an ATmega328 (if the tiny is, well... too tiny).

 

As a design process you've gone about this the wrong way. First you work out what features, including memory size, you need and then, and only then, do you pick your uC. You're going to need a non-volatile store for your coordinates and since no AVR 8-bitter has enough that means off-chip storage. You then have a number of choices...

 

a) Some form of EEPROM chip

b) An SD card

c) A USB stick

d) Something else

 

For each coordinate you need a minimum of 4 values: X,Y,Z and rotation. You store a coordinate for the 'pick' location and the 'place' location. The software does the interpolation between the two and calculates the move path.

 

You will need to consider what happens when you get an unexpected power down. Many storage devices require that you store data in blocks and each block will likely contain multiple coordinates. So a power down can lose you multiple coordinates. How will you deal with that?

 

How many coordinates do you need to store? This will determine storage capacity.

 

#1 Hardware Problem? https://www.avrfreaks.net/forum/...

#2 Hardware Problem? Read AVR042.

#3 All grounds are not created equal

#4 Have you proved your chip is running at xxMHz?

#5 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand."

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I probably wouldn't skimp on the brains and throw in a Beaglebone / Raspi / equivalent, but it all depends on what kind of system you're thinking of.

These linux boards have plenty of I/O to control your hardware.

This also would circumvent your "usb connection with a laptop". Just use ethernet / WiFi / ssh.

 

If you want to record your movements, you can add some rotary encoders to your system. They are almost for free from china :)

https://www.aliexpress.com/whole...

These have somewhere between 100 and 2000 pulses /revolution. So for the higher resolution versions an micro with hardware encoder support is advised.

 

This looks very doable:

https://www.youtube.com/watch?v=...

 

For small pieces of cut tape you could try something like this:

https://www.youtube.com/watch?v=...

Or do like Mike's electric stuff. He sticks his tape to a piece of wood (or whatever) with double sided tape before he peels of the top of the tape.

 

In the cheap chinese versions they use a needle to grab the tape and advance it to the next hole. The next video makes this clear:

https://www.youtube.com/watch?v=...

 

Also, spend some time on github. Lots of pick & place sw is written by various people.

https://github.com/search?utf8=%...

 

And of course hackaday:

http://hackaday.com/?s=pick+place

http://hackaday.com/2011/02/24/m...

instructables is probably similar to hackaday but I haven't checked.

 

While looking for something else I bumped into a "manual" version from "elektor" 

https://www.youtube.com/watch?v=...

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And I would use my PC for all the high level and camera (I guess you will need at least 1), and a AVR for the pure mechanical things (motors, vacuum etc. )   

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sparrow2 wrote:

And I would use my PC for all the high level and camera (I guess you will need at least 1), and a AVR for the pure mechanical things (motors, vacuum etc. )   

 

+1

 

You should be aware that it's likely that you'll need vision. The components won't be sitting in their tapes in the exact same place, there's always a bit of wriggle room in the compartments, and even the components themselves aren't guaranteed to be the exact same size (take a look at a datasheet, there's almost always min and max values for dimensions - like anything manufactured today there's always tolerance). The small discrepancy in component size won't be so much of an issue (but it's certainly worth being aware of!) but the wriggle room in the tape will likely cause you a problem if you don't account for it.

For example if you simply use the same set of co-ordinates to pick the components from the tape, then when you come to place them, they could be slightly off in X, Y or θ (theta). This is where the vision comes in, either after you pick or before you place you're going to have to look at where the component is on the vacuum tip and adjust the head's position to align the component to where it should be. This is what professional pick-n-place systems will do. 

Now, depending on what type of components you're going to be placing with this thing, this may or may not be an issue, for example if you're talking not smaller than 0805s or even 0603s for discretes, and typically SOICs for ICs, then you can get away with it. Sure the components will look slightly shifted and the placement won't be perfect, but you should be okay. If you start talking about smaller compoents, and leadless packages such as QFN and BGA, then you will 100% need to do something about it, and it's likely to include vision. 

 

I'd suggest you take a look at Essemtec's Expert for inspiration as I'd imagine it's relatively close to what you want to do. 

 

As far as storage goes, I'd recommend doing what sparrow2 suggested and do a lot of the work on your laptop. Including storage - you can simply store stuff in text files if needs be, or a prefered option would be to use pick-n-place files as already suggested by Kartman :) (I know you said you don't have the 'appropriate software' - which does beg the question, how exactly are you designing the PCBs? Or are you not designing them and are actually planning on using this system to assemble boards for customers? In which case, ask them for the pick n place files! :D)

 

And finally, good luck with your project! 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brian Fairchild wrote:
You're going to need a non-volatile store for your coordinates and since no AVR 8-bitter has enough that means off-chip storage. You then have a number of choices...

 

a) Some form of EEPROM chip

b) An SD card

c) A USB stick

d) Something else

Yes, exactly. Hence my question.... I don't know what is involved with each method.

Brian Fairchild wrote:
For each coordinate you need a minimum of 4 values: X,Y,Z and rotation. You store a coordinate for the 'pick' location and the 'place' location. The software does the interpolation between the two and calculates the move path.

All I need is X,Y, and stylus up or down (much like a flatbed plotter), rotation is not needed for this rudimentary machine. The tapes will be positioned on the table in the proper orientation.

Brian Fairchild wrote:
You will need to consider what happens when you get an unexpected power down. Many storage devices require that you store data in blocks and each block will likely contain multiple coordinates. So a power down can lose you multiple coordinates. How will you deal with that?

Power outages are rare enough that I don't care.

Brian Fairchild wrote:
How many coordinates do you need to store?

Let's start with no more than 256 (128 pick, 128 place)

Paulvdh wrote:
I probably wouldn't skimp on the brains and throw in a Beaglebone / Raspi / equivalent, but it all depends on what kind of system you're thinking of.

These linux boards have plenty of I/O to control your hardware.

This also would circumvent your "usb connection with a laptop". Just use ethernet / WiFi / ssh.

I have considered that. At this point I am too ignorant about those, but your last point is very appealing!

 

Also, thanks for the links! I have seen most of them but there are some I haven't, and they are quite interesting.

Howard_Smith wrote:
You should be aware that it's likely that you'll need vision.

Keep in mind that this is a rudimentary Pick & Place machine.

Howard_Smith wrote:
Now, depending on what type of components you're going to be placing with this thing, this may or may not be an issue

0603 is the smallest parts I use. If I need to get more accuracy, I've seen videos that use a square hole and the part is bumped into each side to center on the vacuum needle.

Howard_Smith wrote:
As far as storage goes, I'd recommend doing what sparrow2 suggested and do a lot of the work on your laptop.

Yes, good idea. Can you suggest how I'd get the data into the laptop?

Howard_Smith wrote:
how exactly are you designing the PCBs?

99% of the PC boards I have made have been with Express PCB. The layout software is free but it will only allow orders to be placed with them - there are no Gerber files (or anything else).

 

Gerber files were invented for a machine that is very similar to CNC machines, so Gerber files are very similar to CNC files. Since I have a CNC machine shop, I am very familiar with CNC files, and I have written simple code to convert DXF files of a cutterpath to G-code.

 

Over 30 years ago (when layout software was very expensive), I knew someone that used AutoCAD to do PCBs.

 

When I have needed Gerber files in the past, I simply modified my DXF file converter to output Gerber syntax. The DXF files can be tedious to get (since I need to do the layout in AutoCAD), but that's what I've done before (I think twice in 30 yrs.).

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

Last Edited: Fri. Dec 2, 2016 - 05:20 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

aeroHAWK wrote:

Howard_Smith wrote:
As far as storage goes, I'd recommend doing what sparrow2 suggested and do a lot of the work on your laptop.

Yes, good idea. Can you suggest how I'd get the data into the laptop?

 

The quickest and easiest thing I can think of is to use one of your micro's UARTs, along with a UART to USB converter IC such as an FTDI FT232RL and connect it straight to a USB port of your computer and access it as a serial port. Then if you use .NET to create your UI (I'm assuming you're going to be making some kind of PC based UI?) then the built in SerialPort class can help you achieve this. (Whatever technology you use for creating your UI, it's almost guaranteed to provide you with a means of accessing a serial port, the use of .NET is just an example I went with as it involves many different programming languages such as C# and VB for example.)

 

aeroHAWK wrote:

Howard_Smith wrote:
how exactly are you designing the PCBs?

99% of the PC boards I have made have been with Express PCB. The layout software is free but it will only allow orders to be placed with them - there are no Gerber files (or anything else).

 

Gerber files were invented for a machine that is very similar to CNC machines, so Gerber files are very similar to CNC files. Since I have a CNC machine shop, I am very familiar with CNC files, and I have written simple code to convert DXF files of a cutterpath to G-code.

 

Over 30 years ago (when layout software was very expensive), I knew someone that used AutoCAD to do PCBs.

 

When I have needed Gerber files in the past, I simply modified my DXF file converter to output Gerber syntax. The DXF files can be tedious to get (since I need to do the layout in AutoCAD), but that's what I've done before (I think twice in 30 yrs.).

 

Ah yes, I'm familiar with ExpressPCB - never used them myself though. If they don't offer assembly services, then it might be worth contacting them to see if they can provide you with pick and place files for your designs. Of course if they do offer assembly services then the chances are that they'll fob you off and tell you that you'll have to get them to assemble your boards.

 

Also FYI, gerber files and pick n place files aren't actually the same thing - gerber data is specifically for the manufacture of the bare PCB itself, and while it can be used to assist in SMT processes, pick and place files (typically .PKP) provide information on where to place each component. In truth though you won't be able to use .pkp files on their own as they don't usually contain any information relating to where to pick the components from so you'd still need to get this information yourself, but you could maybe follow the format of .pkp. Typically pick-n-place machines establish where to pick the components from independently of the .pkp as the location of the component can be in any on of the feeder slots. 

So, it may well be easier to ignore pick-n-place files and implement your own way, but I'd certainly at least take a look at a .pkp for inspiration if nothing more! I can put together a quick and simple example of a .pkp if you like...

Last Edited: Fri. Dec 2, 2016 - 06:04 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think that component pick/place often uses part and footprint "centroid". There is a centroid script for EAGLE and it appears to generate the centroid for each component footprint on the board.

 

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

With Expresspcb, simply use the xy coordinate data displayed on screen. Move the cursor to center of the part and write down the coordinates. Way faster than teaching on the machine! Also, Copper Connection by Robot Room can import expresspcb files and generate Gerbers.

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Howard_Smith wrote:
Then if you use .NET to create your UI (I'm assuming you're going to be making some kind of PC based UI?) then the built in SerialPort class can help you achieve this.

This is what I was afraid of when I asked the question. I don't want to have to write my own UI. If I need to do that, I can think of other ways to set up the Pick & Place machine that is different than "teaching" it as described.

Howard_Smith wrote:
FYI, gerber files and pick n place files aren't actually the same thing

Yes thanks, I am aware of that. My dissertation on Gerber was part of an explanation of why I don't have the proper software that would produce .pkt files.

tpappano wrote:
With Expresspcb, simply use the xy coordinate data displayed on screen. Move the cursor to center of the part and write down the coordinates. Way faster than teaching on the machine!

Thanks! I would do something slightly different though. I'd import a screenshot of the Express PCB layout into AutoCAD and draw a polyline to each part (separate polylines for each of similar parts). Then export the polyline as DXF and run it through my G-code converter. That gives me the coordinated without having to write anything down.

 

My first thought of how to solve this problem was as I just described. But when I saw the video I posted in the OP I got the "teach" idea and wanted to find out if it was easy to accomplish.

tpappano wrote:
Also, Copper Connection by Robot Room can import expresspcb files and generate Gerbers.

THANKS Tom! I'll definitely look into that. You may have saved me a ton of time in the future!

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

Last Edited: Fri. Dec 2, 2016 - 08:42 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I had a big frown above both eyes when I read that U you use something like "express pbc" or any other software which does not genenerate the gerber, drill, placement, Bom, etc for you.

I am a big fan of the open source world and I think I've donated more money to open source projects than I ever paid for the other stuff.

Using software and then not owning your own design is just unthinkable for me.

 

I think it's time for you to try a new pcb drawing progam.

 

KiCad is an excellent open source  schematic & pcb design package and it comes with all the bells and whistles you'll need and most you want.

It's also relatively easy to lern. After reading the getting started manual in an afternoon and trying some things out I knew enough of KiCad to design my first pcb.

I have also generated gerbers and ordered pcb's directly fron China. I had about 30 pcb's for EUR25. (50x50mm).

 

Eagle has also gotten good reviews and has been popular for hobbyists because you don't have to pay for  a version which can only do small pcb's.

Was ok back then I guess, but KiCad does it all. Eagle has also bene bouth by Autodesk recenty.

 

Maybe RS design spark would be interesting for you. But I don't use windows so I don't know if it works.

 

If you want to go beaglebone Black, then "machinekit" might be interesting for you. It is a CNC program which can be used for a lathe, mill, or other machine with more complex kinematics (delta, stewart, Scara, or other). You can also buy a "cape" for the BBB such as the "bebopr" which has everything you need to use the BBB as a 3d printer / router / p&p. But if you want to build your own you can easily put some stepper driver chips on a breadboard or vero board and start pumping.

 

"GRBL" is a popular sw package for cnc like stuff on AVR's and is used in a lot of 3d printers.

There is also a grbl version for ARM Cortex M3 which has more MHz & 20kb of ram which should be enough for your coordinates.

Are you familiar with smoothieboard?

http://smoothieware.org/smoothie...

 

Did you have a look at hackaday / github? Some of the projects there are for complete pick & place machines complete with open source software.

 

Also how many pcb's do you intend to manufacture? For small series (10 to 20 pcb's ? ) a manual pick & place unit is probably adequate.

For lager series you can make smd paste stencils out of beer cans. (Search hackaday / instructables)

 

I have also seen several kickstarters for "pcb factories". You can buy a complete machine for around USD2000 which does (light) milling, drilling, paste distribution & component placement

"othermill" is one of them (but very small). One of the other projects was a SCARA arm with enough resolution for pick&place or 3d printing.

 

About "cheap"... There are some 3d printers with quite decent X, Y, Z axis you can buy in the range of USD200 to USD300. You can hardly build anything yourself for those prices.

http://hackaday.com/2016/06/13/r...

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

Last Edited: Fri. Dec 2, 2016 - 09:33 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:
I think it's time for you to try a new pcb drawing progam.

I think you may be right. Tom pointed me to one above....

Paulvdh wrote:
If you want to go beaglebone Black, then "machinekit" might be interesting for you. It is a CNC program which can be used for a lathe, mill, or other machine with more complex kinematics (delta, stewart, Scara, or other). You can also buy a "cape" for the BBB such as the "bebopr" which has everything you need to use the BBB as a 3d printer / router / p&p.

Thanks Paul! That is very interesting. BBB is more interesting to me than Rasberry Pi.

Paulvdh wrote:
Did you have a look at hackaday / github? Some of the projects there are for complete pick & place machines complete with open source software.

I will definitely look now!

Paulvdh wrote:
Are you familiar with smoothieboard?

Yes! I've looked into it with much interest. I am seriously considering using it to control the Pick & Place machine.

Paulvdh wrote:
Also how many pcb's do you intend to manufacture?

Something in the range of 50 at most. But definitely no more than 100.

Paulvdh wrote:
For lager series you can make smd paste stencils out of beer cans.

Yes, I have some ideas for that too. But I have recently found inexpensive sources so it isn't worth the hassle.

Paulvdh wrote:
There are some 3d printers with quite decent X, Y, Z axis you can buy in the range of USD200 to USD300. You can hardly build anything yourself for those prices.

I have linear rails and bearings lying around the shop so I only need a few things. Most of which are for the vacuum stylus head etc.

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

Last Edited: Fri. Dec 2, 2016 - 09:46 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Lots of great info above.

 

Two additional thoughts:

 

I definitely like splitting the task into two parts, picking up and "centering" a component, and once that is done then placing the component.

 

I like the concept of feeding a table of components, and their PCB locations, via data, into the P7P machine, and not manually teaching the machine to lace each part.

 

That said, if you did want to have a manual "teach" mode, I'd consider using a joy-stick to move the head and position the given part, not moving the motors manually.

My old flight sim joy sticks hade multiple push buttons, coolie hats, and a couple of sliders, so easy to have some speed adjustment for rapidly moving the arm, and then having a fine adjustment speed.

 

Doing 50 PCB's, perhaps from different manufacturers, and perhaps having a second or third batch to do?

I suspect you will still need some sort of auto-alignment feature for both the X and the Y axis, as well as a rotational adjustment; all to compensate for how the board house trimmed the edges on the PCB.

 

Drawing two "X" marks on the PCB in essentially diagonal corners lets one both determine two known points, and also adjust for rotation.

You could manually move the arm there with a whisker pointer, or a fine beamed laser diode, or use a visual input from a camera, (significantly easier on the operator, but significantly hard to integrate into the software).

One of my PCB layout programs has a fancy bull's eye which, I think, is intended for this purpose.

 

Good luck with your project, please keep us updated!

 

JC

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My Philips machines have manual teaching which I tried only once. It was so slow and tedious I gave up, pulled the layout up on the computer, wrote down the coordinates, keyed them in and never looked back 8)
One of my 'little' 5x8 boards has over 450 parts, I would go completely insane teaching it!

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I started, but haven't finished, a manual P&P "machine" based upon a gutted A4 scanner. The carriage slides nicely on the existing rail within the plastic housing. Yes the pcb cannot be all that large but so far it solves my benign essential tremour issues in placing the little buggers.

 

Ross McKenzie ValuSoft Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Cool, do you scoot the 'head' around by hand using the scanner hardware as a guide, or are you running the motors?

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

All manual. But at one time I left the drive belts attached as a filter for my tremour. I found it too tiring.

Ross McKenzie ValuSoft Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DocJC wrote:
I like the concept of feeding a table of components, and their PCB locations, via data, into the P&P machine, and not manually teaching the machine to place each part.

Yes, at his point in the discussion it is looking as though that is the path of least resistance.

DocJC wrote:
That said, if you did want to have a manual "teach" mode, I'd consider using a joy-stick to move the head and position the given part, not moving the motors manually.

 

I was thinking that manually positioning would be faster and more intuitive. However it does complicate things in that it then requires additional position sensing hardware.

DocJC wrote:
I suspect you will still need some sort of auto-alignment feature for both the X and the Y axis, as well as a rotational adjustment; all to compensate for how the board house trimmed the edges on the PCB.

Doc, this is a VERY GOOD point (that I hadn't thought of).

DocJC wrote:
Drawing two "X" marks on the PCB in essentially diagonal corners lets one both determine two known points, and also adjust for rotation.

Now that you mention it, I recall that a PC fab house I know, requires "fiducials" on the PCB panel. I never really considered why. I suspect you just told me....

tpappano wrote:
My Philips machines have manual teaching which I tried only once. It was so slow and tedious I gave up, pulled the layout up on the computer, wrote down the coordinates, keyed them in and never looked back 8)
One of my 'little' 5x8 boards has over 450 parts, I would go completely insane teaching it!

Yeah, I can see that 450 parts can be pretty tedious. It seems like a completely different experience from 50 to 100 parts. The feasibility of my idea of teaching obviously has its limitation on number of parts....

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

PnP is a fun project, but always harder than people think. A lot depends on accuracy and reliability - 1206 is pretty easy. 0.4mm TQFP not so much. 

 

Unless you are really committed to spending a lot of time on the project, I would seriously consider something off the shelf. eg. http://www.liteplacer.com/ Even if you want to save money and machine your own parts, I would copy his interface exactly and then you can use his software.

 

 

Bob. Engineer and trainee Rocket Scientist.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

donotdespisethesnake wrote:
PnP is a fun project, but always harder than people think. A lot depends on accuracy and reliability - 1206 is pretty easy. 0.4mm TQFP not so much. 

I build custom specialized automated machinery for a living, accuracy and reliability are not an issue with me. Yes, it is likely a safe bet that it is harder than expected, I am used to solving these kinds of problems.

donotdespisethesnake wrote:
Unless you are really committed to spending a lot of time on the project, I would seriously consider something off the shelf. eg. http://www.liteplacer.com/ Even if you want to save money and machine your own parts, I would copy his interface exactly and then you can use his software.

Not a bad idea. I am familiar with the Litepacer and it is a nice machine. My machine is made of linear guides, stepper motors and drivers I have lying around the shop. However, if I go with something other than an Arduino Uno for controlling the motion, it will be a Smoothieboard with its 32 bit processor and built in SD card reader. The Litepacer uses a TinyG with an 8 bit AVR and no SD card. My aim is to have a "headless" machine (that does not require a dedicated PC), hence the SD card requirement.

 

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This has been a very valuable conversation with a lot of great ideas. The main thing I have realized is that my "teaching" idea is possible, but doesn't appear to be the best solution.

 

This Pick & Place machine will be controlled with G-code (whether it be with and Arduino and grbl or with a Smoothieboard). So it makes sense for me to integrate programming the P&P into my current G-coding process. I usually make G-code from an AutoCAD drawing by creating a polyline of the cutterpath, and then converting that into G-code with a simple program I wrote (in GW Basic of all things) three decades ago.

 

So to create the G-code for the P&P, I'll start from an AutoCAD drawing of the table that includes the cut tape locations that contain the electronic components. This requires that these tapes be located in a permanent and repeatable position on the table. I discovered that I can export a DXF file of the board from ExpressPCB and import it in AutoCAD. From there is is a matter of drawing polylines to represent the positioning of the "picks" and "places". From this polyline I can get the G-code.

 

This is really just a "virtual" version of my "teaching" idea that started this thread.

 

Thanks to all that participated! This was a valuable exercise....

 

(Plus I now have a way to get Gerber files from my ExpressPCB boards - Thanks Tom!)

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think we all need gerbils!

Last Edited: Sat. Dec 3, 2016 - 10:26 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

aero, this sounds like a fun project! I wish I could offer some advice on the P&P side of things but I'm quite there yet (I can provide some advice on building the UI application for Windows, though, so there's that!).

I hope to see pictures soon, too!

 

I would love to build my own P&P machine but I'm not up to that kind of task yet. Keep us informed on your progress!

My digital portfolio: www.jamisonjerving.com

My game company: www.polygonbyte.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

expressPCB will provide Gerber files, either you pay for them or become a registered engineer and get them free!

 

 

 

(Possum Lodge oath) Quando omni flunkus, moritati.

"I thought growing old would take longer"

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

expressPCB will provide Gerber files, either you pay for them or become a registered engineer and get them free!

I bought a *lot* of them at $60 a pop, then someone here tipped me about Copper Connection.  Been saving quite a bit of cash for a while now 8)

 

 

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Out of curiosity, how are you going about printing solder paste and reflow/ curing your PCBs?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Howard_Smith wrote:
how are you going about printing solder paste and reflow/ curing your PCBs?

I plan to use stencils to apply the solder past and reflow in a converted toaster oven. I may attempt squirting the solder from a syringe using the P&P machine, but I suspect I will use a stencil.

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupery (1900 - 1944)

Last Edited: Wed. Dec 7, 2016 - 07:55 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If you are worried about the lifetime of memory chips you can us something like this one: http://ww1.microchip.com/downloa...

 

It has a battery back up so you don't have life cycle limitation and byte block and page addressing modes.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I almost repeated the beercan hack but instead wanted to add some comments about BBB because you seemed a bit apprehensive about these boards.

 

Starting with a BBB is completely redicilously easy.

If you plug the BBB into a pc via USB it does not only use that port to supply itself, but it also starts up a web server ( & much more).

No uSD card needed :)

 

If you run linux, you have to tell your pc that's it ok to accept trafic from that device (Standard "udev" rule) but most other os'es don't really know what to do with TCP/IP over USB so you'll have to install a driver (Which probably changes every few months for windoze. See: https://en.wikipedia.org/wiki/RNDIS).

https://beagleboard.org/getting-...

 

Then you can browse directy to your BBB with a webbrowser (Address is http://192.168.7.2 )

Your BBB serves the same website as from www.beagleboard.org

 

If you go to the locally hosted equivalent of the examples section:

https://beagleboard.org/Support/...

http://192.168.7.2/Support/BoneS...

 

Then you have the Bonecript / Javascript equivalent of the blinking led and you can change the code and view the results by clicking on the "run" button.

 

(It just feels strange & completely weird that linux supports RNDIS natively but you have to install a driver for Windoze.)

 

Also note:

BBB has 2  PRU's ("Programmable Realtime Units") which are basically 200MHz microcontrollers with direct access to the BBB RAM and peripherals. These are excellent for realtime applications such as step&dir generation for stepper motors (Machinekit.io uses them, just dump it on a uSD card and run it).

 

BBB vs. grbl might help you to compare in which direction you want to go.

https://duckduckgo.com/html?q=be...

 

 

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com