M500 not saving correctly in SBC mode. 3.2.2 Duet3
-
This may or may not be an issue but I thought I'd get everyone's opinion.
Here are my steps to reproduce.
I am running G32 on my Delta printer, when finished these are my results:
Calibrated 8 factors using 10 points, (mean, deviation) before (0.001, 0.052) after (-0.000, 0.052)(I run M500 to save the results)
Ok great. I move around and run G32 again THESE are the results:
Calibrated 8 factors using 10 points, (mean, deviation) before (-0.002, 0.050) after (-0.000, 0.050)
(still decent results, I save with M500)Now I run an M999 to reset everything and run G32:
Calibrated 8 factors using 10 points, (mean, deviation) before (-0.560, 1.155) after (0.000, 0.050)So I'm close to how bad it was before I calibrated and will need to run another 2-3 times to get the calibration back to where it was. It almost acts like it's not reading the config-override.g but I can confirm the PID parameters are in fact loaded (which also exist in the override). Additionally, the M501 is present at the end of the config.g.
I've tried everything I can think of, I even started homing before G32 and probing for Z. Additionally I've gone from 6 - 8 factor on the calibration. I've also tried it with the heated bed on and off. No matter what I do, after a reset it loses or the calibration is way off. I can understand one or two microns but half a mm seems excessive.
I would think if this were a build issue, the issue would be present after moving around a bit and running and checking the calibration again.
To add icing on the cake, I also have a tilt on the bed that I can't account for, mesh leveling does not correct it and I'm guessing it's got something to do with the calibration procedure.
Any ideas?
Specs of the machine:
- Duet 3 6HC
- Optical Endstops
- 24v power supply (tests fine)
- BL-Touch
- LDO 2004MAC steppers
One side note.. I've deleted the config-override.g and recreated it with the thought that it might be corrupt or something weird.
-
This post is deleted! -
This post is deleted! -
@Th0mpy It sounds like config_override.g is not being loaded after the reset. Can you post your config.g? Do you have M501 at the end of config.g to load config_override.g? Also, what firmware version are you running? Send M115 and post response.
Ian
-
You could run M665 and M666 without parameters after power up and after each G32, to ses what parameters it is using.
-
Below is my config and override. I can confirm with M666 and M665 that at reboot it's using the config-override parameters.
M115:
FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.2 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2021-01-05; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.1 on Mon Jan 18 2021 10:08:36 GMT-0600 (Central Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Rostock" ; set printer name M665 R136.356 L291.06 B120 H285 ; 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 M569 P0.0 S0 ; physical drive 0.0 goes backwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M569 P0.4 S0 ; physical drive 0.4 goes forwards M569 P0.5 S1 ; physical drive 0.5 goes forwards ;M584 X0.0 Y0.1 Z0.3 E0.4:0.5 ; set drive mapping M584 X0.0 Y0.1 Z0.3 E0.4:0.5 ; set drive mapping ;M350 X32 Y32 Z32 E32:32 I0 ; configure microstepping without interpolation M350 X8 Y8 Z8 E32:32 I0 ; configure microstepping without interpolation ;M92 X320 Y320 Z322.58 E837.00:837.00 ; set steps per mm ;M92 X320.978 Y322.250 Z323.229E837.00:837.00 M92 X80 Y80 Z80 E837.00:837.00 ; 16 microstep M566 X1200.00 Y1200.00 Z1200.00 E900.00:900.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z18000.00 E4100.00:4100.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z1000.00 E300.00:300.00 ; set accelerations (mm/s^2) M906 X1800 Y1800 Z1800 E1200:1200 I30 ; set motor currents (mA) and motor idle factor in per cent ;M584 X0.0 Y0.1 Z0.3 E0.4 ; set drive mapping ;M350 X32 Y32 Z32 E32 I0 ; configure microstepping without interpolation ;M92 X320.00 Y320.00 Z320.00 E837 ; set steps per mm ;M566 X1200.00 Y1200.00 Z1200.00 E900.00 ; set maximum instantaneous speed changes (mm/min) ;M203 X25000.00 Y25000.00 Z25000.00 E4800.00 ; set maximum speeds (mm/min) ;M201 X900.00 Y900.00 Z900.00 E300.00 ; set accelerations (mm/s^2) ;M906 X1800 Y1800 Z1800 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 Z0 S1 ; set minimum Z ; Endstops M574 X2 S1 P"io0.in" ; configure active-high endstop for high end on X via pin io0.in M574 Y2 S1 P"io1.in" ; configure active-high endstop for high end on Y via pin io1.in M574 Z2 S1 P"io2.in" ; configure active-high endstop for high end on Z via pin io2.in ; Z-Probe M950 S0 C"io7.out" ; create servo pin 0 for BLTouch ;M558 P9 C"^io7.in" H5 F175 T6000 R0.5 A4 S0.03 ; set Z probe type to bltouch and the dive height + speeds M558 P9 C"^io7.in" H5 F175 T6000 R0.5 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y29.5 Z3.14 ; set Z probe trigger value, offset and trigger height M557 R110 S32 ; define mesh grid ; Heaters M308 S0 P"temp2" Y"thermistor" T100000 B4300 ; configure sensor 0 as thermistor on pin temp2 M950 H0 C"out3" T0 ; create bed heater output on out3 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"temp1" Y"thermistor" T100000 B4300 ; configure sensor 1 as thermistor on pin temp1 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 ;M308 S2 P"temp0" Y"thermistor" T100000 B4300 ; configure sensor 2 as thermistor on pin temp0 ;M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2 ;M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;M143 H2 S280 ; set temperature limit for heater 2 to 280C ; Fans M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 M563 P1 D1 H1 F0 ; define tool 1 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Heater model parameters M307 H0 R0.630 C141.300:141.300 D4.00 S0.75 V14.0 B0 M307 H1 R2.227 C104.400:104.400 D6.00 S0.75 V14.0 B0 ; Custom settings are not defined M376 H3 ; Miscellaneous M501 ; load saved parameters from non-volatile memory
; config-override.g file generated in response to M500 at 2021-03-26 23:01 ; Delta parameters M665 L291.060:291.060:291.060 R137.236 H281.541 B120.0 X-0.157 Y0.287 Z0.000 M666 X-1.142 Y-0.378 Z1.520 A-0.00 B0.01 ; Heater model parameters M307 H0 R0.630 C141.300:141.300 D4.00 S0.75 V14.0 B0 M307 H1 R2.227 C104.400:104.400 D6.00 S0.75 V14.0 B0 ; Workplace coordinates G10 L2 P1 X0.00 Y0.00 Z0.00 G10 L2 P2 X0.00 Y0.00 Z0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 G10 L2 P9 X0.00 Y0.00 Z0.00
-
Ok, closer inspection there is something weird.
A couple of the parameters for M665 don't seem to be saved properly during an M500.
Config-override.g
; Delta parameters M665 L291.060:291.060:291.060 R137.213 H281.548 B120.0 X-0.090 Y0.326 Z0.000 M666 X-1.052 Y-0.498 Z1.550 A-0.00 B0.01
Before reboot:
3/27/2021, 7:49:19 AM Connection interrupted, attempting to reconnect... DCS has been stopped 3/27/2021, 7:49:19 AM M999 3/27/2021, 7:49:14 AM M666 Endstop adjustments X-1.05 Y-0.50 Z1.55, tilt X-0.27% Y1.42% 3/27/2021, 7:48:53 AM M500
After reboot:
3/27/2021, 7:49:41 AM M666 Endstop adjustments X-1.05 Y-0.50 Z1.55, tilt X0.00% Y0.01% 3/27/2021, 7:49:22 AM Connection established
So it seems that M501 is working, it pulls the proper tilt, but the M500 does not save the updated tilt.
I'm going to recalibrate and run M500, I'll post the config-override.g
-
Ok, here we are.
3/27/2021, 8:05:10 AM M666 Endstop adjustments X-1.14 Y-0.45 Z1.59, tilt X-0.20% Y1.46% 3/27/2021, 8:05:04 AM M500
; Delta parameters M665 L291.060:291.060:291.060 R137.231 H281.551 B120.0 X-0.161 Y0.210 Z0.000 M666 X-1.135 Y-0.455 Z1.590 A-0.00 B0.01
The config-override.g isn't being updated with the tilt on an M500. I can confirm that manually editing the value does work.
-
-
In meantime may want to upload the 3.2.2 zip file just for the bug fixes
https://github.com/Duet3D/RepRapFirmware/releases/download/3.2.2/Duet2and3Firmware-3.2.2.zip
-
@droftarts said in Weird error on my Delta:
@Th0mpy thanks for your report and testing, one for @dc42 to fix!
Ian
I've just re-tested M500 and M501. They are saving and loading the M566 tilt parameters for me. I don't recall making any changes in this area for more than a year.
Did you definitely run M500?
-
@dc42 said in Weird error on my Delta:
d loading the M566 tilt parameters for me. I don't recall making any changes in this area for more than a year.
Did you definitely run M500?Absolutely positive. I just ran a quick test where I calibrated, checked, saved, reloaded, and checked again. I also just updated to 3.2.2 just to make sure.
-
@dc42 Is there something I can to to help qualify this more?
-
If you use M666 to adjust the tilt and one of the endstop adjustments, confirm that you have made the adjustment by sending M666 without parameters, and then send M500, do the new values get saved to config-override.g?
-
@dc42 Ok, I tried it, it does save it but there seems to be a formatting issue on the A and B params:
; Delta parameters M665 L291.060:291.060:291.060 R137.239 H281.544 B120.0 X-0.138 Y0.266 Z0.000 M666 X-1.000 Y-1.000 Z-1.000 A0.10 B0.10 ; Heater model parameters M307 H0 R0.630 C141.300:141.300 D4.00 S0.75 V14.0 B0 M307 H1 R2.227 C104.400:104.400 D6.00 S0.75 V14.0 B0
Am I going crazy here?
-
Could it be a line length limit?
-
@phaedrux My other printer's M666 line is much longer.
-
@th0mpy said in Weird error on my Delta:
@dc42 Ok, I tried it, it does save it but there seems to be a formatting issue on the A and B params:
; Delta parameters M665 L291.060:291.060:291.060 R137.239 H281.544 B120.0 X-0.138 Y0.266 Z0.000 M666 X-1.000 Y-1.000 Z-1.000 A0.10 B0.10 ; Heater model parameters M307 H0 R0.630 C141.300:141.300 D4.00 S0.75 V14.0 B0 M307 H1 R2.227 C104.400:104.400 D6.00 S0.75 V14.0 B0
Am I going crazy here?
Odd, I did the same and it worked correctly. Are you definitely running firmware 3.2.2 ? Send M115 to check.
-
@th0mpy Are you using an Single Board Computer with your Duet 3? Your M115 doesn't report this. I just tested the following, which seems to be stored and retrieved correctly:
The resultant M501 looks like this (in part):; Delta parameters M665 L161.612:161.612:161.612 R81.896 H173.484 B75.0 X-0.843 Y-0.003 Z0.000 M666 X-1.000 Y-1.000 Z-1.000 A10.00 B10.00 ; Heater model parameters M307 H1 R2.429 C140.000:140.000 D5.50 S1.00 V0.0 B0 I0
Though this is on a Duet 2 Maestro running 3.3beta2 (2021-03-10).
Ian
-
Here's the result of M115:
FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.2.2 ELECTRONICS: Duet 3 MB6HC v1.01 or later FIRMWARE_DATE: 2021-02-11
I am running in SBC mode.