ReferenceStripFeeder - Rotation in Tape

848 views
Skip to first unread message

Zdenko Stanec

unread,
Jun 9, 2022, 2:26:56 PM6/9/22
to OpenPnP
Hello,

I am preparing one of my biggest projects with 115 different types of components and I need some assistance so I limit potential issues as much as I can.

I know there were a few topics regarding these and I spend a few hours researching them same as GitHub but all I do just makes no sense to me.

I will cover it from the start so you can maybe see what I am missing.

First I have checked how component library/footprint should be made according to:

2.JPG

For example for Diode Cathode should be like this:
2a.JPG
I have checked the KiCad library and it should be OK.

4.JPG

Position on PCBA is 90 deg according to all of this:

3.JPG

Now, setting up ReferenceStripFeeder - Rotation in Tape, the position of my strip with diodes is positioned exactly like this strip shown below in the first picture, the direction of travel is to left, and the direction of feed is to the right, the Cathode of the diode is pointing upwards.

1.JPG

According to this if my Cathode is pointing upwards, it means that the diode is oriented 90deg in positive in reference to the direction of unreeling, right?

Unfortinently if I put "Rotation in the tape" to 90deg I do not get the correct placement.

Can someone please shine some light on me here, did I get it completely wrong or I am missing something here? 😊

Thanks,

Zdenko

Zdenko Stanec

unread,
Jun 9, 2022, 2:33:09 PM6/9/22
to OpenPnP
Pardon me, according to the last note diode in tape should be -90 negative according to the direction of unreeling, at least I think so. 🤕

mark maker

unread,
Jun 9, 2022, 2:48:51 PM6/9/22
to ope...@googlegroups.com

Does this help? (see the Rotation in Tape)

https://github.com/openpnp/openpnp/wiki/ReferencePushPullFeeder#tape-settings

But I'm not sure it works the same way in ReferenceStripFeeder.

_Mark

--
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 view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/254741d0-6395-44f8-86aa-247b4d6b4b6dn%40googlegroups.com.

Zdenko Stanec

unread,
Jun 9, 2022, 3:17:36 PM6/9/22
to OpenPnP
Hey Mark,

Thanks for the fast replay,

I have exact same setup but with diode, so the same position on the table and same direction of unreeling as on the picture below, and according to this my component (diode) is -90 in tape.

Diode.JPG

How does this work, if it is -90 orientation in tape, after pick it needs to rotate first to 0 deg and then 90 deg more, so basically 180deg? In my case, it moves only 90 deg after the pick.

If I put rotation in tape for example 0deg, and I press on "Move the camera to selected feeders current pick location" on the Bottom C for selected nozzle shows 270deg. 

Zdenko,

mark maker

unread,
Jun 10, 2022, 2:39:23 AM6/10/22
to ope...@googlegroups.com

Hi Zdenko

Just to make sure we both understand it the same way, your diode is drawn like this in the library:

4.JPG

And it is like this in the tape with the sprocket holes at top (standard EIA-481-C orientation):

This is how BlindsFeeder and ReferencePushPullFeeder work.


Unfortunately, (I just remembered) the ReferenceStripFeeder is different, despite the documentation saying otherwise!

See this discussion:

https://groups.google.com/g/openpnp/c/KzO9afo3GlE/m/0fmRZBVkAwAJ

It is programmed like this in the code, i.e. you have to mentally look at it with the sprocket holes to the right:

So this gives you +/-180° Rotation in Tape (for 180° it does not matter if plus or minus, you end up the same way).

I've improved the Wikis:

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

https://github.com/openpnp/openpnp/wiki/ReferencePushPullFeeder#tape-settings

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

@Zdenko, please confirm, so I'm sure this now right. 😬

_Mark

Zdenko Stanec

unread,
Jun 10, 2022, 3:26:35 AM6/10/22
to OpenPnP
Hey Mark,

>>Just to make sure we both understand it the same way, your diode is drawn like this in the library

Correct.

>> And it is like this in the tape with the sprocket holes at top (standard EIA-481-C orientation)

Correct.

>> It is programmed like this in the code, i.e. you have to mentally look at it with the sprocket holes to the right

So this means every ReferenceStripFeeder should be looked that way, no matter how they are positioned on the machine? If yes, mentally it is so weird and confusing. 😁

Zdenko

mark maker

