Duet WIFI will not zero accurately
-
OK thanks.
A couple of questions:
Why are you using G30 S-2 instead of G30 S-3?
Why are you using M500 instead of M500 P31?
Your answers will likely lead to more questions.
Thanks.
Also, just a strong suggestion, consider upgrading to at least firmware 3.3 - you are way out of date.
Frederick
-
No idea - I did not write any of the code. I can probably fond out from the person that did.
Yes - I do know that the FW is way old. I think I learned that updating past a certain point would require editing the files due to some changes in commands (or something like that) and I did not see any upside as the printers work great other than this issue.
That said, if you think that the G30 and M500 lines could be at fault, I try light switching those to see if things change. How do you see the behavior connected to them? Not questioning - just curious.
-
I just looked up the parameters for G30 and M500 and did not see mention of S or P respectively. If you can tell me what they do, perhaps I can shed some light.
Also - have to step away for a bit - back on later...
-
@comobileoutfitters said in Duet WIFI will not zero accurately:
No idea - I did not write any of the code. I can probably fond out from the person that did.
This is all according to the docs and I have not had time to verify it all. I would need to do that since I use a different approach to calibrating my Z probes. I will verify it all tomorrow.
The G30 S-2 command adjusts the Z offset of the current tool. Usually that is only needed when you have multiple tools. A G30 S-3 command adjusts the Z Trigger Height of the Z probe (the Z parameter of the G31 command). That is usually the value that is adjusted on a single tool machine.
I should have typed P10 instead of P31 but the rational is the same.
When you used G30 S-2 you made changes to the current tool Z offset. But to save that information in the config-override.g file you would need to use M500 P10.
However I think it makes more sense to use G30 S-3 which makes changes to the Z Trigger Height of the Z probe. To save that information in the config-override.g file you would need to use M500 P31.
Given the code your posted I fail to understand how it works at all - unless the docs are wrong.
Frederick
-
Appreciate the info.
Interesting! Glad it it is at least working as is / today.
K - will check in tomorrow. I am on Mountain time in Colorado...
-
Just wondering if you have had a chance to look at this a little closer...
Thanks!
-
@comobileoutfitters said in Duet WIFI will not zero accurately:
G30 S-2
M500 ; save resultsAs @fcwilt says, this bit doesn't do what the macro seems to want it to do.
Can you upload your config-override.g file so we can see what it has saved to it? This is the file that gets created/updated by M500.
@fcwilt said in Duet WIFI will not zero accurately:
However I think it makes more sense to use G30 S-3 which makes changes to the Z Trigger Height of the Z probe. To save that information in the config-override.g file you would need to use M500 P31.
This would be the solution. Or at least that would do more what the macro seems to be trying to do.
-
Sure...
; config-override.g file generated in response to M500 at 2021-09-17 16:35
; This is a system-generated file - do not edit
; Heater model parameters
M307 H0 A109.8 C457.8 D2.1 S1.00 V12.3 B0
M307 H1 A694.2 C260.8 D10.4 S1.00 V24.4 B0
M307 H3 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H4 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H5 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H6 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H7 A340.0 C140.0 D5.5 S1.00 V0.0 B0
; Probed tool offsets
G10 P0 Z-4.00
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 -
@comobileoutfitters said in Duet WIFI will not zero accurately:
; Probed tool offsets
G10 P0 Z-4.00Well you do have a negative Z offset saved in there, though I'm not sure from where. Perhaps this is part of the problem with it not zeroing accurately?
To get a better idea of what's going on in the system we'd need to see all your config and macros being run otherwise we're just guessing.
-
I can post those.
Is there a way to manually set it? I don't do it very often. If the Macro or something else is unreliable, maybe that is the way to go.
LMK - if no, will post it all.
-
Post your files and I'll have a better idea of what's going on currently.
-
Yep - long delay, but here is everything in one place...
Board: Duet WiFi 1.02 or later
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 2.03 (2019-06-13b2)
Duet WiFi Server Version: 1.23System Folder Contents -----------------------------------------------------------
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:40 GMT-0700 (Mountain Standard Time)
G28 ; home
;M401 ; deploy Z probe (omit if using bltouch)
G90
G30 P0 X15 Y165 Z-99999 ; probe near a leadscrew, half way along Y axis
G30 P1 X290 Y165 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
;M402 ; retract probe (omit if using bltouch)
G30 P0 X15 Y165 Z-99999 ; probe near a leadscrew, half way along Y axis
G30 P1 X290 Y165 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
G30 P0 X15 Y165 Z-99999 ; probe near a leadscrew, half way along Y axis
G30 P1 X290 Y165 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
G0 X165 Y0; config-override.g file generated in response to M500 at 2022-06-08 18:56
; This is a system-generated file - do not edit
; Heater model parameters
M307 H0 A109.8 C457.8 D2.1 S1.00 V12.3 B0
M307 H1 A694.2 C260.8 D10.4 S1.00 V24.4 B0
M307 H3 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H4 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H5 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H6 A340.0 C140.0 D5.5 S1.00 V0.0 B0
M307 H7 A340.0 C140.0 D5.5 S1.00 V0.0 B0
; Probed tool offsets
G10 P0 Z-0.64
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; Configuration file for Duet Ethernet on Tronxy X5S
; General preferences
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
;M667 S1 ; Select coreXY , rev 2.02 and earlier
M669 K1 ; Select CoreXY mode
M555 P2 ; Set output to look like marlin
M550 P"X5SA Pro" ; set name
; Network
M552 S1 ; Enable network
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Stepper Drives
M569 P1 S1 ; Drive 0 runs forward, active low enable, (X)
M569 P0 S1 ; Drive 1 runs forward, active low enable, (Y)
M569 P2 S0 ; Drive 2 runs backward, active low enable, (Z1)
M569 P3 S1 ; Drive 3 runs forwards, active low enable, (E0)
M569 P4 S0 ; Drive 4 runs backward, active low enable, (Z2 in the E1); Dual Z
M584 X0 Y1 Z2:4 E3 ; Dual Z motors Z and E3 (extruder1 drive). Make sure Z drive is L/H stepper and E3 is R/H stepper
; Leadscrew positions: The measurement is taken from X=0, Y=0. Therefore X will be negative, Y positive and middle of bed = 160
M671 X-108:405 Y160:160 S2.0 ; Leadscrews at middle left and middle right (S0 is correction value);Drive settings
M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolationM92 X80.17 Y80.12 Z409 E412.5 ; Z Last:401 Set steps per mm for 16 microsteps z396.04
;M350 X32 Y32 Z32 E128 ; Use to setup new microstepping (dont delete default 16 microstepping)
M566 X300.00 Y300.00 Z120.00 E120.00 ; Set maximum instantaneous speed changes (mm/min) - Jerk
M203 X8000.00 Y8000.00 Z1800.00 E7200.00 ; Set maximum speeds (mm/min)
M201 X2000.00 Y2000.00 Z100.00 E10000.00 ; set accelerations (mm/s^2)
M906 X1100 Y1100 Z1100 E800 I30 ; Motor currents
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; Set axis minima (adjust to make X=0 and Y=0 the edges of the bed)
M208 X330 Y330 Z400 S0 ; Set axis maxima (adjust to suit your machine); Endstops
M574 X1 Y1 S0 ; Set active low endstops for X and Y
M581 Z1 S1 T0 C0 ; Set Z1 endstop as an e-stop for Z protection if Z probe fails when probing the bed.; Filament Run Out Sensor
; original ststement: M591 D0 P1 C4 S1 ; Filament runout Sensor for Extruder E0 on E1 Endstop input P1 = signal HIGH.
M581 E0 S1 T1 C1 ; Input via E0, Rising edge signal, Pause on trigger, only when running file from SD card; Z-Probe
M574 Z1 S2 ; Set endstops controlled by probe
; M558: the P is probe type, H is dive height-the height before probing, A is max number of probing each point, S is tollerance when multi-probing.
;M558 P1 H3 F120 A10 S0.03 I0
M558 P8 H5 F100 T9000 I1 ; Set Z probe type to unmodulated and the dive height + speeds
; G31: the P is the reported Z value when triggered. X,Y are offset coordinates. Z is trigger height, you can decrease value if nozzle is too close
; or increase if too far away.
G31 P500 X-40 Y-5 Z2.25 ;2.25; Mesh Grid
; The following M557 commands are not needed if you are using a bed.g file to perform bed compensation
;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of the Z probe
M557 X20:315 Y20:315 S85 ; Define mesh grid; Heaters
M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0 (bed)
M143 H0 S120 ; Set temperature limit for heater 0 to 100C
M305 P1 T100000 B4092 R4700 ; Set thermistor + ADC parameters for heater 1 (nozzle)
M143 H1 S295 ; Set temperature limit for heater 1 to 300C
M307 H1 A299.8 C109.4 D4.0 S1.00 V24 B0 ; Autotune result for hotend
M307 H0 A109.8 C457.8 D2.1 S1.00 V12.3 B0 ; Autotune result for bed;Expansion pins
M307 H2 A-1 C-1 D-1 ; Make heater2 on extruder2 available and use it for pwm led lighting; Fans
M106 P0 S0 H-1 C"Part Cooling" ; Set fan 0 value (Part Cooling)
M106 P1 S255 I0 F259 L125 H1 T60:140
; Below 60 deg C the fan is off. At 60 deg C the fan will come on at 50% then will ramp up to full full speed between 60 and 140 deg C and remain at 100% for any ; temperature above 140; Set fan 2 value (Duet mcu), PWM signal inversion and frequency. Thermostatic control is turned on, fan comes on at 40 deg and reaches full speed at 65 deg
;M106 P2 F500 T40:65 H100:101:102
M106 P2 F10000 L0.2 B1 T35:40 H100:101:102 ; monitor MCU and drivers;CPU Temperature Calibration
M912 P0 S-15.8; Tools
M563 P0 D0 H1 S"Extruder" ; 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; Automatic power saving
M911 S10 R11 P"M911 S10 R11 P*M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss; Custom settings
;M42 P2 S255 ; Turn led lighting on full
;M98 PLevelLeadscrews.g ; Option to perform leadscrew levelling
;M98 PEnable Mesh Levelling ; Option to enable on start up
M501dwc2settings.json
{"main":{"language":"en","lastHostname":"192.168.1.210","darkTheme":true,"useBinaryPrefix":true,"disableAutoComplete":false,"settingsStorageLocal":false,"settingsSaveDelay":2000,"cacheStorageLocal":true,"cacheSaveDelay":4000,"notifications":{"errorsPersistent":true,"timeout":5000},"webcam":{"url":"","updateInterval":5000,"useFix":false,"embedded":false,"rotation":0,"flip":"none"}},"machine":{"ajaxRetries":3,"updateInterval":250,"extendedUpdateEvery":20,"fileTransferRetryThreshold":358400,"crcUploads":true,"pingInterval":2000,"babystepAmount":0.05,"codes":["M106 100","M106 P0 100","M107 P0 100","M107 P1 100","M106 P1 100","M106 P0 S100","M106 S100","M106 P1 S100","M106 P0 S1000","M106 P0 S10000","M106 P0 S500","M106 P2 100","M106 P2 50","M106 P2 25","M106 P2 0","M106 P1 0","M106 P0 0","M106 P2 S100","M106 P2 S50","M106 P2 S25","M106 P1 S25","M106 P0 S25","M106 P2 S0.5","M106 P2 S0.0","M106 P1 S0.5","M106 P0 S0.5","M106 P2 F500","M106 P2 F100","M106 P1 F100","M106 P0 F100","M106 P2 L50","M106 P2 L25","M106 P1 L25","M106 P0 L25","M106 P3 S100","M106 P4 S100","M503","M503 E","M92 Z0"],"displayedExtraTemperatures":[],"displayedExtruders":[0,1,2],"displayedFans":[-1,0],"moveSteps":{"X":[100,50,10,1,0.1],"Y":[100,50,10,1,0.1],"Z":[50,25,5,0.5,0.05],"default":[100,50,10,1,0.1]},"moveFeedrate":6000,"extruderAmounts":[100,50,20,10,5,1],"extruderFeedrates":[60,30,15,5,1],"temperatures":{"tool":{"active":[260,250,235,220,205,0],"standby":[210,180,160,140,0]},"bed":{"active":[110,100,90,70,65,60,0],"standby":[40,30,0]},"chamber":[90,80,70,60,50,40,0]},"spindleRPM":[10000,75000,5000,2500,1000,0]}}heightmap.csv
RepRapFirmware height map file v2 generated at 2022-06-09 07:00, min error -0.135, max error 0.012, mean -0.068, deviation 0.040
xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum
20.00,315.00,20.00,315.00,-1.00,85.00,85.00,4,4
-0.135, -0.101, -0.113, -0.120
-0.047, -0.062, -0.069, -0.103
-0.074, -0.025, -0.035, -0.064
-0.030, 0.012, -0.025, -0.091; homeall.g
; called to home all axes
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:40 GMT-0700 (Mountain Standard Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 X-335 Y-335 F3200 ; move quickly to X or Y endstop and stop there (first pass)
G1 H1 X-335 ; home X axis
G1 H1 Y-335 ; home Y axis
G1 X5 Y5 F6000 ; go back a few mm
G1 H1 X-335 F360 ; move slowly to X axis endstop once more (second pass)
G1 H1 Y-335 ; then move slowly to Y axis endstop
G90 ; absolute positioning
G1 X50 Y50 F6000 ; go to first bed probe point and home Z
G30 ; home Z by probing the bed; Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 S2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:40 GMT-0700 (Mountain Standard Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 X-335 F1800 ; move quickly to X axis endstop and stop there (first pass)
G1 H2 X5 F6000 ; go back a few mm
G1 H1 X-335 F360 ; move slowly to X axis endstop once more (second pass)
G1 H2 Z-5 F6000 ; lower Z again
G90 ; absolute positioning; homey.g
; called to home the Y axis
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:41 GMT-0700 (Mountain Standard Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 Y-335 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 H2 Y5 F6000 ; go back a few mm
G1 H1 Y-335 F360 ; move slowly to Y axis endstop once more (second pass)
G1 H2 Z-5 F6000 ; lower Z again
G90 ; absolute positioning; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:41 GMT-0700 (Mountain Standard Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G90 ; absolute positioning
G1 X50 Y50 F6000 ; go to first probe point
G30 ; home Z by probing the bed; Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 H2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning; pause.g
; called when a print from SD card is paused
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:41 GMT-0700 (Mountain Standard Time)
M83 ; relative extruder moves
G1 E-1 F1000 ; retract 1mm of filament
G91 ; relative positioning
G1 Z25 F360 ; lift Z by 25mm
G90 ; absolute positioning
G1 X150 Y0 F6000 ; go to X=150 Y=0; resume.g
; called before a print from SD card is resumed
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:41 GMT-0700 (Mountain Standard Time)
G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move
G1 R1 X0 Y0 ; go back to the last print move
M83 ; relative extruder moves
G1 E1 F1000 ; extrude 1mm of filament; stop.g
; called when M0 (Stop) is run (e.g. when a print from SD card is cancelled)
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:41 GMT-0700 (Mountain Standard Time); tpost0.g
; called after tool 0 has been selected
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:42 GMT-0700 (Mountain Standard Time)
; Wait for set temperatures to be reached
M116 P0; tpre0.g
; called before tool 0 is selected
;
; generated by RepRapFirmware Configuration Tool v2.1.3 on Sat Nov 30 2019 21:58:42 GMT-0700 (Mountain Standard Time)Macros Folder Contents --------------------------------------------
Mesh Level
G28
M208 X360 Y360 S0
G29
M208 X330 Y330 S0
G0 X165 Y0 F12000Zero Nozzle
T0
M291 P"Press ""OK"" to zero the nozzle." R"Calibrate Z-Offset" S3
M291 P"Homing..." R"Calibrate Z-Offset" S1
;M98 P/sys/homeall.g
M208 S1 Z-2 ; allow movement below Z0
G1 X150 Y150 Z8 F4000 ; move to center of bed
M558 P0
G30 S-2
M500 ; save results
M501 ; load new data
M208 S1 Z0 ; disallow movement below Z0
G1 Z10 ; drop build plate
G1 X165 Y0 F4000
M558 P8
M291 P"Z-offset calibration complete! " R"Calibrate Z-Offset" S1 T3Print File Specific - via Simplify 3D --------------------------------------
Start Script
G28 ; home all axes
G29 ; auto level
M226 ; Pause to allow cleaning / extra priming if needed
M562 E
G1 Z0.2 F3000 ; get ready to prime
G92 E0 ; reset extrusion distance
G1 X100 E10 F600 ; prime nozzlePrint setting - Global Z offset = .02mm
No other nozzle location manual tweaks are applied
End ----------------------------------------
-
@comobileoutfitters said in Duet WIFI will not zero accurately:
M558 P0
G30 S-2
M500 ; save results@comobileoutfitters said in Duet WIFI will not zero accurately:
G10 P0 Z-0.64
I think your macro isn't doing what you want it to do. You're changing to the manual probe before measuring the trigger height, which is giving you a negative value, and then setting back to bltouch.
Your zeroing macro should probably look something like this instead.
Zero Nozzle T0 M291 P"Press ""OK"" to zero the nozzle." R"Calibrate Z-Offset" S3 M291 P"Homing..." R"Calibrate Z-Offset" S1 M208 S1 Z-2 ; allow movement below Z0 G1 X150 Y150 Z8 F4000 ; move to center of bed M291 P"Jog the Z Axis until the bed and nozzle are touching and click OK" R"Setting Z=0" Z1 S3 G92 Z0 ; Set z = 0 G90 G1 Z5 F600 G30 S-2 M500 P31 G1 Z10 M208 S1 Z0 ; disallow movement below Z0 G1 X165 Y0 F4000 M291 P"Z-offset calibration complete! " R"Calibrate Z-Offset" S1 T3
G10 P0 Z-0.64
Delete that from your config-override.g first
-
I agree - it is not
That said, I did not write it and am not familiar with G Code other than what I have learned in problem solving/tweaking - so not even familiar with the concepts.
Does what you see in the existing macro explain the erratic behavior? That has been what is most confusing.
Will send this to the person I got it from and see what he has to say, and will try to look at the code, read the definitions for the switches and see if I can make some sense out the differences, then try it out myself. I use these machines for my work and have them both going constantly for the next few days - will try to make time to experiment after that.
Thanks!