; Configuration file for Duet 3 Mini 5+ (firmware version 3.2 or newer) ; executed by the firmware on start-up ; edited by OC_GEEK based on Fulg Configuration ; General preferences M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves - ok M669 K1 ; Select CoreXY mode ; Limit axis M564 S1 H1 ; Forbid axis movements when not homed ; H1 Forbid movement of axes that have not been homed ; S1 Limit movement within axis boundaries ; ================================== ; Fysetc 12864 display Color ; ================================== M918 P2 R6 C30 E4 F200000 ; Configure direct-connect display ; P2 128x64 display using ST7567 display driver chip ; R6 Display resistor ratio, in range 1 to 7. Only used with ST7567-based displays. ; The default value of 6 is suitable for the Fysetc Mini 12864 display. ; C30 Display contrast, in range 0 to 100 ; E4 The number of pulses generated by the rotary encoder per detent. Typical values are 2 and 4 ; F... SPI clock frequency in Hz, default 2000000 (i.e. 2MHz) M150 X2 R100 U80 B255 P250 S3 ; Set LED colours ; X2 LED type: X0 (default) = DotStar, X1 = NeoPixel, X2 = Panel 12864 ; R,U,B Set the LED colour (note Fystec uses GRB space instead ... (Red and Green switched over) ; S3 Number of individual LEDs to set to these colours ; ================================== ; NETWORK ; ================================== ; Need to set up WIFI ; M587 S"SSID" P"PWD" ; This needs to be as a first step via USB like when fw ver is checked ; It is permanently stored in the card after that ; https://duet3d.dozuki.com/Guide/1.)+Getting+Connected+to+your+Duet ; Network M550 P"OC_GEEK_Voron" ; Set machine name M552 S1 ; Enable network M586 P0 S1 ; Enable HTTP (for DWC) M586 P1 S1 ; Enable FTP (for remote backups) M586 P2 S0 ; Disable Telnet ; ================================== ; DRIVERS ; ================================== ; --- Z Drive map --- ; B_______A ; | 1 | 2 | ; | ----- | ; | 0 | 3 | ; ------- ; front ; ; (looking at the printer from the top) ; Driver directions ; M569: Set motor driver direction, enable polarity and step pulse timing ; This command has LOT of parameters ... e.g. stealthChop2 ... ; Pnnn Motor driver number ; Snnn Direction of movement 0 = backwards, 1 = forwards (default 1) M569 P0 S0 ; E M569 P1 S0 ; Z0 M569 P2 S1 ; Z1 M569 P3 S0 ; B -> X ; B motor M569 P4 S0 ; A -> Y ; A motor M569 P5 S0 ; Z2 ; via Mini 2+ driver M569 P6 S1 ; Z3 ; via Mini 2+ driver M584 X3 Y4 Z1:2:5:6 E0 ; Note that A is assigned to Y !! (as per CoreXY standard A is Left side not right as in Voron Doc...) ; Motor steps per mm M350 X16 Y16 Z16 E16 I1 ; Use 1/16 microstepping with interpolation everywhere ;M92 X80 Y80 Z400 ; Set XYZ steps per mm (1.8deg motors) M92 X160 Y160 Z800 ; Set XYZ steps per mm (0.9deg motors) M92 E416 ; Set Extruder steps per mm - why 406 ?? -> was 406 (100 mm -> 97,5 mm) ; Drive currents M906 X1200 Y1200 Z1200 E600 ; XYZ and E current - WARNING E MAX 0.6 A !!!! ; Duet 3 Mini5+ it is 74mA (provisionally), rounded down M906 I80 ; Idle current percentage ; This command must be later in config.g than any M584 command ! M84 S600 ; Idle timeout in seconds ; enables motors and wait for driver tuning M17 G4 P200 ; Force SpreadCycle on A/B ! or it will cause layer shifts M569 P1 D2 M569 P2 D2 M569 P3 D2 M569 P4 D2 M569 P5 D2 M569 P6 D2 ; ================================== ; Endstops ; ================================== ; Xn,Yn endstop: 0 = none, 1 = low end, 2 = high end ; Snnn 1 = switch-type (eg microswitch) endstop input ; 2 = Z probe (when used to home an axis other than Z) ; 3 = single motor load detection ; 4 = multiple motor load detection (see Notes) ; P"pin_name" M574 X2 S1 P"!io1.in" ; Xmax endstop on hall effect board M574 Y2 S1 P"!io2.in" ; Ymax endstop on hall effect board M574 Z0 P"nil" ; No Z endstop ; Extruder never stops :-) ; Axis travel limits ; Mind this is travel NOT print area M208 X-3 Y0 Z0 S1 ; Set axis minima - negative X is to have 0,0 on bed corner M208 X300 Y308 Z265 S0 ; Set axis maxima ; WARNING on Z not to hit the roof - this is set here ; Belt Locations M671 X-65:-65:365:365 Y0:395:395:0 S20 ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right) ; Position of the bed leadscrews.. 4 Coordinates ; Snn Maximum correction to apply to each leadscrew in mm (optional, default 1.0) ; S20 - 20 mm spacing M557 X30:270 Y30:270 S40 ; Define bed mesh grid (inductive probe, positions include the Y offset!) ; Accelerations and speed are set in a file M98 P"/macros/speed_printing.g" ; ================================== ; Bed heater (dual thermistor setup) ; ================================== ; Define Sensors ; Mind an M3 Stug Skrew termistor goes in the hole of the plate - Fulg uses 3950 Thermistors - ok ; Mind S1 us used below for the Hotend Sensor ! M308 S0 A"Bed Heater" P"temp0" Y"thermistor" T100000 B3950 ; configure sensor S0 as thermistor on pin (P) temp0 (heater sensor) M308 S2 A"Bed Plate" P"temp2" Y"thermistor" T100000 B4276 C6.41e-8 ; configure sensor S2 as thermistor on pin (P) temp2 (mic6 sensor) 104GT-2 ; M950: Create heater, fan or GPIO/servo pin ; Heater M950 H0 C"out0" T2 Q10 ; create bed heater output on out0 ("bedheat") and map it to sensor 2 (T2) (mic6 Bed sensor) ; C"pinname" ; Set PWM frequency to 10Hz ; M140: Set Bed Temperature (Fast) or Configure Bed Heater M140 P0 H0 ; Mark heater H0 as bed heater 0 (for DWC) ; M143: Maximum heater temperature M143 is actually definition of Pn triggers ; A Action to trigger ; 0: Generate heater fault [default] ; 1: Switch off permanently ; 2: Switch off temporarily -> HOW LONG ?? ; 3: Shut down the printer) ; T Sensor number used to monitor the heater ; P Heater monitor number ; C Condition for temperature event ; 0: Temperature too high [default] ; 1: Temperature too low ; -1: Monitor is disabled) ; Here monitoring points are defined and their actions too ; this are referred to the BED HEATER (KEENOVO) M143 H0 P1 T0 A2 S118 C0 ; Regulate (A2) bed heater (H0) to have pad sensor (T0) below 118°C. Use Heater monitor 1 for it M143 H0 P2 T0 A1 S135 C0 ; Shut off (A1) bed heater (H0) if pad sensor (T0) exceeds 120°C. Use Heater monitor 2 for it ; THIS TEMP SHALL BE LOWEWR THEN THE PHYSICAL CUT OFF THERM SENSOR (POPS) ; this is (implicitly) referred to the ALU BED PLATE (T2) as it is the sensor which controls the heater M143 H0 S110 ; Set bed heater max temperature to 110°C, use implict refers to the sensor which controls the heater ; THIS TEMP SHALL BE LOWEWR THEN THE PHYSICAL CUT OFF THERM SENSOR (POPS) ; THIS TEMP IS NORMALLY LOWEWR THEN THE BED HEATER SHUT OFF defined above ; M307: Set or report heating process parameters ; M307 H0 B1 S0.65 ; Enable Bang Bang mode and set PWM to 80% to avoid warping - GOOD POINT ! ; 450W x 0.8 = 360W effective power... M307 H0 R0.205 C548.7 D33.14 S0.60 V24.2 B0 ; ================================== ; HOTEND heater ; ================================== ; HERE i have to say if i use the (Y) "PT1000" - Fulg uses PT100 with amplifier rtd-max31865 !! M308 S1 A"Hotend" P"temp1" Y"pt1000" F60 ; Hotend is 2-wire PT100 on second channel, 60Hz mains M950 H1 C"out1" T1 ; Creates the Hotend on the pin (C) and controlled by sensor (T) defined above M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit 100% ; M307 H1 R2.238 C210.6 D3.80 S1.00 V24.1 ; Result of PID tuning at 240 C, no blower, no sock M307 H1 R2.198 C212.4 D3.86 S1.00 V24.1 ; Result of PID tuning at 240 C, 25% blower, with sock ; M307 H1 R2.147 C231.7 D5.17 S1.00 V24.1 ; Result of PID tuning at 250 C, NO sock ; H# Heater number ; R Heating rate ; C Dominant time Constant of the heating process in seconds ; D Dead time in seconds ; S Maximum PWM to be used used with this heater on a scale of 0 to 1 M143 H1 S280 ; Set temperature limit for heater 1 to 300C - WOW THIS IS HIGH !! ; ================================== ; SENSORS MISC ; ================================== ; Define MCU sensors which will be available in DWC Extra View ; M308 S3 A"MCU" Y"mcu-temp" ; NOT supported on Mini 3 5+ M308 S4 A"Duet Drivers" Y"drivers" ; This is not really working as it is just a threshold crossing ; ================================== ; CHAMBER SENSOR ; ================================== ; DHT21 seems to be directly supported in the sensors list ; Chamber temperature sensor via io4.in M308 S10 P"io4.out+io4.in" Y"dht21" A"Chbr Temp [C]" ; Set DHT21 for chamber temp M308 S11 P"S10.1" Y"dhthumidity" A"Chbr Hmdy [%]" ; Set DHT21 for chamber humidity ; ================================== ; Z PROBES K0 (Inductive) and K1 (Microswitch Z0) ; ================================== ; M558: Set Z probe type ; P5/P8 select a switch by default (normally closed) for bed probing between the In and Gnd pins of the Z-probe connector ; C specifies the input pin and the optional modulation pin. This parameter is mandatory ; Tnnn Travel speed to and between probe points (mm/min) ; Fnnn Feed rate (i.e. probing speed, mm/min) e.g. 60 is one mm per second ; Hnnn Dive height (mm) ; Annn Maximum number of times to probe each point, default 1 ; Snnn Tolerance when probing multiple times, default 0.03mm ; Rnnn Z probe recovery time before the probing move is started , default zero (seconds) ; B0 B1 Turn off all heaters while probing, default (B0) leaves heaters on. ; I0 Invert (I1) or do not invert (I0, default) the Z probe reading ; This is the inductive probe in the Afterburner behind the noozle ; M558 K0 P8 C"io5.in" I0 T18000 F120 H5 A5 S0.01 B0 R0.2 ; Define the inductive Z probe type M558 K0 P8 C"io5.in" T18000 F120 H5 A5 S0.01 R0.2 ; G31: Set Current Probe status ; K0 Z Probe Number ; Pnnn Trigger value ; Xnn Ynn Probe offset (from Noozle) ; Znnn Trigger Z height - Set the said Z when the probe triggers !! G31 K0 P500 X0 Y25 Z2.520 ; Offset at 240/86(100) after 20 mins of soak - Coord 150,30 ; This is the microswitch which is pressed by the Noozle M558 K1 P8 C"^io6.in" T18000 F60 H2 A10 S0.005 R0.2 ; Z-0.2 offset required baby stepping of -0.15 so i put Z-0.05 ; Negative offset will raise thw noozle. More negative higher noozle ; G31 K1 P500 X0 Y0 Z-0.045 ; Z switch offset (negative -> the pin is below the table) and set at the noozle coords G31 K1 P500 X0 Y0 Z-0.048 ; ================================== ; FANS ; ================================== ; M106 ; P Number of the Fan defined with M950 ; C Can assign a custom name with C"Name" ; S Rate of the Fan 0-255 or 0.0-1.0 ; H Termostatic mode set by sensor #. H-1 disables thermostatic mode. ; -- Work cooling FAN 0 (Tool Fan in DWC) -- ; Configure fan 0 ; Manual control (H-1) M950 F0 C"out3" Q25 M106 P0 S0 H-1 C"Blower Fan" ; -- Hot End FAN 1 -- ; Hnn Thermostatic control is turned on, sensor #1 (HotEnd over 50 degrees) ; Qnn PWM frequency in Hz. Valid range: 0-65535 M950 F1 C"out4" Q250 M106 P1 S200 H1 T50 C"HotEnd Fan" ; set hot-end fan at 200/255 rate (noise..) ; -- Chamber FAN 2 -- ; Configure fan 2: Thermostatic control is turned on, based on sensor #2 (Chamber over 40 degrees) ; S10 is the chamber sensor defined above M950 F2 C"out5" Q15 ; M106 P2 S100 H10 T46 C"Chamber Fan" ; slow draw and highr temp trigger M106 P2 S150 H10 T40 C"Chamber Fan" ; chamber sensor controlled ; M106 P2 S00 H-1 T40 C"Chamber Fan" ; manual controlled ; -- Electronics Bay FAN 3 -- M950 F3 C"out6" Q35 M106 P3 S0 H-1 C"Bay Fans" ; ================================== ; TOP LEDS ; ================================== M150 X1 R100 U80 B255 P100 S10 ; Set LED colours ; ================================== ; TOOLS ; ================================== M563 P0 D0 H1 F0 ; Define tool 0 using fan 0 (part cooling) for M106, Heater H1 is hotend ; P tool number# ; D extruder drive# - Drive 0 is the first drive in the machine after the movement drives (usually X, Y and Z) ; H Heater# ; F Fan# ; G10 Tool offset and temperatures 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 TL ; ================================== M591 D0 P2 C"io3.in" S1 ; ================================== ; MISC ; ================================== ;M572 D0 S0.04 ; Pressure Advance as per calibration test ;M592 D0 A0.015 B0.0012 L0.2 ; Non-linear extrusion ; Zero PA, DAA and NLE M572 D0 S0 M592 D0 A0 B0 L0 M593 F0 M376 H10 ; Fade out mesh compensation over 10mm Z ; DAA tuning (aka input shaping) ; M593: Configure Dynamic Acceleration Adjustment ; Fnnn Frequency of ringing to cancel in Hz. Zero or negative values disable the feature. ;M593 F26.6 ; Cura 4.5 stock profile @ 40mm/s outer printing speed ;M593 F42.5 ; PrusaSlicer @ 40mm/s outer perimeter ;M80 ; turn on PSU & mains voltage - turn on and off an external 12/24V supply it can be toggled using the M80 and M81 gcodes M501 ; load config-override.g T0 ; select tool 0 M98 P"/macros/led_status_blue.g"