Newbie Links

148 views
Skip to first unread message

zzimdog

unread,
Mar 27, 2023, 6:58:45 PM3/27/23
to OpenPnP
Hello everyone,
I was wondering if anyone has links to some good resources for setting up a job feeders etc. I have ran into a few issues and I think maybe I am missing something.

 I imported my placements from a csv pick and place file that was output from altium. I converted it from mil to mm added in the board offset and renamed the headers to fields that openpnp supported. It does not ask me anything during the import so I guess it maps everything automatically.
 I then created a package and a part for my fid as shown in one of the user documents.  The fids do not seem to work reliably. when I change the max distance from 3 to 1 the board fids seem to work better but then the homing fid does not.
The biggest issue right now is that I setup one strip feeder to test and noticed that the rotations are out of whack. When I look at the job and jump through different parts it seems the ICs are all pointing the correct direction but then resistors and other components are not. Since these rotational values are in the placement data it seems like maybe i need to set some kind of reference? In the tape rotation I have the same as in the liteplacer settings for this part. I have also changed it. When I look at the retinal under the feeder part it does not seem to change when I put different rotations in. 

Anyway I have been looking through the openpnp video channel on youtube and also the user guide and help links and have not really seen anything substantial on setting up a job. 

I guess I can go through all the parts in the imported placements and just check them and change rotation for each one but seems like this would not be normal operating procedure. 

Thanks,

Mike

Jan

unread,
Mar 28, 2023, 3:47:20 AM3/28/23
to ope...@googlegroups.com
Hi Mike!
Importing Altium .csv data works straight forward with two exception:
1) you have to configure Altium to output "Ref-X" and "Ref-Y" in any
units. The unit detection is automatic based on the name (ending in
"(mil)" or "(mm)"). The default "Center-X"/"Center-Y" are not
detected/decoded. And 2) for bottom side components the rotation is
inverted. Altium and OpenPnP use different references which are not
handled by the importer. Unfortunately I don't remember the full details
but this was discussed a few times on this list including sketches that
show the required translation.
Concerning the part orientation in feeders: this is a common problem
and depends on the button you're using: if you use the bottom described
as "Move the camera to the selected feeder's current pick location"
you'll get the correct orientation. See
https://github.com/openpnp/openpnp/wiki/Setup-and-Calibration_Feeders#locate-a-part
for details. I recommend to defined footprints for packages of interest
and mark the reference pin eg. using a different roundness. This are
overlaid if you view the part/feeder and greatly help to identify if the
orientation is ok. (Maybe you need to enable View -> Selections in
Tables -> Linked from the menu to enable the correct overlay).
Fiducials shall work well if you use the (not so) new pipeline stage
"DetectCircularSymmetry". You can also define different vision settings
for visual homing and board fiducials. You will find details and
suggested pipelines to copy&paste at
https://github.com/openpnp/openpnp/wiki/DetectCircularSymmetry.

Jan
> --
> 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
> <mailto:openpnp+u...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/c6ac2d61-ef0c-46a8-94f9-1051f45c8974n%40googlegroups.com <https://groups.google.com/d/msgid/openpnp/c6ac2d61-ef0c-46a8-94f9-1051f45c8974n%40googlegroups.com?utm_medium=email&utm_source=footer>.

Mark

unread,
Mar 28, 2023, 7:51:53 AM3/28/23
to ope...@googlegroups.com

Jan is right plus I'd like to add these links:

https://github.com/openpnp/openpnp/wiki/ReferenceStripFeeder#rotation-in-tape

For the fiducial vision you should be able to use the stock vision settings directly. No need to fiddle with pipelines manually.

Just make sure to create a separate Package for each fiducial diameter. There must be a footprint with one pad with 100% roundness and the width/height set to the diameter of the fidcuial.

For visual homing, i.e. the visual home fiducial, please use Issues & Solutions:

https://github.com/openpnp/openpnp/wiki/Visual-Homing#use-issues--solutions

