Testing-Round,

850 views
Skip to first unread message

ma...@makr.zone

unread,
Jan 21, 2021, 3:15:17 PM1/21/21
to OpenPnP

Hi all

There is a new testing version available with brand-new Auto-Backup and many new Issues & Solutions detected, plus bug-fixes out of the testing feed-back.

Thanks to all the testers and welcome new ones! ;-)

The testing round contents are:

The Latest details:

  • All the configuration XML files are now backed up, before being overwritten. A new subdirectory backups is created inside the .openpnp2 directory, further subdivided by date and time. Configuration files are copied there. Migration, testing and using Issues & Solutions becomes much safer with proper backups. ;-)
  • Issues & Solutions: many new solutions added (includes linked new Wiki content).
  • Issues & Solutions for initial machine setup: automatic replacement of the simulation NullDriver with a GcodeAsyncDriver.
  • Issues & Solutions for initial machine setup: automatic replacement of the simulation ImageCamera and SimulatedUpCamera with a OpenPnpCaptureCamera.
  • Bug-fix: Support for 0 fps in ReferenceStripFeederConfigurationWizard AutoSetup.
  • Bug-fix: Marlin does not understand G-code with both M and G words on the same line (as it should), a newline was added.
  • Bug-fix: Feeders without parts (i.e. parts that were deleted).
  • Bug-fix: FeedersPanel tab index race condition.


_Mark

ozzy_sv

unread,
Jan 24, 2021, 11:52:24 AM1/24/21
to OpenPnP
Hello, 
it works well for me
but when you fix this dialog after lower vision failure
четверг, 21 января 2021 г. в 22:15:17 UTC+2, ma...@makr.zone:

jdlv...@gmail.com

unread,
Jan 24, 2021, 1:19:09 PM1/24/21
to OpenPnP
Hi Mark

transition and Issues & Solutions went fine but sometimes the nozzle cannot be manually moved no more. Attached is a log, the "freeze" occurs very soon after the homing.
Another problem with my python script, now Openpnp complains about machine task :

2021-01-24 18:59:25.758 MessageBoxes DEBUG: Error: javax.script.ScriptException: java.lang.Exception: java.lang.Exception: Actuator H1Valve must not coordinate with machine when actuated outside machine task. in CheckStock J310-refill.py at line number 281

Sorry google doesn't want me to join files so here is the log from the end of homing to the Z freeze. If you need the full log I can send it privately.

