@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.
Posts made by elli
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
@phaedrux Can do. Will report back later. Having contractor work done in my workshop at the moment.
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
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
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
@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.
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
@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.
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
@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.
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
@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.
-
RE: G28, G29, G31, & G32 Relationship w/ Probe
@fcwilt Thanks for the response. Going to play with this and may have further questions.
-
G28, G29, G31, & G32 Relationship w/ Probe
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:
- G28
- G32
- Move to center of bed.
- Set the z offset through this process here.
- Calibrate the EZABL from TH3d's instructions.
- Update G31 in config.g, restart duet
- G28, G32
- Heat bed to target temp.
- Turn off bed
- G29
- Start print, which performs 1. M561, 2. G28, 3. g32, 4. G29 s1.
What I find happens is this:
- My heightmap shows the bed to be below "0" at the XY position that I performed the G30 z calibration, which seems strange.
- The nozzle is far too close to the bed and I have to perform babystepping to achieve the correct height (often times around half a mm), and not in a way that seems to be consistent with other measurements.
- Even with g29 s1 and the duet control reporting mesh in use, I can't see any visual indication that the z axis motors are making the small necessary corrections, and I do see (very small) inconsistencies in the first layer.
- Once a print is finished, I update the config.g with the babystep alterations, yet the next print seems to have it's own first layer oddities that need babystepping.
I have a number of questions about how these commands interact with each other:
- When calibrating the Z offset for a probe, does the current G31 z offset need to be set to zero first?
- After changing the z value of G31 in the config, do I need to re-run g29 and get a new heightmap?
- After each g28, my x gantry becomes crooked, and a G32 is necessary. However, if I run a macro to raise and lower the gantry 150 mm 10 times, a g32 reports the gantry is level (within .002 mm). Is there something wrong with my homeall?
- Should I be re-establishing my z0 through after g32?
- Is there a way to verify that G29 movements are occurring outside of just eyeballing my motors?
- Is my process for establishing my z offset/bed level/print start problematic?
- Shouldn't my G29 heightmap have a z value of 0 at the point that I established my z-offset?
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:
-
RE: Bed Leveling Challenges Duet 2 Wifi + BLTouch
@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!
-
RE: Bed Leveling Challenges Duet 2 Wifi + BLTouch
@Phaedrux I think I've found the problem. For whatever reason, the BLTouch is causing some flex in the bed platform as it touches the bed in the x min and max. Is there a way to decrease the amount of force the BLTouch exhibits on the bed through the M558 or G31 commands?
-
RE: Bed Leveling Challenges Duet 2 Wifi + BLTouch
Changes made, fingers crossed for some good results. My intention is that g32 only gets run once in a very blue moon, maybe once a week/month or if the printer is ever moved.
-
RE: Bed Leveling Challenges Duet 2 Wifi + BLTouch
Over the weekend I spent a lot of time tinkering with my printer. Some of my findings, and changes include:
- Placing a printer on a flat piece of granite and squaring the frame.
- Updating my config.g, including the location of the leadscrews (these were off significantly), and the offset of the BLTouch.
- Modifying the mounting height of the BLTouch.
- Reviewing this guide and making changes to my config, home files, and startup gcode.
Unfortunately, I'm still seeing first layer inconsistencies, with my first layer varying in height by about .1 mm across the bed. I'm going to try a manual bed leveling next, but any other advice would be greatly appreciated.
Here are my updated config files:
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 M308 S11 P"mcu-temp" Y"mcu-temp" A"Duet Board" ; Configure MCU sensor ; 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 S1 ; physical drive E0 goes backwards (2.85 - P3 S0) (1.75 - P3 S1) 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:32 E32 I0 ; configure microstepping without interpolation M92 X200.00 Y200.00 Z1000.00 E819.2 ; set steps per mm M566 X480.00 Y480.00 Z300.00 E12000 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z3000.00 E1500.00 ; set maximum speeds (mm/min) M201 X4500.00 Y4500.00 Z50.00 E10000.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1250 E850 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-5 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 ; BLTouch M558 P9 C"^zprobe.in" H3 A3 F180 T3000 ; BLTouch connected to Z probe IN pin. ; Height - 3mm, probe each point 3 times, Feed rate 60, travel rate 6000 M950 S0 C"exp.heater3" ; create servo/gpio 0 on heater 3 pin on expansion connector M280 P0 S10 ; send control signal to BLTouch through servo/gpio 0 G31 P500 X-5.3 Y-59 Z1.775 ; set Z probe trigger value, offset and trigger height (2.85 Z.98) (1.75 Z1.775) ; For offset, + is towards bed, - is away from bed. M557 X0:280 Y0:250 P21:21 ; 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 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
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 G29 S2 M190 S60 ; heat bed to target temp for filament (60 -> PLA, 80 -> PETG) G4 S60 ; Wait 1 minute for bed warping to settle G28 ; home ; The below set of commands alternates between probing the left and right leadscrews to calibrate the dual z axis and level the gantry. G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 1 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 2 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 3 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 4 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 5 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 6 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 7 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 8 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 9 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 10 G29 M140 S0
start gcode:
G28 XY M561 ; Clear any bed transform that might be in place G1 X150 Y190 ; Move Probe to middle of bed G30 ; Do a single probe G29 S1 M104 R175 M190 S60 ; bed heating up G1 X20 Y0 Z3 F3000 M109 R235
Some thoughts I have regarding possible issues:
The z stepper motors that are currently installed are 1 amp nema 17's. Their voltage in config.g is set to 1 amp. The person I purchased it from had upped them to 1250 - is there any possibility because these are 1 amp, and not 2 amp steppers that they are not providing enough power for the micro adjustments necessary?
Could you help me understand why my z0 point does not seem to align with where I am running my g30 at the center of the bed? My heightmap does not seem to make a lot of sense to me.
Thanks again for all your help!
-
RE: Bed Leveling Challenges Duet 2 Wifi + BLTouch
@phaedrux I've checked the squareness of my printer's frame and there is definitely some twist in it, the diagonals are off by about 3mm from each other.
I don't believe the wiring loom is tugging on the gantry, it seems to have plenty of slack. I will work on adjusting the height of the BLTouch. Thank you for all the help!
-
RE: Bed Leveling Challenges Duet 2 Wifi + BLTouch
I haven't gone through a manual leveling process yet, but I did try swapping the bltouch on the printer for another one I have and recalibrated the probe and did a new batch of bed leveling.
I am still seeing the same results, in which the nozzle is entirely too close to the bed in the front right corner, yet too far away in the rear left corner of the bed.
Is there still value to be had in manual leveling everything?
-
RE: Bed Leveling Challenges Duet 2 Wifi + BLTouch
My homeall.g -
G91 ; relative positioning G1 H2 Z15 F6000 ; lift Z relative to current position G1 H1 X-345 Y-340 F4000 ; 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 F2000 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X150 Y190 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 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
I've removed the G28 and G29 params from my config.g as well.
I am homing z in the center of the bed currently - what gives you the impression I am doing it in the corner?
I'm not currently doing any manual leveling of my bed - the Taz workhorse as I have it uses the bed leveling washers in the for corners, but the bed fits under the washers in a way in which they don't actually level the bed at all, simply hold it in place. I have been skeptical of this, but the person I purchased the printer from informed me that it did not need manual leveling because of the probe... although I have found that unlikely, I haven't been able to figure out how to get the bed leveling washers to work in it's current setup.
-
Bed Leveling Challenges Duet 2 Wifi + BLTouch
I purchased this Taz Workhorse last summer secondhand and have been chasing a solid bed leveling process and result ever since. I find that regardless of what process or environmental conditions I change, I am unable to get a consistent first layer.
Things I've done:
- Tested the repeatability of my bltouch, and the deviation is within .001.
- Moved the printer from a tabletop to a flat concrete floor.
- Experimented with various bed leveling flows.
- Swapped out the borosilicate bed.
- Tried printing on different parts of the bed.
- Recalibrating the probe offset.
This is my current setup -
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 M308 S11 P"mcu-temp" Y"mcu-temp" A"Duet Board" ; Configure MCU sensor ; 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 S1 ; physical drive E0 goes backwards (2.85 - P3 S0) (1.75 - P3 S1) 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-100:400 Y150:150 S4 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis ; Motor settings M350 X32 Y32 Z32:32 E32 I0 ; configure microstepping without interpolation M92 X200.00 Y200.00 Z1000.00 E819.2 ; set steps per mm M566 X480.00 Y480.00 Z300.00 E12000 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z3000.00 E1500.00 ; set maximum speeds (mm/min) M201 X4500.00 Y4500.00 Z50.00 E10000.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1250 E850 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-5 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 M558 P9 C"^zprobe.in" H3 A3 F60 T3000 ; BLTouch connected to Z probe IN pin. ; Height - 3mm, probe each point 3 times, Feed rate 60, travel rate 6000 M950 S0 C"exp.heater3" ; create servo/gpio 0 on heater 3 pin on expansion connector M280 P0 S10 ; send control signal to BLTouch through servo/gpio 0 G31 P500 X-4.15 Y-57.4 Z4.665 ; set Z probe trigger value, offset and trigger height (2.85 Z.98) (1.75 Z4.665) ; For offset, + is towards bed, - is away from bed. M557 X20:260 Y20:250 P21:21 ; define mesh grid ; 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 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 G28 G29 S1 ;Activate saved Mesh
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 G28 ; home M190 S60 ; heat bed to target temp for filament (60 -> PLA, 80 -> PETG) G4 S60 ; Wait 1 minute for bed warping to settle ; The below set of commands alternates between probing the left and right leadscrews to calibrate the dual z axis and level the gantry. G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 1 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 2 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 3 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 4 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 5 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 6 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 7 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 8 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 9 G30 P0 X10 Y130 Z-99999 G30 P1 X270 Y130 Z-99999 S2 ; Cycle 10 G29 M140 S0
PrusaSlic3r Start Gcode:
M107 G28 M104 R175 M190 S60 ; bed heating up G1 X20 Y0 Z3 F3000 M109 R235 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 G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0
Here is my heightmap from the above bed.g execution:
I run bed.g once, if the printer has been moved. Then, I don't perform any more bed leveling of any kind unless it's moved again. The printer also has an acrylic enlcosure.
When a first layer executes, there are portions of the print that are entirely too far away, with obvious gaps between extrusion lines, while in other portions of the print, the nozzle will be scraping through filament.
I'm a little bit at my wit's end, and am considering replacing the BLTouch with an EZABL probe in an attempt to further diagnose the problem. My current projects all rely on having thin wide bases (organizational boxes, etc), and need to be watertight typically, so these problems show much more prominently, when otherwise I could get away with it a little bit.
Here is an image of a print I ran last night on Bed #2:
Here's the Gcode for the print:
https://drive.google.com/file/d/10Lu78eWjkoxvBVS09FSDkBMp7wWSq3_W/view?usp=sharingIt was printed in the rear left region of the print bed, with the rippling oriented towards the rear left of the bed. This seems especially confounding given that the issues with the print don't seem to line up with the heightmap.
At this stage, I'm really at a loss of what else to do to diagnose this issue. I'm worried that somehow my gantry/frame is subtly warped, and that putting a new probe on it will be a further waste of time and money. Any suggestions on how to further diagnose and hopefully fix this issue would be greatly appreciated.
-
RE: Taz Workhorse + Duet Wifi -> Mesh Bed Leveling Issues?
Welp. That got the probe to start working again. Not Running a test print to check if it's respecting bed leveling. Are there any resources you could point to as to why the M558 command that you provided worked, and why a problem arose then?
-
RE: Taz Workhorse + Duet Wifi -> Mesh Bed Leveling Issues?
; 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"Taz Workhorse" ; set printer name M308 S11 P"mcu-temp" Y"mcu-temp" A"Duet Board" ; Configure MCU sensor ; 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-100:400 Y150:150 S4 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis ; Motor settings M350 X32 Y32 Z32:32 E32 I0 ; configure microstepping without interpolation M92 X200.00 Y200.00 Z1000.00 E819.20 ; set steps per mm M566 X480.00 Y480.00 Z300.00 E12000 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z3000.00 E1500.00 ; set maximum speeds (mm/min) M201 X4500.00 Y4500.00 Z50.00 E10000.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1250 E850 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-5 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 ; Z-Probe M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-4.15 Y-57.4 Z1.70 ; set Z probe trigger value, offset and trigger height M557 X20:260 Y20:250 P4:4 ; define mesh grid ; 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 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
Only modification here was the M557 P3:3 -> P4:4
Output of M98 P"config.g":
M98 P"config.g" HTTP is enabled on port 80 FTP is disabled TELNET is disabled Warning: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C Warning: Heater 2 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C
-
RE: Taz Workhorse + Duet Wifi -> Mesh Bed Leveling Issues?
Foolish of me to make two changes at once. I updated the grid to be 4x4 and also added the gcode to bed.g. Now however, my bltouch is reporting 1000 in the console and i'm getting an error stating that it is already deployed. Not sure what I broke