; Configuration file for Duet 3 (firmware version 3) and RatRig V\Core3 500^3
; executed by the firmware on start-up
;

; General preferences
G90                                                ; send absolute coordinates...
M83                                                ; ...but relative extruder moves
M550 P"vcore3"                                     ; set printer name fqdn: vcore3.int.lgx.io
M669 K1                                            ; select CoreXY mode

; Drives
M569 P0.0 S0 D3 H500 V500                          ; physical drive 0.0 goes backwards
M569 P0.1 S0 D3 H500 V500                          ; physical drive 0.1 goes backwards
M569 P0.2 S0 D3 H500 V500                          ; physical drive 0.2 goes backwards
M569 P0.3 S1 D3 H500 V500                          ; physical drive 0.3 goes forwards
M569 P0.4 S1 D3 H500 V500                          ; physical drive 0.4 goes forwards
M569 P0.5 S0 D2 H500 V500                          ; physical drive 0.5 goes backwards
M584 X0.3 Y0.4 Z0.2:0.1:0.0 E0.5                   ; set drive mapping
M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z1600.00 E794                    ; set steps per mm
M566 X500.00 Y500.00 Z4.00 E120.00 P1              ; set maximum instantaneous speed changes (mm/min)
M203 X10800.00 Y10800.00 Z1000.00 E3600.00         ; set maximum speeds (mm/min)
M201 X10800.00 Y10800.00 Z400.00 E3600.00          ; set accelerations (mm/s^2)
M906 X1500 Y1500 Z800 E800 I20                     ; set motor currents (mA) and motor idle factor in per cent
M84 S30                                            ; Set idle timeout

; Axis Limits
M208 X0 Y0 Z0 S1                                   ; set axis minima
M208 X500 Y500 Z500 S0                             ; set axis maxima

; Endstops
M574 X1 S1 P"io2.in"                               ; configure active-high endstop
M574 Y2 S1 P"io1.in"                               ; configure active-high endstop

; Z-Probe
M950 S0 C"io7.out"                                 ; create servo pin 0 for BLTouch
M558 P9 C"^io7.in" H5 F300 T10000 A5 S0.05 R0.2    ; set Z probe type to bltouch and the dive height (H) + speeds (F), run probing 5x
                                                   ; tolerance when probing mm (S), probe recovery time (R),
;; Pay special attention to the values bellow on G31, the Z value needs to be validated for your printer
;; Start with something like 0.5
;; Documentation available: https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe
G31 P500 X-35 Y-0.5 Z2.640                         ; set Z probe trigger value, offset and trigger height
M671 X-6:250:503 Y0:511:0 S100                     ; define positions of Z leadscrews or bed levelling screws
M557 X5:465 Y5:465 P20                             ; define 20x20 mesh grid

; Heaters
;; BED
M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed"; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out1" T0                                 ; create bed heater output on out1 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

;; HotEnd
M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.060000e-8 A"Hotend"       ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out2" T1                                 ; create nozzle heater output on out2 and map it to sensor 1
M307 H1 B0 S1.00                                   ; disable bang-bang mode for heater  and set PWM limit
M143 H1 S280                                       ; set temperature limit for heater 1 to 280C

; Fans
M950 F0 C"out7" Q500                               ; create fan 0 on pin out7 and set its frequency
M106 P0 C"Hotend fan" S1 H1 T45                    ; set fan 0 value. Thermostatic control is turned on
M950 F1 C"out4" Q20                                ; create fan 1 on pin out4
;M950 F1 C"!out4+out4.tach" Q25000                 ; create fan 1 on  pin out4 pwm fan (4 wires)
M106 P1 C"Layer fan" S0 H-1 -L255                  ; set fan 1 value. Thermostatic control is turned off

; Lights
M950 P2 C"out8"                                    ; create output for lighning via DC DC SSR

; Tools
M563 P0 D0 H1 F1                                   ; 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

; Filament sensor - Duet3D laser filament monitor
M591 D0 P5 C"io3.in" R30:125 E5.0 S1               ; Duet3D laser sensor for extruder drive 0, connected to endstop input 4 (E0), tolerance 30 to 125%, 5mm comparison length, enabled filament monitoring

; Accelerometer - LIS3HD
;; More info: https://duet3d.dozuki.com/Wiki/Accelerometers
;; More info: regarding sensor orientation: https://www.dropbox.com/s/hu2w5mk57l4zqpg/Accelerometer%20Orientation.pdf
;; Possible orientations 01,02,05,06
M955 P0 C"spi.cs3+spi.cs2" I01 S1344 R10; all wires connected to temperature daughter board connector, Orientation 01, Sampling rate 1344, 10b resolution


;M593 P"zvd" F40.5  ; use ZVD input shaping to cancel ringing at 40.5Hz
;M593 P"none"        ; disable input shaping
;M593 P"custom" H0.4:0.7 T0.0135:0.0135 ; use custom input shaping

; Miscellaneous
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 tension thresholds and actions to run on power loss
M404 N1.75 D0.4                                    ; Filament width and nozzle diameter
;M572 D0 S0.10  	                           ; Pressure Advance
T0                                                 ; Define default tool
