Delta OpenPnP Conversion, few questions about setup

394 views
Skip to first unread message

Alan Timm

unread,
May 30, 2017, 12:11:24 PM5/30/17
to OpenPnP

I threw together a conversion kit so that my Rostock Max can serve part time duty as a PnP machine.  Hardware wise everything is working out great.  Very easy to swap out the head to switch between 3d printing and pnp duties.


I'm running into a setup problem, and am hoping to get a few pointers.


When I click "Perform a feed and pick on the selected feeder." the pump turns on but after a second or two I get an error dialog.


The error is "Timeout waiting for response to ; vacuum"


As far as I can tell I don't have vacuum sensing enabled in the UI, and I don't have anything in VACUUM_REQUEST_COMMAND or in VACUUM_REPORT_REGEX.


What did I miss?















Jason von Nieda

unread,
May 30, 2017, 12:15:14 PM5/30/17
to OpenPnP
I'd guess that you have a newline in either your PUMP_ON_COMMAND or PICK_COMMAND, and after the newline is the comment portion of the command, "; vacuum". Newlines are interpreted as command terminators, so it's sending it as two commands. Look through your GcodeDriver commands and look for that "; vacuum" string, and remove it, or make sure it's on the same line. 

If that doesn't help, please use the Submit Diagnostics function and send the link: https://github.com/openpnp/openpnp/wiki/Getting-Help#submit-diagnostics

Jason


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/c95def26-89ca-4459-8f93-97f9654c1f5c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Rich Obermeyer

unread,
May 30, 2017, 12:24:04 PM5/30/17
to ope...@googlegroups.com
Alan,
I have been working on similar use of my machine.
Can you provide more details of your conversion?

Alan Timm

unread,
May 30, 2017, 1:08:44 PM5/30/17
to OpenPnP
Hey Jason, that was absolutely it.  I removed the single line comment, and now PICK_COMMAND completes.  Thanks!

Hey Maddog, no problem!  I need to update the upward facing camera housing and make a few other tweaks, then everything will be posted to Thingiverse.
Very easy to adapt to a stock RostockMax setup, I'd just need the dimensions of the stock Max carriage.
And my setup will work with the stock Rambo controller, Duet Wifi, and of course the Smoothieboards.
The setup uses the E1 stepper, Heater H1, pwm fans P1 and P2, and always an always on fan connector.  Everything fits without having to unplug anything.

Maddog

unread,
May 30, 2017, 7:40:25 PM5/30/17
to OpenPnP
Alan,
I am pretty excited upon seeing what you have done.
I think I have the same magnetic arms I see in the picture.  Makes changing extruders and now PNP easier.
I have modified mine to support the Diamond head (3 extruders in One) and 400mm base.
What cameras are you using and how are they connected to the computer?
No diffuser on the LEDs?
Getting it to work with PNP would be a great time saver.  Building boards by hand still.

Do you plan on any complex feeders or you just going to continue taping to the bed?

Alan Timm

unread,
May 31, 2017, 1:11:51 AM5/31/17
to OpenPnP
The adapter plate should be easy to attach to most delta effectors.  I can't find dimensions on the rostock max effector platform.  Worst case scenario you can just redrill whatever holes you need around the adapter plate.

I picked up a pair of ELP 720p usb cameras from RobotDigg with 8mm lenses.

No diffuser yet, I'm still trying to figure out what works best.  I just started looking at the camera configuraton options, and if the led light rings are helping or not.

As of tonight, I can grab an 0805 reliably and move it to the upward camera.  The default pipeline isn't working for identifying the part orientation for my setup, but I haven't played around with it yet.  I've got alot of reading to catch up on what I need to do software and hardware wise to get a reliable read.

I think I have autosetup for the ReferenceStripFeeder ok, and I have vision enabled.  It works ok with my current setup.  I have the strips taped directly to the glass build plate.  I'm wondering if I set it up with a less reflective surface if that will improve things.