_Mark

Mike Z

unread,
Mar 30, 2023, 3:58:26 PM3/30/23
to ope...@googlegroups.com
Thank You Jan and Mark. I had set up everything through the issues and solutions. The visual homing was working fine. I started having problems when I started to actually set up to do a job. I do not have access to altium anymore to output the files directly. So I went through the process like I did with the liteplacer software and converted the x and y to mm subtracted the board origins and it seems to find all the parts in the right place so I believe that part is fine. I started noticing that rotations on some parts were correct and on others they were not. 

This is a brand new setup but think I am going to give it one more shot today and then probably try to see if I can get everything back to where I can run the boards with the liteplacer software as I seem to be going in circles right now and only have a couple more days to get a set of boards done.

The rotation does show correctly when I use the button "Move the camera to the selected feeder's current pick location" so that problem is solved :) Thanks Jan. 

Right now this is just a top sided board the next one I am running is a dual sided board but didn't want to get into the extra issues. The homing works unless I change the distance setting for the board fiducials. If I do not change the distance to a smaller number the board fiducials do not work. For some reason I can move manually to the fiducial location and it is almost accurate. When I run the fiducial check it will pick something else. Like there is a silkscreen of an R about 2 mm away from the fiducial. Instead of picking the round fiducial it is directly over it jumps over to the top of the R and thinks that is better. I have looked at the pipeline stuff but have not tried to change much and believe everything is back to default now. I am actually thinking of maybe deleting all the vision stuff and seeing if solutions will start to walk me through recreating it again. 

I currently have all the parts disabled in the project except the 4 fiduals and 2 parts that come from the one feeder that is currently defined. I have manually changed the rotations for these two parts and disabled the fiducal check and now get the 2 parts to be placed at least in the right orientation though a little off on the pads. I am not sure what the bottom vision is doing yet it brings the part over and just kind of shows a grey rectangel around it in the camera view and then places it. It seems a little skewed so imagine I need to define packages etc as it does not really seem to highlight the legs or anything. 

Right now I am more concerned with just getting it to place parts with at least as good of precision as the liteplacer software. I know it can do better from the videos I have watched once I get the bottom vision working. Need to figure out the basics though at this stage :)

I am usually not this incompetent with figuring something out but so far openpnp is kicking my butt :)

Mike

To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/85cbef3c-93d6-b424-fca3-0210f7d9d969%40makr.zone.

mark maker

unread,
Mar 31, 2023, 3:24:17 AM3/31/23
to ope...@googlegroups.com

Hi Mike Z

It would be better to split your concerns into individual discussion threads/topics, and also open new topics when new problems pop up. So pleaase structure yours into...

  • Rotation
  • Fiducial
  • Bottom Vision
  • etc.

Also you should provide camera images etc.

https://github.com/openpnp/openpnp/wiki/FAQ#how-can-i-get-a-native-camera-image

Otherwise this becomes confusing for all sides, difficult to track to any resolutions, and it is very difficult to find and navigate for other users that might need to solve a similar problem in the future.

Each of these from-problem-to-resolutions threads becoming an Open Source community resource is the very reason for many to be willing to help and investing their time here (including me). 😎

_Mark

Jan

unread,
Mar 31, 2023, 4:14:48 AM3/31/23
to ope...@googlegroups.com
Hi Mike!