2021-01-24 18:54:20.085 ReferenceMachine INFO: setHomed(true)
2021-01-24 18:54:31.774 AbstractHeadMountable DEBUG: N1.moveTo((-21.241000, -50.316000, -1.000000, 179.655800 mm), 1.0)
2021-01-24 18:54:31.774 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, -1.000000, 179.655800 mm), ...)
2021-01-24 18:54:31.775 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, -1.000000, 179.655800 mm), ...)
2021-01-24 18:54:31.777 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S500.00 G1   Z-1.0000  F1341.64 ; move to target, 10000)...
2021-01-24 18:54:31.777 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S500G1Z-1F1341.64
2021-01-24 18:54:31.778 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:32.966 AbstractHeadMountable DEBUG: N1.moveTo((-21.241000, -50.316000, 0.000000, 179.655800 mm), 1.0)
2021-01-24 18:54:32.966 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, 0.000000, 179.655800 mm), ...)
2021-01-24 18:54:32.967 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, 0.000000, 179.655800 mm), ...)
2021-01-24 18:54:32.969 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S500.00 G1   Z0.0000  F1341.64 ; move to target, 10000)...
2021-01-24 18:54:32.969 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S500G1Z0F1341.64
2021-01-24 18:54:32.970 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.654 ReferenceHead DEBUG: H1.moveToSafeZ(1.0)
2021-01-24 18:54:35.654 AbstractHeadMountable DEBUG: N1.moveToSafeZ(1.0)
2021-01-24 18:54:35.654 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, 0.000000, 179.655800 mm), ...)
2021-01-24 18:54:35.654 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, 0.000000, 179.655800 mm), ...)
2021-01-24 18:54:35.655 AbstractHeadMountable DEBUG: Top Camera.moveToSafeZ(1.0)
2021-01-24 18:54:35.655 AbstractHeadMountable DEBUG: Drag1.moveToSafeZ(1.0)
2021-01-24 18:54:35.655 AbstractHeadMountable DEBUG: Drag2.moveToSafeZ(1.0)
2021-01-24 18:54:35.655 AbstractHeadMountable DEBUG: Drag3.moveToSafeZ(1.0)
2021-01-24 18:54:35.655 AbstractHeadMountable DEBUG: Drag4.moveToSafeZ(1.0)
2021-01-24 18:54:35.655 AbstractHeadMountable DEBUG: Top Camera.moveTo((550.236000, 309.598000, NaN, NaN mm), 1.0)
2021-01-24 18:54:35.663 Motion DEBUG: Interpolation 76 intervals, 43 probes, 21 steps, comp time 6.823ms
2021-01-24 18:54:35.665 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S1535.03 G1 X0.1198 Y0.0674   F68845.67 ; move to target, 10000)...
2021-01-24 18:54:35.665 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S1535.03G1X0.1198Y0.0674F68845.67
2021-01-24 18:54:35.666 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.673 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S3289.35 G1 X0.9583 Y0.5392    ; move to target, 10000)...
2021-01-24 18:54:35.674 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S3289.35G1X0.9583Y0.5392
2021-01-24 18:54:35.674 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S5251.42 G1 X3.2342 Y1.8197    ; move to target, 10000)...
2021-01-24 18:54:35.675 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.675 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S5251.42G1X3.2342Y1.8197
2021-01-24 18:54:35.676 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S7260.28 G1 X7.6662 Y4.3135    ; move to target, 10000)...
2021-01-24 18:54:35.676 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S7260.28G1X7.6662Y4.3135
2021-01-24 18:54:35.676 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.677 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S9285.26 G1 X14.9730 Y8.4247    ; move to target, 10000)...
2021-01-24 18:54:35.677 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.677 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S9285.26G1X14.973Y8.4247
2021-01-24 18:54:35.678 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S9579.47 G1 X32.3909 Y18.2252    ; move to target, 10000)...
2021-01-24 18:54:35.678 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S9579.47G1X32.3909Y18.2252
2021-01-24 18:54:35.678 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.679 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S7315.19 G1 X47.8075 Y26.8996    ; move to target, 10000)...
2021-01-24 18:54:35.679 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.679 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S7315.19G1X47.8075Y26.8996
2021-01-24 18:54:35.680 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S5279.02 G1 X65.4434 Y36.8227    ; move to target, 10000)...
2021-01-24 18:54:35.682 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.682 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S5279.02G1X65.4434Y36.8227
2021-01-24 18:54:35.682 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S3240.13 G1 X84.5801 Y47.5902    ; move to target, 10000)...
2021-01-24 18:54:35.682 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S3240.13G1X84.5801Y47.5902
2021-01-24 18:54:35.683 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.683 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S1109.51 G1 X106.2664 Y59.7923    ; move to target, 10000)...
2021-01-24 18:54:35.683 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S1109.51G1X106.2664Y59.7923
2021-01-24 18:54:35.684 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.685 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.685 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S1273.27 G1 X443.9696 Y249.8057   F68845.67 ; move to target, 10000)...
2021-01-24 18:54:35.687 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S1273.27G1X443.9696Y249.8057F68845.67
2021-01-24 18:54:35.688 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.690 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S1109.51 G1 X465.6559 Y262.0078    ; move to target, 10000)...
2021-01-24 18:54:35.690 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S1109.51G1X465.6559Y262.0078
2021-01-24 18:54:35.691 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.693 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S3240.13 G1 X484.7926 Y272.7753    ; move to target, 10000)...
2021-01-24 18:54:35.693 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S3240.13G1X484.7926Y272.7753
2021-01-24 18:54:35.694 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S5279.02 G1 X502.4285 Y282.6984    ; move to target, 10000)...
2021-01-24 18:54:35.695 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.695 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S5279.02G1X502.4285Y282.6984
2021-01-24 18:54:35.695 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S7315.19 G1 X517.8451 Y291.3728    ; move to target, 10000)...
2021-01-24 18:54:35.696 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S7315.19G1X517.8451Y291.3728
2021-01-24 18:54:35.696 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.698 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.701 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S9335.28 G1 X530.3237 Y298.3940    ; move to target, 10000)...
2021-01-24 18:54:35.701 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S9335.28G1X530.3237Y298.394
2021-01-24 18:54:35.702 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S9652.75 G1 X542.5698 Y305.2845    ; move to target, 10000)...
2021-01-24 18:54:35.702 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S9652.75G1X542.5698Y305.2845
2021-01-24 18:54:35.703 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S7260.28 G1 X547.0018 Y307.7783    ; move to target, 10000)...
2021-01-24 18:54:35.703 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.703 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S7260.28G1X547.0018Y307.7783
2021-01-24 18:54:35.704 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S5251.42 G1 X549.2777 Y309.0588    ; move to target, 10000)...
2021-01-24 18:54:35.705 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S3289.35 G1 X550.1162 Y309.5306    ; move to target, 10000)...
2021-01-24 18:54:35.705 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.705 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S5251.42G1X549.2777Y309.0588
2021-01-24 18:54:35.705 GcodeAsyncDriver DEBUG: serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00 commandQueue.offer(M204 S1535.03 G1 X550.2360 Y309.5980    ; move to target, 10000)...
2021-01-24 18:54:35.707 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.707 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S3289.35G1X550.1162Y309.5306
2021-01-24 18:54:35.709 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.709 GcodeAsyncDriver$WriterThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] >> M204S1535.03G1X550.236Y309.598
2021-01-24 18:54:35.711 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:35.713 GcodeDriver$ReaderThread TRACE: [serial:///dev/serial/by-id/usb-Uberclock_Smoothieboard_0A00B01DAF1C202759CAD65AF50020C7-if00] << ok
2021-01-24 18:54:37.685 AbstractHeadMountable DEBUG: Top Camera.moveTo((550.236000, 309.598000, -1.000000, 0.000000 mm), 1.0)
2021-01-24 18:54:38.333 AbstractHeadMountable DEBUG: Top Camera.moveTo((550.236000, 309.598000, -2.000000, 0.000000 mm), 1.0)
2021-01-24 18:54:38.693 AbstractHeadMountable DEBUG: Top Camera.moveTo((550.236000, 309.598000, -3.000000, 0.000000 mm), 1.0)
2021-01-24 18:54:39.829 AbstractHeadMountable DEBUG: Top Camera.moveTo((550.236000, 309.598000, -2.000000, 0.000000 mm), 1.0)
2021-01-24 18:54:40.453 AbstractHeadMountable DEBUG: Top Camera.moveTo((550.236000, 309.598000, -1.000000, 0.000000 mm), 1.0)

jdlv...@gmail.com

unread,
Jan 24, 2021, 1:20:49 PM1/24/21
to OpenPnP
Forgot the most important, thank you very much for this!

joël

ma...@makr.zone

unread,
Jan 24, 2021, 1:53:42 PM1/24/21
to ope...@googlegroups.com

Hi Ozzy

> but when you fix this dialog after lower vision failure

Sorry, there have been so many conversations, I can't remember what you mean.

_Mark

--
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/DnpvszIEA5Q/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/77aca1a4-0a51-4b5f-b912-6e39bad84ab9n%40googlegroups.com.

ma...@makr.zone

unread,
Jan 24, 2021, 2:32:55 PM1/24/21
to ope...@googlegroups.com

Hi jdlv

> Actuator H1Valve must not coordinate with machine when actuated outside machine task.

OpenPnP is now more strict about machine tasks. Usually, script triggers should be executed inside machine tasks, but you seem to have found an exception. Can you tell me, what script you are using?

> transition and Issues & Solutions went fine but sometimes the nozzle cannot be manually moved no more.

Are you are referring to the Z axis, that you seem to move at the end of the log?

If yes:

If you enabled the machine Auto Tool Select option (through Issues & Solutions), then the active tool in the Machine Controls will automatically change with the actions you execute. For instance, if you press "Move nozzle to pick location", it will automatically select the nozzle as the active tool. If you press the "Move camera to pick location" buttons , it will automatically select the camera.

The idea is to work seamlessly with a tool i.e. after moving the camera to the location you can then use the jog controls to fine-adjust the location, moving the selected camera, and then capture it again for example to refine the original location (e.g. a feeder pick location).

This solves one important issue that when you jog-rotate, the nozzle tip run-out compensation creates an unexpected offset in the camera view if the selected tool is the nozzle, but you were actually trying to align the camera cross-hairs with the orientation of the part to be picked or placed, for example. 

Now to your problem:

The camera typically does not have a physical Z, only a virtual Z. It will only simulate and store the Z coordinate. The nozzle Z will not move, I think this is what you describe as "freeze".

Why such a virtual axis? This is described here:

https://github.com/openpnp/openpnp/wiki/Machine-Axes#referencevirtualaxis

I guess the Auto Tool Select requires some getting used to it. I am personally convinced, that in 90% the auto-select is better than before and will select the right tool. But I do see that in 10% you will have to get used to checking the selected tool and then sometimes changing it. 

If you don't like it at all, you can switch it off in the Machine with the Auto Tool Select option.

_Mark

--
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/DnpvszIEA5Q/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.

ozzy_sv

unread,
Jan 24, 2021, 3:18:19 PM1/24/21
to OpenPnP
Hi Mark
> Sorry, there have been so many conversations, I can't remember what you mean.

The problem is as old as the world, but I still do not lose hope that you guys can solve it >>


воскресенье, 24 января 2021 г. в 20:53:42 UTC+2, ma...@makr.zone:

Jason von Nieda

unread,
Jan 24, 2021, 3:24:06 PM1/24/21
to ope...@googlegroups.com
Hi Ozzy,

I have made significant fixes to the try system recently. Have you tried them, and do you have feedback on what still needs improvement?


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 view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/63effc83-52dc-4b5d-a766-e5c7e7f19007n%40googlegroups.com.

ozzy_sv

unread,
Jan 24, 2021, 3:47:52 PM1/24/21
to OpenPnP
Hi  Jason 
I do not see that dialog, I seem to have configured everything correctly, here is an example of an error in the screenshots and program settings, the version of the program is the last test 

воскресенье, 24 января 2021 г. в 23:24:06 UTC+3, Jason von Nieda:
3.png
4.png
1.png
2.png

Jason von Nieda

unread,
Jan 24, 2021, 6:38:38 PM1/24/21
to ope...@googlegroups.com
Hi ozzy,

This looks like a pipeline error, not anything to do with retry. Change the name of your "results" stage to "results2" (or something else, doesn't matter) and "results1" to "results". The SizeCheck stage should be called "results".

Jason


ma...@makr.zone

unread,
Jan 25, 2021, 4:14:00 AM1/25/21
to ope...@googlegroups.com

@ozzy,

First, just to make it absolutely clear: you are talking about a pick and alignment inside a job, right? You are not talking about the GUI  Test Alignment function, right?

This could well be a bug of mine related to...

https://github.com/openpnp/openpnp/pull/1103

...but I currently don't think so.

Am I right to assume that this same pipeline has worked with other picks, after the upgrade?

Can you send me a log of when this happens? Plus the pipeline copied with the button?

Right now I'm assuming that there is a bug in the MinAreaRect stage, passing through the previous result model (by returning null) instead of a new Result(null, null) meaning "empty".

https://github.com/openpnp/openpnp/blob/7e18341cc64f673576ccfa3a9032eb4e1de9e0ea/src/main/java/org/openpnp/vision/pipeline/stages/MinAreaRect.java#L57-L59

Which then trips SizeCheck (class cast Exception). I guess this would have been the same with the previous OpenPnP version(s). SizeCheck should also use some null and type checking too.

Having said that: the cast-Exception is still propagated and I guess the new Job retry code should still work with this one too.

@Jason

> This looks like a pipeline error

I'm not sure. He uses the relatively new AffineWarp to use the pipeline on a smaller crop, so he has to use AffineUnwarp to transform the pixel coordinates from the detected geometry (RotatedRect) back to full camera coordinates (as these are not center relative, but upper left corner relative). As far as I can tell from the screenshot, the pipeline looks good to me.

I know the AffineUnwarp does not make things easier to read, but I found no better way to work around the pixel coordinates issue. :-(

Ideally, the current pixel affine transform would accompany all the Result objects and all pipeline callers would then have to obtain their pixels transform not from the camera but from the Result. At the time I made AffineWarp, this looked like too much work.

_Mark

ozzy_sv

unread,
Jan 25, 2021, 5:07:03 AM1/25/21
to OpenPnP
>> First, just to make it absolutely clear: you are talking about a pick and alignment inside a job, right? You are not talking about the GUI  Test Alignment function, right?  
yes, the machine is in automatic (job) mode
>>Can you send me a log of when this happens? Plus the pipeline copied with the  button?  

I have attached two versions of logs, with a simple pipeline as in the video and with transformations

ok guys
Let's start simple, I removed the checksize and affinewarp/unwarp from my vision and I again don't see this dialog after the lower vision failed. Here's a video.
 
also I have attached pipeline  settings  on video:

<cv-pipeline>
   <stages>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageCapture" name="0" enabled="true" default-light="true" settle-first="true" count="1"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="13" enabled="true" prefix="bv_source_" suffix=".png"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.BlurGaussian" name="10" enabled="true" kernel-size="9"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.MaskCircle" name="4" enabled="true" diameter="280"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ConvertColor" name="1" enabled="false" conversion="Bgr2HsvFull"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.MaskHsv" name="2" enabled="false" auto="false" fraction-to-mask="0.0" hue-min="0" hue-max="255" saturation-min="0" saturation-max="255" value-min="0" value-max="128" invert="false" binary-mask="false"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ConvertColor" name="6" enabled="true" conversion="Bgr2Gray"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.Threshold" name="12" enabled="true" threshold="210" auto="false" invert="false"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.BlurMedian" name="17" enabled="true" kernel-size="11"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.MinAreaRect" name="results" enabled="true" threshold-min="100" threshold-max="255"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageRecall" name="3" enabled="true" image-stage-name="0"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.DrawRotatedRects" name="8" enabled="true" rotated-rects-stage-name="results" thickness="2" draw-rect-center="false" rect-center-radius="40" show-orientation="false">
         <color r="255" g="0" b="102" a="255"/>
      </cv-stage>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="15" enabled="true" prefix="bv_result_" suffix=".png"/>
   </stages>
</cv-pipeline>

settings that were yesterday

<cv-pipeline>
   <stages>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageCapture" name="0" enabled="true" default-light="true" settle-first="true" count="1"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.AffineWarp" name="warp" enabled="true" length-unit="Millimeters" x-0="-2.5" y-0="2.5" x-1="2.5" y-1="2.5" x-2="-2.5" y-2="-2.5" scale="1.0" rectify="false" region-of-interest-property="regionOfInterest"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="13" enabled="true" prefix="bv_source_" suffix=".png"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.BlurGaussian" name="10" enabled="true" kernel-size="9"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.MaskCircle" name="4" enabled="true" diameter="280"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ConvertColor" name="1" enabled="false" conversion="Bgr2HsvFull"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.MaskHsv" name="2" enabled="false" auto="false" fraction-to-mask="0.0" hue-min="0" hue-max="255" saturation-min="0" saturation-max="255" value-min="0" value-max="128" invert="false" binary-mask="false"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ConvertColor" name="6" enabled="true" conversion="Bgr2Gray"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.Threshold" name="12" enabled="true" threshold="210" auto="false" invert="false"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.BlurMedian" name="17" enabled="true" kernel-size="11"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.MinAreaRect" name="result" enabled="true" threshold-min="100" threshold-max="255"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.SizeCheck" name="results1" enabled="true" tolerance="10" size-w="54" size-h="84"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageRecall" name="3" enabled="true" image-stage-name="warp"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.DrawRotatedRects" name="8" enabled="true" rotated-rects-stage-name="results1" thickness="2" draw-rect-center="false" rect-center-radius="40" show-orientation="false">
         <color r="255" g="0" b="102" a="255"/>
      </cv-stage>
      <cv-stage class="org.openpnp.vision.pipeline.stages.AffineUnwarp" name="results" enabled="true" warp-stage-name="warp" results-stage-name="results1"/>
      <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="15" enabled="true" prefix="bv_result_" suffix=".png"/>
   </stages>
</cv-pipeline>


>>  This looks like a pipeline error, not anything to do with retry. Change the name of your "results" stage to "results2" (or something else, doesn't matter) and "results1" to "results". The SizeCheck stage should be called "results".  
this option completely breaks the pipeline

понедельник, 25 января 2021 г. в 12:14:00 UTC+3, ma...@makr.zone:
log_full_pipeline.txt
log_simple_pipeline.txt

ozzy_sv

unread,
Jan 25, 2021, 5:10:03 AM1/25/21
to OpenPnP

>> Am I right to assume that this same pipeline has worked with other picks, after the upgrade?  

yes, everything worked after updates, including alignment but no selection dialog after lower vision failure, only error dialog
понедельник, 25 января 2021 г. в 13:07:03 UTC+3, ozzy_sv:

jdlv...@gmail.com

unread,
Jan 25, 2021, 6:08:06 AM1/25/21
to OpenPnP

> >Actuator H1Valve must not coordinate with machine when actuated outside machine task.

> OpenPnP is now more strict about machine tasks. Usually, script triggers should be executed inside machine tasks, but you seem to have found an exception. Can you tell me, what script you are using?

It is a script from my own. I guess a machine task is what is defined in the first lines of javascript example script?
Do you know if something similar exists for python script? Or should I have to translate python scripts to javascript?

>> transition and Issues & Solutions went fine but sometimes the nozzle cannot be manually moved no more.

> Are you are referring to the Z axis, that you seem to move at the end of the log?

Yes the Z axis. Sorry I should have read the documentation more before asking. Auto Tool Select explanation solves the mystery!

Thanks,

Joël

ma...@makr.zone

unread,
Jan 25, 2021, 7:13:22 AM1/25/21
to ope...@googlegroups.com

Hi Joël

You mean a script of your own, executed from the menu?

If yes, I haven't thought of that. :-(

If this was in Java, you would now do it as follows:

UiUtils.submitUiMachineTask(() -> {
   

           your code here

});

But I don't know how and if these Lambda expressions work through python. Can anybody help?

@Jason, could we run the menu scripts in machine tasks too?

https://github.com/openpnp/openpnp/blob/58e23417b66e7dd34527fe5072507d9b2d837e12/src/main/java/org/openpnp/scripting/ScriptFileWatcher.java#L170

_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/29707533-5515-45c7-82a1-f26ff8a74911n%40googlegroups.com.

jdlv

unread,
Jan 25, 2021, 7:39:23 AM1/25/21
to ope...@googlegroups.com
Hi Mark,

yes scripts of my own executed from the menu.
Before the python scripts were runnig but the UI is freezed during the
script execution. I suppose this is related to machine task?

Thanks,
joël


Le 25/01/2021 à 13:13, ma...@makr.zone a écrit :
> Hi Joël
>
> You mean a script of your own, executed from the menu?
>
> If *yes*, I haven't thought of that. :-(
>
> If this was in Java, you would now do it as follows:
>
> UiUtils.submitUiMachineTask(() -> {
>
>            your code here
>
> });
>
> But I don't know how and if these Lambda expressions work through
> python. Can anybody help?
>
> @Jason, could we run the menu scripts in machine tasks too?
>
> https://github.com/openpnp/openpnp/blob/58e23417b66e7dd34527fe5072507d9b2d837e12/src/main/java/org/openpnp/scripting/ScriptFileWatcher.java#L170
>
> _Mark
>
>
> Am 25.01.2021 um 12:08 schrieb jdlv...@gmail.com:
>>
>> /> >Actuator H1Valve must not coordinate with machine when actuated
>> outside machine task./
>>
>> > OpenPnP is now more strict about machine tasks. Usually, script triggers should be executed inside machine tasks, but
>> you seem to have found an exception. Can you tell me, what script you
>> are using?
>>
>> It is a script from my own. I guess a machine task is what is defined
>> in the first lines of javascript example script?
>> Do you know if something similar exists for python script? Or should I
>> have to translate python scripts to javascript?
>>
>> />> //transition and Issues & Solutions went fine but sometimes the
>> nozzle cannot be manually moved no more./
>>
>> > Are you are referring to the Z axis, that you seem to move at the end of the log?
>>
>> Yes the Z axis. Sorry I should have read the documentation more before
>> asking. Auto Tool Select explanation solves the mystery!
>>
>> Thanks,
>>
>> Joël
>>
>>
>>
>> Le dimanche 24 janvier 2021 à 19:32:55 UTC, ma...@makr.zone a écrit :
>>
>> Hi jdlv
>>
>> /> Actuator H1Valve must not coordinate with machine when actuated
>> outside machine task./
>>
>> OpenPnP is now more strict about machine tasks. Usually, script
>> triggers should be executed inside machine tasks, but you seem to
>> have found an exception. Can you tell me, what script you are using?
>>
>> /> //transition and Issues & Solutions went fine but sometimes the
>> nozzle cannot be manually moved no more./
>>
>> Are you are referring to the Z axis, that you seem to move at the
>> end of the log?
>>
>> If yes:
>>
>> If you enabled the machine *Auto Tool Select* option (through
>> Issues & Solutions), then the active tool in the Machine Controls
>> will automatically change with the actions you execute. For
>> instance, if you press "Move *nozzle *to pick location", it will
>> automatically select the *nozzle *as the active tool. If you press
>> the "Move *camera *to pick location" buttons , it will
>> automatically select the *camera*.
>>
>> The idea is to work /seamlessly /with a tool i.e. after moving the
>> camera to the location you can then use the jog controls to
>> fine-adjust the location, moving the selected *camera*, and then
>> capture it again for example to refine the original location (e.g.
>> a feeder pick location).
>>
>> This solves one important issue that when you jog-rotate, the
>> nozzle tip run-out compensation
>> <https://github.com/openpnp/openpnp/wiki/Nozzle-Tip-Calibration-Setup>
>> creates an unexpected offset in the camera view if the selected
>> tool is the *nozzle*, but you were actually trying to align the
>> *camera *cross-hairs with the orientation of the part to be picked
>> or placed, for example.
>>
>> Now to your problem:
>>
>> The *camera *typically does not have a physical Z, only a virtual
>> Z. It will only simulate and /store/ the Z coordinate. The *nozzle
>> *Z will not move, I think this is what you describe as "freeze".
>>
>> Why such a virtual axis? This is described here:
>>
>> https://github.com/openpnp/openpnp/wiki/Machine-Axes#referencevirtualaxis
>>
>> I guess the *Auto Tool Select* requires some getting used to it. I
>> am personally convinced, that in 90% the auto-select is better
>> than before and will select the right tool. But I do see that in
>> 10% you will have to get used to checking the selected tool and
>> then sometimes changing it.
>>
>> If you don't like it at all, you can switch it off in the Machine
>> with the *Auto Tool Select* option.
>>> 1. Actuator Profiles, Camera Lights
>>> <https://github.com/openpnp/openpnp/pull/1095>
>>> <https://github.com/openpnp/openpnp/pull/1095#partial-pull-merging>
>>>
>>> 2. Pipeline editor enhancements
>>> <https://github.com/openpnp/openpnp/pull/1098> (by
>>> @tonyluken)
>>> 3. Improved "MaxFeedCount" for Reference Strip Feeder
>>> <https://github.com/openpnp/openpnp/pull/1099> (by
>>> @desertgreg)
>>> 4. Check and Diagnose Pipeline Results and Errors
>>> <https://github.com/openpnp/openpnp/pull/1103>
>>> <https://github.com/openpnp/openpnp/pull/1103#partial-pull-merging>
>>>
>>> 5. Nozzle Tip Tool Changer Goodies
>>> <https://github.com/openpnp/openpnp/pull/1107>
>>> 6. Issues & Solutions Expansion
>>> <https://github.com/openpnp/openpnp/pull/1110>
>>> 7. Auto-Backup <https://github.com/openpnp/openpnp/pull/1110>
>>>
>>> The Latest details:
>>>
>>> * All the configuration XML files are now backed up, before
>>> being overwritten. A new subdirectory *backups *is
>>> created inside the *.openpnp2* directory, further
>>> subdivided by date and time. Configuration files are
>>> copied there. Migration, testing and using Issues &
>>> Solutions becomes much safer with proper backups. ;-)
>>> * Issues & Solutions: many new solutions added (includes
>>> linked new Wiki content).
>>> * Issues & Solutions for initial machine setup: automatic
>>> replacement of the simulation NullDriver with a
>>> GcodeAsyncDriver.
>>> * Issues & Solutions for initial machine setup: automatic
>>> replacement of the simulation ImageCamera and
>>> SimulatedUpCamera with a OpenPnpCaptureCamera.
>>> * Bug-fix: Support for 0 fps in
>>> ReferenceStripFeederConfigurationWizard AutoSetup.
>>> * Bug-fix: Marlin does not understand G-code with both M
>>> and G words on the same line (as it should), a newline
>>> was added.
>>> * Bug-fix: Feeders without parts (i.e. parts that were
>>> deleted).
>>> * Bug-fix: FeedersPanel tab index race condition.
>>>
>>>
>>> https://github.com/openpnp/openpnp/pull/1110
>>>
>>> _Mark
>>>
>>> --
>>> 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/DnpvszIEA5Q/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/894b0acf-67c9-40e0-add3-430470b2b695n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/openpnp/894b0acf-67c9-40e0-add3-430470b2b695n%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/29707533-5515-45c7-82a1-f26ff8a74911n%40googlegroups.com
>> <https://groups.google.com/d/msgid/openpnp/29707533-5515-45c7-82a1-f26ff8a74911n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
> --
> 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/DnpvszIEA5Q/unsubscribe.
> To unsubscribe from this group and all its topics, 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/4db45597-9e65-7560-a3ed-3ba59f46f16b%40makr.zone
> <https://groups.google.com/d/msgid/openpnp/4db45597-9e65-7560-a3ed-3ba59f46f16b%40makr.zone?utm_medium=email&utm_source=footer>.

ma...@makr.zone

unread,
Jan 25, 2021, 7:53:53 AM1/25/21
to ope...@googlegroups.com

> UI is freezed during the script execution

Yes, this would also be better if we were to run them in machine tasks (different thread).

I guess I'll add that and Jason can still say "no" later.

_Mark

Jason von Nieda

unread,
Jan 25, 2021, 12:10:14 PM1/25/21
to ope...@googlegroups.com
"No" :)