Alan Timm

unread,
May 31, 2017, 4:09:44 PM5/31/17
to OpenPnP
I think I have the bottom vision sorted.  Jason, this is fantastic how the pipeline is configurable, both generally and how you allow custom settings by part.  It will be interesting to see how the settings may need to be changed depending on the part.

My fiducial ringlight is interfering with the bottom vision camera, so I'll need to design a cover to keep that light from bleeding over.  Once that's in place the bottom vision ringlight causes the part to show up almost as pure white.
Once the cover is in place and the light reflections are removed from the nozzle, I bumped up the threshhold to a value that leaves the part and nothing else.  I may have also flipped one of the convertcolors to grey.  From there the pipeline accurately identifies the offset and rotation for the part.

I'll post a pic of the updated parts tonight when they're off the printer.



Jason von Nieda

unread,
May 31, 2017, 4:26:01 PM5/31/17
to OpenPnP
Looking good Alan!

What I've found is that if you configure the default pipeline to handle your lighting and nozzle color situation well there shouldn't really be very many per part changes needed at all.

Jason


Paul Kelly

unread,
May 31, 2017, 9:04:38 PM5/31/17
to ope...@googlegroups.com

A new monitor and a wireless keyboard arriving today. But the conversion is pretty much complete.

skin_on.jpg

image001.jpg

Alan Timm

unread,
Jun 2, 2017, 1:28:14 AM6/2/17
to OpenPnP
I think I'm pretty close to a final design for the RostockMax conversion.

The ELP camera and the ringlights generate alot of heat, so I added some vents and other openings to help keep things cool.

I also did need to add a diffuser to the fiducial camera, the reflections off of the nozzle were interfering with the upward facing camera.

I posted the files to thingiverse, and took a quick video to show status.  I'm getting pretty good accuracy already, and I'm fairly certain that a bit of tuning will also improve it.


Rich Obermeyer

unread,
Jun 2, 2017, 12:13:51 PM6/2/17
to ope...@googlegroups.com
Very nice. Thanks.  
You definitely need to find a quieter vacuum pump solution.
That one would be very short use before I through it in the trash.

Alan Timm

unread,
Jun 2, 2017, 2:48:49 PM6/2/17
to OpenPnP
Yeah, for that vid it was about right next to the camera.  

That is the exact model recommended from the openpnp hardware build.

I'm open to suggestions.  Are modded aquarium pumps powerful enough?  Is there anything quieter?

Jason von Nieda

unread,
Jun 2, 2017, 2:53:44 PM6/2/17
to OpenPnP
For what it's worth, I now recommend and use this one: http://www.robotdigg.com/product/599/Diaphragm-pump-4-desktop-PNP-Machine

It works just as well as the SparkFun pump and is quite a bit more quiet and creates less vibration.

Jason


Maddog

unread,
Jun 2, 2017, 3:53:31 PM6/2/17
to OpenPnP
I was thinking of having the light and camera at 90deg with a 45% mirror to convert to vertical to avoid crap falling into the lights and camera.
Then a small gap where all the crap falls instead of sitting on the lens or leds.

Alan Timm

unread,
Jun 2, 2017, 4:53:16 PM6/2/17
to OpenPnP
Hey Maddog,

In my latest version I took a small piece of plastic from a plastic package and placed it over the top.  It slightly blurs the image, but the image is already blurred as an step in the pipeline.
I think I'm going to try another version where the light ring is farther up to see if I can light up the part even better.  In the current version the light ring sits in the base.

Rich Obermeyer

unread,
Jun 2, 2017, 5:50:52 PM6/2/17
to ope...@googlegroups.com
Alan,
I like your setup that I see.  
Just wondering if it was put on its side and a mirror is used so the part can be above it.
Then if you need the camera and LEDs 2-3 inches or more away, they can move back and forth with no problem.
Also when you drop a part it does not fall on the camera or LED PCB and short it out or get them dirty.
If there is a small gap from the mirror a waste tray can collect all the crap nicely.


