OpenPnP User Manual

115 views
Skip to first unread message

Jason von Nieda

unread,
Jul 7, 2015, 11:50:50 PM7/7/15
to fire...@googlegroups.com, ope...@googlegroups.com
Hi folks,

For this struggling with how to get things moving in OpenPnP, I've just finished some updates to the User Manual that might help. It's not much, but I hope it will help people get started. 

https://github.com/openpnp/openpnp/wiki/User-Manual#boards. The sections of interest are Boards, Jobs and Your First Job.

If you enjoy writing documentation, and who doesn't, please feel free to add to it!

Jason


Michael Anton

unread,
Jul 8, 2015, 12:12:17 AM7/8/15
to fire...@googlegroups.com, ope...@googlegroups.com
The method I've used on a non OpenPNP machine to align the nozzle to the camera is this:
1) Put a piece of double sided tape onto a PCB that is mounted to the bed.
2) Move the nozzle over to the middle of the tape.
3) Lower the nozzle to the tape, and allow it to contact the tape.
4) Raise the nozzle back up.  This should leave a mark in the tape.  Pushing fairly hard into the tape helps make the mark more visible.
5) Target the mark with the camera.

This seems simpler than trying to get the nozzle lined up with a mark, and instead uses the nozzle to make the mark.  I've heard of others doing this with carbon paper, instead of tape.  We always had tape by the machine, so it was handy, and worked well.  The tape we used is like Scotch tape, but is double sided, and the adhesive is not super strong.

Software I've used usually uses the camera as the primary reference (not that it really matters), i.e. the camera is at (0,0), and everything thing else is referenced to it.  So anytime you move to a coordinate, the camera is centered on the location, not the nozzle.


Mike

Jason von Nieda

unread,
Jul 8, 2015, 12:16:20 AM7/8/15
to ope...@googlegroups.com, fire...@googlegroups.com
Yea, the instructions on the Wiki are out of date. The way I do it now is exactly as you say, except I use a bit of silly putty or bubble gum instead of the tape. I'll get the Wiki updated tonight.

I use the camera as the primary reference, now, on my machine but my machine has a camera that is fixed in Z. Some machines, like FPD, have a camera on a moving Z in which case it's better to use the nozzle as the reference.

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/d4f01602-e65c-4d56-974d-8cccc498301b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Michael Anton

unread,
Jul 8, 2015, 12:24:35 AM7/8/15
to fire...@googlegroups.com, ope...@googlegroups.com
Perhaps the nozzle Z could be independant of the focus distance required by the camera?  If a component is being placed that is tall, this will require the nozzle to be raised, but we may not want to raise the camera.  The camera will still need to focus on the PCB, rather than on the top of the part.  Being able to focus on the top of the part at times would be useful for reading a value, but that could be done manually, I suspect.

The FPD is certainly going to have a few additional requirements, that a more traditional style of machine would not, due to the camera being mounted on the end effector.

Mike

Jason von Nieda

unread,
Jul 8, 2015, 12:29:55 AM7/8/15
to ope...@googlegroups.com, fire...@googlegroups.com
Indeed, this is all handled by the offsets in OpenPnP already.

For a camera on a moving Z you set the Z offset of the camera to be the focal distance from the tip of the nozzle. With the nozzle offset being 0,0,0 this means that to focus on an object that the nozzle is touching you move the machine by the camera offsets which will put it centered over the place the nozzle was touching and at the distance at which the camera focuses. This is why the nozzle is used as the reference for a moving Z camera.

Any time OpenPnP makes a movement it moves the head relative to the offset of the object being moved. So if, internally, we want to focus the Camera on a board we'll move to different Z than if we want to put the nozzle on the same spot.

Jason




Michael Anton

unread,
Jul 8, 2015, 12:40:18 AM7/8/15
to ope...@googlegroups.com, fire...@googlegroups.com
So if the nozzle offset is (0,0,0), and I pick a component on a board, and command a move to the component, what is the camera centered on after the move?  Ideally, this should center the camera over the part, but with a nozzle offset of (0,0,0), I suspect the nozzle would be centered on the part (unless there is some other special handling that takes care of this).

Mike

Jason von Nieda

