@dc42 said in v2.0 consistently increasing probe heights:
@oarjjj this is fixed in the forthcoming 3.6.0 beta 1 build.
Looks I'm still facing the problem after updating to 3.6.0b1. For some reason it would not update the boards initially:
There are 5 outdated boards:
- Duet 3 MB6HC (3.6.0-alpha.5+1 -> 3.6.0-beta.1)
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 121
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 122
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 123
- Duet 3 Expansion EXP1HCL (3.6.0-alpha.5 -> 3.6.0-beta.1) @ CAN address 124
Would you like to update them all (Y/n)? y
Updating firmware on board #121... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on board #122... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on board #123... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on board #124... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
Updating firmware on mainboard... Error: JsonTypeInfo metadata for type 'DuetControlServer.Commands.Code' was not provided by TypeInfoResolver of type 'DuetAPI.Commands.CommandContext'. If using source generation, ensure that all root types passed to the serializer have been annotated with 'JsonSerializableAttribute', along with any types that might be serialized polymorphically.
So I did the following:
- Attempted to downgrade to stable via apt, and got the same error.
- Reimaged the PI SD card with the latest lite image.
- Attempted an update to unstable via apt, same errors.
- Downgraded to stable duet packages.
- I was now able to downgrade to stable firmware via deb package.
- Updated to 3.6.0b1 using the deb package while on stable duet3d packages.
- Updated to unstable duet3d packages.
Upon reconnecting the steppers to the expansion boards I got a similar result as before:
** encoders disabled **
G32 bed probe heights: 0.103 0.112 0.119 0.123 0.134 0.140 0.148 0.159 0.167 0.175 0.189 0.200 0.216 0.224 0.228 0.236 0.247 0.250 0.266 0.269, mean 0.185, deviation from mean 0.053
** encoders enabled **
Driver 123.0 basic tuning succeeded, measured backlash 0.048 step
Driver 122.0 basic tuning succeeded, measured backlash 0.060 step
Driver 121.0 basic tuning succeeded, measured backlash 0.046 step
G32 bed probe heights: 0.082 0.089 0.096 0.099 0.111 0.118 0.127 0.133 0.140 0.152 0.164 0.164 0.172 0.182 0.186 0.197 0.208 0.216 0.227 0.238, mean 0.155, deviation from mean 0.047
I have also tried:
- Replacing the smart effector v2 with a new v4.
- Replacement also resulted in me repinning the connectors on the effector.
I am starting to think it may be an issue with the E3d Lite6, possibly its spring is compressing? I'm not sure.
I tried running the script a few more times:
G32 bed probe heights: 0.082 0.089 0.096 0.099 0.111 0.118 0.127 0.133 0.140 0.152 0.164 0.164 0.172 0.182 0.186 0.197 0.208 0.216 0.227 0.238, mean 0.155, deviation from mean 0.047
G32 bed probe heights: 0.242 0.250 0.253 0.266 0.277 0.284 0.291 0.299 0.309 0.307 0.317 0.325 0.328 0.343 0.344 0.359 0.359 0.365 0.371 0.377, mean 0.313, deviation from mean 0.041
G32 bed probe heights: 0.399 0.408 0.419 0.426 0.437 0.442 0.456 0.459 0.472 0.479 0.487 0.490 0.497 0.508 0.512 0.519 0.528 0.538 0.549 0.554, mean 0.479, deviation from mean 0.046
G32 bed probe heights: 0.562 0.569 0.577 0.584 0.594 0.599 0.610 0.618 0.622 0.636 0.636 0.651 0.654 0.666 0.674 0.684 0.688 0.703 0.711 0.715, mean 0.638, deviation from mean 0.047
G32 bed probe heights: 0.883 0.891 0.898 0.902 0.913 0.917 0.926 0.933 0.943 0.951 0.959 0.962 0.974 0.978 0.986 0.993 1.001 1.003 1.012 1.018, mean 0.952, deviation from mean 0.042
G32 bed probe heights: 1.023 1.033 1.037 1.044 1.056 1.059 1.071 1.079 1.086 1.098 1.104 1.109 1.119 1.124 1.127 1.136 1.149 1.154 1.162 1.173, mean 1.097, deviation from mean 0.045
The end result of all this is mesh bed leveling is ever increasing in one direction.
config.g
; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.4.1 on Sat Sep 14 2024 13:39:54 GMT-0600 (Mountain Daylight Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M665 L490.910:490.930:490.86 r230 B195 H714 ; Set delta radius, diagonal rod length, printable radius and homed height
M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them
; Drives
M584 X122.0 Y123.0 Z121.0 E124.0 ; set drive mapping
M569 P122.0 S0 ; physical drive 122.0 goes backwards
M569 P123.0 S0 ; physical drive 123.0 goes backwards
M569 P121.0 S0 ; physical drive 121.0 goes backwards
;M584 Z0.0 X0.1 Y0.2 E124.0 ; set drive mapping
;M569 P0 S0 ; Drive 0 (Z) goes backwards
;M569 P1 S0 ; Drive 1 (X) goes backwards
;M569 P2 S0 ; Drive 2 (Y) goes backwards
M569 P124.0 S1 ; physical drive 124.0 goes forwards
M350 E16 I0 ; configure microstepping without interpolation
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M92 X266.66 Y266.66 Z266.66 E572.00 ; set steps per mm
M566 X20 Y20 Z20 ; set maximum instantaneous speed changes (mm/min)
M203 X7200 Y7200 Z7200 E3600 ; set maximum speeds (mm/min)
M201 X200.00 Y200.00 Z200.00 E800.00 ; set accelerations (mm/s^2)
M906 X2400 Y2400 Z2400 E500 I60 ; set motor currents (mA) and motor idle factor in per cent
M84 S900 ; Set idle timeout
; Axis Limits
M208 Z0 S1 ; set minimum Z
; Endstops
M574 X2 S1 P"122.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin 122.io0.in
M574 Y2 S1 P"123.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin 123.io0.in
M574 Z2 S1 P"121.io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin 121.io0.in
;M574 Z2 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin 121.io0.in
;M574 X2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin 122.io0.in
;M574 Y2 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin 123.io0.in
; Z-Probe
M558 P8 R0.4 C"io3.in+io3.out" H8 F1200 T3000 ; set Z probe type to effector and the dive height + speeds
G31 P100 X0 Y0 Z-0.39 ; set Z probe trigger value, offset and trigger height
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4267 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"temp2" Y"thermistor" T100000 B4267 ; configure sensor 1 as thermistor on pin temp2
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C
; Fans
M950 F0 C"out7" Q55 ; create fan 0 on pin out7 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
; Tools
M563 P0 D0 H1 F0 ; 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
; Custom settings
M912 P0 S-9.5 ; mcu temperature calibration
G4 S1 ; wait for expansion boards to start
M557 R180 S18
; Miscellaneous
M501 ; load saved parameters from non-volatile memory
T0 ; select first tool
homedelta.g
; homedelta.g
; called to home all towers on a delta printer
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Fri Oct 06 2023 14:23:27 GMT-0600 (Mountain Daylight Time)
M569 P121.0 D0 ; Make sure we are in open loop mode
M569 P122.0 D0 ; Make sure we are in open loop mode
M569 P123.0 D0 ; Make sure we are in open loop mode
G91 ; relative positioning
G1 H1 X1000 Y1000 Z1000 F1800 ; move all towers to the high end stopping at the endstops (first pass)
G1 H2 X-5 Y-5 Z-5 F360 ; go down a few mm
G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass)
G1 Z-20 F360 ; Move to a known-safe position
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.1 P121.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure Z closed loop
M569.5 P121.0 S2000 A0 R2000 D24830 V0
M569 P121.0 D4 S0 ; Configure the motor on the 1HCL at can address 121 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P121.0 V1 ; Perform closed-loop calibration
M569.1 P122.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure X closed loop
M569.5 P122.0 S2000 A0 R2000 D24830 V0
M569 P122.0 D4 S0 ; Configure the motor on the 1HCL at can address 122 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P122.0 V1 ; Perform closed-loop calibration
M569.1 P123.0 T2 C2500 S400 R100 H25 I650 D0.085 A50000 V60 ; Configure Y closed loop
M569.5 P123.0 S2000 A0 R2000 D24830 V0
M569 P123.0 D4 S0 ; Configure the motor on the 1HCL at can address 123 as being in closed-loop drive mode (D4) and reversed (S0)
M400 ; Wait for the move to complete
G4 P200 ; Wait for the motor to settle
M569.6 P123.0 V1 ; Perform closed-loop calibration
G90 ; absolute positioning
G1 Z700 X0 Y0
macro
g1 x0 y0 z20
var x=0
var y=0
var numProbes=20
g30 s-1
while iterations < var.numProbes-1
G30 P{iterations} X{var.x} Y{var.y} Z-9999
G30 P{var.numProbes-1} X{var.x} Y{var.y} Z-9999 S-1