To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+unsubscribe@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Rich

Alan Timm

unread,
Jun 3, 2017, 2:36:14 PM6/3/17
to OpenPnP
Hey guys, I think I'm pretty close to laying out my first board, but I'm hung up on fiducial alignment.


It finds both fiducials, but stores fiducial2 off from where it's located.

I've doublechecked and my steps per mm is perfect.   What am I missing?  Does fiducial alignment use the downward facing camera scaling values?




--
Rich

Jason von Nieda

unread,
Jun 3, 2017, 4:50:14 PM6/3/17
to OpenPnP
The number one cause of this problem is incorrect steps/mm. The easiest way to rule that out is with a ruler. See https://github.com/openpnp/openpnp/wiki/Setup-and-Calibration%3A-Steps-Per-Mm#testing-steps-per-mm. You should be able to reliably move back and forth between the 0 and 100mm marks with a 100mm jog and the lines should line up perfectly. If not, you likely have steps/mm errors.

Jason


Alan Timm

unread,
Jun 4, 2017, 12:30:38 AM6/4/17
to OpenPnP
Hey Jason,  that was it.

Turns out I needed to adjust my steps per mm, as well as add in a non-squareness factor.

I ended up using one of my panels as a reference, the lines on my rulers were just too thick.  :-)
Working the problem starting with steps per mm in the horizontal direction, I kept adjusting until I found the right number.  Ended up being 199.11 on this machine instead of the default 200.
Then noticed that the machine was just slightly parallelogram'd, so I followed your instructions and added a non-squareness factor to the setup.
Now everything seems close enough.  I'll most likely try populating my first panel tomorrow morning.

Thanks! 

Maddog

unread,
Jun 5, 2017, 3:23:21 PM6/5/17
to OpenPnP
@Alan,  What design tools did you use to generate for design?

Alan Timm

unread,
Jun 5, 2017, 6:06:09 PM6/5/17
to OpenPnP
Hey Maddog, This design was done in Fusion360. 

Alan Timm

unread,
Jun 6, 2017, 12:26:03 AM6/6/17
to OpenPnP
Well, I'm going to have to agree with Jason, I don't think a pick and place on a delta is going to work without adding some code to work around the delta limitations in this configuration.

I read Jason's thread about the firepick delta, and assumed the problem he was running into was a result of the arm configuration (Firepick vs Rostock)

I'm pretty sure I'm running into two issues, neither of which can be solved or mathed out:

1 Most/All Delta programming assumes that all 3 steppers have the exact same steps per mm. with no way to accurately validate or tune otherwise.  They're usually very close, but may not be exact.

2  It looks like irrespective of how accurate your build is, arm lengths etc, you will always have a varying twist to the effector plate as you move around in the x-y direction.  Normally not an issue as the hotend is centered when 3d printing.  In any situation where the pick nozzle is offset from the downward facing camera (which is always) it won't be possible to configure your nozzle offset at all.  When tuning the nozzle offset near one tower, your nozzle offset for another tower could be off by 2mm.

I suppose you might get closer if you eliminated the downward facing camera and centered the nozzle, but even then even slight skews in effector plate could take a placement out of spec.


I'll think about it some more, but for now I think I'd need to add the following code to OpenPnP for any chance of a delta working reliably:

 - I'm wondering if it would be possible to autoconfigure the nozzle offset using 3 pieces of putty near the 3 towers, and then model the nozzle offset based on x y location.  I'm not even sure there's going to be a relationship that can be easily modeled.  I'm not even sure this would work, but I'll lay out a whole bunch of putty balls tomorrow and see if the offset follows any kind of pattern.  If you set your offset by the x tower, maybe the nozzle offset's offset is predictable with two more points.  

 - I was also thinking about what a 4 point board or build plate configuration would look like, and it could calibrate and account for any small scaling issues in the x and y direction