We have a provision for running scripts on the machine task already. There's an included JavaScript example. I'll figure out how to do it in Python and post back.

Jason


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/8a57ad7a-d950-f328-7ef2-323ced0a3565%40makr.zone.

Jason von Nieda

unread,
Jan 25, 2021, 12:21:49 PM1/25/21
to ope...@googlegroups.com
Hi Ozzy and Mark,

Okay, a few things:

- Mark is likely right here - there is probably a bug in one of the preceding stages causing the ClassCastException.
- I didn't realize you were dealing with an alignment error (and looking for retry handling) and that is not yet handled. That is the last of the four changes I had planned for these retry fixes. The first three are regarding feed, pick, and "feed and pick", and the final one will bundle alignment in as a high level retry. So, you are correct, this is not yet fixed but it is next on my list.

Jason


Jason von Nieda

unread,
Jan 25, 2021, 11:33:39 PM1/25/21
to ope...@googlegroups.com
Here is an updated move_machine.py example script that uses the machine task properly: https://github.com/openpnp/openpnp/blob/develop/src/main/resources/scripts/Examples/Python/move_machine.py

Thanks,
Jason

ma...@makr.zone

unread,
Jan 26, 2021, 2:55:36 AM1/26/21
to ope...@googlegroups.com

> "No" :)

