My quad carriage machine is failing on Tools. AGAIN.
-
@MaracMB That is an impressive machine and I can certainly see that debugging it won't be easy!
Might help if you post your config-override too for completeness
In your homeu and homew, you only step back by 4mm before doing the slow home, while everywhere else (homex, v, all) you step back by 10mm. Just wondering if that's not enough and you're getting some failed homings on U and W during your tool changes which is messing them up? Might also explain why it seems intermittent if you're just on the limit?
I've noticed that in your homez file, you don't re-hide your A axis, you only re-assign driver 4 to Z:
M584 Z1:4 P7 ; combine Z and V and show only 6 axes in interface
TBH, it could be over-complicating things as you don't need to split the axis to use multiple endstops for multiple motors in RRF3 any more:
https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors#Section_Axis_levelling_using_endstops
Just thinking it will remove one layer of drive mapping/assignments, homing etc from the equation.Other unrelated thing, in your config, you have set you motor microstepping at 32 with interpolation, but the duet doesn't support this - it's only 16 with interpolation
-
@engikeneer this project really was just a space/machinecount optimization that went it’s own way... i have much cooler stuff ready for this. But first things first.
On endstops i retreat only 4 mm because of optical endstops. Triggering that is perfect. 4 mm is more than enough. Config is working version so a lot is unfinnished. It still needs a lot work.
Splitting the axes for the Z... yes, i am aware of that possibility to optimize that but didn’t consider it a thing that would needed to be done.
The interpolation on 32 microsteps is on because it makes less whine. Not that i would need 256interpolation... 2660 arent the quietest of tmc’s.
-
@engikeneer the P7 parameter for axis visibility is there because i, when this thing gets resolved, will hide second Z axis (A). For now, i just set it to all visible, yet left for later change back to P6
-
RESOLVED
For anyone, that might experience such headache and stumbles upon this:
one maps the axes, not the motors to the tools. and you count the axes, not specify motors... -
I'm glad you solved it! Have you any suggestions on how we can improve the documentation to help others to avoid the same issues?
-
@dc42 well, it’s still RTFM thing i guess. But it may be nice to just copy paste that section with asigning axes to tools in “Creating a tool that uses just one carriage”.
The instructions later on, when defining ditto tools clearly state
‘’’ Note that axes are mapped in the order XYZUVWABC, where X=0, Y=1, Z=2, U=3 etc, not by driver number, so X0:3 means 'map axis 0 (X) and 3 (U) to X'.’’’But this is minor. The extent of frustration, optimization and learning one goes through may just be beneficial
So tools definitions solved, and properly understood, i have to check homing reliability now. That may still be an issue.
I am stripping
m120
M84 Prime.g
M121
From my toolchange post scripts to see if that helps with tools homing reliability. That’s the only thing that’s left i guess. If it won’t, i’ll nag on. -
i have re-set my toolchange scripts. It worked for a while.
After 2-3 hours, the 4th axies failed to home when tool was deselected.Error G0/G1
M120
G91
G1 X50 F6000
G90
M121Where does this come from ? This is not in my homing files, not in my toolchange files, nowhere.
My tfree file now look like :
G1 E-12 F3600 ; retract 12mm G91 ; relative axis movement G1 Z2 F360 ; up 2mm G90 ; absolute axis movement G28 X ; park the U carriage home - slow M106 S0 ; turn off print cooling fan
My tpost look like:
M106 R2 ; restore print cooling fan speed M116 P0 ; wait for tool 0 heaters to reach operating temperature G91 G1 X1 H2 G90 G28 X G1 E12 F1200 ; extrude 12mm
I thought it worked. But then it didn't.
Also, when i homeall , all tools home normaly.
But when i homeall via gcode file (G28), second tool does not home correctly.homeu.g :
G91 ; relative positioning G1 Z2 F360 H2 ; lift Z relative to current position G1 U320 F3600 H1 ; move quickly to X axis endstop and stop there (first pass) G1 U-2 F600 H2 ; go back a few mm G1 U4 F360 H1 ; move slowly to X axis endstop once more (second pass) G1 Z-2 F360 H2 ; lower Z again G90 ; absolute positioning
Homeall.g :
G91 ; relative positioning G1 Z2 F360 H2 ; lift Z relative to current position G1 X-400 Y-450 U400 V-400 W400 F3600 H1 ; move quickly to X and Y axis endstops and stop there (first pass) G1 X5 Y5 U-5 V5 W-5 F3600 H2 ; go back a 5 mm G1 Y-10 X-10 U10 V-10 W10 F360 H1 ; second pass M98 Phomez.g ; call homing script for Z axes G90
-
-
Is it the U and/or W axes that failed to home? If so, it is just one of those, or both of them?
Those endstop switches are the ones connected to the DueX5 board. Keeping those switches up to date relies on I2C communications between the Duet and the DueX along with an interrupt. A M122 report taken when this happens will provide data on the status of the I2C interface.
-
@MaracMB said in My quad carriage machine is failing on Tools. AGAIN.:
Also, when i homeall , all tools home normaly.
But when i homeall via gcode file (G28), second tool does not home correctly.What do you mean by this? G28 is homeall.g. How else are you homing all?
-
@dc42 would it help if i shorten the IDE cable in between them?
I do have to get the wiring in orderly lenghts and routes... it’s A LOT of wiring...So it’s basically just latency issue?
Can ,i in time i do wiring, insert some pauses into homing? Half a second here and there wouldn’t hurt for realiability.
-
Can you post a photo of how you have the Duet and Duex wired together? Particularly the power?
See the description and photo here for how it should be done.
https://duet3d.dozuki.com/Wiki/Duex2_and_Duex5_Features#Section_Wiring
-
-
@Phaedrux that i can do in the morning (machine in the cave...)
It’s powered from a 350w meanwell, AC bed. The VIN from PSU is 1.5mm i guess.. stock. And “the bridge” between the Duet and Duex is with 2.5mm2 high grade copper wires. Ferulle crimped. -
@Phaedrux , @dc42
I have rewired.
Put all the X motors and Y on the Duet board, and Duex now holds both Z motors and all E motors.I have rewired the VIN. Just in case.
I have reset the configs accordingly.
State of art:
Machine seems to home the X carriages reliably now, same goes for Y
But now it fails on almost every or every second Z homing.
If i home Z, it will probably home correct. If i go and commit home all, it will most definetly not home Z axes correctly.Machine needs independant Z motors to level the X gantries every single time, or this is just a very, very, very large paperweight.
As suggested by @engikeneer, i have joint the Z axes. Is this now a problem?
homez.g :
G91 ; relative positioning G1 H2 Z5 F600 G1 Z-405 F900 H1 G1 Z2 F900 H2 G1 Z-5 F360 H1 G1 Z3 F900 ; lift both Zs to 3 G90 ; absolute positioning
homeall.g
G91 ; relative positioning G1 Z2 F360 H2 ; lift Z relative to current position G1 X-400 Y-450 U400 V-400 W400 F3600 H1 ; move quickly to X and Y axis endstops and stop there (first pass) G1 X5 Y5 U-5 V5 W-5 F3600 H2 ; go back a 5 mm G1 Y-10 X-10 U10 V-10 W10 F360 H1 ; second pass M98 Phomez.g ; call homing script for Z axes G90
Mapping Z
M584 X0 Y2 Z5:6 U1 V3 W4
Endstops for Z:
M574 Z1 S1 P"!duex.e2stop+!duex.e3stop"
I have set the voltages for the Z motors as:
M906 X950 Y1050 Z950:950 U950 V950 W950 I30
Is this ok? not sure how else i can do it if two motors, same axis, two endstops...
-
@Phaedrux
rats nest:
https://drive.google.com/file/d/1XQcPBchHubw7k9XG6YlcQA89s1ovAu4-/view?usp=sharingnew VIN
https://drive.google.com/file/d/1PnsclKfqTyVa3TaVUyYYShSjggaT2_Y3/view?usp=sharingthe IDE is already as short as possible. in given circumstances.
is this just too much for Duet and will i have to use some other platform?
if you notice that Duex is not as it should be, it's because i fried two of them already and i am NOT frying another original until this is done. Money does not grow on trees. I am a landscape architect, i would know such tree...
-
even with split Z axes, it fails.
G91 ; relative positioning G1 H2 Z5 F600 M584 Z5 A6 P7 ;split G1 Z-405 A-405 F900 H1 M584 Z5:6 P6 G1 Z3 F900 ; lift both Zs to 3 G90 ; absolute positioning
this is M122 after Z homing fails:
M122
=== Diagnostics ===
RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2-beta2 running on Duet WiFi 1.02 or later + DueX5
Board ID: 08DGM-9T6BU-FG3SN-6J9F6-3SN6L-KUWVG
Used output buffers: 3 of 24 (24 max)
=== RTOS ===
Static ram: 24028
Dynamic ram: 103532 of which 64 recycled
Exception stack ram used: 560
Never used ram: 2888
Tasks: NETWORK(ready,123) HEAT(blocked,294) DUEX(blocked,36) MAIN(running,451) IDLE(ready,19)
Owned mutexes:
=== Platform ===
Last reset 00:04:22 ago, cause: software
Last software reset at 2020-11-05 11:22, reason: User, GCodes spinning, available RAM 2880, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
Error status: 0x04
MCU temperature: min 38.3, current 38.6, max 39.1
Supply voltage: min 24.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
Driver 0: position 0, standstill, SG min/max not available
Driver 1: position 0, standstill, SG min/max not available
Driver 2: position 4800, standstill, SG min/max not available
Driver 3: position 0, standstill, SG min/max not available
Driver 4: position 0, standstill, SG min/max not available
Driver 5: position 0, standstill, SG min/max 0/178
Driver 6: position 0, standstill, SG min/max 0/118
Driver 7: position 0, standstill, SG min/max not available
Driver 8: position 0, standstill, SG min/max not available
Driver 9: position 0, standstill, SG min/max not available
Driver 10: position 0
Driver 11: position 0
Date/time: 2020-11-05 11:27:01
Cache data hit count 412734709
Slowest loop: 17.58ms; fastest: 0.19ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 20.0MBytes/sec
SD card longest read time 1.3ms, write time 3.1ms, max retries 0
=== Move ===
Hiccups: 0(0), FreeDm: 169, MinFreeDm: 167, MaxWait: 251856ms
Bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves: 6, completed moves: 6, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== AuxDDARing ===
Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
=== Heat ===
Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger is idle in state(s) 0
Queue is idle in state(s) 0
LCD is idle in state(s) 0
Daemon is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 201.99ms; fastest: 0.11ms
Responder states: HTTP(2) HTTP(1) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
HTTP sessions: 1 of 8- WiFi -
Network state is active
WiFi module is connected to access point
Failed messages: pending 0, notready 0, noresp 1
WiFi firmware version 1.24beta2-05b1
WiFi MAC address 84:f3:eb:83:45:0d
WiFi Vcc 3.43, reset reason Power up
WiFi flash size 4194304, free heap 23288
WiFi IP address 192.168.0.125
WiFi signal strength -44dBm, reconnections 0, sleep mode modem
Clock register 00002002
Socket states: 4 2 0 0 0 0 0 0
=== DueX ===
Read count 3, 1.85 reads/min
- WiFi -
-
this is repeating on sending Home Z.
Sometimes it works, sometimes it does not.I will leave this here.
https://drive.google.com/file/d/1bWrnUszf52sSI6WxNkiBHYnSRBgFj5J1/view?usp=sharingI hope you now understand what the problem is. It is the same problem from the start. Now i just isolated it to Z axes.
-
@MaracMB said in My quad carriage machine is failing on Tools. AGAIN.:
this is repeating on sending Home Z.
Sometimes it works, sometimes it does not.I will leave this here.
https://drive.google.com/file/d/1bWrnUszf52sSI6WxNkiBHYnSRBgFj5J1/view?usp=sharingI hope you now understand what the problem is. It is the same problem from the start. Now i just isolated it to Z axes.
Please explain WHAT fails, and post the config file you are using. Also your homing files if they have changed since you posted them before.
-
@dc42 are you deliberately ignoring that the Z homing fails? Or are you just playing? I don't know, techically, what fails. It fails to home both leadscrews. motors grind. What does it look like when Z does not home right?
And sometimes it does home right. This is why i recorded a video. Because we seem not to undestand eachother.Since you said:
*dc42 ADMINISTRATORS 4 Nov 2020, 16:11
Is it the U and/or W axes that failed to home? If so, it is just one of those, or both of them?Those endstop switches are the ones connected to the DueX5 board. Keeping those switches up to date relies on I2C communications between the Duet and the DueX along with an interrupt. A M122 report taken when this happens will provide data on the status of the I2C interface.*
So I rewired, moved the X axes to Duet board and isolated the unrealiable homing to Z.
I have posted you the homing of Z just above. Do you want me to do it again? here you go:
G91 ; relative positioning G1 H2 Z5 F600 M584 Z5 A6 P7 ;split G1 Z-405 A-405 F900 H1 M584 Z5:6 P6 G1 Z5 F900 ; lift both Zs to 3 G90 ; absolute positioning
I have posted you M122 after Z homing fails, as you instructed.
Here is yet again, the config.
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; by MaracMB ; General preferences G90 ; send absolute coordinates... M83 ; relative extruder moves M550 P"MarX-Quad" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S0 ; physical drive 0 X goes backwards - X0 M569 P1 S1 ; physical drive 1 Y goes forwards - X1 M569 P2 S1 ; physical drive 2 Z goes forwards - Y M569 P3 S1 ; Physical drive 3 E0 goes forwards - X2 M569 P4 S1 ; Physical drive 4 E1 goes forwards - X3 M569 P5 S1 ; Physical drive 5 E2 goes forwards - Z1 M569 P6 S1 ; Physical drive 6 E3 goes forwards - Z2 M569 P7 S0 ; physical drive 7 E4 goes backwards - e1 M569 P8 S0 ; physical drive 8 E5 goes backwards - e2 M569 P9 S0 ; physical drive 9 E6 goes backwards - e3 M569 P10 S0 ; physical drive 10 Ext1 goes backwards - e4 ;Mapping drives M584 X0 Y2 Z5 U1 V3 W4 A6 P6 ; Extruder mapping M584 E7:8:9:10 ; Extruder mapping M350 X32 Y32 Z32 U32 V32 W32 A32 I1 ; Configure microstepping movement M350 E16:16:16:16 I0 ; Configure microstepping extruders ; Motion parameters M92 X160 Y160 Z1600 U160 V160 W160 A1600 ; Set steps per mm motion M92 E396:396:396:396 ; Set steps per mm extruders M566 X420 Y420 Z15 U420 V420 W420 A25 ; set maximum instantaneous speed changes motion (mm/min) M566 E320:320:320:320 ; set maximum instantaneous speed changes extruders(mm/min) M203 X12000 Y12000 Z1200 U12000 V12000 W12000 A1200 ; set maximum speeds motion (mm/min) M203 E7200:7200:7200:7200 ; set maximum speeds extruders(mm/min) M201 X880 Y880 Z240 U880 V880 W880 A240 ; set accelerations motion (mm/s^2) M201 E7200:7200:7200:7200 ; set accelerations extruders (mm/s^2) M906 X950 Y1050 Z950 U950 V950 W950 A950 I30 ; set motor currents (mA) and motor idle factor in per cent motion M906 E950:950:950:950 I30 ; set motor currents (mA) and motor idle factor in per cent extruders M84 S60 ; idle time ; Axis Limits M208 X-170 Y-165 Z0 U-112 V-157 W-112 A0 S1 ; Set axies minimas M208 X115 Y155 Z350 U168 V112 W158 A350 S0 ; Set axies maximas ; Endstops M574 X1 S1 P"!xstop" ; configure active-low endstop for low end M574 Y1 S1 P"!zstop" ; configure active-low endstop for low end M574 Z1 S1 P"!duex.e2stop" ; configure active-low endstop for low end M574 U2 S1 P"!ystop" ; configure active-low endstop for high end M574 V1 S1 P"!e0stop" ; configure active-low endstop for low end M574 W2 S1 P"!e1stop" ; configure active-low endstop for high end M574 A1 S1 P"!duex.e3stop" ; configure active-low endstop for low end ; Z-Probe ;M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed ;M557 X-125:125 Y-125:125 S125 ; define mesh grid ; Heaters and sensors M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 M308 S1 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 M308 S2 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 M308 S3 P"duex.e4temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 3 M308 S4 P"duex.e5temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 4 M308 S5 Y"mcu-temp" A"MCU" ; Configure sensor for MCU M308 S6 Y"drivers" A"DRIVERS" ; configure sensor 6 as temperature warning and overheat flags on the TMC2660 on Duet M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M143 H0 S120 ; set temperature limit for heater 0 to 120C M140 H0 ; map heated bed to heater 0 M950 H1 C"duex.e2heat" T1 ; create nozzle heater output on duex.e3heat and map it to sensor 1 M143 H1 S300 ; set temperature limit for heater 1 to 300C M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M950 H2 C"duex.e3heat" T2 ; create nozzle heater output on duex.e4heat and map it to sensor 2 M143 H2 S300 ; set temperature limit for heater 2 to 300C M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M950 H3 C"duex.e4heat" T3 ; create nozzle heater output on duex.e5heat and map it to sensor 3 M143 H3 S300 ; set temperature limit for heater 3 to 300C M307 H3 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M950 H4 C"duex.e5heat" T4 ; create nozzle heater output on duex.e6heat and map it to sensor 4 M143 H4 S300 ; set temperature limit for heater 4 to 300C M307 H4 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Fans M950 F0 C"duex.fan4" Q1000 ; create fan 1 on pin duex.fan4 and set its frequency TOOL FAN 0 M106 P0 S0 H-1 ; set fan 1 value. Thermostatic control is turned off TOOL FAN 0 M950 F1 C"duex.fan5" Q1000 ; create fan 2 on pin duex.fan5 and set its frequency TOOL FAN 1 M106 P1 S0 H-1 ; set fan 2 value. Thermostatic control is turned off TOOL FAN 1 M950 F2 C"duex.fan6" Q1000 ; create fan 3 on pin duex.fan6 and set its frequency TOOL FAN 2 M106 P2 S0 H-1 ; set fan 3 value. Thermostatic control is turned off TOOL FAN 2 M950 F3 C"duex.fan8" Q1000 ; create fan 4 on pin duex.fan8 and set its frequency TOOL FAN 3 M106 P3 S0 H-1 ; set fan 4 value. Thermostatic control is turned off TOOL FAN 3 M950 F4 C"fan0" Q1000 ; create fan 5 on pin fan0 and set its frequency HOTEND FAN tool 0 M106 P4 S0 H1 T45 ; set fan 5 value. Thermostatic control is turned on HOTEND FAN tool 0 M950 F5 C"fan1" Q1000 ; create fan 6 on pin fan1 and set its frequency HOTEND FAN tool 1 M106 P5 S0 H2 T45 ; set fan 6 value. Thermostatic control is turned on HOTEND FAN tool 1 M950 F6 C"fan2" Q1000 ; create fan 7 on pin fan2 and set its frequency HOTEND FAN tool 2 M106 P6 S0 H3 T45 ; set fan 7 value. Thermostatic control is turned on HOTEND FAN tool 2 M950 F7 C"duex.fan3" Q1000 ; create fan 3 on pin duex.fan3 and set its frequency HOTEND FAN tool 3 M106 P7 S0 H4 T45 ; set fan 3 value. Thermostatic control is turned on HOTEND FAN tool 3 ;Extra fan ports ;external stepper - PWMed M950 F8 C"duex.fan7" Q500 ; fan 8 on pin duex.fan7 EXTRA FAN M106 P8 S0 H-1 C"extFan" ; set fan 8 value. Thermostatic control is turned off ;LED strip ;M950 F5 C"duex.pwm" ; create port for LEDs on pin duex.fan8 ;M106 P5 S0 C"LIGHTS" ; LED control ; Tools M563 P0 X0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 U0 V0 W0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 X3 D1 H2 F1 ; define tool 1, ports X axis to U G10 P1 X0 Y0 Z0 U0.9 V0 W0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M563 P2 X4 D2 H3 F2 ; define tool 3, ports X axis to A G10 P2 X0 Y161.85 Z0 U0 V0.80 W0 ; set tool 2 axis offsets G10 P2 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M563 P3 X5 D3 H4 F3 ; define tool 3, ports X axis to A G10 P3 X0 Y175.2 Z0 U0 V0 W0.25 ; set tool 3 axis offsets G10 P3 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; DITTO TOOLs M563 P4 S"DITTOFront" D0:1 H1:2 X0:5 F0:1 ; Tool 2 uses extruders 1 and 2, hotend heaters 1 and 2, maps X to X and U, uses tool fans 4 and 5 G10 P4 X77 Y0 U-77 ; Set tool offsets and temperatures for tool 2 - moves X 77 left and U 77 right G10 P4 R0 S0 M567 P4 E1.0:1.0:0.0:0.0 ; Set mix ratio 100% on both front extruders M563 P5 S"QUAD" D0:1:2:3 H1:2:3:4 X0:3:5:6 F0:1:2:3 ; Tool 6 uses extruders 1,2,3and4, hotend heaters 1,2,3and4, maps X to U,A and B, and tool fans 4,5,6 and 7 G10 P5 Y0 X0 U-155 V0 W-155 ; Set tool offsets and temperatures for tool 2 - moves X 77 left and U 77 right G10 P5 R0 S0 M567 P5 E1:1:1:1 ; Set mix ratio 100% on all extruders ;Firmware retractions M207 P0 S0.70 F2100 T2500 Z0.4 M207 P1 S0.70 F2100 T2500 Z0.4 M207 P2 S0.70 F2100 T2500 Z0.4 M207 P3 S0.70 F2100 T2500 Z0.4 ;Filament runout sensors ; Automatic saving after power loss is enabled M911 S23.00 R23.50 P"M913 X0 Y0 U0 V0 W0 G91 M83 G1 Z2 E-4 F3000" ; Set voltage thresholds and actions to run on power loss ; MISC M501