RepRapFirmware 3.6.0-alpha.4+3 available for testing
-
@balajiramani thanks. Are you sure that the delta radius and rod length are set to approximately the correct value before calibration? I don't think anyone else has reported issues with delta calibration running recent 3.6.0 alpha versions, and calibration works perfectly on my own delta. So I am wondering whether the reason for the U-shaped moves is that either the rod length or delta radius is set incorrectly. Possibly there is an error in your M665 or M666 command and RRF 3.6 responds differently to that error. So please run M665 and M666 without parameters and check that the reported values are as expected.
-
@dc42 Duet 2 Wifi on an Ender 5 plus stopped with the code 3 error. Your 38 minute mark sounds about right but I don't have an exact time when it stopped.
I installed 3.5.3 rc1 and ran the same gcode without issues.
-
@gloomyandy said in RepRapFirmware 3.6.0-alpha.4+3 available for testing:
Folks if anyone has a print that generates a "Movement halted error" after a short time (so relatively early in the print) can you please post the gcode file and the config.g file for the printer. That way we can try and reproduce the issue.
For me it happened roughly 35min into the print.
@Exerqtor did your error occur on the first print after a printer restart or had you already printed a previous file? I ask because your m122 is showing a hiccup delay, but no hiccups (maybe you have run m122 more than once after the failure). If this was the second print that failed can you test to see if the same print fails as the first print after the printer is restarted?
Yeah it was the first print after the update! And you're right, it was the second M122 output. Here is the first output (including the print startinfo, error message etc:
30.8.2024, 20:23:36 M122 B121 Diagnostics for board 121: Duet TOOL1LC rev 1.1 or later firmware version 3.6.0-alpha.4+3 (2024-08-28 11:24:12) Bootloader ID: SAMC21 bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 6672, free system stack 79 words Tasks: Move(3,nWait 7,0.3%,84) TMC(2,nWait 6,3.6%,52) HEAT(2,nWait 6,0.4%,88) CanAsync(5,nWait 4,0.0%,48) CanRecv(3,nWait 1,0.1%,70) CanClock(5,nWait 1,0.0%,58) ACCEL(3,nWait 6,0.0%,52) MAIN(1,running,90.5%,318) IDLE(0,ready,0.0%,26) AIN(2,delaying,5.0%,112), total 100.0% Owned mutexes: Last reset 02:41:25 ago, cause: power up Last software reset at 2024-03-12 16:55, reason: StackOverflow, available RAM 2968, slot 0 Software reset code 0x0100 ICSR 0x0042600e SP 0x20007f34 Task Move Freestk 3342 ok Stack: 20004a80 20004ab4 0001cf33 20004c98 20004938 00000000 0001c011 20003320 fffffffd a5a5a5a5 00000000 20007f8c 00000000 20007f8c 0001cc97 00000000 200017c4 20001748 0001c4d7 20001748 200017c4 00000032 454c4449 00022700 0001ac77 200018e0 200018e0 Moves scheduled 65223, hiccups 782 (39.68/39.68ms), segs 58, step errors 2 (types 0x8), maxLate 0 maxPrep 1303, ebfmin 0.00 max 0.00 Peak sync jitter -4/10, peak Rx sync delay 255, resyncs 0/0, no timer interrupt scheduled, next step interrupt due in 3473139117 ticks, disabled VIN voltage: min 23.7, current 24.5, max 25.0 MCU temperature: min 41.1C, current 75.4C, max 75.5C Driver 0: pos 2824553, 568.8 steps/mm, standstill, SG min 0, read errors 1, write errors 0, ifcnt 12, reads 44905, writes 12, timeouts 3, DMA errors 0, CC errors 0, failedOp 0x6f Last sensors broadcast 0x00000012 found 2 43 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 200813, send timeouts 0, received 154587, lost 0, ignored 0, errs 0, boc 0, free buffers 18, min 17, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 825, adv 35393/74627 Accelerometer: LIS3DH, status: 00 I2C bus errors 0, naks 3, contentions 0, other errors 0 === Filament sensors === Interrupt 5726621 to 0us, poll 4 to 2225us Driver 0: ok 30.8.2024, 20:23:32 M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.6.0-alpha.4+3 (2024-08-28 10:03:49) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: XNHXF-HR6KL-K65J0-409N2-K9W1Z-RV2MZ Used output buffers: 4 of 40 (37 max) === RTOS === Static ram: 92328 Dynamic ram: 95720 of which 0 recycled Never used RAM 45628, free system stack 126 words Tasks: NETWORK(1,ready,18.9%,179) HEAT(3,nWait 6,0.0%,325) Move(4,invalid,0.3%,247) TMC(4,nWait 6,0.9%,65) CanReceiv(6,nWait 1,0.1%,794) CanSender(5,nWait 7,0.0%,327) CanClock(7,delaying,0.0%,339) MAIN(1,running,77.7%,627) IDLE(0,ready,1.2%,29) AIN(4,delaying,0.8%,259), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 02:41:20 ago, cause: software Last software reset at 2024-08-30 17:42, reason: User, Gcodes spinning, available RAM 52612, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,1,0 MCU temperature: min 35.7, current 46.0, max 46.6 Supply voltage: min 2.7, current 23.9, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/34, heap memory allocated/used/recyclable 2048/1396/920, gc cycles 2164 Events: 0 queued, 0 completed Date/time: 2024-08-30 20:23:27 Slowest loop: 223.44ms; fastest: 0.10ms === Storage === Free file entries: 17 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 10.2ms, write time 69.6ms, max retries 0 === Move === Segments created 178, maxWait 603453ms, bed comp in use: mesh, height map offset 0.000, hiccups added 0 (0.00/39.68ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: -2663.00/-3086/0.45 -23548.00/-23971/0.43 33160.00/33160/-0.00 no step interrupt scheduled Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 47, reads 50443, writes 47, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 47, reads 50443, writes 47, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 22, reads 50467, writes 22, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 22, reads 50467, writes 22, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 23, reads 50467, writes 23, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present === DDARing 0 === Scheduled moves 66586, completed 66560, LaErrors 217, Underruns [0, 0, 0] === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.4 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is doing "G1 X192.529 Y130.297 E.90485" 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 doing "G4 P250" in state(s) 0 0, running macro Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 1, axes/extruders owned 0x0000807 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 0 Extruder 0 sensor: no filament === CAN === Messages queued 154539, received 200688, lost 0, ignored 0, errs 1318, boc 0 Longest wait 7ms for reply type 6029, peak Tx sync delay 10782, free buffers 26 (min 24), ts 48405/48403/0 Tx timeouts 0,0,1,0,0,0 last cancelled message type 30 dest 127 === Network === Slowest loop: 210.77ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address c4:5b:be:ce:91:93 Module reset reason: Power up, Vcc 3.38, flash size 2097152, free heap 43020 WiFi IP address 192.168.30.50 Signal strength -50dBm, channel 1, mode 802.11n, reconnections 0 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0 30.8.2024, 18:29:54 Error: Movement halted because a step timing error occurred (code 3). Please reset the controller. 30.8.2024, 17:55:27 ABS filament loaded ABS filament loaded & config applied 30.8.2024, 17:54:49 16 points probed, min error -0.030, max error 0.016, mean -0.012, deviation 0.013 Height map saved to file 0:/sys/heightmap.csv Height map saved to file 0:/sys/adaptive_heightmap.csv 30.8.2024, 17:54:18 Default grid: X10.0:340.0, Y10.0:340.0, Number of points: X12 Y12, 144 points Adaptive grid: X120.833:229.167, Y120.833:229.136, Number of points: X4 Y4, 16 points 30.8.2024, 17:53:57 M32 "0:/gcodes/ringing_text_test_0.2mm_ABS_0.4n_48m59s.gcode" File 0:/gcodes/ringing_text_test_0.2mm_ABS_0.4n_48m59s.gcode selected for printing
-
-
@dc42 Awesome, i will install it and try the same testprint right away
-
@dc42 The delta calibration procedure works fine with 3.5.2. With 3.6.0-alpha*, I run into the issue. I checked the values of M665 and M666 in both 3.5.2 and 3.6.0-alpha and they are the same values.
Here is what I see with 3.5.2:
8/31/2024, 5:09:41 PM M666 Endstop adjustments X-1.26 Y-1.03 Z2.30, tilt X0.00% Y0.00% 8/31/2024, 5:09:38 PM M665 Diagonals 395.647:395.647:395.647, delta radius 214.803, homed height 359.884, bed radius 160.0, X -0.068°, Y -0.015°, Z 0.000°
Here is what I see with 3.6.0-alpha.4+3
8/31/2024, 5:58:57 PM M666 Endstop adjustments X-1.26 Y-1.03 Z2.30, tilt X0.00% Y0.00% 8/31/2024, 5:58:56 PM M665 Diagonals 395.647:395.647:395.647, delta radius 214.803, homed height 359.884, bed radius 160.0, X -0.068°, Y -0.015°, Z 0.000°
-
@balajiramani Hi - sorry for the delay
here is my bed.g. I have a 250mm dia round bed; Auto calibration routine for large delta printer M561 ; clear any bed transform ; If the printer hasn't been homed, home it ;if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed G28 ; Probe the bed and do auto calibration G1 X-70 Y-60 Z10 F6000 ; go to just above the first probe point while true if iterations = 5 abort "too many auto calibration attempts" G30 P0 X-70 Y-60 Z-99999 if result != 0 continue G30 P1 X-85 Y0 Z-99999 if result != 0 continue G30 P2 X-50 Y75 Z-99999 if result != 0 continue G30 P3 X0 Y85 Z-99999 if result != 0 continue G30 P4 X50 Y75 Z-99999 if result != 0 continue G30 P5 X85 Y0 Z-99999 if result != 0 continue G30 P6 X75 Y-50 Z-99999 if result != 0 continue G30 P7 X0 Y-85 Z-99999 if result != 0 continue G30 P8 X-40 Y-40 Z-99999 if result != 0 continue G30 P9 X-50 Y0 Z-99999 if result != 0 continue G30 P10 X-40 Y40 Z-99999 if result != 0 continue G30 P11 X0 Y50 Z-99999 if result != 0 continue G30 P12 X40 Y40.00 Z-99999 if result != 0 continue G30 P13 X50 Y0 Z-99999 if result != 0 continue G30 P14 X40 Y-40 Z-99999 if result != 0 continue G30 P15 X-4 Y-2 Z-99999 if result != 0 continue G30 P16 X4 Y-2 Z-99999 if result != 0 continue G30 P17 X0 Y4 Z-99999 S6 if result != 0 continue if move.calibration.final.deviation <= 0.03 break echo "Repeating calibration because deviation is too high (" ^ move.calibration.final.deviation ^ "mm)" ; end loop echo "Auto calibration successful, deviation", move.calibration.final.deviation ^ "mm" G1 X0 Y0 Z150 F5000 ; get the head out of the way M500 G28
-
I've put the 3.6.0-alpha.5 binaries at https://www.dropbox.com/scl/fo/u79134f365jdacqsm0km3/AKMSKB_Fz63WH4hqLkIphuQ?rlkey=bpa9lja4jylkpu9syjfp31rho&dl=0 and the release notes at https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-Beta#reprapfirmware-360-alpha5.
-
@dc42 I didnt check the exact time , but just under 40 min would be about right for me too.
-
@dc42 Mine was actually around the 3.5-4 hour mark for the print. The print I was doing was around 3.75 hours, and it paused with around 15 minutes left. There may have been a delay in the print start too, my machine is a flying gantry so I need to rerun G32 every time the motors shut off, and I may have waited a bit of time for heat soaking since I was printing ASA, so it could've been 4-4.5 hours after the restart.
-
@dc42 said in RepRapFirmware 3.6.0-alpha.4+3 available for testing:
I've put the 3.6.0-alpha.5 binaries at https://www.dropbox.com/scl/fo/u79134f365jdacqsm0km3/AKMSKB_Fz63WH4hqLkIphuQ?rlkey=bpa9lja4jylkpu9syjfp31rho&dl=0 and the release notes at https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-Beta#reprapfirmware-360-alpha5.
Just ran the initial function test with alpha.5, and the "pause" after each probe move that I mentioned back in July is gone now. Which sure is nice
I've noticed that a bug from earlier (don't remember when) seem to have been reintroduced though, when i push the "bed leveling" button on PD i't don't display any of the messages nested in
bed.g
on the PD, only in DWC.Running the same test print as earlier on alpha.5 now to see if finish without any step timing errors.
And I can also comfirm that it finished the same test print without any issues!
The PA changes is quite segnificant compared to alpha.2 as well. As can be seen in the test prints:
Pressure advance changing every 10mm in these increments:- 0-10mm = PA: 0.045s.
- 10-20mm = PA: 0.025s.
- 20-30mm = PA. 0.01s.
- 30-40mm = PA: 0.0075s.
- 40-50mm = PA: 0.005s.
- 50-60mm = PA: 0s / off.
-
@dc42 Testing 3.6.0-alpha.5 on my Duet2Wifi Ender 5 Plus using the same gcode that failed before. Also using DWC 3.6.0-alpha.2+1.
Just passed 40 minutes with no issues.
-
@curieos said in RepRapFirmware 3.6.0-alpha.4+3 available for testing:
@dc42 Mine was actually around the 3.5-4 hour mark for the print. The print I was doing was around 3.75 hours, and it paused with around 15 minutes left. There may have been a delay in the print start too, my machine is a flying gantry so I need to rerun G32 every time the motors shut off, and I may have waited a bit of time for heat soaking since I was printing ASA, so it could've been 4-4.5 hours after the restart.
Thanks. The bug could also occur at multiples of 47 (38 on Duet 2) minutes after the machine has been powered up or reset.
-
@Adrian52 Thank you for your copy of bed.g. The one big difference that I saws that the initial move in your file, after homing, is to move the head just above the probe point, where as in the version that I had, I was moving to X0 Y0. When I changed it to go just above the first point, so that the head is vertically above the first probe point, the bed calibration routine worked fine.
So, it looks like there seems to be a difference in the behavior depending on where the head is, relative to the first probe point and it is quite repetable for me. This seems to be a regression as compared to 3.5.2. At this point, I am glad that I found a way to get bed calibration working again on 3.6.0.
@dc42 can you check the behaviour on your end to see if you are able to reproduce this issue on the delta that you have?
Thanks,
Balaji -
@dc42
Duet2Wifi print completed after 1 hour 46 minutes without issues.
Thanks for the fix. -
@balajiramani said in RepRapFirmware 3.6.0-alpha.4+3 available for testing:
@dc42 can you check the behaviour on your end to see if you are able to reproduce this issue on the delta that you have?
Thanks, I too had a move to just above the first probe point in my bed.g file, and if I use a move to X0 Y0 instead then I see the issue that you reported.
-
@dc42 a 1hr print completed for me too - thanks for the fix. Print quality looks very nice too.
-
@balajiramani I've fixed that in the new binaries at https://www.dropbox.com/scl/fo/u79134f365jdacqsm0km3/AKMSKB_Fz63WH4hqLkIphuQ?rlkey=bpa9lja4jylkpu9syjfp31rho&dl=0. The main build binaries are now version 3.6.0-alpha.5+1. Expansion board binaries are still 3.6.0-alpha.5.
-
Just doing a simple test print and I noticed the extruder stopped pushing filament after 2 minutes.
After pause and cancelling the print, I manually started extruding some filament to see if it was a nozzle clog and I get the following errorError: Push(): stack overflow on Aux
Error: Pop(): stack underflow on AuxI have noticed a few times my PanelDue has seemed slightly unresponsive with delays between button presses and actions happening. This has also appeared during homing where the transition from HomeY.g to HomeZ.g has had a micro delay.
m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0-alpha.5 (2024-08-31 12:38:17) running on Duet 3 MB6HC v1.02 or 1.02a (SBC mode) Board ID: 0JD4M-958L1-M2NS0-7JTDD-3S06P-1KHKX Used output buffers: 1 of 40 (40 max) === RTOS === Static ram: 135136 Dynamic ram: 97412 of which 3300 recycled Never used RAM 86680, free system stack 125 words Tasks: SBC(2,ready,1.0%,809) HEAT(3,nWait 6,0.0%,325) Move(4,nWait 6,0.0%,221) TMC(4,nWait 6,2.9%,351) CanReceiv(6,nWait 1,0.0%,790) CanSender(5,nWait 7,0.0%,329) CanClock(7,delaying,0.0%,348) MAIN(2,running,95.9%,101) IDLE(0,ready,0.0%,29), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 01:19:54 ago, cause: software Last software reset at 2024-08-31 22:12, reason: User, Gcodes spinning, available RAM 92152, slot 0 Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0043c000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x04 Aux0 errors 0,0,0 MCU temperature: min 37.0, current 38.3, max 38.4 Supply voltage: min 24.9, current 25.0, max 25.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.2, max 12.4, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/116/116, gc cycles 0 Events: 1 queued, 1 completed Date/time: 2024-08-31 23:32:12 Slowest loop: 77.45ms; fastest: 0.05ms === Storage === Free file entries: 20 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === Segments created 257, maxWait 1753400ms, bed comp in use: mesh, height map offset 0.000, hiccups added 0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: 16320.00/16320/0.00 0.00/0/-0.00 46359.00/46360/-1.00 next step interrupt due in 137 ticks, disabled Driver 0: standstill, SG min 0, mspos 152, reads 19611, writes 49 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 19649, writes 11 timeouts 0 Driver 2: standstill, SG min 0, mspos 136, reads 19611, writes 49 timeouts 0 Driver 3: standstill, SG min 0, mspos 696, reads 19579, writes 81 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 19649, writes 11 timeouts 0 Driver 5: standstill, SG min 0, mspos 408, reads 19579, writes 81 timeouts 0 Phase step loop runtime (us): min=0, max=29, frequency (Hz): min=1139, max=8241 === DDARing 0 === Scheduled moves 4187, completed 4187, LaErrors 0, Underruns [0, 0, 0] === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters 2 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP* is doing "M122" 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x80000007 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 47342, received 96210, lost 0, ignored 0, errs 1, boc 0 Longest wait 1ms for reply type 6042, peak Tx sync delay 229, free buffers 50 (min 49), ts 23971/23970/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 57990/57990 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x284f0 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.2 (2024-06-12 07:12:47, 64-bit) HTTP+Executed: > Executing M122 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 39.48, max time between full transfers: 37.2ms, max pin wait times: 34.4ms/1.2ms Codes per second: 0.85 Maximum length of RX/TX data transfers: 4436/1260
So far the test has been on 3.6.a5 next is to test a5+1
Edit:
A5+1 same extruder stopping behaviour, no pop/push error
Reverted to 3.5.2 and behaviour is identical. I think the roto extruder cannot push more than 30cubicmm/s with my current setup as it is stallingAs I am exceedingly fresh with SBC equipped duets, If there is a recommended process on how to update the SBC (pi5) instead of me dropping in the new 3.6.Ax .bin files, I would very much appreciate the advice.
Edit 2:
Something is up with my config.g or my roto as its stalling at relatively normal speeds regardless of firmware versions. The actually motor stalling is probably a red herring of a new machine (never used a roto before) but the Push/Pop error is definitely something out of the ordinary.
-
@dc42 Thank you! Verified that this version workes, irrespective of what the starting point for the bed calibration is.