It is undone ;-)

_Mark

ozzy_sv

unread,
Jan 26, 2021, 7:06:14 AM1/26/21
to OpenPnP
Hi  Jason and   Mark , 
I would ask you to change the output of the total time at the end of the work in a more familiar format, for example, minutes of a second
now the picture is 566 seconds, but it would be much more pleasant to understand that 9 minutes and 26 seconds were displayed
Thanks!  

вторник, 26 января 2021 г. в 10:55:36 UTC+3, ma...@makr.zone:
t1.png

jdlv

unread,
Jan 26, 2021, 10:03:51 AM1/26/21
to ope...@googlegroups.com
Thank you Jason, works perfectly!

joël



Le 26/01/2021 à 05:33, Jason von Nieda a écrit :
> Here is an updated move_machine.py example script that uses the machine
> task properly:
> https://github.com/openpnp/openpnp/blob/develop/src/main/resources/scripts/Examples/Python/move_machine.py
>
> Thanks,
> Jason
>
>
> On Mon, Jan 25, 2021 at 11:09 AM Jason von Nieda <ja...@vonnieda.org
> <mailto:ja...@vonnieda.org>> wrote:
>
> "No" :)
>
> We have a provision for running scripts on the machine task already.
> There's an included JavaScript example. I'll figure out how to do it
> in Python and post back.
>
> Jason
>
>
> On Mon, Jan 25, 2021 at 6:53 AM ma...@makr.zone <ma...@makr.zone> wrote:
>
> /> //UI is freezed during the script execution/
>
> Yes, this would also be better if we were to run them in machine
> tasks (different thread).
>
> I guess I'll add that and Jason can still say "no" later.
>
> _Mark
>
> Am 25.01.2021 um 13:39 schrieb jdlv:
>> Hi Mark,
>>
>> yes scripts of my own executed from the menu.
>> Before the python scripts were runnig but the UI is freezed
>> during the script execution. I suppose this is related to
>> machine task?
>>
>> Thanks,
>> joël
>>
>>
>> Le 25/01/2021 à 13:13, ma...@makr.zone <mailto:ma...@makr.zone>
>> a écrit :
>>> Hi Joël
>>>
>>> You mean a script of your own, executed from the menu?
>>>
>>> If *yes*, I haven't thought of that. :-(
>>>
>>> If this was in Java, you would now do it as follows:
>>>
>>> UiUtils.submitUiMachineTask(() -> {
>>>
>>>             your code here
>>>
>>> });
>>>
>>> But I don't know how and if these Lambda expressions work
>>> through python. Can anybody help?
>>>
>>> @Jason, could we run the menu scripts in machine tasks too?
>>>
>>> https://github.com/openpnp/openpnp/blob/58e23417b66e7dd34527fe5072507d9b2d837e12/src/main/java/org/openpnp/scripting/ScriptFileWatcher.java#L170
>>>
>>>
>>> _Mark
>>>
>>>
>>> Am 25.01.2021 um 12:08 schrieb jdlv...@gmail.com
>>> <mailto:jdlv...@gmail.com>:
>>>>
>>>> /> >Actuator H1Valve must not coordinate with machine when
>>>> actuated outside machine task./
>>>>
>>>> > OpenPnP is now more strict about machine tasks. Usually,
>>>> script triggers should be executed inside machine tasks, but
>>>> you seem to have found an exception. Can you tell me, what
>>>> script you are using?
>>>>
>>>> It is a script from my own. I guess a machine task is what
>>>> is defined in the first lines of javascript example script?
>>>> Do you know if something similar exists for python script?
>>>> Or should I have to translate python scripts to javascript?
>>>>
>>>> />> //transition and Issues & Solutions went fine but
>>>> sometimes the nozzle cannot be manually moved no more./
>>>>
>>>> > Are you are referring to the Z axis, that you seem to move
>>>> at the end of the log?
>>>>
>>>> Yes the Z axis. Sorry I should have read the documentation
>>>> more before asking. Auto Tool Select explanation solves the
>>>> mystery!
>>>>
>>>> Thanks,
>>>>
>>>> Joël
>>>>
>>>>
>>>>
>>>> Le dimanche 24 janvier 2021 à 19:32:55 UTC, ma...@makr.zone
>>>> <mailto:ma...@makr.zone> a écrit :
>>>> <mailto:jdlv...@gmail.com>:
>>>>> ma...@makr.zone <mailto:ma...@makr.zone> a écrit :
>>>>>
>>>>>
>>>>>         Hi all
>>>>>
>>>>>         There is a new testing version available with
>>>>> brand-new
>>>>>         Auto-Backup and many new Issues & Solutions
>>>>> detected, plus
>>>>>         bug-fixes out of the testing feed-back.
>>>>>
>>>>>         Thanks to all the testers and welcome new ones! ;-)
>>>>>
>>>>>         The testing round contents are:
>>>>>
>>>>>          1. Actuator Profiles, Camera Lights
>>>>> <https://github.com/openpnp/openpnp/pull/1095>
>>>>> <https://github.com/openpnp/openpnp/pull/1095>
>>>>> <https://github.com/openpnp/openpnp/pull/1095#partial-pull-merging>
>>>>> <https://github.com/openpnp/openpnp/pull/1095#partial-pull-merging>
>>>>>
>>>>>          2. Pipeline editor enhancements
>>>>> <https://github.com/openpnp/openpnp/pull/1098>
>>>>> <https://github.com/openpnp/openpnp/pull/1098> (by
>>>>>             @tonyluken)
>>>>>          3. Improved "MaxFeedCount" for Reference Strip Feeder
>>>>> <https://github.com/openpnp/openpnp/pull/1099>
>>>>> <https://github.com/openpnp/openpnp/pull/1099> (by
>>>>>             @desertgreg)
>>>>>          4. Check and Diagnose Pipeline Results and Errors
>>>>> <https://github.com/openpnp/openpnp/pull/1103>
>>>>> <https://github.com/openpnp/openpnp/pull/1103>
>>>>> <https://github.com/openpnp/openpnp/pull/1103#partial-pull-merging>
>>>>>     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/894b0acf-67c9-40e0-add3-430470b2b695n%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/openpnp/894b0acf-67c9-40e0-add3-430470b2b695n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> <https://groups.google.com/d/msgid/openpnp/894b0acf-67c9-40e0-add3-430470b2b695n%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>
>>>> <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/29707533-5515-45c7-82a1-f26ff8a74911n%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/openpnp/29707533-5515-45c7-82a1-f26ff8a74911n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> <https://groups.google.com/d/msgid/openpnp/29707533-5515-45c7-82a1-f26ff8a74911n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>
>>>
>>> --
>>> 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/DnpvszIEA5Q/unsubscribe.
>>>
>>> To unsubscribe from this group and all its topics, send an
>>> email to openpnp+u...@googlegroups.com
>>> <mailto:openpnp+u...@googlegroups.com>
>>> <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/4db45597-9e65-7560-a3ed-3ba59f46f16b%40makr.zone
>>> <https://groups.google.com/d/msgid/openpnp/4db45597-9e65-7560-a3ed-3ba59f46f16b%40makr.zone?utm_medium=email&utm_source=footer>
>>> <https://groups.google.com/d/msgid/openpnp/4db45597-9e65-7560-a3ed-3ba59f46f16b%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/8a57ad7a-d950-f328-7ef2-323ced0a3565%40makr.zone
> <https://groups.google.com/d/msgid/openpnp/8a57ad7a-d950-f328-7ef2-323ced0a3565%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/CA%2BQw0jyXhv%2BKRYUYp3Gk0YyBwUeeCyJBTgHZTew%2B%3DZ53M4Otcg%40mail.gmail.com
> <https://groups.google.com/d/msgid/openpnp/CA%2BQw0jyXhv%2BKRYUYp3Gk0YyBwUeeCyJBTgHZTew%2B%3DZ53M4Otcg%40mail.gmail.com?utm_medium=email&utm_source=footer>.

james.edwa...@gmail.com

unread,
Jan 26, 2021, 10:17:49 AM1/26/21
to ope...@googlegroups.com
Hi, Jason. This link does not work for me. ??
Best, Jim
> <https://groups.google.com/d/msgid/openpnp/CA%2BQw0jyXhv%2BKRYUYp3Gk0YyBwUeeCyJBTgHZTew%2B%3DZ53M4Otcg%40mail.gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/2398d979-4c07-2007-8fd8-5e1df90347bc%40gmail.com.

Jason von Nieda

unread,
Jan 26, 2021, 10:52:15 AM1/26/21
to ope...@googlegroups.com
Here's the script as an attachment.

Jason


move_machine.py

ozzy_sv

unread,
Jan 29, 2021, 2:38:57 AM1/29/21
to OpenPnP
Hi guys, it looks like I found a bug

a tab with feeders crashes on one of the work files
video, work file and configuration attached

https://youtu.be/6q6Nb5ULrpU
вторник, 26 января 2021 г. в 18:52:15 UTC+3, Jason von Nieda:
crash.zip

ma...@makr.zone

unread,
Jan 29, 2021, 4:00:45 AM1/29/21
to ope...@googlegroups.com

That one I missed, thank you.

NOTE: these are old bugs, i.e. they are not from the Testing Version.

These bugs happen when you delete a part formerly assigned to a job placement or feeder.  I tried to catch these everywhere, but I must have missed one there.

See here:

  1. https://github.com/openpnp/openpnp/issues/1102
  2. https://github.com/openpnp/openpnp/pull/1110

Will be fixed in the upcoming testing version.

_Mark

ozzy_sv

unread,
Jan 29, 2021, 4:16:10 AM1/29/21
to OpenPnP
yes, it was an old file and some parts were cleared. I fixed it and now the tab works . 

There is also a note on the counter  MaxFeedCount
When the counter is triggered, the machine freezes with the nozzle lowered to the part, it may still be worth raising the nozzle to a safe position before displaying  the error?

And Mark, 
can I ask you to add the feed count to the ReferenceAutoFeeder, for example, I know that there are 2000 parts in the reel and when the counter counts, then I understand how many parts I still have left

Thanks!
пятница, 29 января 2021 г. в 11:00:45 UTC+2, ma...@makr.zone:
IMG_20210124_190916.jpg
IMG_20210124_190924.jpg

ma...@makr.zone

unread,
Jan 29, 2021, 7:08:41 AM1/29/21
to ope...@googlegroups.com

