Can't disable negative Z coordinates
-
Hello,
I have a security issue with my E3D ToolChanger using Duet. I set the Z axis minima to be 0 :
M208 X-35:328.5 Y-49:243 Z0:278 C-45:360 ; Set axis maxima & minima
However I can go in negative coordinates when a tool is active. My understanding of the problem is that M208 limit the "machine position" and not the "tool position". I there a way to apply the M208 command to the tool position ?
I also have a strange behaviour that might be a bug ? If I go in Z-0.1 (tool position) while a tool is selected and I dock the tool, the machine will go back at Z-0.1 (now machine position) and crash in the bed. Can I disable the fact that the Z move to the previous position after docking a tool ? Thanks
-
@e4d said in Can't disable negative Z coordinates:
However I can go in negative coordinates when a tool is active. My understanding of the problem is that M208 limit the "machine position" and not the "tool position". I there a way to apply the M208 command to the tool position ?
You can change the limits in your tpost#.g files to suit the tool that you have just loaded. Don't forget to reset them in the tfree#.g files.
I also have a strange behaviour that might be a bug ? If I go in Z-0.1 (tool position) while a tool is selected and I dock the tool, the machine will go back at Z-0.1 (now machine position) and crash in the bed. Can I disable the fact that the Z move to the previous position after docking a tool ?
Recent firmware versions do not restore the old Z after changing tool. Which firmware version are you using?
-
@dc42 I frequently change nozzle or work on my tools, that mean I need to update the tool offset and the tool macro everytime ? I think it would be way more practical is there was a way for the Duet to use the tool position as limit when a tool is selected.
I have a Duet3 6CH with RRF3.3, here's my M122 :
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v1.01 or later (standalone mode) Board ID: 08DJM-956BA-NA3TJ-6J1DJ-3S46S-198YT Used output buffers: 3 of 40 (26 max) === RTOS === Static ram: 150904 Dynamic ram: 93648 of which 200 recycled Never used RAM 106584, free system stack 152 words Tasks: NETWORK(ready,29.2%,224) ETHERNET(notifyWait,0.3%,117) HEAT(notifyWait,0.0%,325) Move(notifyWait,0.0%,250) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,362) CanClock(delaying,0.0%,333) TMC(notifyWait,7.8%,59) MAIN(running,62.6%,944) IDLE(ready,0.0%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:51:27 ago, cause: power up Last software reset details not available Error status: 0x00 Step timer max interval 584 MCU temperature: min 11.1, current 29.1, max 29.6 Supply voltage: min 23.9, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0 Driver 0: position 36450, standstill, reads 61776, writes 14 timeouts 0, SG min/max 0/0 Driver 1: position 6450, standstill, reads 61747, writes 43 timeouts 0, SG min/max 0/65 Driver 2: position 120000, standstill, reads 61776, writes 14 timeouts 0, SG min/max 0/0 Driver 3: position 21481, standstill, reads 61738, writes 52 timeouts 0, SG min/max 0/1023 Driver 4: position 0, standstill, reads 61738, writes 52 timeouts 0, SG min/max 0/1023 Driver 5: position 0, standstill, reads 61735, writes 55 timeouts 0, SG min/max 0/204 Date/time: 2022-03-15 12:17:01 Slowest loop: 84.70ms; fastest: 0.05ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 3.3ms, write time 4.3ms, max retries 0 === Move === DMs created 125, maxWait 524449ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 2872, completed moves 2872, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 74], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = 3 -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 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === CAN === Messages queued 27798, received 0, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 49 (min 49), ts 15439/0/0 Tx timeouts 0,9,15438,0,0,12348 last cancelled message type 30 dest 127 === Network === Slowest loop: 104.18ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 3 of 8 - Ethernet - State: active Error counts: 0 0 1 0 0 Socket states: 5 2 2 2 2 0 0 0
-
@e4d you can use GCode expressions to pick up tool offsets and use it to calculate the new limits in the M208 command.
-
I successfuly manage to set the limit with this command in the tpre2.g :
;Adjust Z axis limits to tool offset M208 Z{-tools[2].offsets[2]}:{move.axes[2].max}
@dc42 thank you for your help on the previous point ! You said that in recent firmware the machine should not restore the old Z, mine does, is it a configuration somewhere ?
-
@e4d if you upgrade to 3.4RC2 then it should not restore the position.