On 30.03.2023 21:58, Mike Z wrote:
> Thank You Jan and Mark. I had set up everything through the issues and
> solutions. The visual homing was working fine. I started having problems
> when I started to actually set up to do a job. I do not have access to
> altium anymore to output the files directly. So I went through the
> process like I did with the liteplacer software and converted the x and
> y to mm subtracted the board origins and it seems to find all the parts
> in the right place so I believe that part is fine. I started noticing
> that rotations on some parts were correct and on others they were not.
>
Just for completeness: the .csv-importer searched the file for a header
line with descriptions of the content in each column. It accepts the
Altium names "REF-X(MM)", "REF-X(MIL), "REF-Y(MM)" and "REF-Y(MIL)" and
does the mil to mm conversion as required. There is also no cogent need
to apply any transformation to the data. You just have to specify the
origin of the board as part of the job. However, if you'd like to flip
the board to the bottom side, OpenPnP assumes that the origin is on the
left hand side and applies the transformation x' = Length - x. If the
origin is not on the left hand side, this will lead to bad placement
locations. You may compensate that by specifying a different Length
(different between origin as viewed from top and bottom)
As Altium user I recommend to always wrap the actual board into a panel
using the Place -> Embedded Board Array/Panelize feature. This allows
you to leave the origin of the PCB where it is best suited for the
design while having the origin of the panel on the recommended lower
left corner.

Jan

[...]
> On Tue, Mar 28, 2023 at 6:51 AM Mark <ma...@makr.zone> wrote:
>
> Jan is right plus I'd like to add these links:
>
> https://github.com/openpnp/openpnp/wiki/ReferenceStripFeeder#rotation-in-tape <https://github.com/openpnp/openpnp/wiki/ReferenceStripFeeder#rotation-in-tape>
>
> For the fiducial vision you should be able to use the *stock vision
> settings* directly. No need to fiddle with pipelines manually.
>
> Just make sure to create a separate Package for each fiducial
> diameter. There must be a footprint with one pad with 100% roundness
> and the width/height set to the diameter of the fidcuial.
>
> For visual homing, i.e. the visual home fiducial, please use Issues
> & Solutions:
>
> https://github.com/openpnp/openpnp/wiki/Visual-Homing#use-issues--solutions <https://github.com/openpnp/openpnp/wiki/Visual-Homing#use-issues--solutions>
>
> _Mark
>
>
>
> On 28.03.2023 09:47, 'Jan' via OpenPnP wrote:
>> Hi Mike!
>>     Importing Altium .csv data works straight forward with two
>> exception: 1) you have to configure Altium to output "Ref-X" and
>> "Ref-Y" in any units. The unit detection is automatic based on the
>> name (ending in "(mil)" or "(mm)"). The default
>> "Center-X"/"Center-Y" are not detected/decoded. And 2) for bottom
>> side components the rotation is inverted. Altium and OpenPnP use
>> different references which are not handled by the importer.
>> Unfortunately I don't remember the full details but this was
>> discussed a few times on this list including sketches that show
>> the required translation.
>>     Concerning the part orientation in feeders: this is a common
>> problem and depends on the button you're using: if you use the
>> bottom described as "Move the camera to the selected feeder's
>> current pick location" you'll get the correct orientation. See
>> https://github.com/openpnp/openpnp/wiki/Setup-and-Calibration_Feeders#locate-a-part <https://github.com/openpnp/openpnp/wiki/Setup-and-Calibration_Feeders#locate-a-part> for details. I recommend to defined footprints for packages of interest and mark the reference pin eg. using a different roundness. This are overlaid if you view the part/feeder and greatly help to identify if the orientation is ok. (Maybe you need to enable View -> Selections in Tables -> Linked from the menu to enable the correct overlay).
>>     Fiducials shall work well if you use the (not so) new pipeline
>> stage "DetectCircularSymmetry". You can also define different
>> vision settings for visual homing and board fiducials. You will
>> find details and suggested pipelines to copy&paste at
>> https://github.com/openpnp/openpnp/wiki/DetectCircularSymmetry
>> <https://github.com/openpnp/openpnp/wiki/DetectCircularSymmetry>.
>>> <mailto:openpnp+u...@googlegroups.com>
>>> <mailto:openpnp+u...@googlegroups.com>.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/openpnp/c6ac2d61-ef0c-46a8-94f9-1051f45c8974n%40googlegroups.com <https://groups.google.com/d/msgid/openpnp/c6ac2d61-ef0c-46a8-94f9-1051f45c8974n%40googlegroups.com> <https://groups.google.com/d/msgid/openpnp/c6ac2d61-ef0c-46a8-94f9-1051f45c8974n%40googlegroups.com?utm_medium=email&utm_source=footer> <https://groups.google.com/d/msgid/openpnp/c6ac2d61-ef0c-46a8-94f9-1051f45c8974n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>
> --
> 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
> <mailto:openpnp+u...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/85cbef3c-93d6-b424-fca3-0210f7d9d969%40makr.zone <https://groups.google.com/d/msgid/openpnp/85cbef3c-93d6-b424-fca3-0210f7d9d969%40makr.zone?utm_medium=email&utm_source=footer>.
>
> --
> 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
> <mailto:openpnp+u...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/CAJ9bMN6Pkf6bbo%2Bs3FrVxvEPuXZA6Lix_8QHpLCxesszUmJQDA%40mail.gmail.com <https://groups.google.com/d/msgid/openpnp/CAJ9bMN6Pkf6bbo%2Bs3FrVxvEPuXZA6Lix_8QHpLCxesszUmJQDA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Mike Z

