Duet WIFI will not zero accurately
-
Have a duet WIFI controller that after doing a nozzle zero (with confirmation that the zero has been set) will crash the tip into the bed (guessing 1-2MM past zero), or leave a gap of 1-2 MM. No apparent pattern in which way it goes, or why it suddenly zeros correctly. This has happened on occasion before, but typically re-zeroing once, maybe twice fixes it. This time, it took 6, 8, possibly 10 trys before it set properly. I don't do anything different - just keep re-trying.
Once zeroed properly, it stays set perfectly until I decide to do a bed leveling or other maintenance that drives re-zeroing. This is typically after months and 4-6 KG of material.
I run two machines identically equipped; both seem to do this on occasion.
Thoughts?
-
@comobileoutfitters post your config.g
-
Sorry for the slow reply - here it is.
As a side note, I have not changed or messed with this or any other files since originally setting things up, other than fine tuning the calibration / steps (M92) if it matters. This happened before and after I made these tweaks.
Thanks!
; 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
M591 D0 P1 C4 S1 ; Filament runout Sensor for Extruder E0 on E1 Endstop input P1 = signal HIGH.; 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
M501 -
Wondering if you have had a chance to take look at this. Am getting ready to zero again, and hoping to have some clues on how to make it go more smoothly...
-
How are you Z probing? presumably not part of your homeZ if this is only happening every few months?
as an aside
@comobileoutfitters said in Duet WIFI will not zero accurately:
M92 X80.17 Y80.12
don't think that's the reason for your issue, but normally X and Y steps/mm are calculated not measured.
-
@comobileoutfitters said in Duet WIFI will not zero accurately:
Wondering if you have had a chance to take look at this. Am getting ready to zero again, and hoping to have some clues on how to make it go more smoothly...
Hi,
What exactly do you mean by "zero again"?
Do you set the Z=0 Datum using a single G30 at a reference XY location?
You need to do that:
- after leveling the bed using G32 - if that is something you do
- before creating a height map with G29 S0
- before loading a height map with G29 S1
Frederick
-
Will try to catch everyone's questions and comments to date...
I am using the Zero Nozzle function on the home screen of the display, where the head will move to the center of the bed, then I manually walk it down onto a piece of paper and press "set" (or whatever the button is that is supposed to record the location). It has always responded with a confirmation message below. It is not part of the Home routine. Here is the Macro:
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 T3What I mean by "zero again" is that it is getting time to do a bed leveling and that is when I will zero the nozzle again. I only zero the nozzle when I do that, change a nozzle, take something apart, or something that might affect the position.
I admit I don't understand how nozzle zero works, unless it is just an offset from Home Z, and in that I am assuming that the probe determines the Z Home location. If that is the case, I may NOT need to re-zero the nozzle after leveling the bed - only if I change a nozzle, or something else that changes the relative position of the nozzle relative to the Z Home position. That said - would still like that to work reliably if I can.
I don't issue any commands directly - so the answer is "No" - I don't use G30. Have always been successful with the macros - at least eventually. My routine after messing with mechanical bits is to level the bed left to right (dual servo driven bed screws) with a macro, then get a bed map and manually tweak the spring loaded bed screws to improve flatness, then zero the nozzle.
Important to remember is that the results of the Nozzle Zero routine are wildly erratic - off by several mm either positive or negative sometimes. And then it eventually sets correctly. Nothing different run to run of the routine, nothing else done but running it back to back. Well, unless you count my evolving, escalating level of colorful language!
Hope this helps - thanks for the input!
-
What firmware are you running?
I have other questions/comments but they depend on knowing your firmware.
Frederick
-
This is off the DWC "Electronics" menu. It is a "real" Duet board if that matters.
Board: Duet WiFi 1.02 or later
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 2.03 (2019-06-13b2)
Duet WiFi Server Version: 1.23 -
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.