OpenPnP on 48VB

505 views
Skip to first unread message

Chris

unread,
Jun 24, 2019, 1:05:35 PM6/24/19
to Desktop Pick and Place
I just flashed my 48VB with the smoothie firmware from Matt Baker (thanks Matt!).  OpenPnP V1 is able to control it (thanks Jason!).  I haven't done much with it yet besides jogging around.  The nozzles do rotate.

I initially started with OpenPnP V2 but it gave an error:
Error while reading machine.xml (Attribute 'invert-vacuum-sense-logic' does not have a match in class org.openpnp.machine.reference.ReferenceNozzle at line 6)

Details:
I used a STLINK-V3SET to program firmware-chmt.bin using the STSW-LINK004 software.  I first updated the firmware on the STLINK, then wiped the memory on the 48VB, then programmed the firmware. 
The 48VB motor controllers started making "an odd sound" while being programmed, so don't freak out too much if you try this.  After programming I turned off the 48VB and turned it back on.  The LED labeled "ST" was blinking.  
I installed OpenPnP, opened it, overwrote the default machine.xml with the one from Matt and just had to change the COM port I'm using and the config for my USB cameras.

I've been playing with different camera options, and I still need some parts for that before I can start doing any real work, but it's coming along. 

Since I was going to replace the cameras with USB cameras I decided to swap out the drag chain so that I could make future modifications more easily.  I currently have the 12mm version of this camera on the head.

I'll post updates as I make progress.

Dominic Clifton

unread,
Jul 23, 2019, 3:04:24 PM7/23/19
to Desktop Pick and Place
Hi Chris,

Thanks for this info, I'm sure I'll find it useful when I get round to doing this to my VB48 which as been in constant use since I bought it.

Today I got another nudge from the annoying CHMT software when it re-ordered the component placements in the design when I changed one component to use a different feeder.  *sigh*.

Please do keep us posted on your progress, any other hints/tips and videos most welcomed.

I'm also keen on swapping out the cameras with HD ones as the ones CharmHigh supply are woefully low resolution analog cameras.  Please let us known what you do with the bottom camera.  Shop/Part links welcomed.

Seon Rozenblum

unread,
Jul 23, 2019, 7:21:12 PM7/23/19
to desktop-pic...@googlegroups.com
Hi Chris,

Since I was going to replace the cameras with USB cameras I decided to swap out the drag chain so that I could make future modifications more easily.  I currently have the 12mm version of this camera on the head. 

How easy was it to swap out? Just unplug the old and plug in the new? I can’t find a setting that allows to custom offset from the camera to the nozzles, so how to you ensure it was in the exact same position as the old camera? 

Thanks :-)

Seon Rozenblum 
| Unexpected Maker
http://unexpectedmaker.com

Andrew Cilia

unread,
Jul 23, 2019, 7:24:14 PM7/23/19
to desktop-pic...@googlegroups.com
There is a calibration procedure to align the cameras and the nozzles. I can’t remember if is in the regular setting menu or the secret one. 

Andrew

--
You received this message because you are subscribed to the Google Groups "Desktop Pick and Place" group.
To unsubscribe from this group and stop receiving emails from it, send an email to desktop-pick-and-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/desktop-pick-and-place/ED8E439F-DE43-4106-B063-50F1BB51C8D6%40gmail.com.

Seon Rozenblum

unread,
Jul 23, 2019, 7:30:13 PM7/23/19
to desktop-pic...@googlegroups.com
Hi Andrew,

There are independent ones… camera to camera, and then nozzles to up camera… do you think that’s enough to get the down looking camera to nozzles ok? I wish there was an exposed x,y value we could set/tweak.

Also, I've started calibrating the nozzles heads without the nozzles attached as I have noticed the nozzles can change position each time they go up and down, so knowing exactly where their “stable” centre is, is hard to know for sure… on 0402 parts it can be enough to miss-align the component quite a bit.

My nozzles are not bent, but the smaller the nozzle, the more movement side to side from my experience.


Seon Rozenblum 
| Unexpected Maker
http://unexpectedmaker.com

Andrew Cilia

unread,
Jul 23, 2019, 7:32:45 PM7/23/19
to desktop-pic...@googlegroups.com
That should be enough, I think. 


Seon Rozenblum

unread,
Jul 23, 2019, 10:23:47 PM7/23/19
to 'Brian Laine' via Desktop Pick and Place
Also, the camera Chris points to on Ali (12mm version) - the cable doesn’t seem long enough to get through the drag chain, into the machine.

Chris: Did you cut and splice the cables together? Or did you buy an extra extender? I can’t see an extender in either drag chains on mine, so I can’t see how 1.5m is enough.. and any more and you’d need a powered extender right?

