Thank you for the help! Going to go experiment!
PS hyper light drifter is one of my favorites.
Thank you for the help! Going to go experiment!
PS hyper light drifter is one of my favorites.
@phaedrux Closing the loop on this. Thank you for your advice and guidance on this. In the end, the final piece was finding that my right z axis belt was off center and grinding hard on the sides of the top bearing guides. I can see significant wear on the belt and will need to replace it soon, but after a morning of balancing the set screws, the printer is now operating the best I've ever seen it. I found lots of little mistakes and learned a lot about the duet framework and my printer in the process. Thank y'all so much!
@phaedrux It seems to be working at this moment. I printed the STL that you sent over and seems to be behaving, although I'm still seeing very very slight variations in layer width across the bed, it's good enough for the time being to move forward and work on pinpointing some of these issues in getting my Z=0 datum set correctly.
@phaedrux Can do. Will report back later. Having contractor work done in my workshop at the moment.
My z=0 point is meant to be 131,125, and currently is reporting a z value of -.024.
here is my heightmap.csv:
-0.129, -0.184, -0.204, -0.224, -0.244, -0.249, -0.254, -0.279, -0.274, -0.269, -0.244, -0.244, -0.224, -0.194, -0.169
-0.094, -0.124, -0.139, -0.159, -0.179, -0.184, -0.199, -0.229, -0.229, -0.214, -0.194, -0.199, -0.184, -0.169, -0.139
-0.054, -0.104, -0.109, -0.114, -0.129, -0.134, -0.159, -0.194, -0.194, -0.179, -0.154, -0.164, -0.149, -0.139, -0.114
-0.019, -0.039, -0.039, -0.029, -0.029, -0.039, -0.079, -0.124, -0.129, -0.114, -0.094, -0.094, -0.084, -0.084, -0.069
0.026, -0.014, -0.014, 0.001, 0.011, -0.004, -0.044, -0.089, -0.094, -0.089, -0.069, -0.059, -0.049, -0.059, -0.039
0.061, 0.041, 0.051, 0.056, 0.051, 0.036, 0.001, -0.044, -0.049, -0.044, -0.019, -0.019, -0.014, -0.029, -0.009
0.096, 0.051, 0.051, 0.051, 0.036, 0.026, -0.004, -0.044, -0.039, -0.024, 0.001, -0.009, -0.009, -0.019, 0.001
0.111, 0.091, 0.091, 0.081, 0.061, 0.046, 0.016, -0.024, -0.014, 0.006, 0.026, 0.016, 0.011, -0.004, 0.021
0.121, 0.081, 0.076, 0.056, 0.026, 0.011, -0.004, -0.039, -0.024, -0.009, 0.016, 0.011, 0.001, -0.004, 0.021
0.106, 0.086, 0.076, 0.061, 0.031, 0.021, 0.001, -0.029, -0.024, 0.001, 0.041, 0.021, 0.001, 0.001, 0.026
0.086, 0.036, 0.021, 0.006, -0.019, -0.019, -0.034, -0.054, -0.034, -0.009, 0.021, 0.001, -0.014, -0.009, 0.031
0.046, 0.021, 0.006, -0.009, -0.029, -0.029, -0.044, -0.064, -0.044, -0.019, 0.006, -0.024, -0.014, -0.004, 0.031
0.011, -0.044, -0.064, -0.084, -0.094, -0.094, -0.104, -0.124, -0.109, -0.089, -0.064, -0.059, -0.029, -0.014, 0.031
-0.039, -0.069, -0.089, -0.104, -0.124, -0.124, -0.144, -0.164, -0.154, -0.139, -0.104, -0.094, -0.054, -0.034, 0.006
-0.089, -0.144, -0.164, -0.184, -0.204, -0.209, -0.219, -0.239, -0.219, -0.204, -0.169, -0.144, -0.104, -0.079, -0.029
@joergs5 This has definitely helped, although I'm still seeing some issues.
@fcwilt @Phaedrux is there anything that can be gleaned from the fact that my mesh is a "saddle" shape? I've tinkered with my z probe trigger height and the conditions under which I establish my Z=0 Datum, but I've also noticed that there is a fair deviation in trigger height at different points on the bed, roughly .2mm of deviation. When reviewing this document it states that the z trigger height should not very significantly in different XY positions. I have no way of altering the surface of the bed mechanically.
Regarding the z trigger height variations, I'm confident that my z probe is not under any stress causing it to move independently of the toolhead and I believe the EZABL probe is parallel to the bed (although I've been told that having a minute angle in the orientation of the probe to the bed isn't a huge deal?). What other things can I verify/assess to understand what might be causing the inconsistencies in my z trigger height?
I have a small concern that my x gantry is sagging, but this is only from looking at the mesh data, this is the only thing I can seem to think of that would lead to such significant variation. I'm about to get a camera set up to take photos of the profile of the gantry in relation to the bed at different x coordinates to see if there is sag when the toolhead is in the middle of the gantry, but not sure where else to go at this moment.
@fcwilt Sure, I can resort to trial and error, but I'm not understanding why my process is not resulting in a meaningful outcome. Rather than brute forcing this, I'd like to understand what I'm doing wrong so that I may correct it and the machine operates as expected.
@phaedrux Made those changes, but still seeing the nozzle entirely too close to the bed. After the above steps, the number I'm getting from my g30 s-1 is 1.631, which is what I'm putting as my g31 z value. With this, i have to baby step up about .46 mm because the nozzle is scraping the bed so hard. I'm just not understanding why my z probe calibration is deviating from the measured value by 25%. This feels like I'm doing something fundamentally wrong in my calibration, rather than need to make some minor changes.
@fcwilt I've made some small changes to my approach.
my bed.g now looks like this:
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v3.1.3 on Thu Jun 11 2020 21:09:00 GMT-0500 (Central Daylight Time)
M561 ; turns off mesh compensation
G1 Z5
G30 P0 X10 Y130 Z-99999
G30 P1 X270 Y130 Z-99999 S2
G1 X151 Y168
G30
and my heightmap looks better. However, I'm still seeing issues in which all of my prints start with the nozzle scraping the bed. I would post more reference code in here, but frankly at this point I don't know where I would look to understand why this is happening.
@fcwilt Thanks for the response. Going to play with this and may have further questions.
Hi Duet folks! I am trying to understand the interactions between the above gcode commands with my EZABL on my Taz Workhorse (dual z cartesian printer).
This is my current process for calibrating my printer:
What I find happens is this:
I have a number of questions about how these commands interact with each other:
Sorry for the long post, all of my files should be below.
config.g
; Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.1.3 on Sat Jun 13 2020 22:43:12 GMT-0500 (Central Daylight Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Gertie the Workhorse" ; set printer name
; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
; Drives
M569 P0 S0 ; physical drive X goes backwards
M569 P1 S0 ; physical drive Y goes backwards
M569 P2 S1 ; physical drive Z1 goes forwards
M569 P3 S0 ; physical drive E0 goes backwards
M569 P4 S0 ; physical drive Z2 goes backwards
; Dual Z Axis
M584 X0 Y1 Z2:4 E3 ; two Z motors connected to driver outputs Z and E1
M671 X-141:366.5 Y48:48 S4 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
; Motor settings
M350 X32 Y32 Z32 E32 I0 ; configure microstepping without interpolation
M92 X200.00 Y200.00 Z1000.00 E619 ; set steps per mm
M566 X480.00 Y480.00 Z300.00 E12000 ; set maximum instantaneous speed changes (mm/min)
M203 X12000.00 Y12000.00 Z900.00 E1500.00 ; set maximum speeds (mm/min)
M201 X4500.00 Y4500.00 Z500.00 E10000.00 ; set accelerations (mm/s^2)
M906 X1000 Y1000 Z800 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X-50 Y-20 Z-2 S1 ; set axis minima
M208 X300 Y315 Z300 S0 ; set axis maxima
; Endstops
M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 Z1 S2 ; configure Z-probe endstop for low end on Z
; EZABL
M558 P5 C"!zprobe.in" H5 S.07 A5 F900 T12000 ;connected to Z probe IN pin.
; Height - 5mm, probe each point 3 times, Feed rate 60, travel rate 6000
G31 P25 X-21 Y-43 Z0.926 ; set Z probe trigger value, offset and trigger height
; For offset, + is towards bed, - is away from bed.
M557 X10:250 Y10:240 P15:15 ; define mesh grid - also defines printable area
; Heaters
M308 S11 P"mcu-temp" Y"mcu-temp" A"Duet Board" ; Configure MCU sensor
M308 S0 P"bedtemp" Y"thermistor" T100000 B3974 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat 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"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp Semitec 104NT-4-R025H42G
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S300 ; Set temperature limit for extruder to 300C
M141 H2 ; Assign chamber heater to heater 2
M307 H2 B1 ; chamber heater operates in bang-bang mode
M308 S2 P"e1temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin e1temp
M950 H2 C"e1heat" T2 ; create chamber heater output on e0heat and map it to sensor 2
M143 H2 S70 ; Set temperature limit for chamber to 60C
; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S0 H11 T38 ; set fan 1 value. Thermostatic control is turned on
; Tools
M563 P0 S"Extruder" 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 are not defined
; Miscellaneous
M575 P1 B57600 S1
M501 ; load saved parameters from non-volatile memory
T0 ; select first tool
config-override.g
; config-override.g file generated in response to M500 at 2021-07-15 11:57
; This is a system-generated file - do not edit
; Heater model parameters
M307 H0 R0.347 C415.820:415.820 D3.10 S1.00 V23.6 B0 I0
M307 H1 R1.733 C383.952:251.337 D6.50 S1.00 V24.0 B0 I0
bed.g
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v3.1.3 on Thu Jun 11 2020 21:09:00 GMT-0500 (Central Daylight Time)
M561 ; turns off mesh compensation
G1 Z5
G30 P0 X10 Y130 Z-99999
G30 P1 X270 Y130 Z-99999 S2
homeall.g
; homeall.g
; called to home all axes
;
; generated by RepRapFirmware Configuration Tool v3.1.3 on Sat Jun 13 2020 22:43:12 GMT-0500 (Central Daylight Time)
G91 ; relative positioning
G1 H2 Z15 F6000 ; lift Z relative to current position
G1 H1 X-345 Y-340 F6000 ; move quickly to X and Y axis endstops and stop there (first pass)
G1 H2 X5 Y5 F6000 ; go back a few mm
G1 H1 X-345 Y-340 F6000 ; move slowly to X and Y axis endstops once more (second pass)
G90 ; absolute positioning
G1 X161 Y183 F6000 ; go to first bed probe point and home Z
M558 F900 ; Home EZABL Fast 15mm/s
G30 ; home Z by probing the bed
M558 F450 ; Home EZABL Slow 7.5mm/s
G30 ; home Z by probing the bed
; Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning
Print Start Gcode
;This G-Code has been generated specifically for the LulzBot TAZ Workhorse with HE 0.5mm Tool Head
G28
G32
G29 S1
M104 R{first_layer_temperature[0]-60}
M190 S{first_layer_bed_temperature[0]} ; bed heating up
G1 X20 Y0 Z3 F3000
M109 R{first_layer_temperature[0]}
G1 E1 F75 ; prime tiny bit of filament into the nozzle
G1 X20 Z0.5 E5 F500 ; start purge line
G1 X50 E15 Z0.5 F500 ; finish purge line
My heightmap:
RepRapFirmware height map file v2 generated at 2021-08-19 14:14, min error -0.432, max error -0.019, mean -0.203, deviation 0.093
axis0,axis1,min0,max0,min1,max1,radius,spacing0,spacing1,num0,num1
X,Y,10.00,250.00,10.00,240.00,-1.00,17.14,16.43,15,15
-0.304, -0.364, -0.372, -0.387, -0.402, -0.402, -0.409, -0.432, -0.432, -0.413, -0.402, -0.398, -0.387, -0.349, -0.312
-0.278, -0.308, -0.304, -0.319, -0.334, -0.342, -0.357, -0.387, -0.391, -0.372, -0.372, -0.368, -0.349, -0.319, -0.286
-0.233, -0.286, -0.278, -0.278, -0.282, -0.286, -0.312, -0.342, -0.345, -0.319, -0.308, -0.312, -0.304, -0.282, -0.252
-0.192, -0.222, -0.199, -0.188, -0.184, -0.192, -0.237, -0.278, -0.289, -0.274, -0.267, -0.259, -0.252, -0.244, -0.211
-0.143, -0.192, -0.173, -0.151, -0.136, -0.151, -0.196, -0.229, -0.244, -0.229, -0.218, -0.207, -0.199, -0.203, -0.177
-0.102, -0.128, -0.102, -0.094, -0.094, -0.109, -0.154, -0.196, -0.207, -0.199, -0.188, -0.184, -0.177, -0.184, -0.139
-0.064, -0.113, -0.090, -0.090, -0.098, -0.113, -0.147, -0.181, -0.184, -0.162, -0.154, -0.154, -0.162, -0.162, -0.132
-0.038, -0.061, -0.046, -0.057, -0.079, -0.098, -0.132, -0.166, -0.169, -0.147, -0.139, -0.147, -0.151, -0.154, -0.117
-0.019, -0.064, -0.061, -0.083, -0.102, -0.117, -0.143, -0.169, -0.166, -0.139, -0.124, -0.132, -0.154, -0.139, -0.109
-0.027, -0.057, -0.053, -0.079, -0.102, -0.117, -0.139, -0.169, -0.173, -0.139, -0.121, -0.132, -0.158, -0.147, -0.102
-0.057, -0.105, -0.113, -0.128, -0.143, -0.147, -0.166, -0.181, -0.169, -0.128, -0.113, -0.136, -0.162, -0.147, -0.102
-0.079, -0.117, -0.124, -0.147, -0.158, -0.162, -0.184, -0.199, -0.188, -0.162, -0.154, -0.169, -0.169, -0.154, -0.098
-0.121, -0.188, -0.196, -0.211, -0.218, -0.214, -0.229, -0.244, -0.237, -0.207, -0.192, -0.192, -0.169, -0.147, -0.094
-0.158, -0.199, -0.207, -0.225, -0.241, -0.248, -0.274, -0.297, -0.297, -0.274, -0.259, -0.244, -0.207, -0.177, -0.117
-0.211, -0.278, -0.290, -0.305, -0.312, -0.312, -0.331, -0.349, -0.342, -0.319, -0.297, -0.267, -0.237, -0.199, -0.147
and a screenshot:
@phaedrux Closing the loop on this. Thank you for your advice and guidance on this. In the end, the final piece was finding that my right z axis belt was off center and grinding hard on the sides of the top bearing guides. I can see significant wear on the belt and will need to replace it soon, but after a morning of balancing the set screws, the printer is now operating the best I've ever seen it. I found lots of little mistakes and learned a lot about the duet framework and my printer in the process. Thank y'all so much!