MaxFeedCount is by  @desertgreg, not by me.

@desertgreg are you hearing this?

_Mark

ma...@makr.zone

unread,
Jan 29, 2021, 11:43:01 AM1/29/21
to ope...@googlegroups.com
> I'll post my currently known good configuration soon.

Cool, thanks!

_Mark
Am 29.01.2021 um 08:38 schrieb ozzy_sv:

Jason von Nieda

unread,
Jan 31, 2021, 3:45:29 PM1/31/21
to ope...@googlegroups.com
Hi Mark,

Two things:

1. I committed a few minor spelling fixes to the test branch.
2. I'm having trouble with the anti-glare feature when using SwitcherCamera. I'll post details soon, once I figure out what is happening, but it seems like if I enable it on any single SwitcherCamera it locks up OpenPnP, causing it to be unable to exit.

Jason


ma...@makr.zone

unread,
Feb 2, 2021, 5:48:40 PM2/2/21
to ope...@googlegroups.com

Tell me when I should have a look too.

_Mark

ozzy_sv

unread,
Feb 4, 2021, 7:30:52 AM2/4/21
to OpenPnP
Hi guys
you can put this tab (setting) at the end
since it is inconvenient to work, I basically need a second tab (referencebottom vision)
thanks

среда, 3 февраля 2021 г. в 01:48:40 UTC+3, ma...@makr.zone:
1111.png

ma...@makr.zone

unread,
Feb 4, 2021, 6:06:13 PM2/4/21
to ope...@googlegroups.com

Hi all

Again, a new testing Version available.

All the features and bugfixes are described in the pull requests.

https://github.com/openpnp/openpnp/issues?q=label%3Atesting-round+

Big thanks to Tony for his "3D" Units per Pixel calibration feature. ;-)

https://github.com/openpnp/openpnp/pull/1112

There were some hefty versioning conflicts I needed to resolve and I made some changes in the GUI, so if there are bugs, they are possibly mine!

Latest addition: Cameras can be shown/not shown in multi camera view panels (Show All Horizontal/Show All Vertical). This is typically used to hide the capture card in a SwitcherCamera setup. The Camera will still be available as a single CameraView.

Show All

Show option

https://github.com/openpnp/openpnp/pull/1119

Download here:

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

_Mark

Am 21.01.2021 um 21:15 schrieb ma...@makr.zone:

Hi all

There is a new testing version available with brand-new Auto-Backup and many new Issues & Solutions detected, plus bug-fixes out of the testing feed-back.

Thanks to all the testers and welcome new ones! ;-)