To anyone that’s replaced either camera on their 36/48 machines, I’d love some details please :-) 


Seon Rozenblum 
| Unexpected Maker
http://unexpectedmaker.com

Matt Baker

unread,
Jul 24, 2019, 3:57:26 PM7/24/19
to Desktop Pick and Place
Nice work Chris!  I should have put some easy access chains on my machine.

I spliced the USB cable inside the head cover. Originally using a microfit 3 connector, but the wire gauge is too small so the connection had intermittent issues.  You can buy unterminated 10ft cables or other lengths on digikey, mouser, etc.

I doubt that you can make a USB camera work with the charmhigh software.

I'm using the same camera as Chris with the 8mm lens. The quality is leaps and bounds better than the analog camera, with very little visible noise. You get control over all of the exposure, etc, settings in the sensor IC.

What I've found on my latest board builds is that three fiducials gives a significant improvement in placement accuracy -- OpenPnP does a very good job compensating scale and rotation using them. I may also need to adjust the homing speeds, as the x-y zero position isn't quite as repeatable as I would like.  I played around with calibrating my x-y steps to a precision ruler, but I think the three fiducial compensation makes this unnecessary.

Matt
OpenPnPCHMTCamera.JPG

Matt Baker

unread,
Jul 24, 2019, 4:29:54 PM7/24/19
to Desktop Pick and Place
I could add it might make sense to connect a USB extension cable at the X-Y junction to avoid splicing. If you don't put openable chains like chris, you won't be able to get the connector through though.

For some reason, the charmhigh controller has the blower/vacuum power outputs as default on (via pullup), so they turn on and make noise until the controller turns them off. So its a bit noisy when you flash the controller.

Matt

Dominic Clifton

unread,
Jul 25, 2019, 6:39:25 AM7/25/19
to Desktop Pick and Place


I'm using the same camera as Chris with the 8mm lens. The quality is leaps and bounds better than the analog camera, with very little visible noise. You get control over all of the exposure, etc, settings in the sensor IC.


Chris, what made you go for the 12mm one?
Matt, what made you go for the 8mm one?

Could you guys both take a screenshot of the camera view when the camera is above the PCB origin and with a ruler in view so that we can contrast/compare?

Chris

unread,
Jul 25, 2019, 11:29:39 AM7/25/19
to Desktop Pick and Place
I'm currently running this 8MP camera for the bottom camera with this lens.  I wanted to use the vari-focal lens that came with the machine, but with this 8MP camera the lens could not focus at the needed distance.  The lens needed to go closer to the imaging sensor than the lens mount on the camera would allow.  I tried several prime lenses and got some extension tubes as well, but so far I think this is the best setup and the new vari-focal gives some room for easy modification if needed later.

Chris

unread,
Jul 25, 2019, 11:36:02 AM7/25/19
to Desktop Pick and Place
I had to cut the wires out of the existing drag chain.  It took some time, but it was not difficult.  The new camera plugs in to the computer and not the CHMT control board.  The new camera fits in the existing holder on the head.  I had to mount it higher than the stock camera the machine came with, but the picture quality is night-and-day better.

Chris

unread,
Jul 25, 2019, 11:42:43 AM7/25/19
to Desktop Pick and Place
The cable on the camera was not long enough to go the full distance.  It was long enough to get through the first drag chain on the way from the head back to the machine.  Between the two drag chains I used this USB extension cable to go the rest of the distance through the last drag chain and to the computer.  I ended up using 3 of these USB extension cables.  One to the head for the USB camera there and two going inside the machine through the existing hole at the back-left of the machine.  The hole there was big enough to allow the connector to get through so everything stays looking pretty.  One of the USB cables going inside the machine goes to the upward looking camera and the other to the RS422 adapter to control the machine via OpenPnP.  Originally I tried using only one cable and this USB hub, but the camera quality though the hub was awful and it didn't seem to provide enough power for the camera, so I decided to use a dedicated cable.  It was fantastic after going straight through the extension cable.

Chris

unread,
Jul 25, 2019, 11:56:12 AM7/25/19
to Desktop Pick and Place
I actually tried both the 8mm and the 12mm.  The lens is removable from the camera, so you can just swap out the lens if you want to try them both yourself: you could buy the 12mm version and if you don't like it you can take the 8mm lens off the camera that came with the machine and use it on the new USB camera.  

I went with the 12mm because it zooms you in a little bit more.  I have some 0402s in some designs and (as far as I know) the downward camera is only for fiducial checks and positioning, so I didn't see any value in a wider field of view.  I also tried a 25mm lens with some extension tubes, but that gets you in really close.  If you want to do vision correction I think 25mm will be too close and if you're positioning is off you might not get all of the part in the field of view.  8mm is not bad though.  16mm might work pretty well, too.  If you go 16mm you'll probably need an extension tube (or two).

