Part Rotation - Can't rotate 180 Deg?

79 views
Skip to first unread message

jamoiam

unread,
Sep 26, 2021, 12:25:21 AM9/26/21
to OpenPnP

I have a problem with part rotation that I can't figure out.

If I set part rotation for -90 or +90 deg, it works correctly up to around 150 deg. more than 170 deg - 180 deg I get close to 0 deg rotation.
I have turned off bottom vision, so this if a straight pick and place without any vision errors confusing the issue.

C-Axis +/- 180 deg wrap around disabled.
C-Axis Wrap around disabled.... and tried the other permutations of these options.

.....So at the moment it is not possible for me to do 180 deg part placements... which of course my board needs several of.
Is there something simple I am missing?
debug.txt

ma...@makr.zone

unread,
Sep 26, 2021, 6:59:03 AM9/26/21
to ope...@googlegroups.com

You need to send a log at TRACE level.

--
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/729ba10c-d871-400b-ad9d-1d165436caa2n%40googlegroups.com.

jamoiam

unread,
Sep 26, 2021, 3:43:12 PM9/26/21
to OpenPnP
Debug TRACE Level.
Part rotation set to 180 deg, but actual part placement is 0 Deg, no change from pick to place.
debug_trace.txt

ma...@makr.zone

unread,
Sep 26, 2021, 4:10:40 PM9/26/21
to ope...@googlegroups.com

According to the log, the rotation is correctly set to 180°:

2021-09-27 08:19:37.098 Scripting TRACE: Scripting.on Job.Placement.BeforeAssembly
2021-09-27 08:19:37.098 ReferenceHead DEBUG: H1.moveToSafeZ(1.0)
2021-09-27 08:19:37.099 AbstractHeadMountable DEBUG: N.moveToSafeZ(1.0)
2021-09-27 08:19:37.099 AbstractHeadMountable DEBUG: DownCamera.moveToSafeZ(1.0)
2021-09-27 08:19:37.099 AbstractHeadMountable DEBUG: N.moveTo((59.578000, 114.232000, 1.000000, 180.000000 mm), 1.0)
2021-09-27 08:19:37.101 GcodeDriver DEBUG: [serial://COM5] >> G1 X87.88 Y85.73  E180.00 F10000, 10000
2021-09-27 08:19:37.681 GcodeDriver$ReaderThread TRACE: [serial://COM5] << ok 0
2021-09-27 08:19:37.682 GcodeDriver TRACE: [serial://COM5] confirmed G1 X87.88 Y85.73  E180.00 F10000
2021-09-27 08:19:37.682 GcodeDriver DEBUG: [serial://COM5] >> G4 P1, 10000
2021-09-27 08:19:37.685 GcodeDriver$ReaderThread TRACE: [serial://COM5] << ok 0
2021-09-27 08:19:37.685 GcodeDriver TRACE: [serial://COM5] confirmed G4 P1
2021-09-27 08:19:37.686 AbstractHeadMountable DEBUG: N.moveTo((59.578000, 114.232000, -16.500000, 180.000000 mm), 1.0)
2021-09-27 08:19:37.687 GcodeDriver DEBUG: [serial://COM5] >> G1   Z-16.50  F10000, 10000
2021-09-27 08:19:38.603 GcodeDriver$ReaderThread TRACE: [serial://COM5] << ok 0
2021-09-27 08:19:38.610 GcodeDriver TRACE: [serial://COM5] confirmed G1   Z-16.50  F10000
2021-09-27 08:19:38.611 GcodeDriver DEBUG: [serial://COM5] >> G4 P1, 10000
2021-09-27 08:19:38.615 GcodeDriver$ReaderThread TRACE: [serial://COM5] << ok 0
2021-09-27 08:19:38.615 GcodeDriver TRACE: [serial://COM5] confirmed G4 P1
2021-09-27 08:19:38.616 ReferenceNozzle DEBUG: N.place()
2021-09-27 08:19:38.616 Scripting TRACE: Scripting.on Nozzle.BeforePlace
2021-09-27 08:19:38.616 ReferenceActuator DEBUG: Selenoid.actuate(false)
2021-09-27 08:19:38.616 GcodeDriver DEBUG: [serial://COM5] >> M42 P29 S0, 10000
2021-09-27 08:19:39.120 GcodeDriver$ReaderThread TRACE: [serial://COM5] << ok 0
2021-09-27 08:19:39.120 GcodeDriver TRACE: [serial://COM5] confirmed M42 P29 S0
2021-09-27 08:19:39.120 GcodeDriver$ReaderThread TRACE: [serial://COM5] << Set output: 29 to 0
2021-09-27 08:19:40.120 GcodeDriver$ReaderThread TRACE: [serial://COM5] << wait
2021-09-27 08:19:40.121 Scripting TRACE: Scripting.on Nozzle.AfterPlace
2021-09-27 08:19:40.121 AbstractHeadMountable DEBUG: N.moveToSafeZ(1.0)
2021-09-27 08:19:40.121 AbstractHeadMountable DEBUG: N.moveTo((59.578000, 114.232000, 1.000000, 180.000000 mm), 1.0)
2021-09-27 08:19:40.135 GcodeDriver DEBUG: [serial://COM5] >> G1   Z1.00  F10000, 10000
2021-09-27 08:19:40.143 GcodeDriver$ReaderThread TRACE: [serial://COM5] << ok 0
2021-09-27 08:19:40.150 GcodeDriver TRACE: [serial://COM5] confirmed G1   Z1.00  F10000
2021-09-27 08:19:40.150 GcodeDriver DEBUG: [serial://COM5] >> G4 P1, 10000
2021-09-27 08:19:40.154 GcodeDriver$ReaderThread TRACE: [serial://COM5] << ok 0
2021-09-27 08:19:40.154 GcodeDriver TRACE: [serial://COM5] confirmed G4 P1
2021-09-27 08:19:40.155 Scripting TRACE: Scripting.on Job.Placement.Complete

So if you are physically not seeing the 180°, the problem must be the controller or the hardware,

_Mark

jamoiam

unread,
Sep 26, 2021, 4:56:44 PM9/26/21
to OpenPnP
Thanks, that's what i though I could understand from the debug.
However the 180 deg indicated by the debug, is only the debug echo right?
I can't see actual G-code for the actual 180 deg rotation.... or is that not displayed in the debug?
Hardware must be fine as 90 deg works fine either direction, all the way up to around +/- 150 deg.... and will jog +/-  to infinity

I have noted after this pick and place with 180 deg I can no longer jog the C or Z axis. Debug indicates camera moves only?
Debug for that attached.
Do I have the axes setup wrong?
jog.txt

bert shivaan

unread,
Sep 26, 2021, 5:18:15 PM9/26/21
to OpenPnP
seems like it moves it here:
2021-09-27 08:19:37.101 GcodeDriver DEBUG: [serial://COM5] >> G1 X87.88 Y85.73  E180.00 F10000, 10000

then for the rest of the moves it is already at 180 so it doesn't send out the move to 180.

I could be wrong

jamoiam

unread,
Sep 26, 2021, 5:34:37 PM9/26/21
to OpenPnP

cncmachineguy : Yes, thanks, so it does. I was blind... been starting at the problem to long

jamoiam

unread,
Sep 30, 2021, 4:09:37 AM9/30/21
to OpenPnP
I did find the problem in the Firmware code for the hardware supplied to me. A typo (not by me).

Thanks for the help with the debug.

Resolved - CLOSED
Reply all
Reply to author
Forward
0 new messages