Jason von Nieda

unread,
Jun 6, 2017, 12:38:50 AM6/6/17
to OpenPnP
Hi Alan,

Before you spend much more time on it, I'd suggest finding a way to do a grid calibration check with the camera and see how far you are off. Try to find the most accurate grid you can and lay it on the table. This could be a PCB with lots of fiducials, which is what we did to try to calibrate the FirePick Delta (FPD), some high quality graphing paper, maybe one of those optical mouse pads Sun used to sell, something like that. 

Then just jog around the grid looking at the camera and see how close you get to the grid intersections compared to expected position. Also look to see if the error looks basically linear, or if it seems somewhat random. With FPD it seemed random and I was never able to come up with a way to correct it better than about 0.2mm at the best and 0.5mm at the worst.

Jason




Alan Timm

unread,
Jun 6, 2017, 1:01:26 AM6/6/17
to OpenPnP
Hey Jason,

Thanks for the tip.  I'll print out some graph paper tomorrow and check the linearity and scaling of camera movements as well.

I had noticed that as I was cycling through the centroids on my board there was some weirdness to the offsets that didn't quite match an x-y or non-squareness issue.

It was the twist of the effector plate that really threw me for a loop.  I had no idea the delta did that.  And this one is set up as accurate as I know how to do.

Alan Timm

unread,
Jun 6, 2017, 11:23:44 AM6/6/17
to OpenPnP
Hey Jason,

I had some time this morning to print out some 10mm graph paper and check x-y linearity, and I'm seeing the similar distortion that I was seeing in the nozzle offset from last night.

My nozzle and camera are both offset from the center of the effector, so it's possible that it's just a twist that causing the problem.

Next step I guess is to see if I can identify a pattern to the offset/twist that can be removed based on calibration points.

As an added bonus, the camera itself is twisted depending on your x-y location, so there's no simple way to figure out what is horizontally level.  So that should also impact vision on the feeders.

I'm wondering if it would be possible to map the nozzle to camera offset based on a 3point or 4point calibration routine.  use one point as an anchor then map the deltas for the other 2 or 3.
If it's just a twist, maybe that can fed to the vision pipeline to rotate the camera based on the x-y coordinate?

Jason von Nieda

unread,
Jun 6, 2017, 11:31:35 AM6/6/17
to OpenPnP
Hi Alan,

You'd probably want to apply the correction at the Camera level, rather than in the pipelines. Camera knows it's X,Y location so could rotate the images before it outputs them. You'd need to write / modify a custom Camera class.

As for calibration, I'll wish you luck. I personally don't think these delta machines are accurate enough for PnP. There are just too many sources of error to try to chase it all down.

Jason


Alan Timm

unread,
Jun 7, 2017, 12:28:00 PM6/7/17
to OpenPnP
Hey Jason,

Thanks for the tip about the camera offset.  I suspect strongly that the delta effector plate rotates on the x-y plane.  If that's not the case,that means that the effector plate twists in all 3 dimension and delta 3d printers aren't as accurate as cartesian, and I'm not ready to concede that.  :-)

When I get back I'll print up another set of adapter plates, one with the camera centered on the effector, and a second one with the vacuum tip centered.  With the new adapater I only have to deal with one radial offset that varies based on x-y position.  I can use the first one to validate that there's no other twist.

Alan



On Tuesday, June 6, 2017 at 8:31:35 AM UTC-7, Jason von Nieda wrote:
Hi Alan,

You'd probably want to apply the correction at the Camera level, rather than in the pipelines. Camera knows it's X,Y location so could rotate the images before it outputs them. You'd need to write / modify a custom Camera class.

As for calibration, I'll wish you luck. I personally don't think these delta machines are accurate enough for PnP. There are just too many sources of error to try to chase it all down.

Jason

Reply all
Reply to author
Forward
0 new messages