I took sample images with all of the camera and lenses that I tried.  I can upload some of those when I get back next week.

 - Chris

Chris

unread,
Jul 25, 2019, 12:05:05 PM7/25/19
to Desktop Pick and Place
Matt,

I've just got to the point where I've made my first successful pick operation last weekend.  I've still got to go in and create all of DragFeeders in OpenPnP.  I was having problems where the drag pin wasn't retracting in time before the move operation to get the pick needle over the pick location and it was crashing the drag pin in to the side wall, scary :(   

I think I understand all of the actuators except the Min-Z actuator?  Can you provide any info on this one?

Thanks for your help.

 - Chris

Matt Baker

unread,
Jul 25, 2019, 2:09:52 PM7/25/19
to Desktop Pick and Place
Chris,

The ZMIN actuator reads the z endstop status to tell if the nozzles are parked or not. The machine has a notched disk with a photo interrupter it uses for this.  Its not being used at this point in the openpnp config.  

The DRAGPIN actuator actually has a similar read function connected to a photo interrupter on the pin.  The openpnp config doesn't use this at present either.  We had a discussion before about adding a "wait for event or timeout" into smoothie, but I haven't had a chance to look deeper. The same thing could be implemented in openpnp with a small latency increase, as far as I can tell.

I've been slowly dialing in my drag feeders for positioning accuracy and pin retraction.  Getting the pin to pull reliably is primarily based on the backoff distance in the drag feeder configuration, and the deploy/retract delay in the DRAGPIN actuator. I recently increased the delay for my machine from 50ms to 100ms because I was still occasionally ripping holes in the tape from stuck pins. For backoff distance I'm using 0.2mm.

To create new feeders, I generally copy the config entry in the machine.xml to start from existing settings.

My process to setup is like this:
1. Align tape hole in the feeder on the machine.
2. Capture the "Feed Start Location".
3. Adjust the "Feed End Location" until repeated pulls put the hole back at the feed start location accurately. (or you can update the feed start to point to the hole after a pull).
4. Capture the Pick Location.

Once I figure out how far the pull move needs to be, I have been using that same x-offset value for all the feeders. In my experience, the Feed End Location and backoff are the settings that drive where the pick and feed start locations will be.

It should be possible at some point to use vision for finding the start and pick locations, but I haven't had a chance to look into it.

Here are some captures with settings I'm using. I really need to fully populate all the drag feeders for a 48 and push that up.

Cheers,
Matt

--
You received this message because you are subscribed to a topic in the Google Groups "Desktop Pick and Place" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/desktop-pick-and-place/Iu1XIcmSZME/unsubscribe.
To unsubscribe from this group and all its topics, send an email to desktop-pick-and-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/desktop-pick-and-place/4567d33f-5e67-4b3b-95fd-4020557feb3d%40googlegroups.com.
OpenPnPDragFeeder.JPG
OpenPnPDRAGPIN.JPG

Matt Baker

unread,
Jul 25, 2019, 2:16:41 PM7/25/19
to Desktop Pick and Place
Dominic,

I attempted an estimation of the field of view to end up at something similar to the stock camera -- its zoomed in a little bit in comparison. I expected with the increased resolution it would be enough for 0402s, but I haven't tried any yet. I also knew that Jason used an 8mm on his custom built machine, in case the calculation was wrong.

I attached a capture with 1mm reticle ticks.

Matt
OpenPnPCHMTOrigin8mm.JPG

Dominic Clifton

unread,
Jul 25, 2019, 10:38:19 PM7/25/19
to Desktop Pick and Place

I'm currently running this 8MP camera for the bottom camera with this lens.  I wanted to use the vari-focal lens that came with the machine, but with this 8MP camera the lens could not focus at the needed distance.  The lens needed to go closer to the imaging sensor than the lens mount on the camera would allow.  I tried several prime lenses and got some extension tubes as well, but so far I think this is the best setup and the new vari-focal gives some room for easy modification if needed later.


Chris

unread,
Jul 25, 2019, 10:44:52 PM7/25/19
to Desktop Pick and Place
Nope

Dominic Clifton

unread,
Jul 26, 2019, 4:42:07 AM7/26/19
to Desktop Pick and Place

Chris

unread,
Aug 3, 2019, 1:17:39 PM8/3/19
to Desktop Pick and Place
It looks identical.

Chris

unread,
Aug 3, 2019, 2:23:31 PM8/3/19
to Desktop Pick and Place
Here's the 8mm that comes with the camera (C3, C4, L5 are 0402s; C41 is an 0603):

8mm lens.jpg



Here's the 12mm that comes with the camera mounted as far away from the sensor as possible:

12mm lens.jpg


Here's a 16mm lens mounted midway through the screw threads.  It's very similar to the 12mm above, but I think the 12mm has less distortion/blur around the edges:

16mm near.jpg


Here's the same 16mm lens mounted farther away from the lens to give a little more zoom:

16mm far.jpg


Here's a 25mm lens with an extension tube mounted to it so that it can be placed far enough away to focus:

25mm 1tube.jpg


Here's the 25mm with 2 extension tubes:

25mm 2tubes.jpg

Which one do you think is the best?

Dominic Clifton

unread,
Aug 4, 2019, 7:43:47 AM8/4/19
to Desktop Pick and Place
Great photos Chris, thanks for sharing, really helps!

I'd say the 2nd photo is great for an overview of the PCB, but only at 16mm is the subject big enough to allow really precise visual alignment, e.g. on say an 0402 pad.

The last photo is blurry on the right but that's due to component heights, you don't get that blurring with the other images.

The other usage of the down camera is the OpenPNP is the loose-parts feeder right?  Have you tried that, which camera/lense works best for that scenario?

Chris

unread,
Aug 5, 2019, 2:06:18 PM8/5/19
to Desktop Pick and Place
Hi Matt,

I forked openpnp and added support for reading ZMIN and DRAGPIN.  If you try it out let me know.  If you think it works then I'll submit a pull request, and if you don't think it works let me know and I'll try to fix it:  https://github.com/c-riegel/openpnp

It basically checks ZMIN after every call to moveToSafeZ() to see if the sensor is reading what it should.  You configure this in ReferenceMachine > Heads > ReferenceHead on the Configuration tab under "Z Probe Actuator Name" (set it to "ZMIN") and "Z Probe Safe Z Value" (set it to "1").  As far as I could tell "Z Probe" wasn't being used by openpnp.

On the feeders you'll see "Pin Retracted Value" (set it to "1").  It will try to back off then read DRAGPIN.  If it equals 1, then it goes on.  If it doesn't equal 1, then it tries to back off again.  If it still doesn't read 1, then it throws an exception.

Thanks,
Chris

Chris

unread,
Aug 5, 2019, 2:10:34 PM8/5/19
to Desktop Pick and Place
Just out of curiosity, did you make any progress on defining the drag feeders?  I don't mind to do it, but if you've already done some or all of it I would start by trying out your settings.

Thanks,
Chris

Chris

unread,
Aug 10, 2019, 1:04:59 PM8/10/19
to Desktop Pick and Place
Yes, I think there is a trade off between depth of field and zoom level.

I haven't tried loose parts image recognition.  I wanted to have a large enough field of view to support vision for getting parts out of the feeders, so that was what pushed me toward the 12mm and away from the 16mm.

Sorry for the delayed replies, I only get to play with the PnP on the weekends.

 - Chris

Chris

unread,
Sep 14, 2019, 1:02:30 PM9/14/19
to Desktop Pick and Place
I ran some panels for the first time yesterday on my 48VB with OpenPnP.

I had to make changes to OpenPnP to get it to do everything the way that it should with the 48VB hardware and submitted a pull request to get those changes in to OpenPnP. 

I'm now working on getting it to work the jobs faster.  With smoothie the table doesn't get forced as hard back-and-forth as it did with the original firmware, but it does take a little longer for the head to get around the machine.  I think there are a few things to do to work the job faster with OpenPnP.

 - Chris

Reid Forrest

unread,
Sep 14, 2019, 1:05:04 PM9/14/19
to desktop-pic...@googlegroups.com
Chris, sorry if you’ve already covered this. Could you share the details on how you got it working? e.g. what hardware mods had to be done? I have a 48VB myself, and better / more flexible software would be great.

-Reid

--
You received this message because you are subscribed to the Google Groups "Desktop Pick and Place" group.
To unsubscribe from this group and stop receiving emails from it, send an email to desktop-pick-and-...@googlegroups.com.

Andrew Cilia

unread,
Sep 14, 2019, 2:50:28 PM9/14/19
to desktop-pic...@googlegroups.com
The panel is flexing along the V scores when the nozzle presses down to place a component. I think this is why the components seem to be placed just off. 

Does anyone have Stl files for a 3D printed PCB support?

Andrew 

Chris

unread,
Sep 14, 2019, 3:02:41 PM9/14/19
to Desktop Pick and Place
I used some of the things that came with the PnP to add supports in the middle of the panel, like in the pic here.
IMAG1240-20190914-145954118.jpg

Chris

unread,
Sep 14, 2019, 3:08:36 PM9/14/19
to Desktop Pick and Place
It's covered in the first post of this thread.  However, I'm trying a different upward looking camera today to try to get things going faster.

Also, make sure that you get my mods to OpenPnP.  I bent the drag pin using the vanilla OpenPnP and added in checks to make it much harder for you to crash the drag pin or break a nozzle, which I also did...

Let me know if you have any questions.

 - Chris

Chris

unread,
Sep 14, 2019, 7:07:48 PM9/14/19
to Desktop Pick and Place
I spent today playing with this camera as a replacement for my previous upward looking camera. 

This camera is magical.  You simply must get it.  With it you can set the camera settle time in OpenPnP to zero. 

I've been going through my computer vision pipelines and trying to get them as tight as possible.  You can speed things up by removing the initial MaskCircle, BlurGaussian, ConvertColor, MaskHsv, ConvertColor stages.  This get the whole CV stage around 30 ms.  About 10 ms of that is writing the image to disk for debugging, so once you're sure the CV is good you should be able to get down to around 20 ms from frame capture to offsets ready.

I'll prolly do another run on Monday and let you know how it went.

 - Chris

yuvaraj duraisamy

unread,
Sep 14, 2019, 9:41:26 PM9/14/19
to desktop-pic...@googlegroups.com
Thanks Chris. Lens 2.8-12mm as discussed earlier?
> --
> You received this message because you are subscribed to the Google Groups "Desktop Pick and Place" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to desktop-pick-and-...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/desktop-pick-and-place/8c0e84db-f160-4246-9ae9-e1ba2f5612cd%40googlegroups.com.

Chris

unread,
Sep 14, 2019, 10:01:39 PM9/14/19
to Desktop Pick and Place
Yes, I'm still using the same lens, but I'm pretty close to its limit. If you place big parts you might want a different lens. I think my biggest part is a TSSOP16, and I think my field of view is close to 7 or 8mm on the short side. If your parts are under that then you should be ok with the lens identified above. I basically set the zoom so I could just barely get the TSSOP16 in frame at a 15 degree angle, which is considered a worst case pick.

I did 0402's today with it, too.

Chris

unread,
Sep 14, 2019, 10:09:40 PM9/14/19
to Desktop Pick and Place
Sorry, my lens is not the 2.8-12. I have a 9-22mm, but I'm closer to the 9mm side. The 2.8-12 would probably be the better choice unless you only do small parts.

Matthew Driver

unread,
Sep 15, 2019, 4:13:36 AM9/15/19
to Desktop Pick and Place
This is the PCB support I designed for my larger panels. The cloth is just something I stole from the kitchen.

STL attached.

PCB supports.png


Cheers,


Matthew.

CHMT36VA PCB Support.stl

Jason von Nieda

unread,
Sep 15, 2019, 1:49:02 PM9/15/19
to Desktop Pick and Place
This is great news Chris. I've been wanting to try that camera for a while, and your post was the push to get me to buy a couple :)

I saw your PR and will work on getting it reviewed and merged over the next few days. I might try to break it up into a few smaller features so we can pull in the easy stuff quickly and then work on the harder stuff together.

Thanks,
Jason


--
You received this message because you are subscribed to the Google Groups "Desktop Pick and Place" group.
To unsubscribe from this group and stop receiving emails from it, send an email to desktop-pick-and-...@googlegroups.com.

Chris

unread,
Sep 15, 2019, 2:57:50 PM9/15/19
to Desktop Pick and Place
That camera was twice the price when I got mine, so now is the time.  The global shutter eliminates motion blur, and the 60fps looks amazing on the screen.  Totally worth it.  I was running their 8MP at 15fps and needed about 100ms for settling time.  It was so sad...  It's black-and-white only, and I was hoping that I would be able to skip the last ConvertColor to gray, but that one's still needed.  I run with black colored nozzles and not green ones.  I lock the exposure so the background is already totally black making the initial MaskCircle unnecessary.

Sorry about the scope of the PR.  It took me a while because I haven't done Java since college.  I didn't want to push it until I could run a day's worth of panels and really test it all out put together.  I'm also new to git; I usually use svn.  I couldn't find a way to break up the PR on my side.  I've been watching some videos on git, but I'm still coming up to speed.

The only "hard thing" there that's prolly the cause of the botched CI test fail is I changed things to reinterpret the nozzle and head dwell time.  Instead of just waiting that time always I use it as a timeout value and do several vacuum sensor reads during that time.  When the vacuum pressure crosses over in to being good, then I have it move on immediately.  This way you're waiting the shortest amount of time that you need to get the vacuum level you want and aren't just sitting there waiting for the timer to tick.  

Also, the vacuum controls on the Feeders panel wasn't implemented for all of the other drivers.  I was afraid of implementing code for machines I couldn't test on.  It would probably be better if it actually did the pick and place operations instead of just turning the vacuum on and off, because I have my place operation turn on the blower for a bit to get the part off.  However with all of the feeders to put in being able to just fly back to the pick location and turn off the vacuum with one button meant I could do round after round from different feeders to check the vision pipelines.  Also, I won't be hurt if you want to change the icons.

You might have thoughts on a better UI for the feeder part offset, because the way it is now you have to set the value, click apply, then click the set button.  It's handy to be able set if a drag needs to occur though.  I'm not very familiar with the UI elements and how to best link the wizards to the reference implementations.

I was never able to get the bottom side of the board to work.  The head would always go to the wrong spot for the part.  It would all work until I did a fiducial detection and then after that when commanded to put the camera over a part it would be way off.  It would still go to the right spot for the fiducials, but not for any of the parts.  I ended up just making a separate job for the bottom of the board.  I run from KiCAD imports.

Also, if you could point me to where in the code it determines that it needs to do a nozzle change I would love to change it from a "movement violates software range limits" message to a "hey you don't have the right nozzle on the head for this part" message.

Thanks and let me know if I can help.  I still want to tweak some things in the code that I think will make things faster, so I'll keep the PRs coming.

 - Chris

Andrew Cilia

unread,
Sep 15, 2019, 3:54:10 PM9/15/19
to Desktop Pick and Place
Thanks  Matthew, meanwhile I designed a similar PCB support, this one does not rest on the rods. STL attached.  
The cloth on top is an interesting idea, I may try that.  I went for the rigid support with a bit of tension to hold everything in place.
Andrew

IMG_9309.JPG

--
You received this message because you are subscribed to the Google Groups "Desktop Pick and Place" group.
To unsubscribe from this group and stop receiving emails from it, send an email to desktop-pick-and-...@googlegroups.com.
PCB_support.STL

Chris

unread,
Sep 15, 2019, 6:32:41 PM9/15/19
to Desktop Pick and Place
Reid,

The main components are covered in this thread, but I did a little write up that has more details in case you want more of a walk through:

 - Chris


On Saturday, September 14, 2019 at 1:05:04 PM UTC-4, Reid Forrest wrote:

Chris

unread,
Sep 15, 2019, 6:32:51 PM9/15/19
to Desktop Pick and Place
Reid,

The main components are covered in this thread, but I did a little write up that has more details in case you want more of a walk through:

 - Chris


On Saturday, September 14, 2019 at 1:05:04 PM UTC-4, Reid Forrest wrote:

Matthew Driver

unread,
Sep 15, 2019, 6:34:30 PM9/15/19
to Desktop Pick and Place
Hi Andrew,

Thanks for your STL. I'll print off a few and give it a spin.

Cheers,

Matthew.


On Monday, 16 September 2019 05:54:10 UTC+10, Andrew Cilia wrote:
Thanks  Matthew, meanwhile I designed a similar PCB support, this one does not rest on the rods. STL attached.  
The cloth on top is an interesting idea, I may try that.  I went for the rigid support with a bit of tension to hold everything in place.
Andrew

IMG_9309.JPG

On Sun, Sep 15, 2019 at 3:13 AM Matthew Driver <mdr...@solutech.com.au> wrote:
This is the PCB support I designed for my larger panels. The cloth is just something I stole from the kitchen.

STL attached.

PCB supports.png


Cheers,


Matthew.





On Sunday, 15 September 2019 04:50:28 UTC+10, Andrew Cilia wrote:
The panel is flexing along the V scores when the nozzle presses down to place a component. I think this is why the components seem to be placed just off. 

Does anyone have Stl files for a 3D printed PCB support?

Andrew 

--
You received this message because you are subscribed to the Google Groups "Desktop Pick and Place" group.
To unsubscribe from this group and stop receiving emails from it, send an email to desktop-pick-and-place+unsub...@googlegroups.com.

Dominic Clifton

unread,
Sep 16, 2019, 7:26:13 AM9/16/19
to Desktop Pick and Place
Thanks for the PCB support files Matthew and Andrew.  I'm printing both now.  Adding PCB supports has been on my list of things to do for a while now as I use PCBs with V-Scores and it's clear that it will improve things when placing parts.

I also need to better support my double-sided boards; when I reflow one of the sides of them as I'm noticing that the PCBs droop in the middle along the V-Score line, so when it's placed back in the PnP machine to place components on the other side it is bent upwards slightly in the middle causing the paste to be smeared and the component to be vertically out of alignment, normally away from the V-Score line.

PCB supports are tricky for double sided boards as the components on the bottom get in the way.

Dominic

Reid Forrest

unread,
Sep 16, 2019, 8:36:16 AM9/16/19
to desktop-pic...@googlegroups.com
That’s great info, Chris. Thanks for sharing it.

--
You received this message because you are subscribed to the Google Groups "Desktop Pick and Place" group.
To unsubscribe from this group and stop receiving emails from it, send an email to desktop-pick-and-...@googlegroups.com.

Dominic Clifton

unread,
Sep 17, 2019, 7:02:02 AM9/17/19
to Desktop Pick and Place
yesterday I ordered the down camera, the up-camera and the lens. :D

I've *still* not had any down-time with my machine to transfer my workflow onto OpenPNP, i'm still overloaded with either making new products, supporting existing ones and of course manufacturing them too.

Chris

unread,
Sep 17, 2019, 11:46:36 AM9/17/19
to Desktop Pick and Place
The conversion took me much longer than I wanted it to.  Make sure you have inventory of anything you need to make before starting the process.  It should take you much less time than it took me because I've found most of the landmines, but it will still take a while.

 - Chris

Dominic Clifton

unread,
Sep 18, 2019, 3:11:39 AM9/18/19
to Desktop Pick and Place
Chris,

One thing I'm slightly concerned about is ongoing feeder management and the time it will take to transition from my google sheets + my pnpconvert tool to generate DPV files for each of the boards I make.  I currently have 6 live production designs + one-off prototypes. I've really not spent that much time with OpenPNP itself.  How do you find that, compared to how you were doing it?

Chris

unread,
Sep 18, 2019, 8:56:22 PM9/18/19
to Desktop Pick and Place
There are a lot of gotchas to watch out for.  I should probably make a lessons learned page...

If you do 0402s then you should put the smaller nozzle tip on the left nozzle.  On my machine the home switch gets depressed when the right nozzle goes that far to the left and it's really tight (close to a crash).

If you have to change the part in a feeder with OpenPnP you'll want to try to reserve a feeder for parts with the same offset so that you don't have to redefine the settings for the drag feeder.  By this I mean you want to reserve a lane for parts with 8mm spacing between parts on the reel.  Most are going to be 4mm, but I have some parts on wide tapes that have different part spacing.  It's not hard to change the drag distance, but it's sometimes hard to remember to change it.  Other than that, changing a feeder just amounts to picking the part you swapped in from a combo box.  Most of my designs share the same parts, so I don't have to do a lot of swapping.

I'm very glad to be done with dpv files.  I was going back and forth editing them and trying to version control them and moving them with that usb drive...  And I always had to modify my x positions because the machine didn't like negative numbers.  Imagine being able to go straight in with your design files from you EDA tool.  Yeah, that's nice.

It took a while to learn OpenPnP.  I'm still trying to optimize it for the 48VB.  It has some quirks.  Or maybe it's me, and I just don't know how to use it correctly.  For example, you define a job and define a pcb and the pcb has 2 sides, but I have been unable to use the bottom side.  When trying to put the camera over a part defined on the bottom it seems to go to a random position.  I couldn't figure it out so I just define a separate job for the bottom and tell OpenPnP that it's a top so it doesn't do any transforms.  Not that bad.

It also seems to be rotating the part more than necessary.  I think I've seen it do a vision op and then rotate the part by 360 on the way to the placement location.  I want to change OpenPnP to be aware of non-polarized parts because I think there's a lot of room for speed improvements by minimizing the rotation amount.  I think smoothie is limiting the move speed to the slowest axis, so since the rotation has the slowest max speed the x and y movements are limited to that speed.

OpenPnP expects that the process flow goes: move to pick location, put nozzle on part, turn on vacuum, pick up part.  However, I've found it's much faster to turn on the vacuum to purge the air line before moving to the pick location, then when you touch the part the vacuum pressure is already there and you don't have to dwell.  I have made a way around this and submitted the code to OpenPnP that allows this be done without changing to core of OpenPnP.  

I didn't play much with the vacuum detection on the base machine.  Have you?  Does that work?  It does work in OpenPnP and there's an existing change request that looks like it will make it a lot better.

So you'll probably want a configuration like mine.  OpenPnP has the notion of scripts that can run at different stages, so you could take a picture from the downward looking camera after a placement to save a record of how the parts were placed, or at different parts of the computer vision pipeline, so that's something the base machine would never be able to do.  It could be expanded to be a very basic AOI with some work.

Pros and cons everywhere

What's your placement speed now?  I didn't keep good notes on that, and I can't go back now...  With smoothie you don't need a bolted down table, but it is slower.

 - Chris

Dominic Clifton

unread,
Sep 20, 2019, 6:12:20 AM9/20/19
to Desktop Pick and Place
Hey Chris,

That's all good info thanks! I think I'll have to load-up OpenPnP and re-read all you said to properly digest it.

Yes, I have changed the vacuum detection since the numbers have to be wildly different for 0402's on a 500 nozzle and trimmer pots (with holes) and 1206 caps (that don't cover nozzle entirely) on an 505 nozzle.