The testing round contents are:

    The Latest details:

    • All the configuration XML files are now backed up, before being overwritten. A new subdirectory backups is created inside the .openpnp2 directory, further subdivided by date and time. Configuration files are copied there. Migration, testing and using Issues & Solutions becomes much safer with proper backups. ;-)
    • Issues & Solutions: many new solutions added (includes linked new Wiki content).
    • Issues & Solutions for initial machine setup: automatic replacement of the simulation NullDriver with a GcodeAsyncDriver.
    • Issues & Solutions for initial machine setup: automatic replacement of the simulation ImageCamera and SimulatedUpCamera with a OpenPnpCaptureCamera.
    • Bug-fix: Support for 0 fps in ReferenceStripFeederConfigurationWizard AutoSetup.
    • Bug-fix: Marlin does not understand G-code with both M and G words on the same line (as it should), a newline was added.
    • Bug-fix: Feeders without parts (i.e. parts that were deleted).
    • Bug-fix: FeedersPanel tab index race condition.


    _Mark
    --
    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/DnpvszIEA5Q/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/26b8dbef-41e1-4cfb-9fac-604b1e0fb717n%40googlegroups.com.

    Clemens Koller

    unread,
    Feb 6, 2021, 7:34:08 AM2/6/21
    to ope...@googlegroups.com
    Thank you, Mark!

    Just for future reference:
    #1119 == d017c60e10 on branch test

    $ git describe
    1.1.0-2209-gd017c60e10

    I'm moving there.

    Are there acutally limitations on Java and or OpenCV versions?
    Do we step back from the latest versions or just go there and fix issues as they show up?

    I am okay with building against latest and swim in cold water.
    opencv 4.5.1-1
    jdk-openjdk 15.0.2.u7-1

    Greets,

    Clemens

    On 05/02/2021 00.06, ma...@makr.zone wrote:
    > Hi all
    >
    > Again, a new testing Version available.
    >
    > All the features and bugfixes are described in the pull requests.
    >
    > https://github.com/openpnp/openpnp/issues?q=label%3Atesting-round+ <https://github.com/openpnp/openpnp/issues?q=label%3Atesting-round+>
    >
    > Big thanks to Tony for his "3D" Units per Pixel calibration feature. ;-)
    >
    > https://github.com/openpnp/openpnp/pull/1112 <https://github.com/openpnp/openpnp/pull/1112>
    >
    > There were some hefty versioning conflicts I needed to resolve and I made some changes in the GUI, so if there are bugs, they are possibly mine!
    >
    > *Latest addition*: Cameras can be shown/not shown in multi camera view panels (Show All Horizontal/Show All Vertical). This is typically used to hide the capture card in a SwitcherCamera setup. The Camera will still be available as a single CameraView.
    >
    > Show All <https://user-images.githubusercontent.com/9963310/106962435-6761df00-673f-11eb-8d8e-4098cbacb094.png>
    >
    > Show option
    >
    > https://github.com/openpnp/openpnp/pull/1119 <https://github.com/openpnp/openpnp/pull/1119>
    >
    > Download here:
    >
    > https://openpnp.org/test-downloads/ <https://openpnp.org/test-downloads/>
    >
    > _Mark
    >
    > Am 21.01.2021 um 21:15 schrieb ma...@makr.zone:
    >>
    >> Hi all
    >>
    >> There is a new testing version available with brand-new Auto-Backup and many new Issues & Solutions detected, plus bug-fixes out of the testing feed-back.
    >>
    >> Thanks to all the testers and welcome new ones! ;-)
    >>
    >> The testing round contents are:
    >>
    >> 1. Actuator Profiles, Camera Lights <https://github.com/openpnp/openpnp/pull/1095>
    >> <https://github.com/openpnp/openpnp/pull/1095#partial-pull-merging>
    >> 2. Pipeline editor enhancements <https://github.com/openpnp/openpnp/pull/1098> (by @tonyluken)
    >> 3. Improved "MaxFeedCount" for Reference Strip Feeder <https://github.com/openpnp/openpnp/pull/1099> (by @desertgreg)
    >> 4. Check and Diagnose Pipeline Results and Errors <https://github.com/openpnp/openpnp/pull/1103>
    >> <https://github.com/openpnp/openpnp/pull/1103#partial-pull-merging>
    >> 5. Nozzle Tip Tool Changer Goodies <https://github.com/openpnp/openpnp/pull/1107>
    >> 6. Issues & Solutions Expansion
    >> <https://github.com/openpnp/openpnp/pull/1110>
    >> 7. Auto-Backup <https://github.com/openpnp/openpnp/pull/1110>
    >>
    >> The Latest details:
    >>
    >> * All the configuration XML files are now backed up, before being overwritten. A new subdirectory *backups *is created inside the *.openpnp2* directory, further subdivided by date and time. Configuration files are copied there. Migration, testing and using Issues & Solutions becomes much safer with proper backups. ;-)
    >> * Issues & Solutions: many new solutions added (includes linked new Wiki content).
    >> * Issues & Solutions for initial machine setup: automatic replacement of the simulation NullDriver with a GcodeAsyncDriver.
    >> * Issues & Solutions for initial machine setup: automatic replacement of the simulation ImageCamera and SimulatedUpCamera with a OpenPnpCaptureCamera.
    >> * Bug-fix: Support for 0 fps in ReferenceStripFeederConfigurationWizard AutoSetup.
    >> * Bug-fix: Marlin does not understand G-code with both M and G words on the same line (as it should), a newline was added.
    >> * Bug-fix: Feeders without parts (i.e. parts that were deleted).
    >> * Bug-fix: FeedersPanel tab index race condition.
    >>
    >>
    >> https://github.com/openpnp/openpnp/pull/1110 <https://github.com/openpnp/openpnp/pull/1110>
    >>
    >> _Mark
    >> --
    >> 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/DnpvszIEA5Q/unsubscribe <https://groups.google.com/d/topic/openpnp/DnpvszIEA5Q/unsubscribe>.
    >> To unsubscribe from this group and all its topics, 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/26b8dbef-41e1-4cfb-9fac-604b1e0fb717n%40googlegroups.com <https://groups.google.com/d/msgid/openpnp/26b8dbef-41e1-4cfb-9fac-604b1e0fb717n%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/ba770184-c7d7-59dd-15e2-44fa3d66c99c%40makr.zone <https://groups.google.com/d/msgid/openpnp/ba770184-c7d7-59dd-15e2-44fa3d66c99c%40makr.zone?utm_medium=email&utm_source=footer>.

    Clemens Koller

    unread,
    Feb 6, 2021, 10:06:07 AM2/6/21
    to ope...@googlegroups.com
    Hi, Mark!

    I am running into a new issue with the new version and "Calibrate Camera Position and Rotation".

    The Nozzle Calibration is using a MatchTemplate and *very* robust (usually it achieves a MatchTemplate threshold of >0.95).

    So the error message is very likely caused by the grey camera image (which I've never seen before).
    This might be related to the BufferedCameraImage changes.
    I might not be able to git bisect because commits were squashed. :-(

    The log throws:
    [ERR ] VIDIOC_DQBUF error
    [ERR ] VIDIOC_STREAMOFF failed (errno=19)
    2021-02-06 15:43:27.628 ReferenceCamera WARNING: Camera CamUp failed to return an image after 4 tries.

    Usually (in previous version) the camera image never goes gray and never shows this big red cross.
    Additionally, the crosshairs seem to be distorted...

    machine.xml and screenshot+log attached.


    Any Ideas?

    Clemens
    20210206_CalCamPosRot_erratic_Vision_Misdetects_after_successful_NozCal.png
    20210206_CalCamPosRot_erratic_Vision_Misdetects_after_successful_NozCal.log
    machine.xml

    ma...@makr.zone

    unread,
    Feb 6, 2021, 12:13:11 PM2/6/21
    to ope...@googlegroups.com

    I got false positives on one of my pipelines when the error image was this red cross across the whole image. HoughCircles actually saw some circles in center X.

    So I changed  the error image to be flat gray and display the red cross in the upper left corner rather than across the whole camera.

    But I assume that has nothing to do with the actual problem. The actual problem is not getting an image from the camera. These errors (your log) happen before the error image is created and shown instead of the failed image.

    I can't remember having changed anything else in the Camera code (since the last testing version), so I'm quite reluctant to believe I broke your camera setup.

    _Mark

    ma...@makr.zone

    unread,
    Feb 6, 2021, 1:14:56 PM2/6/21
    to ope...@googlegroups.com

    Just to clarify for those that want to know what version is what:

    Look at the Actions on Github:

    https://github.com/openpnp/openpnp/actions

    You can filter by branch (test for instance) etc.

    Whenever it says "Merge pull request..." a new unit of work on the project was integrated. A new OpenPnP version was then automatically deployed.

    You already see the specific version tag d017c60 in this case. Also note the #1119 hashtag for later.

    This also gives you the order in which features were integrated. So anything that is listed below the one you are looking at, is included in it.

    You can open each of these and look at the details, i.e. you see for which Java versions it was built and tested. If you see the "Deploy" entry, a new OpenPnP Download version was deployed.

    To get the link to the testing version, go to the download page:

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

    Click the "browse all" link:

    Then browse into the test directory:

    And you'll recognize the version number again. This is the download that corresponds to the version.

    If you want to know what is inside the Pull Requests, look at the "Hashtag" Number that was listed (see the first screenshot above), in this case #1119.

    Look at the merged Pull Requests.

    https://github.com/openpnp/openpnp/pulls?q=is%3Apr+is%3Amerged

    Unfortunately that list is sorted by the age of the pull-request, not by the order in which it was merged into OpenPnP i.e. this is not the order in which the OpenPnP versions progressed. There is strangely no such sorting option.

    Open the one you want to look at. Towards the end of the PR is something like this:

    Again that cryptic number d017c60 that identifies the version.

    _Mark

    ma...@makr.zone

    unread,
    Feb 17, 2021, 2:30:21 AM2/17/21
    to ope...@googlegroups.com

    Hi everybody

    TESTING-ROUND LAST CALL!

    We would like to bring the Testing-Round to an end, the new features will soon be merged into mainline OpenPnP 2.0 (develop branch).

    This is the moment for you to try the newest testing version against your machine. Issues should be reported in the next days. If nothing serious pops up, it will hopefully be merged next weekend.

    I'm also interested in positive feed-back: Who is already running the latest testing version successfully? :-)

    Scope:
      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/ba770184-c7d7-59dd-15e2-44fa3d66c99c%40makr.zone.

      Chris Friday

      unread,
      Feb 17, 2021, 6:08:28 AM2/17/21
      to ope...@googlegroups.com
      Hi Mark,
      first of all: success - machine is running - hiphip! Thank you.

      Noticed the following minor issues:

      To 5. Nozzle Tip Tool Changer Goodies
      "Clone.." overwrites setting silent. The tool changer was setup before and is of this type

      https://youtu.be/WG2U9DYpWAQ

      Cloning position NT1 to NT2 and NT3 was OK. Cloning NT4 from second row overwrites "Last Location x" without "Apply". See this for an explanation

      https://youtu.be/DNLWW7fKYoE


      To ? advanced motion
      Maybe a bit off topic because I saw the following with the previous test version as well :  My HOME_COMMAND has G0 X230 Y70 to move the camera to the homing point. That works OK but I can see two different speeds for this move while homing. One is a sloooow "sinus" (in speed) move after connect, see

      https://youtu.be/E4trfKaByRQ

      All other homing klicks produces moves like this

      https://youtu.be/4GWp0_SAsNw

      None of these are fast as the axes are after homing.

      The log shows this for the "sinus"

      and a third line for the other


      I've tried to screenshot the moves but there is no difference and obviously not useful


      All other points looks good.

      Regards,
      Chris

      ma...@makr.zone

      unread,
      Feb 17, 2021, 7:44:49 AM2/17/21
      to ope...@googlegroups.com

      Hi Chris

      Thanks a lot, very useful documentation.

      > Cloning NT4 from second row overwrites "Last Location x" without "Apply".

      Yes, I'm aware of this problem. It bugs me in all my OpenPnP work and it is also present in other such buttons and functions i.e. not made by me ;-)

      The clone button is not working as a GUI function "inside" the form, instead it triggers a function directly on the NozzleTip object underneath, i.e. the "business logic" of that cloning operation is independent of the GUI (as it arguably should be, as a design principle and for many good reasons, such as making such operations available for other code and scripting). The operation in turn triggers so-called setters on the NozzleTip object and these fire property change events to update the form. Unfortunately, there is a strange behavior in all active OpenPnP forms, that they appear as modified, whenever a setter fires a property change event.  I frankly don't know Swing/Java enough to know whether this is "normal" or a bug let alone how to fix it. Maybe Jason knows more.

      > That works OK but I can see two different speeds for this move while homing

      I don't have enough information to know exactly what is going on here, but there are these known issues with homing:

      1. Advanced Motion Control sets many varying accelerations and feedrate limits, especially if you use Simulated3rdOrderControl i.e. Jerk Control. If your last move before homing was a short move or perhaps a deliberately slow changer move, chances are you had very low limits set on the last move command. So if your homing code contains custom motion G-code without itself specifying feed-rate and acceleration, it will inherit the limits from that last motion command. The remedy is easy: just specify the wanted limits in your custom homing motion code (M204 Sxxx G0 Fxxx). Note that Smoothieware even inherits acceleration settings to the homing moves themselves and even M999 does not reset these settings (don't know how it is on other controllers). Again, specifically setting the wanted homing acceleration (M204) in the HOME_COMMAND helps. 
      2. If you don't have Location Confirmation enabled on the driver, OpenPnP may be mistaken about where the machine is positioned after mechanical homing. You can set the homing coordinates on the axes, but if they are wrong, OpenPnP thinks it is at different location. So the first move after that (typically the move to the homing fiducial) will have faulty motion planning. Perhaps OpenPnP thinks it is very near the fiducial, when in fact it is "miles" off. So the planner will mistakenly choose a very low feedrate limit and move at a snail's pace. With Location Confirmation enabled, this is fixed, because OpenPnP then gets a location confirmation after mechanical homing.

      If it is not one of these, holler again.

      Thanks again for this prompt and concise testing feed-back!

      And BTW, I'm very intrigued by your spacial nozzle camera setup. I expect you will soon present your on-the-fly 3D alignment???

      I have spent many hours thinking about such a thing, ever since I saw this:

      https://www.youtube.com/watch?v=67yn9of6jFY

      _Mark

      Chris Friday

      unread,
      Feb 19, 2021, 5:44:47 AM2/19/21
      to ope...@googlegroups.com
      This is just to give the feedback to "two different speeds". It took a while but got it:

      G0 to the homing point in HOME_COMMAND was simply mocked twice and not necessary - a relic from previous version. OpenPnP knows where to go




      The slow sinus move was made by the default lower jerk maximum value used
      with G0 and restored from the EEPROM after powerup. Motion Control Type is set to SimpleSCurve, so sinus was correct. Xjm, Yjm.. were then overwritten with advanced motion calculated much higher values. These higher values remain for all other homing cycles until a reset of the controller.

      Fixed and zoomzoom..looks much better.

      The nozzle cameras are the reused original LitePlacer modules. I was tired of handle with the magnifying lamp and barely see this 0402 stuff. It was cheaper than buying new glasses. OkOk I have to anyway. Thank you for the video link - will take a while :)


      Thank's again
      Chris


      ma...@makr.zone

      unread,
      Feb 21, 2021, 8:49:28 AM2/21/21
      to OpenPnP
      Hi everybody

      The testing-round has been concluded. Last steps were:
      Thank you @doppelgrau!

      About the new Duet 3D support, see also:

      Regular OpenPnP version 2.0 (develop branch) now contains all the new features discussed and tested here (merged test into develop):

      Again, many thanks to all the testers!

      _Mark

      Hanski

      unread,
      Mar 2, 2021, 3:22:53 PM3/2/21
      to OpenPnP
      Hi guys!
      I downloaded this latest 2.0 version.
      I decided to play safe and installed it on another PC (a fresh install without migration).
      That way I have also a working PC with the old 2.0 version.
      My machine has Duet Wifi board and I updated it's firmware to the latest according to Mark's nice instruction links.

      I got the fiducial homing working and all actuators (pump, lights, vacuum valve).
      Unfortunately movements with Simulated3rdOrderControl are quite erratic.
      Running the Motion planner diagnostics function might work on some movements but not on others (e.g. Z axis moves erratic although it's movement should be zero in the Motion planner window.)

      A repeatable action was found from "Position the tool over the bottom camera" button, it causes erratic movement.
      However "Position the camera over the bottom camera" button works correctly every time.

      Then I changed to ModeratedConstantAcceleration control type.
      It behaved better in the tests described above if I uncheck the "Allow continuous motion" button.

      However when I try to rotate C axis with the jog buttons, both (CC and CW) buttons turn the C axis only clockwise.
      And it always turns about two full turns regardless of the Distance (mm/deg) slider.
      The distance (mm/deg) slider seems to only affect the rotating speed of the C axis.

      Debug window reports this with 1 degree to the right and 1 degree to the left jog commands:
      2021-03-02 21:38:53.321 AbstractHeadMountable DEBUG: N1.moveTo((30.670000, -0.530000, 0.000000, 21.000000 mm), 1.0)
      2021-03-02 21:38:53.328 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M204 S538.61 G1    E21.0000 F1392.48 ; move to target, 5000)...
      2021-03-02 21:39:34.163 AbstractHeadMountable DEBUG: N1.moveTo((30.670000, -0.530000, 0.000000, 22.000000 mm), 1.0)
      2021-03-02 21:39:34.169 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M204 S538.61 G1    E22.0000 F1392.48 ; move to target, 5000)...
      2021-03-02 21:39:34.536 AbstractHeadMountable DEBUG: N1.moveTo((30.670000, -0.530000, 0.000000, 23.000000 mm), 1.0)
      2021-03-02 21:39:34.545 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M204 S538.61 G1    E23.0000 F1392.48 ; move to target, 5000)...


      Should I perhaps try another Motion control type perhaps, thanks? 
       
      I attached the machine XML.

      -Hanski
      machine.xml

      ma...@makr.zone

      unread,
      Mar 3, 2021, 4:08:34 AM3/3/21
      to ope...@googlegroups.com

      Hi Hanski

      > Unfortunately movements with Simulated3rdOrderControl are quite erratic.

      Can you describe "quite erratic".

      If you mean "slowing down in the middle and then strangely limping to the target", then you might want to read about the Grace period (M595 R) here:

      https://github.com/Duet3D/RepRapFirmware/pull/471

      I have not yet documented that nor included it in Issues & Solutions because I don't know the right value for the Grace Period.

      @Wolfgang has done some experiments (albeit on Duet 3), maybe he can help us with the right settings.

      I don't know yet if Duet 2 is powerful enough for 3rd order control, however I would be astonished if it weren't.

      I'll then add documentation (or even checks to the Issues & Solutions if possible).

      > However when I try to rotate C axis with the jog buttons, both (CC and CW) buttons turn the C axis only clockwise. ...

      > Debug window reports this with 1 degree to the right and 1 degree to the left jog commands:
      2021-03-02 21:38:53.321 AbstractHeadMountable DEBUG: N1.moveTo((30.670000, -0.530000, 0.000000, 21.000000 mm), 1.0)
      2021-03-02 21:38:53.328 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M204 S538.61 G1    E21.0000 F1392.48 ; move to target, 5000)...
      2021-03-02 21:39:34.163 AbstractHeadMountable DEBUG: N1.moveTo((30.670000, -0.530000, 0.000000, 22.000000 mm), 1.0)
      2021-03-02 21:39:34.169 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M204 S538.61 G1    E22.0000 F1392.48 ; move to target, 5000)...
      2021-03-02 21:39:34.536 AbstractHeadMountable DEBUG: N1.moveTo((30.670000, -0.530000, 0.000000, 23.000000 mm), 1.0)
      2021-03-02 21:39:34.545 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M204 S538.61 G1    E23.0000 F1392.48 ; move to target, 5000)...

      What?!! I cannot think of anything that would do that. Using your machine.xml against the GcodeServer I don't see it in the log. Are you sure you sent me the relevant part of the log showing CCW and CW jogs? 

      If the log section is wrong, there is the possibility that your steps per mm or micro-stepping settings are wrong, so 1° is translated to multiple turns. And there some powerful settings in Duet that affect how axes work. For instance they can do 360° modulo wrap-around by themselves. I see you have an E axis configued which may also suggest that it is configured as an extruder, which sometimes work as coordinate-relative, despite the G90 mode.

      I recommend configuring it as a true continuous rotational axis C but with linear feed-rate calculation. In my lab bench controller config.g it looks like so:

      M584 C0.3 R1 S0                                        ; set drive mapping, C 360°-continuous, but linear feed-rate

      https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping

      _Mark

      Hanski

      unread,
      Mar 3, 2021, 7:07:51 AM3/3/21
      to ope...@googlegroups.com

      Thanks Mark!

      I attached my updated config.g file for C axis. I hope it’s correct now?

      And the updated XML.

       

      Now the C axis jog button works ok sometimes when pressed, not every time.

       

      I tried to get more info with the new Motion planner diagnostics function.

      This test causes no movement at all:

       

      If I disable “Allow continuous Motion” then it will move the X axis only.

      If I set the rotation to 0.0 to all test boxes then the test works correctly.

       

      The same performance with Simulated3rdOrderControl and with ModeratedConstantAcceleration.

       

      Unfortunately if I disable “Allow continuous motion” & “Allow uncoordinated” & “Interpolation Retiming” and put them active again then it will change the Motion planner diagnostics function again. The axes might move or not.

      So, unfortunately I couldn’t make a totally repeatable test.

      -Hanski

       

       

      From: ma...@makr.zone
      Sent: Wednesday, 3 March 2021 11.08
      To: ope...@googlegroups.com

      Subject: Re: [OpenPnP] Testing-Round,

      config.g
      machine.xml

      Wolfgang Lienbacher

      unread,
      Mar 3, 2021, 8:40:44 AM3/3/21
      to OpenPnP
      Hey Hanski, 

      I went through quite a few things with mark recently to iron out my machine with a Duet3, so far it seems to be working fine, however I did not have a batch of boards to assemble in the meanwhile so it still lacks real stress testing. I will get some next week, but in the meanwhile I can drop you my config.g and machine.xml to cross check. 
      The last most important bit was to make sure that the limits in config.g are higher than in machine.xml. If not the duet would make a move slower than anticipated and stall the machine due to unexpected behavior. 
      I have no problems with rotating two axis.

      Wolfgang Lienbacher

      unread,
      Mar 3, 2021, 8:41:38 AM3/3/21
      to OpenPnP
      here's the files
      config.zip

      ma...@makr.zone

      unread,
      Mar 3, 2021, 10:30:02 AM3/3/21
      to ope...@googlegroups.com

      The "Allow uncoordinated" button is experimental. Please switch it off for now.

      The please send a log at Trace level.

      _Mark

      Hanski

      unread,
      Mar 3, 2021, 12:39:42 PM3/3/21
      to OpenPnP
      Thanks Wolfgang!
      I compared your config.g with mine.

      My eyes saw the main differences:
      -I didn't have: M595 P128 R10  ; set grace period to 3ms and increase planner queue to 120 elements
      -And your driver mapping has decimal notion (M584 A0.4 B0.5 R1 S0) whereas I have only integers (M584 C3 R1 S0)

      I can test these changes in the coming weekend when I have more time..

      I can also activate the soft limits in the machine.xml to see if it has any effect.

      -Hanski



      On Wednesday, March 3, 2021 at 3:41:38 PM UTC+2 Wolfgang Lienbacher wrote:
      here's the files

      ma...@makr.zone

      unread,
      Mar 3, 2021, 1:30:12 PM3/3/21
      to ope...@googlegroups.com

      When Wolfgang said "limits", I think he referred to the feedrate and acceleration limits, not soft limits.

      Those limits need to be the same (or higher) in config.g as in OpenPnP.

      _Mark

      --
      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/DnpvszIEA5Q/unsubscribe.
      To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.

      Wolfgang Lienbacher

      unread,
      Mar 3, 2021, 1:41:06 PM3/3/21
      to ope...@googlegroups.com
      yes it seemed that sometimes the grace period of 3ms was too low, but ultimately the problem we were chasing was for one the maximum limits defined in config.g being too low and the controller becoming out of sync, and for two I also had „allow uncoordinated“ checked. 

      --
      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/DnpvszIEA5Q/unsubscribe.
      To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.

      Hanski

      unread,
      Mar 3, 2021, 2:18:24 PM3/3/21
      to ope...@googlegroups.com

      Yep, that I read from the documentation and I did set the speed and acceleration values higher in config.g than in OpenPnP.

       

      -Hanski

       

      From: ma...@makr.zone
      Sent: Wednesday, 3 March 2021 20.30
      To: ope...@googlegroups.com
      Subject: Re: [OpenPnP] Testing-Round,

       

      When Wolfgang said "limits", I think he referred to the feedrate and acceleration limits, not soft limits.

      Hanski

      unread,
      Mar 8, 2021, 11:14:06 AM3/8/21
      to ope...@googlegroups.com

      Hi!

      I did some more testing, but unfortunately not much progress.

      I did change the Motion Control Type also to ToolpathFeedRate, but it had no effect.

       

      This test sequence result is that no axes move:

       

      And the log (Trace level) looks like this when I press the play button:

       

      2021-03-08 18:11:04.904 ReferenceHead DEBUG: H1.moveToSafeZ(1.0)

      2021-03-08 18:11:04.906 AbstractHeadMountable DEBUG: N1.moveToSafeZ(1.0)

      2021-03-08 18:11:04.907 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:04.907 ReferenceNozzle TRACE: N1.transformToHeadLocation((0.000000, 0.000000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:04.908 AbstractHeadMountable DEBUG: Top.moveToSafeZ(1.0)

      2021-03-08 18:11:04.909 AbstractHeadMountable DEBUG: N1.moveTo((0.000000, 0.000000, 0.000000, 0.000000 mm), 1.0)

      2021-03-08 18:11:04.910 ReferenceNozzle TRACE: N1.transformToHeadLocation((-30.670000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:04.913 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(G1 X-30.6700 Y0.5300    ; move to target, 5000)...

      2021-03-08 18:11:04.914 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> G1X-30.67Y0.53

      2021-03-08 18:11:04.916 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:04.918 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M400 ; Wait for moves to complete before returning, 5000)..

      2021-03-08 18:11:04.919 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M114 ; get position, -1)...

      2021-03-08 18:11:04.919 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M400

      2021-03-08 18:11:04.919 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M114

      2021-03-08 18:11:05.025 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.028 GcodeDriver$ReaderThread TRACE: [serial://COM6] << X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.028 GcodeDriver TRACE: Position report: X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.029 GcodeDriver TRACE: GcodeAsyncDriver got lastReportedLocation (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.029 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.029 GcodeAsyncDriver TRACE: GcodeAsyncDriver confirmation complete.

      2021-03-08 18:11:05.029 AbstractMotionPlanner DEBUG: Reported location changes current location from (X:-30.670000, Y:0.530000, Z:0.000000, C:0.000000) to (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.029 AbstractHeadMountable DEBUG: N1.moveTo((0.000000, 0.000000, 0.000000, 0.000000 mm), 1.0)

      2021-03-08 18:11:05.029 ReferenceNozzle TRACE: N1.transformToHeadLocation((-30.670000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.031 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(G1 X-30.6700     ; move to target, 5000)...

      2021-03-08 18:11:05.032 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> G1X-30.67

      2021-03-08 18:11:05.032 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M400 ; Wait for moves to complete before returning, 5000)...

      2021-03-08 18:11:05.032 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M114 ; get position, -1)...

      2021-03-08 18:11:05.032 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M400

      2021-03-08 18:11:05.033 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M114

      2021-03-08 18:11:05.033 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.034 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.037 GcodeDriver$ReaderThread TRACE: [serial://COM6] << X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.037 GcodeDriver TRACE: Position report: X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.038 GcodeDriver TRACE: GcodeAsyncDriver got lastReportedLocation (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.038 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.038 GcodeAsyncDriver TRACE: GcodeAsyncDriver confirmation complete.

      2021-03-08 18:11:05.038 AbstractMotionPlanner DEBUG: Reported location changes current location from (X:-30.670000, Y:0.530000, Z:0.000000, C:0.000000) to (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.039 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M400 ; Wait for moves to complete before returning, 5000)...

      2021-03-08 18:11:05.039 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M114 ; get position, -1)...

      2021-03-08 18:11:05.040 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M400

      2021-03-08 18:11:05.040 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M114

      2021-03-08 18:11:05.041 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.044 GcodeDriver$ReaderThread TRACE: [serial://COM6] << X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.044 GcodeDriver TRACE: Position report: X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.045 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.045 GcodeDriver TRACE: GcodeAsyncDriver got lastReportedLocation (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.045 GcodeAsyncDriver TRACE: GcodeAsyncDriver confirmation complete.

      2021-03-08 18:11:05.045 ReferenceHead DEBUG: H1.moveToSafeZ(1.0)

      2021-03-08 18:11:05.046 AbstractHeadMountable DEBUG: N1.moveToSafeZ(1.0)

      2021-03-08 18:11:05.046 ReferenceNozzle TRACE: N1.transformToHeadLocation((-5.000000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.046 ReferenceNozzle TRACE: N1.transformToHeadLocation((-5.000000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.047 AbstractHeadMountable DEBUG: Top.moveToSafeZ(1.0)

      2021-03-08 18:11:05.047 AbstractHeadMountable DEBUG: N1.moveTo((300.000000, -300.000000, 0.000000, 90.000000 mm), 1.0)

      2021-03-08 18:11:05.047 ReferenceNozzle TRACE: N1.transformToHeadLocation((269.330000, -299.470000, 0.000000, 90.000000 mm), ...)

      2021-03-08 18:11:05.050 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(G1 X269.3300 Y-299.4700  C90.0000  ; move to target, 5000)...

      2021-03-08 18:11:05.050 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> G1X269.33Y-299.47C90

      2021-03-08 18:11:05.053 GcodeDriver$ReaderThread TRACE: [serial://COM6] << Error: G0/G1: insufficient axes homed

      2021-03-08 18:11:05.053 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M400 ; Wait for moves to complete before returning, 5000)..

      2021-03-08 18:11:05.054 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M114 ; get position, -1)...

      2021-03-08 18:11:05.054 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.054 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M400

      2021-03-08 18:11:05.055 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M114

      2021-03-08 18:11:05.056 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.059 GcodeDriver$ReaderThread TRACE: [serial://COM6] << X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.059 GcodeDriver TRACE: Position report: X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.060 GcodeDriver TRACE: GcodeAsyncDriver got lastReportedLocation (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.060 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.060 GcodeAsyncDriver TRACE: GcodeAsyncDriver confirmation complete.

      2021-03-08 18:11:05.060 AbstractMotionPlanner DEBUG: Reported location changes current location from (X:269.330000, Y:-299.470000, Z:0.000000, C:90.000000) to (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.061 AbstractHeadMountable DEBUG: N1.moveTo((300.000000, -300.000000, 0.000000, 90.000000 mm), 1.0)

      2021-03-08 18:11:05.061 ReferenceNozzle TRACE: N1.transformToHeadLocation((269.330000, -299.470000, 0.000000, 90.000000 mm), ...)

      2021-03-08 18:11:05.063 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(G1 X269.3300 Y-299.4700  C90.0000  ; move to target, 5000)...

      2021-03-08 18:11:05.064 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> G1X269.33Y-299.47C90

      2021-03-08 18:11:05.066 GcodeDriver$ReaderThread TRACE: [serial://COM6] << Error: G0/G1: insufficient axes homed

      2021-03-08 18:11:05.066 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.067 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M400 ; Wait for moves to complete before returning, 5000)...

      2021-03-08 18:11:05.067 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M400

      2021-03-08 18:11:05.068 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.067 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M114 ; get position, -1)...

      2021-03-08 18:11:05.069 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M114

      2021-03-08 18:11:05.074 GcodeDriver$ReaderThread TRACE: [serial://COM6] << X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.074 GcodeDriver TRACE: Position report: X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.074 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.075 GcodeDriver TRACE: GcodeAsyncDriver got lastReportedLocation (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.075 GcodeAsyncDriver TRACE: GcodeAsyncDriver confirmation complete.

      2021-03-08 18:11:05.075 AbstractMotionPlanner DEBUG: Reported location changes current location from (X:269.330000, Y:-299.470000, Z:0.000000, C:90.000000) to (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.076 ReferenceHead DEBUG: H1.moveToSafeZ(1.0)

      2021-03-08 18:11:05.077 AbstractHeadMountable DEBUG: N1.moveToSafeZ(1.0)

      2021-03-08 18:11:05.077 ReferenceNozzle TRACE: N1.transformToHeadLocation((-5.000000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.077 ReferenceNozzle TRACE: N1.transformToHeadLocation((-5.000000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.078 AbstractHeadMountable DEBUG: Top.moveToSafeZ(1.0)

      2021-03-08 18:11:05.078 AbstractHeadMountable DEBUG: N1.moveTo((0.000000, 0.000000, 0.000000, 0.000000 mm), 1.0)

      2021-03-08 18:11:05.079 ReferenceNozzle TRACE: N1.transformToHeadLocation((-30.670000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.080 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(G1 X-30.6700     ; move to target, 5000)...

      2021-03-08 18:11:05.081 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> G1X-30.67

      2021-03-08 18:11:05.083 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.085 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M400 ; Wait for moves to complete before returning, 5000)...

      2021-03-08 18:11:05.085 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M400

      2021-03-08 18:11:05.085 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M114 ; get position, -1)...

      2021-03-08 18:11:05.086 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M114

      2021-03-08 18:11:05.086 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.091 GcodeDriver$ReaderThread TRACE: [serial://COM6] << X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.091 GcodeDriver TRACE: Position report: X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.091 GcodeDriver TRACE: GcodeAsyncDriver got lastReportedLocation (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.091 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.091 GcodeAsyncDriver TRACE: GcodeAsyncDriver confirmation complete.

      2021-03-08 18:11:05.092 AbstractMotionPlanner DEBUG: Reported location changes current location from (X:-30.670000, Y:0.530000, Z:0.000000, C:0.000000) to (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.092 AbstractHeadMountable DEBUG: N1.moveTo((0.000000, 0.000000, 0.000000, 0.000000 mm), 1.0)

      2021-03-08 18:11:05.092 ReferenceNozzle TRACE: N1.transformToHeadLocation((-30.670000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.094 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(G1 X-30.6700     ; move to target, 5000)...

      2021-03-08 18:11:05.095 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> G1X-30.67

      2021-03-08 18:11:05.096 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.098 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M400 ; Wait for moves to complete before returning, 5000)...

      2021-03-08 18:11:05.099 GcodeAsyncDriver DEBUG: serial://COM6 commandQueue.offer(M114 ; get position, -1)...

      2021-03-08 18:11:05.099 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M400

      2021-03-08 18:11:05.099 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> M114

      2021-03-08 18:11:05.107 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.109 GcodeDriver$ReaderThread TRACE: [serial://COM6] << X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.109 GcodeDriver TRACE: Position report: X:-5.000 Y:0.530 Z:0.000 C:0.000 E:0.000 Count -800 85 0 0 Machine -5.000 0.530 0.000 0.000 Bed comp 0.000

      2021-03-08 18:11:05.109 GcodeDriver TRACE: GcodeAsyncDriver got lastReportedLocation (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.109 GcodeDriver$ReaderThread TRACE: [serial://COM6] << ok

      2021-03-08 18:11:05.109 GcodeAsyncDriver TRACE: GcodeAsyncDriver confirmation complete.

      2021-03-08 18:11:05.110 AbstractMotionPlanner DEBUG: Reported location changes current location from (X:-30.670000, Y:0.530000, Z:0.000000, C:0.000000) to (X:-5.000000, Y:0.530000, Z:0.000000, C:0.000000)

      2021-03-08 18:11:05.110 AbstractHeadMountable DEBUG: N1.moveToSafeZ(0.2)

      2021-03-08 18:11:05.110 ReferenceNozzle TRACE: N1.transformToHeadLocation((-5.000000, 0.530000, 0.000000, 0.000000 mm), ...)

      2021-03-08 18:11:05.111 ReferenceNozzle TRACE: N1.transformToHeadLocation((-5.000000, 0.530000, 0.000000, 0.000000 mm), ...)

       

       

      To my beginner eyes this looks like the machine thinks it’s performing the moves ok?

       

      -Hanski

      Hanski

      unread,
      Mar 8, 2021, 12:03:11 PM3/8/21
      to ope...@googlegroups.com

      Hi!

      Now perhaps some progress. When I apply soft travel limits to OpenPnP then it displays an error when I press play in the test sequence:

       

       

      My guess it’s because my head camera vs. nozzle offset:

       

      I guess I have configured this wrong?

      My understanding was that top camera is at zero coordinate location and the nozzle needs the offset coordinates.

       

      -Hanski

      2021-03-08 18:11:05.050 GcodeAsyncDriver$WriterThread TRACE: [serial://COM6] >> G1X269.33Y-299.47C90

      Hanski

      unread,
      Mar 8, 2021, 12:12:29 PM3/8/21
      to ope...@googlegroups.com

      And the test sequence window has to have nozzle location coordinates. Not camera coordinates. Then the test works:

       

      -Hanski

      ma...@makr.zone

      unread,
      Mar 8, 2021, 12:26:06 PM3/8/21
      to ope...@googlegroups.com
      Some ideas:
      1. Clearly the machine does not do as commanded. It remains at X-5 when commanded to go to X-30.67. Check the M208 soft limits in your config.g
      2. Duet just silently ignores moves beyond soft limits. Check if you have the CNC mode in config.g which (I believe) will make soft limit violations HALT the machine as they should. But I'm not sure.
      3. Btw. I don't know if going to X-30.67 is expected or if another homing coordinates/nozzle offset configuration problem is present.
      4. As soon as you try to move C you get

      1. 2021-03-08 18:11:05.053 GcodeDriver$ReaderThread TRACE: [serial://COM6] << Error: G0/G1: insufficient axes homed

      1. Somehow you need to fix that. But I actually don't know how/what I do differently.
      2. Therefore, see my config.g attached. But be warned, this is just my lab bench setup, not a real machine setup.
      3. Have you tried without G-code compression? @dc42 has fixed some issues for Duet 3 and I'm not sure if this was also fixed for Duet 2.

      _Mark

      --
      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/DnpvszIEA5Q/unsubscribe.
      To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
      config.g

      Hanski

      unread,
      Mar 8, 2021, 4:08:59 PM3/8/21
      to ope...@googlegroups.com

      Thanks Mark!

      Your config.g solved my last problem of C axis jog button not working.

       

      I needed to set travel limits also for C axis in config.g. Without C axis limits the jog button doesn’t work:

       

      M208 X-5 Y-351 Z-33 C-360000 S1                       ; set axis minima

      M208 X1032.5 Y5 Z8 C360000 S0                        ; set axis maxima

       

       

      P.S. The new features “Issues & Solutions” and “Motion Planner Diagnostics” are just great!

      Thanks for creating them!

       

      -Hanski

       

      From: ma...@makr.zone
      Sent: Monday, 8 March 2021 19.26
      To: ope...@googlegroups.com
      Subject: Re: [OpenPnP] Testing-Round,

       

      Some ideas:

      Reply all
      Reply to author
      Forward
      0 new messages