Mesh bed leveling
Turricann last edited by
Is it possible on a duet 3 6hc to atrim each axis manually?
Reason I ask is when I run 3 point bed leveling it seems to tram the bed but it leave a slight off set on one axis.
Can you be more specific with what you want to do?
If you mean can you move one of the Z axis motors independently, then yes you can, you would need to split that driver onto it's own axis temporarily and then move it and then re-combine it.
Similar to how it was done previously in RRF2
Turricann last edited by
When i run 3 point bed traming its as if front left is low by .1mm and rear right is high by around .1mm so the theroy is if i can add a manual offset to on point my bed would be level.
Motors are positioned Front left and right and one rear center.
Can you post your config.g, homing files, and bed.g?
Turricann last edited by Turricann
; Configuration file for Duet 3 (firmware version 3.2RC3)
; executed by the firmware on start-up
; generated by RepRapFirmware Configuration Tool v3.1.10 on Mon Dec 07 2020 21:49:17 GMT+0000 (Greenwich Mean Time)
; General preferences
G21 ; Work in millimetres
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M669 K1 ; select CoreXY mode
G4 S1 ;wait for expansion boards to start
; Drives (20.XX) denotes the Can-Bus address that the toolboard LC1 is operating on
M671 X-4.5:190:478.5 Y-3.52:435:-3.52 P0.2 S5 ; Define positions of Z leadscrews or bed levelling screws Ratrig Stock
M569 P0.3 S1 ; Duet 3 physical drive 0.0 goes backwards (X)
M569 P0.4 S1 ; Duet 3 physical drive 0.1 goes backwards (Y)
M569 P0.0 S0 ; Duet 3 physical drive 0.0 goes Forwards (Front Left Motor)
M569 P0.1 S0 ; Duet 3 physical drive 0.1 goes Forwards (Middle Back Motor)
M569 P0.2 S0 ; Duet 3 physical drive 0.2 goes Forwards (Front Right Motor)
M569 P20.0 S0
M584 X0.4 Y0.3 Z0.0:0.1:0.2 E20.0 ; 3 * Z motors connected, E20.0 = tool board , Need to keep Z in this order to match lead screw postions.
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X160.00 Y160.00 Z1600.00 E409 ; set steps per mm for Hamera
M566 X400.00 Y400.00 Z6.00 E120.00 P1 ; set maximum instantaneous speed changes (mm/min) ratrig stock
M203 X10800.00 Y10800.00 Z1000.00 E3600.00 ; set maximum speeds (mm/min) ratrig stock
M201 X5000.00 Y5000.00 Z100.00 E3600.00 ; set accelerations (mm/s^2) ratrig stock
M906 X1400 Y1400 Z1400 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
;M593 F34.2 <---- look into. ; cancel ringing at 34.2Hz
M84 S30 ; Set idle timeout
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X400 Y380 Z400 S0 ; set axis maxima
M574 X1 S3 ; configure sensorless endstop for high end on X
M574 Y1 S3 ; configure sensorless endstop for high end on Y
M574 Z1 S2 ; Set endstops controlled by probe
M950 S0 C"20.io0.out" ; create servo pin 0 for BLTouch
M558 P9 C"^20.io0.in" H5 F100 R0.2 T6000 A5 B1 ; set Z probe type to bltouch and the dive height + speeds
G31 P25 X32.5 Y-42 Z5.492 ; set Z probe trigger value, offset and trigger height
M557 X35:400 Y30:320 P7 ; define 5x5 mesh grid
; Bed Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B3950K ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B1 S1.00 ; enable 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
; Hotend Heaters
M308 S1 P"20.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; Toolboard configure sensor 0 as a E3D thermistor on pin temp0
M950 H1 C"20.out0" T1 ; Toolboard 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 S301 ; set temperature limit for heater 1 to 301C
M950 F0 C"20.out1" ;Toolboard create fan 0 (Hotend cooling) on pin out1 and set its frequency
M106 P0 S0 H1 T10 Q500 L255 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"20.out2" Q500 L255 ; Toolboard (Partcooling) Fan1 on pin out2 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on
; Fan for cooling duet
M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
M950 F2 C"out7" Q100 ; create fan 2 on pin fan2 and set its frequency
M106 P2 H2:3 L0.15 X1 B0.3 T40:70 ; set fan 2 value
M563 P0 D0 H1 F0 S"HOTEND" ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets from bed center.
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
;Custom settings are not defined
; Linear Advance
M572 D0 S0.03
M207 P0 S1.8 F2400 Z0.3 ; default Hemera retract settings
M575 P1 S1 B57600 ; enable support for PanelDue
M501 ; load saved parameters from non-volatile memory
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
T0 ; select first tool
; this script compensates for what the Z offset is
; so if G31 P500 X-30 Y-15 Z1.7 then first probe will be at
; X30 Y20 (when G30 P0 X0 Y5)
M561 ; clear any bed transform
G30 P0 X35 Y5 Z-99999 ; probe near front left leadscrew
G30 P1 X200 Y335 Z-99999 ; probe near Rear leadscrew
G30 P2 X400 Y5 Z-99999 S3 ; probe near Right leadscrew and calibrate 3 motors
G30 P0 X35 Y5 Z-99999 ; probe near ;front left leadscrew
G30 P1 X200 Y335 Z-99999 ; probe near ;Rear leadscrew
G30 P2 X400 Y5 Z-99999 S3 ; probe near ;Right leadscrew and calibrate 3 motors
G29 ; probe the bed and enable compensation
G1 X200 Y200
fcwilt last edited by
I don't see where you are setting the Z=0 datum with a single G30 to the center of the bed.
You need to do that:
- before creating the height map with G29
- before loading the height map with G29
- after leveling the bed with using multiple G30s
You may want to consider splitting the bed leveling and height map creation into the the two files intended for each purpose.
G29 by itself will run mesh.g (if it exists) so you can put all of the the commands needed to create the height map there.
G32 by itself will run bed.g (if it exists) so you could put all of the the commands needed to do bed leveling there.
This is consistent with the commands in the DWC pulldown menu that deals with bed leveling and mesh compensation.
Post your homeall