Yeah, the DPV files are a pain, when you change something you have to update your 'master feeder list' with modified offsets and test regeneration of new .dpv files and compare ones from the machine.. slow and painful.

The AIO aspect sounds incredibly useful.  Would be nice to do solder-paste AOI on critical parts and then place panels back in the machine for reflow AOI afterwards.

Can you remind me what EDA tool you use?  I use DipTrace, commercial edition.

Yes, the double-sided board issue seems odd, I know in Diptrace you can export pick-and-place position files and there's an option to mirror the X co-ordinates which I use when exporting the bottom components.

Dominic

Chris

unread,
Sep 20, 2019, 9:54:01 PM9/20/19
to Desktop Pick and Place
Yes, I had to go through the documentation several times to get the hang of things in OpenPnP.  There's a learning curve to anything.  I found it very useful to put double sided tape on a pcb and practice with a job that only places one part.  I do this a lot as I try to implement features/improvements for OpenPnP.

Maybe I'm wrong, but I thought the vacuum detection was off by default on the stock 48VB.  I never tweaked that or did anything with it.  

I don't miss dpv files at all.  I don't think I remember all of the pain associated with them.  I *much* prefer how things are done with OpenPnP than how you have to deal with dpv files.

I use KiCAD.  I love it.  Long, long ago I used Eagle but I had some designs that would go over the maximum size restrictions for the free edition of the old Eagle.  I had to find a new tool that I could use.  I watched a Dave Jones video on KiCAD and gave it a shot.  His review wasn't what I would call "positive", but I still needed to find something that I could use.  I didn't like everything about it's workflow at first, but with the contributions of the CERN team it's become something really amazing.  I know of DipTrace, but I've not used it.  I can't imagine any circumstance where I would leave KiCAD.  I wouldn't go back to EAGLE if they gave me a free copy.  Not that I dislike Eagle, but I can do everything that I need to with KiCAD, so why invest the time to learn a new EDA?