unread,
Jul 8, 2015, 12:47:50 AM7/8/15
to ope...@googlegroups.com, fire...@googlegroups.com
All moves include the object being moved (camera, nozzle, etc.) and it's specific offsets are applied. So if you have your nozzle touching a spot and you command the camera to move to the same coordinates as the nozzle is at the camera's offsets will be subtracted from those coordinates and the camera will move to where the nozzle was touching in X and Y and up or down in Z by the Z offset.

Head offsets are relative to each other, not absolute. So a nozzle offset of 0,0,0 just means that when we want to move the nozzle to 10,20,30 we tell the motion controller to move to 10,20,30. With camera offsets of 10,10,10, that same move for the camera would tell the motion controller to move to 0,10,20 by subtracting the offsets (10,10,10) from the target coordinates of 10, 20, 30.

Hope that's clear. I am writing something similar up in the Wiki right now and will link it when I am finished.

Jason



Jason von Nieda

unread,
Jul 8, 2015, 1:18:34 AM7/8/15
to ope...@googlegroups.com, fire...@googlegroups.com
I've updated the Wiki for setting offsets:


Ignore my previous statements about using the camera as the reference. Using the nozzle as the reference (offset of 0,0,0) handles both cases of a moving or fixed Z camera.

Jason

Loren Ristola

unread,
Jul 8, 2015, 1:37:21 AM7/8/15
to ope...@googlegroups.com, fire...@googlegroups.com
Jason,

Having a few issues with OpenPnp.
Compiling from the repo "https://github.com/firepick-delta/openpnp" - it seems many functions quit working.
When selecting "Go to Zero" the only thing that happens is the DRO zero's out.
- If selection 0.1 and Jog Z down one click... it moves to what used to be the Zero Position.
- Jogging C Axis (Nozzle) no longer rotates the Crosshairs or Ruler on the Camera View.
- I am not able to set the Camera Offset with this compile.  No matter what I do, trying to move to camera view only pops up a Blank Movement Error Box.
- Under the Feeder Setup, When selecting the Camera Position, it doesn't update the positioning.  The tool save position does.

I tried running your pre-compiled, but it only has the null driver.  I cannot change the machine.xml with the firepick driver as it bombs out when trying to run.

Suggestions ?

Loren

Jason von Nieda

unread,
Jul 8, 2015, 1:44:53 AM7/8/15
to fire...@googlegroups.com, ope...@googlegroups.com
Hi Loren,

Are you using Marlin, FireStep or something else? Most of the problems you describe sound like the driver not reporting it's position correctly.

As for the pre-compiled ones, you can select your driver from the Machine Setup panel by selecting the top level item in the tree. This should be called ReferenceMachine.

Jason



--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.
To post to this group, send email to fire...@googlegroups.com.
Visit this group at http://groups.google.com/group/firepick.

Ristola

unread,
Jul 8, 2015, 2:01:10 AM7/8/15
to fire...@googlegroups.com, ope...@googlegroups.com
Jason,

Well that explains it. 
I am using "org.firepick.driver.FireStepDriver", so perhaps that hasn't evolved far enough to work correctly with Openpnp yet.

Thanks.

Neil Jansen

unread,
Jul 8, 2015, 7:06:00 PM7/8/15
to fire...@googlegroups.com, ope...@googlegroups.com
On Wed, Jul 8, 2015 at 2:01 AM, Ristola <lo...@ristolatechnicalservices.com> wrote:
Jason,

Well that explains it. 
I am using "org.firepick.driver.FireStepDriver", so perhaps that hasn't evolved far enough to work correctly with Openpnp yet.

Loren,

The FireStep driver I wrote works absolutely fine with OpenPnP.  I can help you get your problems diagnosed but will need some more information.  Read the page linked below very carefully and submit an actual bug report as indicated, with the required bits of information.  Regardless of whether it's a software bug or a configuration issue, this will help me track and improve the process to make sure it doesn't happen to anyone else.  This forum is not the best place to try to report and track bugs, as things get forgotten about as new stuff pops up.



--
Neil Jansen, Co-Founder
Tin Whiskers Technology, LLC

Ristola

unread,
Jul 8, 2015, 9:41:53 PM7/8/15
to fire...@googlegroups.com, ope...@googlegroups.com
Neil,

Thanks for the reply.
I didn't want to just submit a bug reports if the issues I mentioned were still a work in progress.
I will submit the bug report as to resolve the issues I am having.

Loren
Reply all
Reply to author
Forward
0 new messages