unread,
Jun 10, 2022, 5:17:20 AM6/10/22
to ope...@googlegroups.com

Hi Zdenko,

STOP!

I just realized, the angled points are also swapped in the code (they go against direction of unreeling, i.e. it is reversed 180°). So the 0° tape orientation should actually be with the sprocket holes to the left.

So in your diode case that would give you Rotation in Tape of 0°:


This would make sense insofar, as most feeders in the default OpenPnP simulation are in this orientation, hinting towards what Jason thought to be 0° when he developed this:

@Zdenko, (or somebody else having parts with clear orientation/polarity in strip feeders) could you please test this quickly, to verify?

_Mark

Zdenko Stanec

unread,
Jun 10, 2022, 7:24:25 AM6/10/22
to OpenPnP
Hey Mark,

Good thing I am at work now so I will sort these components later, I will test this when I get home. 😁

I think my placement was ok when orientation in the tape was 0 deg, but I will confirm it later.

Zdenko,

mark maker

unread,
Jun 10, 2022, 7:43:17 AM6/10/22
to ope...@googlegroups.com

> I think my placement was ok when orientation in the tape was 0 deg, but I will confirm it later.

That, together with my own tests, already confirms it at least half-way. Thanks.

_Mark

mark maker

unread,
Jun 10, 2022, 8:54:46 AM6/10/22
to ope...@googlegroups.com

Hi everybody,

IMPORTANT: affects all users of ReferenceStripFeeder!

Because of the recurring problems (see this thread and here), I decided to fix it once and for all. All Rotation in Tape settings are now uniform and conformant to the EIA-481-C industry standard. Tape 0° is, when the tape has the sprocket holes on top, see the "Quadrant designations".

Screenshot_20220610_144403

Existing feeders are automatically migrated when you upgrade to the new OpenPnP testing version from today (2022-06-10) and later.

https://openpnp.org/test-downloads/