My worry for anyone trying to follow the route I took is: will the current state of OpenPnP + 48VB meet expectations, or will you look back and be sad you wiped the original firmware on the CHMT control board.  That's why I asked what kind of cph ballpark do you find yourself in?  I was trying to get away from having to bump 0402s after placement with the original firmware.  Other folks in the forum are now at 100% speed with small parts.  I don't know how they did that, but it sounds like the answers will be revealed soon.  I was unable to do that even with a lot of tweaking.  I don't know what leads you to want to do the OpenPnP, and I'm not saying that you shouldn't do it, but if I can help you make an informed decision then I'm happy to help.

It's 100% possible that doing the back side of boards in OpenPnP is trivial if you know the happy path, but after reading the documentation available on how registration for bottom side components was previously done in OpenPnP and how it's currently done I was unable to figure it out.  However, I didn't speed a ton of time trying to figure it out.  Just faking it and tricking OpenPnP with a second "top" layer was a quick "workaround" that got me back on the rails, and I was just after a workflow that would get me making panels and didn't care about "the right way to do it" too much.  I fully admit that I did not want to look at the code to try to figure out how it should be done.  I was afraid I would loose too much time looking at coordinate transforms, and I did not want to spend that time.

Hope that helps

- Chris

Dominic Clifton

unread,
Oct 5, 2019, 6:44:06 PM10/5/19
to Desktop Pick and Place


On Sunday, 15 September 2019 01:07:48 UTC+2, Chris wrote:
I spent today playing with this camera as a replacement for my previous upward looking camera. 

Mine arrived a couple of days ago, I confirm the image quality is indeed excellent.

Dominic Clifton

unread,
Oct 5, 2019, 7:37:58 PM10/5/19
to Desktop Pick and Place

I currently have the 12mm version of this camera on the head.
My one of these also arrived, plugged it in to test it and it does seem very nice too.  Both way better than stock cameras for sure.

domini...@gmail.com

unread,
Jun 6, 2024, 8:53:23 AM6/6/24
to Desktop Pick and Place
Hi all,

I'm coming back to this thread 5 years later... heh.  I finally took the OpenPnP plunge with my 48VB and installed the camera, lenses and everything else.

Just wanted to say thanks for all the info in this thread, all very useful.  My machine is running OpenPnP, and I'm working through all the emails threads and changes that have occurred in the last 5 years and comparing everyone's machine.xml files and setups.

Dominic
Reply all
Reply to author
Forward
0 new messages