IDEX and Z Offset
Traduction from french :
I have a Cartesian setup with a Duet2Etehernet Firmware 2.05.1, a z-probe, 4 independent Z screws, and 2 independent X carriages (IDEX).
I have an offset of 6.5mm between the 2 nozzles.
So I put a G10 P1 Z6.5
When I use tool 0, I set the Z to 1, then I change to tool 1, it goes to 7.5mm, normal, but I can't go below 6.5mm anymore.
Do I have a problem with my configuration, or is it a bug?
Here is my config .g
I don't see the G10 P1 Z6.5 in your config.g. Are you sending that separately?
; Tools M563 P0 D0 H1 F0; define tool 0 M563 P1 D1 H2 X3 F2; define tool 0 ; Nozzle offsets G10 P0 X0 Y0 Z0 R0 S0 G10 P1 U0 Y0 Z0 R0 S0
Can you post your tool change files as well?
bot last edited by
Perhaps you have to flip the sign of the offset. G10 P1 Z-6.5. Test with caution.
mbtobeca last edited by mbtobeca
yes, i tried two methods, once in config.g and once by gcode terminal.
here is my tool change file :
M83 ; relative extruder movement G1 E-2 F3600 ; retract 2mm M106 S0 ; turn off our print cooling fan G91 ; relative axis movement G1 Z3 F500 ; up 3mm G90 ; absolute axis movement G1 H2 X-200 F6000 ; park the X carriage at -100mm
M83 ; relative extruder movement G1 E-2 F3600 ; retract 2mm M106 S0 ; turn off our print cooling fan G91 ; relative axis movement G1 Z3 F500 ; up 3mm G90 ; absolute axis movement G1 H2 U965 F6000 ; park the U carriage at +950mm
M106 R2 ; restore print cooling fan speed M116 P0 ; wait for tool 0 heaters to reach operating temperature M83 ; relative extruder movement G1 E2 F3600 ; extrude 2mm
M106 R2 ; restore print cooling fan speed M116 P1 ; wait for tool 1 heaters to reach operating temperature M83 ; relative extruder movement G1 E2 F3600 ; extrude 2mm
I already tried with -6.5, it's not working ...
Can you send M98 P"config.g" and M122 and post the results?
It may be worth updating your firmware and config files for RRF3.
If you still have access to DWC. Upload these 3 zip files, one at a time. Don't extract them. Reboot after each.
That will get your firmware and DWC up to date.
For your config, might be a good idea to run through the configurator tool and generate a fresh set for RRF3 and then add your customizations for IDEX again.
HTTP is enabled on port 80 FTP is disabled TELNET is enabled on port 23 Warning: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 953C.
=== Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet Ethernet 1.02 or later + DueX5 Board ID: 0JD0M-9P6M2-NWNS4-7J9D4-3SD6Q-1V1ZL Used output buffers: 3 of 24 (17 max) === RTOS === Static ram: 25712 Dynamic ram: 93552 of which 0 recycled Exception stack ram used: 320 Never used ram: 11488 Tasks: NETWORK(ready,628) HEAT(blocked,1176) DUEX(suspended,160) MAIN(running,3728) IDLE(ready,160) Owned mutexes: === Platform === Last reset 00:33:40 ago, cause: power up Last software reset at 2021-01-20 08:35, reason: User, spinning module GCodes, available RAM 11488 bytes (slot 1) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 7.4ms, max retries 0 MCU temperature: min 32.8, current 33.1, max 33.4 Supply voltage: min 24.1, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: standstill, SG min/max not available Driver 1: standstill, SG min/max not available Driver 2: standstill, SG min/max not available Driver 3: standstill, SG min/max not available Driver 4: standstill, SG min/max not available Driver 5: standstill, SG min/max not available Driver 6: standstill, SG min/max not available Driver 7: standstill, SG min/max not available Driver 8: standstill, SG min/max not available Driver 9: standstill, SG min/max not available Date/time: 2021-01-21 09:21:18 Cache data hit count 4294967295 Slowest loop: 10.83ms; fastest: 0.07ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Move === Hiccups: 0, FreeDm: 160, MinFreeDm: 160, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === DDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = -1 -1 -1 -1, chamberHeaters = -1 -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Stack records: 2 allocated, 0 in use 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 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 27.45ms; fastest: 0.06ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 2 of 8 Interface state 5, link 100Mbps full duplex
I wanted to try to correct before deciding to switch to RRF3, but if I can't find it, I will upgrade.
Well there has been a year of bug fixes since 2.05 so it would be nice to test on current code base.
I upgraded everything, but that doesn't change anything ...
Veti last edited by
there are a lot of bugfixes in rrf3 regarding offset of tools
I look in bugfixes, but not find.
Here is the error message after tool change :
Error: New tool too close to Z axis limit. Aborting tool change
Veti last edited by
I look in bugfixes, but not find.
search for offset
In fact, I did find this page, but I couldn't find anything about my problem. I even believe that it is a desired security. I saw that he was talking about the max limit in Z, but not the min limit:
"If a tool change is requested but changing tool would cause the Z max limit to be exceeded because of the changed tool Z offset, the tool change is now aborted"
Thanks to try help me
So you are on 3.2 now?
yes i'm on 3.2
I hit the same issue when I config as below.
Reading from code is due to I am using zmin as probe, however I have zmax endstop too. And my zmax saved is small then actual.
However I don't want to config zmax again and again.
comment the code and build without checking
// auto currentTool = reprap.GetCurrentTool();
// if (currentTool != nullptr)
// const float newZPos = (moveBuffer.coords[Z_AXIS] - currentTool->GetOffset(Z_AXIS));
// if(newZPos > platform.AxisMaximum(Z_AXIS) || newZPos < platform.AxisMinimum(Z_AXIS))
// gb.MachineState().feedRate = toolChangeRestorePoint.feedRate;
// doingToolChange = false;
// gb.MachineState().SetError("New tool too close to Z axis limit. Aborting tool change");
alankilian last edited by
How are you planning on getting each nozzle down to where they need to be to print a layer when they are 6.5mm offset in Z?
Won't one need to be 6.5mm BELOW the level of the print to get the other one down to the level of the print?
I'm probably misunderstanding something. (as usual!)
I think this is unnecessary logic. Why I can't switch tools when I am using the zmax endstop? That is the problem in that logic.
if it is zmax already, tools are far enough to the buildplate, why need such stupid logic.