unread,
Mar 31, 2023, 8:29:57 AM3/31/23
to ope...@googlegroups.com
Thanks Mark , Didn't look at it that way though it should  be obvious as I struggle trying to find the answers for the same reason . Plus the added benefit of someone who knows the answer to one of the issues to answer instead of waiting for someone that might know everything. I always thought of it as keep the posts to a minimum so as not to become a burden while trying to get up to speed. ;)

Mike

Mike Z

unread,
Mar 31, 2023, 8:39:08 AM3/31/23
to ope...@googlegroups.com
Thank you Jan. I am in the process of going through the machine setup from scratch again and will try to just change the headers to the appropriate names and see what happens. I do not have access to altium. I just have the design files and the outputs to work from right now. 

I will start a new discussion on this once I get to that point if I have any issues.

Thanks to both of you again for the help.

Mike

To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f816d9b9-bab9-59a6-4fcd-c13880775b03%40googlemail.com.

zzimdog

unread,
Mar 31, 2023, 10:38:17 PM3/31/23
to OpenPnP
Jan,
So while I am waiting for a corrected altium file I opened up the one I had. Changed the x and y to ref. and saved it as a comma delimited file. It imported correctly as you stated. I still need to do the part where you mention I need to add the origin to the job file. I set the board location. I do not see any other options to add anything else. Right now it shows all the parts up and to the right when I look at the display a graphical representation. Where do I add this?

Thanks,

Mike

Ravi Ganesh

unread,
Apr 4, 2023, 2:14:04 PM4/4/23
to OpenPnP
Jan,
Your idea " I recommend to defined footprints for packages of interest
and mark the reference pin eg. using a different roundness. This are
overlaid if you view the part/feeder and greatly help to identify if the
orientation is ok."
is great.

Part rotation in also dependent on the imported database. So as a next step I would recommend to move camera to a placement on the board and verify the orientation the same way.
If it is wrongly rotated make necessary correction in "rotation of part in tape" in feeders panel.
If all this can be automated into a button-instruction panel - it would make life easy.

It need not be for the strip feeder or binds feeder. It can be generalized for all feeders - including tray and loose parts feeder.
Any comments??

Ravi




Jason von Nieda

unread,
Apr 4, 2023, 2:47:50 PM4/4/23
to OpenPnP
If I understand you correctly, I think this is similar to something I started working on a while back. See here for a demo:


This would allow you to see sort of an X-ray view of the part over the placement so you could line it up and train.

The code is still available if anyone wants to mess around with it:


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.

surab...@gmail.com

unread,
Apr 4, 2023, 5:14:38 PM4/4/23
to ope...@googlegroups.com

Super. This time it will “train” the “rotation of part” in feeder.

--
You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/Tvy4ieSy5Q4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/eafdb814-f68b-4933-b579-8f5f43c6293a%40app.fastmail.com.

Reply all
Reply to author
Forward
0 new messages