Dual Z-axis endstops
-
I have have an FT-5 and want to split my Z axis when homing, my Home Z.g looks like this:
; homez.g
; called to home the Z axis
;
; generated by Jens Kej on Sun Mar 11 2018 15.00G91 ; relative mode
G1 Z4 F200 ; raise head 4mm to ensure it is above the switch trigger height
G90 ; back to absolute mode
G1 X-305 Y-305 F1800 S1; move XY home
G1 X150 Y150 F2000 ; put the head to be centered when you home Z
G91 ; relative mode
M584 Z2 U3 ; split Z axis in two
G1 Z-400 U-400 S1 F100 ; home the Z- and U axis
G92 Z0.1 ; tell the software that it 0,1 mm above bed
G90 ; back to absolute mode
M584 Z2:3 ; make One Z axis againthe bed is moving fine up and down from web interface but only the Z axis is trying move when I push home Z, why?
here comes my config.g:
; Configuration file for Duet WiFi (firmware version 1.17)
; executed by the firmware on start-up
;
; generated by Jens Kej on Thu Sep 21 2017 17:16:32 GMT+0200 (Rom, sommertid); General preferences
M111 S0 ; Debugging off
G21 ; Work in millimetres
G90 ; Send absolute coordinates…
M83 ; ...but relative extruder moves
M555 P2 ; Set firmware compatibility to look like Marlin
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X300 Y300 Z350 S0 ; Set axis maxima; Endstops
;M574 Z1 S1 ; Define Hall sensor active high on Z-axis
M574 X1 Y1 Z1 U1 S0 ; Define active low and unused microswitches
:M558 P1 X0 Y0 Z0 H5 F120 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
;G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
;M557 X15:285 Y15:285 S20 ; Define mesh grid; Drives
M569 P0 S0 ; Drive 0 goes backwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes backwards
M569 P3 S0 ; Drive 3 goes backwards
M569 P4 S1 ; Drive 4 goes forwards
M569 P5 S1 ; Drive 5 goes forwards
M569 P6 S1 ; Drive 6 goes forwardsM584 X0 Y1 Z2:3 U3 E4:5:6 P3; Apply custom drive mapping
M350 X16 Y16 Z16 U16 E16:16:16 I1 ; Configure microstepping with interpolation
M92 X80 Y80 Z400 U400 E100100 ; Set steps per mm
M566 X900 Y900 Z12 U12 E120:120:120 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z1000 U1000 E1200:1200:1200 ; Set maximum speeds (mm/min)
M201 X500 Y500 Z250 U250 E250:250:250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 U800 E800:800:800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Heaters
M143 S260 ; Set maximum heater temperature to 260C
M305 P0 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 0
;M305 P1 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 1
M305 P1 x151 ; Thermocouple
M307 H1 A626.6 C265.6 D13.9 ; hotend pid settings; Tools
M563 P0 D0 H1 ; Define tool 0
G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M563 P1 D1 H1 ; Define tool 1
G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M563 P2 D2 H1 ; Define tool 2
G10 P2 X0 Y0 Z0 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C; Network
M550 PFT-5 DD ; Set machine name
M552 S1 ; Enable network
M587 Sfarce95taske53lufffe P"be81b0f702d6d23152c28d870e" ; Configure access point. You can delete this line once connected
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet; Fans
M106 P0 S1 I0 F500 H1 T45 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Custom settings are not configured
M501 ;Load overide config.g -
Your two M208 commands need to be moved to be after the M584 command, and you need to add U axis values to them.
-
Your two M208 commands need to be moved to be after the M584 command, and you need to add U axis values to them.
I made something very wrong, messed it all up and had to put new configuration files on the SD-Card. Then I started all over again from scratch. Now my config.g and homez.g looks like this, much better structured, without unused comands etc. but the problem still remains the same:
–----------------------------------------------------------------------------------------------------------------------------------------
; config.g Dual Z-axis
; Configuration file for Duet WiFi (firmware version 1.20 or newer)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Mon Mar 19 2018 17:18:48 GMT+0100 (Rom, normaltid)
; Edited by J. Kej on Mon Mar 19 2018 20:58:48 GMT+0100 (Rom, normaltid); General preferences
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves; Network
M550 PJK'S FT-5 DD ; Set machine name
M552 S1 ; Enable network
M587 S"farce95taske53lufe" P"be81b0f702d6d23152c28d870e" ; Configure access point.
M586 P0 S1 ; Enable HTTP
M586 P1 S1 ; Enable FTP
M586 P2 S1 ; Enable Telnet; Drives
M569 P0 S0 ; Drive 0 goes backwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes backwards
M569 P3 S0 ; Drive 3 goes backwards
M569 P4 S1 ; Drive 4 goes forwards
M569 P5 S1 ; Drive 5 goes forwards
M569 P6 S1 ; Drive 6 goes forwards
M584 X0 Y1 Z2:3 U3 E4:5:6 P3 ; Configure drive remapping to dual Z-axis
M350 X16 Y16 Z16 U16 E16:16:16 I0 ; Configure microstepping without interpolation
M92 X80 Y80 Z400 U400 E100100 ; Set steps per mm
M566 X900 Y900 Z12 U12 E120:120:120 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z1800 U1800 E1200:1200:1200 ; Set maximum speeds (mm/min)
M201 X500 Y500 Z250 U250 E250:250:250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 U800 E800:800:800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 U1 S1 ; Set axis minima
M208 X300 Y300 Z350 U350 S0 ; Set axis maxima; Endstops
M574 X1 Y1 Z1 U1 S0 ; Set active low endstops; Z-Probe
M558 P0 H3 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
M557 X15:285 Y15:285 S20 ; Define mesh grid; Heaters
M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
M143 H0 S120 ; Set temperature limit for heater 0 to 120C
M305 P1 X151 ; Configure thermocouple for heater 1
M143 H1 S280 ; Set temperature limit for heater 1 to 280C; Fans
M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Tools
M563 P0 D0 H1 ; Define tool 0
G10 P0 X0 Y0 Z0.1 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M563 P1 D1 H1 ; Define tool 1
G10 P1 X0 Y0 Z0.1 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M563 P2 D2 H1 ; Define tool 2
G10 P2 X0 Y0 Z0.1 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
M563 P3 D0:1:2 H1 ; Define tool 3
G10 P3 X0 Y0 Z0.1 ; Set tool 3 axis offsets
G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P3 S1 ; Enable mixing for tool 3
M567 P3 E0.33:0.33:0.34 ; Set mixing ratios for tool 3; Automatic saving after power loss is not enabled
; Custom settings
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configured for Dual Z-axis by J. Kej on Mon Mar 19 2018 20:18:47 GMT+0100 (Rom, normaltid)
;
M584 Z2 U3 P3
G1 S1 Z-355 U-355
G92 Z0.1
M584 Z2:3 P3 -
Have you tested the U endstop switch? Perhaps it is showing as already triggered. See https://duet3d.dozuki.com/Wiki/Connecting_endstop_switches#Section_Test_endstop_switches.
-
Your two M208 commands need to be moved to be after the M584 command, and you need to add U axis values to them.
I made something very wrong, messed it all up and had to put new configuration files on the SD-Card. Then I started all over again from scratch. Now my config.g and homez.g looks like this, much better structured, without unused comands etc. but the problem still remains the same:
–----------------------------------------------------------------------------------------------------------------------------------------
; config.g Dual Z-axis
; Configuration file for Duet WiFi (firmware version 1.20 or newer)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Mon Mar 19 2018 17:18:48 GMT+0100 (Rom, normaltid)
; Edited by J. Kej on Mon Mar 19 2018 20:58:48 GMT+0100 (Rom, normaltid); General preferences
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves; Network
M550 PJK'S FT-5 DD ; Set machine name
M552 S1 ; Enable network
M587 S"farce95taske53lufe" P"be81b0f702d6d23152c28d870e" ; Configure access point.
M586 P0 S1 ; Enable HTTP
M586 P1 S1 ; Enable FTP
M586 P2 S1 ; Enable Telnet; Drives
M569 P0 S0 ; Drive 0 goes backwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes backwards
M569 P3 S0 ; Drive 3 goes backwards
M569 P4 S1 ; Drive 4 goes forwards
M569 P5 S1 ; Drive 5 goes forwards
M569 P6 S1 ; Drive 6 goes forwards
M584 X0 Y1 Z2:3 U3 E4:5:6 P3 ; Configure drive remapping to dual Z-axis
M350 X16 Y16 Z16 U16 E16:16:16 I0 ; Configure microstepping without interpolation
M92 X80 Y80 Z400 U400 E100100 ; Set steps per mm
M566 X900 Y900 Z12 U12 E120:120:120 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z1800 U1800 E1200:1200:1200 ; Set maximum speeds (mm/min)
M201 X500 Y500 Z250 U250 E250:250:250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 U800 E800:800:800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 U1 S1 ; Set axis minima
M208 X300 Y300 Z350 U350 S0 ; Set axis maxima; Endstops
M574 X1 Y1 Z1 U1 S0 ; Set active low endstops; Z-Probe
M558 P0 H3 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
M557 X15:285 Y15:285 S20 ; Define mesh grid; Heaters
M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
M143 H0 S120 ; Set temperature limit for heater 0 to 120C
M305 P1 X151 ; Configure thermocouple for heater 1
M143 H1 S280 ; Set temperature limit for heater 1 to 280C; Fans
M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Tools
M563 P0 D0 H1 ; Define tool 0
G10 P0 X0 Y0 Z0.1 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
M563 P1 D1 H1 ; Define tool 1
G10 P1 X0 Y0 Z0.1 ; Set tool 1 axis offsets
G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
M563 P2 D2 H1 ; Define tool 2
G10 P2 X0 Y0 Z0.1 ; Set tool 2 axis offsets
G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
M563 P3 D0:1:2 H1 ; Define tool 3
G10 P3 X0 Y0 Z0.1 ; Set tool 3 axis offsets
G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
M568 P3 S1 ; Enable mixing for tool 3
M567 P3 E0.33:0.33:0.34 ; Set mixing ratios for tool 3; Automatic saving after power loss is not enabled
; Custom settings
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configured for Dual Z-axis by J. Kej on Mon Mar 19 2018 20:18:47 GMT+0100 (Rom, normaltid)
;
M584 Z2 U3 P3
G1 S1 Z-355 U-355
G92 Z0.1
M584 Z2:3 P3Endstop Z and U are working properly, led's on board lights up when i hit them with my finger. That's not the issue…...
-
Can you see the U endstop working in the Duet Web Control Machine Properties page? The LED is not always a reliable indication.
-
Can you see the U endstop working in the Duet Web Control Machine Properties page? The LED is not always a reliable indication.
Found out that U endstop is not working and it seems like it is a problem related to my Duet WiFi board as I have tested/measured all wires, connectors and endstops, yhey are all ok.
Then I have tried to move the plug from my working Z stop to the U connector on the board but when I turn it on again and go to Machine Properties page nothing works.
Now I also have tried to move the stepper and endstop for my U axis to E4 on my duex5 and remap U in my confiig.g and homez.g but I still had the same problem.
Have tested all my endstops and they work properly on the XYZ axis. On all other they seem to work the oposite way in the machine properties page. Reported as hit and change from Yes to No when I hit them manually, Whats wrong then? -
1. If you are running firmware 1.21RC5 then it's normal for endstops that are set to active low to read the wrong way round. That's fixed in the 1.21 release.
2. Are you using microswitches, or some other type of endstop?
3. Please run M574 without parameters, and check that the U endstop is reported as being configured the same way as XYZ.
-
1. Now I have updated my Firmware to ver. 1.21 and now all my declared endstops works, but still no readings of minimum and maximum for drive 3 aka U axis.
2. I use standard Makerbot Mechanical endstops ver. 1.2
3. M574 returns: Endstop configuration: X: low end active low switch, Y: low end active low switch, Z: low end active low switch, U: low end active low switch,
Now when I try to move Z up and down I get a red popup like this:
M120
G91
G1 Z-1 F6000
M121
Error: G0/G1: insufficient axes homed
Error: Pop(): stack underflow!homez still don't work
What's next? -
Read the release notes for firmware 1.21.
-
all should now be updated and I have read the release notes.
I'm homing X and Y fine but trying to home Z, my homez.g looks like this:
G91 ; relative positioning
M584 Z2 U3 P3
G1 S1 Z-355 U-355
G92 Z0.1
M584 Z2:3 P3
G90 ; absolute positioningbut only the spindle connected to the Z connector is trying to home but noting happens on U spindle. My machine properties looks like this:
Logical Drive Endstop hit Minimum Maximum InstantDv Max Speed Acceleration Motor Current
X Yes 0 mm 300 mm 15 mm/s 100 mm/s 500 mm/s² 800 mA
Y Yes 0 mm 300 mm 15 mm/s 100 mm/s 500 mm/s² 800 mA
Z No 0 mm 350 mm 1 mm/s 30 mm/s 250 mm/s² 800 mA
E0 No n/a n/a 1 mm/s 30 mm/s 250 mm/s² 800 mA
E1 Yes n/a n/a 2 mm/s 20 mm/s 250 mm/s² 800 mA
E2 Yes n/a n/a 2 mm/s 20 mm/s 250 mm/s² 800 mA
I can now see that endstop for Z works, the one I have set for U now works on E0 and my E3 no longer exists.
My parameters set for the U seems to be in E0 row but no min and max values are available here. I guess that's why my U axis can't move. What can I do to solve this? -
I have the following software information:
Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
Firmware Electronics: Duet WiFi 1.02 or later + DueX5
Firmware Version: 1.21 (2018-03-21)
WiFi Server Version: 1.21
Web Interface Version: 1.21-RC4 -
Try changing P3 in this line of homez.g:
M584 Z2 U3 P3
to P4, so that U is treated as a real axis during homing.
-
Thanks now Z and U is homing. Back to work…...
-
Hi David,
I'm having basically exactly the same issue as j3dk: 2 independent z-axis motors, 2 z-axis endstops, when homing only moves 1 z-axis, the Z... the U just looks at me and laughs... when homing X and Y, and once homed Z, both z-axis move correctly, so I am sure it is something wrongly configured...
After following thru all this thread, I finally realised that my Machine Properties for E0 and E1 are reversed, E0 is my extruder, and E1 is my right hand z-axis, what I have declared as U in my config.g - the endstops themselves do correspond to the correct axis, but the rest of the values of E0 are the same as Z, whilst the values of E1 are those that I have configured for the extruder.
I have tried changing the remap command so E is before U, but seems to have no effect - flash! should I also rearrange all the other parameters too?
Attach config.g and homez.g, although especially homez, I have revised it at least 5 times as I have gone thru this thread!
Thanks!
Andy
0_1523477320088_config copy.g
0_1523477329606_homez.g -
I don't know how you manage to move any axes at all, because the only M906 command I see in your config.g is this one:
M906 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent\
so all the XYZU motor currents will be zero.
-
@dc42 sorry! forgot to mention, I'm using external stepper drivers for XYZU!
I am fond of removing surplus code, so after somewhere in the wiki I saw something about the external drivers are the ones that actually decide the current and microsteps, I removed all M350 and M84 that referred to the external drives - works perfectly for all moves as-is - it is just the homing that only 1 z-axis does not want to cooperate!
Cheers!
Andy
-
Probably noob question.. But I assume you need to tune both Z ends top flags so Z and U line up correctly.is that more more accurate than using the Z-Probe method? Or is dual end stop better since you also can sync after power failure. If you have them both as max endstops, that is
-
@andymidtf said in Dual Z-axis endstops:
@dc42 sorry! forgot to mention, I'm using external stepper drivers for XYZU!
I am fond of removing surplus code, so after somewhere in the wiki I saw something about the external drivers are the ones that actually decide the current and microsteps, I removed all M350 and M84 that referred to the external drives - works perfectly for all moves as-is - it is just the homing that only 1 z-axis does not want to cooperate!
Cheers!
Andy
Of course, for some reason I had the idea that you were using a DueX5.
- Does DWC display the U axis?
- Are you able to jog the U axis by small amounts?
- If you send M208 without parameters, does it report the correct U axis limits (same as Z axis)?
-
@alexlin said in Dual Z-axis endstops:
Probably noob question.. But I assume you need to tune both Z ends top flags so Z and U line up correctly.is that more more accurate than using the Z-Probe method? Or is dual end stop better since you also can sync after power failure. If you have them both as max endstops, that is
Yes syncing after power failure could be an advantage of dual Z endstops. As for accuracy, I don't have a machine with dual Z leadscrews so I can't compare them.