@rodneysramosj
; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Feb 26 2025 14:22:18 GMT-0500 (Eastern Standard Time)
; General
G90 ; absolute coordinates
M83 ; relative extruder moves
M550 P"Duet 3" ; set hostname
; Accessories
M575 P1 S1 B57600 ; configure PanelDue support
; Network
M551 P"Password1" ; set machine password
M552 P192.168.1.20 S1 ; configure Ethernet adapter
M553 P255.255.255.0 ; set netmask
M554 P192.168.1.254 ; set gateway
M586 P0 S1 ; configure HTTP
; Wait a moment for the CAN expansion boards to become available
G4 S2
; Smart Drivers
M569 P0.0 S0 D2 ; driver 0.0 goes forwards (X axis)
M569 P0.1 S0 D2 ; driver 0.1 goes forwards (Y axis)
M569 P0.2 S0 D2 ; driver 0.2 goes forwards (Z axis)
M569 P0.3 S1 D2 ; driver 0.3 goes forwards (extruder 0)
; Motor Idle Current Reduction
M906 I30 ; set motor current idle factor
M84 S30 ; set motor current idle timeout
; Axes
M584 X0.0 Y0.1 Z0.2 ; set axis mapping
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M906 X2800 Y2800 Z6000 ; set axis driver currents
M92 X53.33 Y53.33 Z400 ; configure steps per mm
M208 X0:1160 Y0:610 Z0:1320 ; set minimum and maximum axis limits
M566 X3000 Y3000 Z60 ; set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min)
M201 X500 Y500 Z20 ; set accelerations (mm/s^2)
; Extruders
M584 E0.3 ; set extruder mapping
M350 E16 I1 ; configure microstepping with interpolation
M906 E450 ; set extruder driver currents
M92 E2682 ; configure steps per mm
M566 E120 ; set maximum instantaneous speed changes (mm/min)
M203 E3600 ; set maximum speeds (mm/min)
M201 E250 ; set accelerations (mm/s^2)
; Probes
; Kinematics
M669 K0 ; configure Cartesian kinematics
; Endstops
M574 X1 P"!io3.in" S1 ; configure X axis endstop
M574 Y1 P"!io1.in" S1 ; configure Y axis endstop
M574 Z1 P"!io5.in" S1 ; configure Z axis endstop
; Sensors
M308 S0 P"temp0" Y"thermistor" A"Heated Bed Set 0" T200000 B3950 C6.370029e-8 ; configure sensor #0
M308 S1 P"temp1" Y"thermistor" A"Heated Bed Set 1" T200000 B3950 C6.370029e-8 ; configure sensor #1
M308 S2 P"temp2" Y"thermistor" A"Roto Internal Temp" T100000 B4267 C7.046861e-8 ; configure sensor #2
M308 S3 P"121.temp0" Y"thermistor" A"Roto Extruder Temp" T100000 B4267 C7.046861e-8 ; configure sensor #3
; Heaters
M950 H0 C"out1" T0 ; create heater #0
M143 H0 P0 T0 C0 S120 A0 ; configure heater monitor #0 for heater #0
M307 H0 R0.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #0
M950 H1 C"121.out0" T3 ; create heater #1
M143 H1 P0 T3 C0 S300 A0 ; configure heater monitor #0 for heater #1
M307 H1 R0.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1
M950 H2 C"out2" T1 ; create heater #2
M143 H2 P0 T1 C0 S120 A0 ; configure heater monitor #0 for heater #2
M307 H2 R0.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #2
; Heated beds
M140 P0 H0 ; configure heated bed #0
M140 P2 H2 ; configure heated bed #2
; Tools
M563 P0 S"Roto Toolboard" D0 H1 F0 ; create tool #0
M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
; Fans
M950 F0 C"out0+out5.tach" ; create fan #0
M106 P0 C"Roto Fan" S0 B10 H2 T60:59 ; configure fan #0
; Miscellaneous
T0 ; select first tool
; Custom settings
;E-Stop
M950 J4 C"!^io4.in"
M581 P4 S0 T0 R0
; homeall.g
; called to home all axes
;
; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
; increase Z
G91 ; relative positioning
G1 H2 Z5 F6000 ; move Z relative to current position to avoid dragging nozzle over the bed
G90 ; absolute positioning
; home XY
var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm
var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm
G91 ; relative positioning
G1 H1 X{-var.xTravel} Y{-var.yTravel} F1200 ; coarse home in the -X and -Y directions
G1 H2 X5 Y5 F6000 ; move back 5mm
G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home in the -X and -Y directions
G90 ; absolute positioning
; home Z
var zTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm
G91 ; relative positioning
G1 H1 Z{-var.zTravel} F1200 ; coarse home in the -Z direction
G1 H2 Z5 F6000 ; move back 5mm
G1 H1 Z-10 F300 ; fine home in the -Z direction
G90 ; absolute positioning
; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
; increase Z
;G91 ; relative positioning
;G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed
;G90 ; absolute positioning
; homex_final_v2.g
; Robust X homing with dual-phase endstop checks and final retraction
G91 ; relative positioning
var maxTravel = move.axes[0].max - move.axes[0].min + 5
; Coarse homing
G1 H1 X{var.maxTravel} F1200 ; move toward X endstop
M400
G4 P300 ; debounce delay
; Check and retract
if sensors.endstops[0].triggered
echo "X endstop triggered (coarse), retracting..."
M564 H0 S0 ; allow movement even with endstop triggered
G1 X-5 F600 ; retract 5mm
M400
G4 P200
; Fine homing
G1 H1 X10 F300 ; slow move toward switch (~10mm)
M400
G4 P200
if sensors.endstops[0].triggered
echo "X endstop triggered (fine), final retract..."
G1 X-2 F600 ; final retract to move off switch
M400
else
echo "X endstop NOT triggered after fine approach"
M564 H1 S1 ; restore normal limits
else
echo "X endstop NOT triggered after coarse move"
G90 ; back to absolute positioning
; decrease Z again
;G91 ; relative positioning
;G1 H2 Z-5 F6000 ; move Z relative to current position
;G90 ; absolute positioning
; homey.g
; called to home the Y axis
;
; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
; increase Z
;G91 ; relative positioning
;G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed
;G90 ; absolute positioning
; home Y
;G91 ; relative positioning
;var maxTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm
;G1 H1 Y{var.maxTravel} F1200 ; coarse home in the -Y direction
;G4 P500
;G1 Y5 F6000 ; move back 5mm
;G1 H1 Y{var.maxTravel} F300 ; fine home in the -Y direction
;M400
;G90 ; absolute positioning
; decrease Z again
;G91 ; relative positioning
;G1 H2 Z-5 F6000 ; move Z relative to current position
;G90 ; absolute positioning
G91 ; relative positioning
var maxTravel = move.axes[1].max - move.axes[1].min + 5
; Coarse homing
G1 H1 Y{var.maxTravel} F1200 ; move toward X endstop
M400
G4 P300 ; debounce delay
; Check and retract
if sensors.endstops[1].triggered
echo "Y endstop triggered (coarse), retracting..."
M564 H0 S0 ; allow movement even with endstop triggered
G1 Y-5 F600 ; retract 5mm
M400
G4 P200
; Fine homing
G1 H1 Y10 F300 ; slow move toward switch (~10mm)
M400
G4 P200
if sensors.endstops[1].triggered
echo "Y endstop triggered (fine), final retract..."
G1 Y-2 F600 ; final retract to move off switch
M400
else
echo "Y endstop NOT triggered after fine approach"
M564 H1 S1 ; restore normal limits
else
echo "Y endstop NOT triggered after coarse move"
G90 ; back to absolute positioning
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Mar 19 2025 10:03:37 GMT-0400 (Eastern Daylight Time)
; home Z
;G91 ; relative positioning
;var maxTravel = move.axes[2].max - move.axes[2].min + 5 ; calculate how far Z can travel plus 5mm
;G1 H1 Z{var.maxTravel} F1200 ; coarse home in the -Z direction
;G1 Z-5 F6000 ; move back 5mm
;G1 H1 Z{var.maxTravel} F300 ; fine home in the -Z direction
;G90 ; absolute positioning
G91 ; relative positioning
var maxTravel = move.axes[2].max - move.axes[2].min + 5
; Coarse homing
G1 H1 Z{var.maxTravel} F1200 ; move toward X endstop
M400
G4 P300 ; debounce delay
; Check and retract
if sensors.endstops[2].triggered
echo "Z endstop triggered (coarse), retracting..."
M564 H0 S0 ; allow movement even with endstop triggered
G1 Z-5 F600 ; retract 5mm
M400
G4 P200
; Fine homing
G1 H1 Z10 F300 ; slow move toward switch (~10mm)
M400
G4 P200
if sensors.endstops[2].triggered
echo "Z endstop triggered (fine), final retract..."
G1 Z-2 F600 ; final retract to move off switch
M400
else
echo "Z endstop NOT triggered after fine approach"
M564 H1 S1 ; restore normal limits
else
echo "Z endstop NOT triggered after coarse move"
G90 ; back to absolute positioning