To make it clear: you do not need to do anything (just get used to the new meaning, and don't be surprised when your feeder's Rotation in Tape angles have magically changed by -90°.

The Wiki has been updated:
https://github.com/openpnp/openpnp/wiki/ReferenceStripFeeder#rotation-in-tape

More details here:
https://github.com/openpnp/openpnp/pull/1429

If somebody has a huge problem with that change, please speak up now

_Mark

Zdenko Stanec

unread,
Jun 10, 2022, 2:04:57 PM6/10/22
to OpenPnP
Hello Mark,

>> I think my placement was ok when orientation in the tape was 0 deg, but I will confirm it later.

I can confirm this now, before the update to correctly place that diode that we mentioned above, rotation Rotation in Tape needed to be 0 deg.

With the new update on test revision with Rotation in Tape -90deg for the same diodeplacement is OK, so this should now be up to standard. 😊👍

Cheers Mark, thanks for the effort! ✌😎

Zdenko

mark maker

unread,
Jun 10, 2022, 2:30:16 PM6/10/22
to ope...@googlegroups.com

Thanks, and just to be extra sure: it did migrate that diode feeder to -90° automatically, right?

_Mark

Zdenko Stanec

unread,
Jun 10, 2022, 2:31:19 PM6/10/22
to OpenPnP
Yep, it did! 👍

Zdenko

Ravi Ganesh

unread,
Jun 13, 2022, 9:03:01 PM6/13/22
to OpenPnP
Hi Mark, There seems no mapping between EIA-481 quadrant and rotation in tape. Rotation is a proprietary term for OpenPnP?
This change is very basic and will have adapting implications - both during setting up feeders in future and managing old feeders that is saved as .xml files
Migrating to a quadrant based method and doing away with the rotation terminology entirely would be good to users?
Ravi

mark maker

unread,
Jun 14, 2022, 3:43:07 AM6/14/22
to ope...@googlegroups.com

> This change is very basic and will have adapting implications ...

True, but IMHO mild ones.

> both during setting up feeders in future ...

True, you need to get used to the new, uniform definition. But will you notice after a week? 😎

> ... and managing old feeders that is saved as .xml files

No. As soon as you load an old feeders.xml into OpenPnP, even years later, it will be upgraded correctly. The upgrade flag is stored with each feeder individually.

> Migrating to a quadrant based method and doing away with the rotation terminology entirely would be good to users?

As far as I understood, this talk about quadrants is in fact strongly related to absolute part orientation, more specifically in which quadrant pin 1 is supposed to be, in the tape. In order to be able to talk about an absolute part orientation, we must also agree to the same absolute part orientation in the ECAD, because that's where we're getting our placement angles from.

But for ECAD absolute part orientation, the underlying problem is that there was only limited industry consensus as to what the canonical part zero orientation is. There are documents such as this one...

http://ohm.bu.edu/~pbohn/__Engineering_Reference/pcb_layout/pcbmatrix/Component%20Zero%20Orientations%20for%20CAD%20Libraries.pdf

... but AFAIK they are not universally adopted. And even if there was such a standard, OpenPnP users will still use old ECAD libraries, where parts are not standardized that way. For instance, many Open Source project Eagle libs are simply wrong.

So for OpenPnP we shouldn't even start talking about absolute part orientation. We should just tell people "look at the orientation in your ECAD library". Then see how that part/package/footprint is rotated relative from there:

Rotation in Tape

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

So a relative rotation is IMHO very clear to understand, for any kind of part and ECAD. I don't see how quadrants could be clearer. For instances, ask yourself "in what quadrant is pin 1 for that diode?" 😇

Furthermore, I'm not sure if it is completely out of the question, that a tape could hold exotic parts at non-90°-step angles, relative to how you have it in your ECAD (e.g. coin cell holder, TO-sockets, odd-shaped connectors etc.)

_Mark

Ravi Ganesh

unread,
Jun 14, 2022, 7:06:58 AM6/14/22
to OpenPnP
strip feeder.png
The proposed scheme will break the age old learning, which IMHO is correct as Jason originally reasoned.
EIA481 only talks about quadrants and nothing about orientation angle in feeder tapes.
Jason reasoned it one way and old OpenPnP users are accustomed to it. This is an easy way to corelate with CAD angle and Reel angle. 
Mark came up with another way of reasoning - based on EIA standards, which IMHO doesn't reason well with me.
Let us see what Jason has to offer as this has far reaching effects for the future.
Ravi

PS: I think we are in the same page as far as CAD rotation is concerned for the above three very common packages.

mark maker

unread,
Jun 14, 2022, 9:05:31 AM6/14/22
to ope...@googlegroups.com

Hi Ravi,

I agree, @vonnieda should ideally say what he thinks. I am curious.

> EIA481 only talks about quadrants and nothing about orientation angle in feeder tapes.

Well, it defines the quadrants as "upper left", "upper right" etc. in explicit relation to the sprocket holes being on top, which in my book is quite definitive.

Plus it clearly indicates the "User direction of unreeling", which becomes the axis that corresponds to 0°.

Wikipedia:

"... in mathematics, the reference direction is usually drawn as a ray from the pole horizontally to the right, and the polar angle increases to positive angles for ccw rotations..."

https://en.wikipedia.org/wiki/Polar_coordinate_system#Conventions

Screenshot_20220610_144403


But I'm open. If Jason argues for a different definition, we can also change the other two feeders around instead.

Note, when I programmed these other two feeders (BlindFeeder and ReferencePushPulllFeeder), I looked at the Wiki documentation of the ReferenceStripFeeder, which had it wrong and actually used the EIA-481 orientation. You can blame me to trust the Wiki. 😉

Old version:

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

_Mark

Ian Arkver

unread,
Jun 14, 2022, 10:30:08 AM6/14/22
to OpenPnP
Hi,

The version of EIA-481 that I have is Rev C from October 2003. As Ravi says, it makes no mention of a reference angle or of orientation angles, other than limits on how much a component is allowed to rotate in the pocket. This is probably deliberate on ANSI's part. The pictures on the (old) wiki are not from the spec.

Assigning a zero reference axis can be done arbitrarily, and both zero-along-the-unreeling-direction and zero-towards-the-sprockets make handwavy sense to me. Both have merits, neither are in the spec. There is no "EIA-481 orientation".

One has some established practice in the community and is how the code used to be for certain feeders. The other is how it's been done for other feeders. This is unfortunate and consistency would be nice, but I've no strong preference myself.

btw: If such a beast as an SMD TO-99 socket were ever made and sold on tape & reel I strongly suspect it would end up square, just like alu electrolytic caps. I don't think we need cross that bridge yet.

Regards,
Ian

Jason von Nieda

unread,
Jun 14, 2022, 11:19:48 AM6/14/22
to OpenPnP
Hey all, here's my thoughts:

When I originally wrote this I imagined that the most common use case would be standing in front of the machine, mounting strips that run back to front. If this was to be the most common case, then I wanted the default rotation value to be correct, so it became 0 when the tape is mounted in this fashion.

At the time, I didn't have access to the specs, or any experience with SMT, so I just made it up :)

I agree that EIA-481 is not specific on this, but I do think it makes an easy to understand reference for this, and I think it's a good change. Especially if this is how PushPull and Blinds works.

The documentation Mark added / updated at ( https://github.com/openpnp/openpnp/wiki/ReferenceStripFeeder#rotation-in-tape ) is now, I think, very clear and easy to understand.

I agree with Mark that the migration of data when you load should be seamless, and if you are used to working with the old system it's easy enough to mentally add 90 until you get used to it.

Looks good to me!

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.

Ravi Ganesh

unread,
Jun 14, 2022, 11:28:50 AM6/14/22
to OpenPnP
The confusion starts right here. +90 or -90!!

Ravi Ganesh

unread,
Jun 14, 2022, 12:07:44 PM6/14/22
to OpenPnP
1.jpg

mark maker

unread,
Jun 14, 2022, 1:14:28 PM6/14/22
to ope...@googlegroups.com

Hi Ravi,

Unless I'm missing something, your guidance shows exactly the new system, assuming you have your parts in the ECAD drawn with the industry part zero orientation (which I assume your guidance explains elsewhere).

Quadrant 1 Example:

The Zero Orientation document tells you, your ECAD orientation must be like this (images from the document):

That is already the rotation in the tape (= 0°), with the sprocket holes at the top.

Your guidance says 0° > CHECK 1


Quadrant 2 Example:

The Zero Orientation Doc tells you, your ECAD orientation must be like this:

You need to rotate that 90° clockwise (= -90°) to get the rotation in the tape, with the sprocket holes at the top.

Your guidance says -90° > CHECK 2


Quadrant 3 Example:

The Zero Orientation Doc tells you, your ECAD orientation must be like this:

You need to rotate that 90° counterclockwise to get the rotation in the tape, with the sprocket holes at the top.

Your guidance says 90° > CHECK 3


Quadrant 4 Example:

The Zero Orientation Doc tells you, your ECAD orientation must be like this:

You need to rotate the part by 180° to get the rotation in the tape, with the sprocket holes at the top.

Your guidance says 180° > CHECK 4


> The confusion starts right here. +90 or -90!!

If you are upgrading to the newest OpenPnP version and follow the Wiki, you don't need to care at all. Old feeders are upgraded automatically and individually, you don't need to know how.

There are only two transitory situations where you need to care:
  1. You still have the old OpenPnP version, but you are reading the new Wiki. Then when you setup new feeders, you have to add plus 90°, as it clearly says in the last point described there.
  2. You have been setting up ReferenceStripFeeders for years now, any you practically do it in your sleep. Then when you setup new feeders, you need to get used to the new angles which are the old angles minus 90°.
_Mark

surab...@gmail.com

unread,
Jun 14, 2022, 4:06:28 PM6/14/22
to ope...@googlegroups.com

Hi Mark,

I have captured the changes between the old and new system.

My concern is with ‘get used to the new angles” I think this is manageable.

 

 

Package

CAD orientation

Common Reel orientation

EIA-481 Quadrant

Rotation (old)

Rotation (New)

Resistor/non-polarized capacitor

2

0

-90

Polarized Capacitor

3

180

90

Electrolytic Capacitor

3

180

90

Diode

2

0

-90

SOT23 (depreciated)

3

90

0

SOT23 new

https://groups.google.com/u/1/group/openpnp/attach/183a2795a46ef/9EqCe1mh0dHoTEud.png?part=0.1.3&view=1

3

180

90

SO8

1

90

0

TQFP

1

90

0

QFN

1

90

0

PLCC

1

90

0

BGA

4

-90

180

 

image002.png
image014.png
image015.png
image016.png
image017.png
image018.png
oledata.mso
image019.jpg
image020.jpg
image021.jpg
image022.jpg
image003.png
image004.png
image006.png
image007.png
image009.png
image010.png
image012.png
image013.png
component orientation.docx
Reply all
Reply to author
Forward
0 new messages