UNSOLVED Secondary Tool move breaks Z homing
optical last edited by Phaedrux
I have a PNP machine with dual head.
Board: Duet 3 MB6HC (MB6HC)
Firmware: RepRapFirmware for Duet 3 MB6HC 3.1.1 (2020-05-19b2
X,Y - Standard axes.
Z - Shared axis for both tools(head).
E1,E2 - Axes configured to absolute positioning. Thes axes handles rotation of each head.
Rotation axes has to be set to absolute position, because the openpnp is sending absolute rotation for the tools.
All axes are using trinamic sensorless feature for operation. Due to some manufacturing inprecissions on the Z axis it uses Induction probe for homing operation with offset to zero. For normal operation it switches back to sensorless. Hoever it should never get to maximum positions. Due to the software.
G0 180 ; Tool 0 moves to 180
G0 180; Tool 1 moves to 180
G0 180 ; Tool 0 moves to 180
G28 Z ; Z starts to move in the other direction then it should. Away from the probe
The problem does not occure when using only tool 0.
I have zero explenation why this happends. The first long move is executed in oposite direction which causes to hit the axis end without limit switch.
Could somebody help me resolve this issue ?
Homing procedure of Z Axis:
; called to home the Z axis
G91 ; relative positioning
M574 Z2 P"!io0.in" S1 ; Induction sensor
M915 Z F0 S3 R1
G1 H1 Z+40 F500
G1 H2 Z-2 F500
G1 H1 Z+5 F500
G90 ; absolute positioning
G92 Z12 ; Set possition due to probe offset
G1 Z0 F500; Park
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.3 on Tue Jun 16 2020 20:02:20 GMT+0200 (Central European Summer Time) ; General preferences G90 ; send absolute coordinates... M82 ; ...but relative extruder moves M550 P"Opto Pnp" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S1 ; disable Telnet ; Drivesh M569 P0 S0 ; physical drive 0 goes forwards M569 P1 S0 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M569 P4 S1 ; physical drive 4 goes forwards ;M569 P5 S1 ; physical drive 5 goes forwards M584 X0 Y1 Z2 E3:4 ; set drive mapping M350 X64 Y64 Z4 E32:32 I1 ; configure microstepping with interpolation M92 X213.507 Y213.70972 Z20.21 E17.777:17.777 ; set steps per mm M566 X900.00 Y900.00 Z900.00 E900.00:900.00 ; set maximum instantaneous speed changes (mm/min) M203 X70000.00 Y22500 Z5000.00 E5000:5000 ; set maximum speeds (mm/min) M201 X6800.00 Y2000.00 Z2000.00 E2000:2000 ; set accelerations (mm/s^2) M906 X3000 Y2800 ; set motor currents (mA) and motor idle factor in per cent M906 Z2300 ; set motor currents (mA) and motor idle factor in per cent M906 E600:600 I15 ; set motor currents (mA) and motor idle factor in per cent M84 S300 ; Set idle timeout for all axis M917 X15 Y15 Z100 E100:100 ; Axis Limits M208 X-7.7 Y-39.2 Z-22.5 S1 ; set axis minima M208 X650 Y400 Z22.5 S0 ; set axis maxima M208 E-18000 S1 ; set axis maxima M208 E18000 S0 ; set axis maxima ; Endstops M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y M574 Z1 S3 M574 E1 S3 ; configure sensorless endstop for low end on Z ; Define Tool 0 M563 P0 D0 ; Define Tool 1 M563 P1 D1 ;M564 H0 ; Allow move with unhomed asix ; GPIO M950 P0 C"out1" ; Air Pump M950 P1 C"out7" ; Air Valve1 M950 P2 C"out8" ; Air Valve2 ; Fans ; Tools ; Custom settings are not defined
Can you also post your tool change files?
I do not have any tool change scripts inside my configuration.
My only tool change commands are T0 and T1.
These are all of the homing scripts.
The maniche is Pick and Place software. The offsets are handled inside openpnp.
However this issue can be replicated without the openpnp. Just by gcode above.
In the other thread i'm dealing with issue how to configure absolute independent rotation axis.
Honestly i do not know what causes the issue. I have spend a lot of time debuging this issue because is seemed to be a random, unitl i found out it stop happedning when i disabled the other pnp head. After that i was able to replicate it by the gcode above.
I do not have any tool change files tfree0.g, tpre0.g and tpost0.g in /sys on the SD card
G0 180 ; Tool 0 moves to 180
I presume that is a mis-print, because G0 180 doesn't make sense (there is no parameter letter before the 180). What should it be? Does the problem still occur with these three G0 commands removed, i.e. just the T commands between G28 and G28 Z?
So i tested again the minimal sample and discovered following:
G28 T0 T1 G28 Z; Works fine
G28 T0 G0 Z10 T1 G0 Z0 T0 G0 Z10 G28 Z ; works fine
G28 T0 T1 G0 E10 G28 Z; failed
This makes me think that maybe the issue is related to the other thread regarding this machine.
Sorry for the previous gcode example. That has not been accurate enough.
I have testing different driver mapping to ensure that the issue is not connected to board it self.
After that i confirmed that the Induction sensor(it has led on the back) is still working after the failed homing, to ensure that somehow the input has not been disabled.
Thanks. Please can you upgrade the firmware to 3.2beta1 and see if the issue is still present.
I have tried 3.2beta2 and 3.2beta1 issue present in both of the versions.
Thank you. I will try your config file on my bench setup and try to reproduce the problem.
today i have been able to produce behavior to use the tools with axis mapping to remember their position.
I have changed the rotation to be represented by axis X(One nozzle). The other i have mapped to axis V to be able to use M563 to change driver mapping for Axis X.
However, the issue with inverting axis is still present. This time right after homing.
G28 G28 Z
Note: I think it would be nice to allow using M563 to remap any axis. Due to this limitation i had to move my X axis to be labeled as U. Which makes things rather messy.
G28 Z G28 V G28 Z ; Failes
This is the minimal usecase when the Z homing failes.
It is propable related to the way i'm homing the axis which does not have endstops and are infite(free-rotation).
Could you help me maybe change the way i'm homing the rotation axis ? Is there Gcode which would just declare the axis as homed ?
Currently i set the stall detection to lowest value and move.
These axis can be homed in any position.
The other possibility is that the Z axis breaks whenever the second tool/driver moves.
Is there Gcode which would just declare the axis as homed ?
G92 will let you set the position of an axis.
I tested new homing scripts using G92 for the infinite axis. And i have come to conclusion that whenever the other drive(Currently V axis) moves. The Z axis homing becomes inverted.
After further testing it seems that somehow the input is inverted.
M574 Z2 P"!io0.in" S1
Because the problem of the movement is "solved" not present when i remove the induction probe connector from the board.
Is it possible that switching from the probe endstop to sensorless endstop breaks the input ?
After messing with the endstop settings. I think that really something is wrong with the input it self.
G28 T1 G1 X10 G28 Z ; Broken home M574 Z2 P"!io0.in" S1 G1 H1 Z+40 F500 ; stops immidiently even when sensor is not triggered M574 Z0 P"nil" G1 H1 Z+40 F500; Continues fine M574 Z2 P"!io0.in" S1 G1 H1 Z+40 F500 ; stops immidiently even when sensor is not triggered
I have tried to change io0 for io1. The issue is still present.
I have checked that the sensor is indeed working even when the problem with the io is present.
Well the ! inverts the signal.
@Phaedrux Ofcourse it does the inversion is correct. The input works for the homing until the Tool 1 is moved then it stops working(propably gets inverted (uninverted)).
I'm suggesting that it is propably a bug inside the firmware.
Post your gcode so we can see what's all going on.
Can you try add M400 before all of your instances of M913?
Important! When M913 is executed, it does not wait for all motion to stop first (unlike M906). This is so that it can be used in the M911 power fail script. When using M913 elsewhere, you will typically want to use M400 immediately before M913.
; Axis Limits M208 U-7.7 Y-39.2 Z-22.5 S1 ; set axis minima M208 U650 Y400 Z22.5 S0 ; set axis maxima M208 X-18000 V-18000 S1 ; set axis maxima M208 X18000 V18000 S0 ; set axis maxima
Can you try condensing that into just two commands?
@dc42 Did you managed to reproduce this issue ?
@optical Did you try any of my suggestions?