component is mounted at an incorrect angle of 90 degrees.

147 views
Skip to first unread message

Saito Ryosuke

unread,
Nov 28, 2023, 7:20:50 AM11/28/23
to OpenPnP
Hi
I'm encountering a problem when mounting 0402 size chip resistors on a board, where they rotate 90 degrees, which is not supposed to happen.

I noticed a similar discussion in August, and we know that the posture of the component is consistently incorrect when problems occur.
After the part is removed from the feeder, it does not appear to reflect the rotation angle that is set on the feeder. That occurs from time to time.

problem : Picking parts using ReferencePushPullFeeder sometimes results in a 90degree offset in rotation angle.
OpenPnP Version : 2023-11-02_14-06-13.c1f9a80
Motion Controller : FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.4.6 ELECTRONICS: Duet 3 MB6HC v1.02 or later FIRMWARE_DATE: 2023-07-21 14:11:38
                    X:584.173 Y:357.149 Z:0.000 A:0.000 B:89.510 E:0.000 Count 75306 18162 0 0 796 Machine 584.173 357.149 0.000 0.000 89.510 Bed comp 0.000
                    Driver assignments: X0.0 Y0.1 Z0.2 (c)A0.3 (c)B0.4, 5 axes visible

First, I will answer the eight questions from mark that were discussed in August.
1. What type of feeder, exactly.
-> I'm using ReferencePushPullFeeder.
2. Regular pick from feeder?
-> yes
3. Or did you put the part on manually, or adjust it manually, as was said before?
-> no
4. Does it always happen given a certain placement angle, or just from time to time? If the latter, what is the estimated percentage?
-> just from time to time, My impression is that there is a 20-30% chance of this occurring. There are two nozzles and the phenomenon appears to be occurring at both nozzles.
5. Is is always plus or minus  90°, or are there other angles too?
-> This appears to occur when the location of the coordinate data is specified as +90 degrees or -90 degrees.
6. Does this only happen with small parts like 0402, 0603 or does it also happen with larger parts?
-> No data available at this time.
7. Do you use the stock Vision Settings / Pipelines, as is recommended?
https://github.com/openpnp/openpnp/wiki/Bottom-Vision#using-the-stock-vision-settings
-> That's what we think. We adjust the slider to optimize the vision settings.
8. Are you using pre-rotate?
-> yes, I'm using "Always On"

I'm attempting to read the log.
It doesn't appear that there are any particular problems going on, as was the case when it was discussed on this mailing list back in August.

I did notice one thing.
I have noticed that in cases where one of the feeder settings, "Rotation in Tape" is set to 90 degrees, but the part is placed at an incorrect angle of 90 degrees, the bottom camera image recorded by ImageWriteDebug always shows that the part is "not rotated".
(It appears as if it is still being taken out of the tape, rather than being rotated halfway through.)
Referring to past discussions, I have now set a total Pick Dwell Time of 170mSec for the head and nozzle tip to prevent the head from moving with insufficient pick force when the part is picked from the feeder, but this change did not improve the situation.

I'm currently using a Duet3 6HC as my motion controller.
What else should I look into?

I took some data. Too much to send by email, so here is a link to the data.
The data was set up to mount the same type of component in only two locations and obtained both cases where the rotation was made and cases where it failed.
http://gofile.me/3PODq/1QsWI6QlA
Data from multiple runs of the same test. A job file is also included here.
http://gofile.me/3PODq/uHilW1Ue3

thank you
Ryosuke
PlaceResults.pdf

Saito Ryosuke

unread,
Nov 28, 2023, 10:11:34 AM11/28/23
to OpenPnP
Hi
It seems that a rotation of the C-axis exceeding 180 degrees was commanded to Duet3 from OpenPnP, 
and since Duet3's current settings cannot accept a command exceeding 180degrees, no further rotation occurred.

I believe there was an option in the OpenPnP settings to not rotate the C axis by more than 180 degrees, and I remember enabling it, but I will check there tomorrow.

2023-1128-235806(1865x1116).png

thanks,
Ryosuke

2023年11月28日(火) 21:20 Saito Ryosuke <cron...@gmail.com>:
G-Code_R17_Invalid_rotate.txt
log_R17_Invalid_rotate.txt

mark maker

unread,
Nov 28, 2023, 10:50:31 AM11/28/23
to ope...@googlegroups.com

Ah, yes that explains a lot. We encountered this before:

https://groups.google.com/g/openpnp/c/DnpvszIEA5Q/m/xevUw4nhAQAJ

At the time I was surprised (but not sure) that Duet does not HALT the controller when a command cannot be executed due to soft limits. 

It would be useful to confirm whether this is true and if yes, ask Duet why the heck a soft limit violation is silently ignored, and subsequent commands still executed. IMHO, this could a very dangerous proposition in some NC applications!

> I believe there was an option in the OpenPnP settings to not rotate the C axis by more than 180 degrees, and I remember enabling it, but I will check there tomorrow.

Please read this, but you should only limit the rotation. If your tubes are running free, then it would be inefficient to limit rotation. OpenPnP can optimize a lot more if it can rotate freely.

https://github.com/openpnp/openpnp/wiki/Nozzle-Rotation-Mode

_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/CAH6K8ZW3O-7wN3k5q1Z4yCRQ3-agFU9nTywaCVCzPVciE4NDww%40mail.gmail.com.

Saito Ryosuke

unread,
Nov 29, 2023, 4:26:28 AM11/29/23
to ope...@googlegroups.com
Hi

Thank you mark, I was able to solve this problem.
Finally, I chose an approach to work around this problem by setting the soft limit on the C-axis to a very large value, similar to the config.g shown in the thread you shared.
It seems safe to assume that the problem has been solved because no mounting defects have occurred even though the number of components (n ≈ 100) that would always cause angle defects in the past have been mounted.

I now know that OpenPnP also supports machines that share a C-axis motor.
My concern was that the head would become too heavy with so many motors lined up. I would like to incorporate this into my new head idea.

Thank you!
Ryosuke

2023年11月29日(水) 0:50 'mark maker' via OpenPnP <ope...@googlegroups.com>:
Reply all
Reply to author
Forward
0 new messages