; Jubilee CoreXY ToolChanging Printer - Config File ; This file intended for Duet 3 hardware, main board plus onr expansion boards ; Name and network ; This is configured from the connected Raspberry Pi or here if in stand alone ; mode ;------------------------------------------------------------------------------- ; Networking M550 P"BluePrint(er)" ; Name used in ui and for mDNS http://Jubilee.local M552 P0.0.0.0 S1 ; Use Ethernet with a static IP, 0.0.0.0 for dhcp ;M553 P255.255.255.0 ; Netmask ;M554 192.168.1.1 ; Gateway M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; General setup ;------------------------------------------------------------------------------- M111 S0 ; Debug off ;M929 P"eventlog.txt" S1 ; Start logging to file eventlog.txt G4 S1 ; wait for expansion boards to start ; General Preferences ;M555 P2 ; Set Marlin-style output G21 ; Set dimensions to millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Stepper mapping ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; Connected to the MB6HC as the table below. ; Note: first row is numbered left to right and second row right to left ; _________________________________ ; | X(Right) | Y(Left) | U(lock) | ; | Z(Back) | Z(Right) | Z(Left) | ; all drives on the main board are prefaced with '0.' M584 X0 Y2 ; X and Y for CoreXY M584 U1 ; U for toolchanger lock M584 Z3:4:5 ; Z has three drivers for kinematic bed suspension. M584 E21.0:22.0:23.0:24.0 ; There are 4 extruder drivers M569 P0.0 S0 ; Drive 0 | X stepper ... goes backwards M569 P0.1 S0 ; Drive 1 | Y Stepper --- goes backwards M906 X{0.9*sqrt(2)*2000} ; LDO XY 2000mA RMS the TMC5160 driver on duet3 M906 Y{0.9*sqrt(2)*2000} ; generates a sinusoidal coil current so we can ; multply by sqrt(2) to get peak used for M906 ; Do not exceed 90% without heatsinking the XY ; steppers. M569 P0.2 S0 ; Drive 2 | U Tool Changer Lock 670mA .... goes backwards M906 U{0.7*sqrt(2)*670} I30 ; 70% of 670mA RMS idle 30% ; Note that the idle will be shared for all drivers M569 P0.3 S0 ; Drive 3 | Front Left Z .... goes backward M569 P0.4 S0 ; Drive 4 | Front Right Z .... goes backward M569 P0.5 S0 ; Drive 5 | Back Z .... goes backward M906 Z{0.7*sqrt(2)*1680} ; 70% of 1680mA RMS ; Stepper mapping for individual tools M569 P21.0 S0 ; Drive 0 on tool board address 21 ... goes forward M569 P22.0 S1 ; Drive 0 on tool board address 22 ... goes forward M569 P23.0 S1 ; Drive 0 on tool board address 23 ... goes forward M569 P24.0 S1 ; Drive 0 on tool board address 24 ... goes forward M906 E800:800:800:800 ; set drive current for extruders to 800 ma M84 S30 ; Set idle timeout for all axis ; Kinematics ;------------------------------------------------------------------------------- M669 K1 ; CoreXY mode ; Kinematic bed ball locations. ; Locations are extracted from CAD model assuming lower left build plate corner ; is (0, 0) on a 305x305mm plate. M671 X297.5:2.5:150 Y313.5:313.5:-16.5 S10 ; Front Left: (297.5, 313.5) ; Front Right: (2.5, 313.5) ; Back: (150, -16.5) ; Up to 10mm correction ; Axis and motor configuration ;------------------------------------------------------------------------------- ;M92 X80.00 Y80.00 Z400.00 E420.00:420.00:420.00:420.00 ; set steps per mm M350 X1 Y1 Z1 U1 E1:1 ; Disable microstepping to simplify calculations M92 X{1/(0.9*16/180)} ; step angle * tooth count / 180 M92 Y{1/(0.9*16/180)} ; The 2mm tooth spacing cancel out with diam to radius M92 Z{360/0.9/2} ; 0.9 deg stepper / lead (2mm) of screw M92 U{13.76/1.8} ; gear ration / step angle for tool lock geared motor. M92 E51.875 ; Extruder - BMG 0.9 deg/step ; Enable microstepping all step per unit will be multiplied by the new step def M350 X16 Y16 I1 ; 16x microstepping for CoreXY axes. Use interpolation. M350 U4 I1 ; 4x for toolchanger lock. Use interpolation. M350 Z16 I1 ; 16x microstepping for Z axes. Use interpolation. M350 E16:16:16:16 I1 ; 16x microstepping for Extruder axes. Use interpolation. ; Speed and acceleration ; Multiple motors on one axis can not be defined seperately ;------------------------------------------------------------------------------- M201 X7000 Y7000 ; Accelerations (mm/s^2) M201 Z100 ; LDO ZZZ Acceleration M201 U800 ; LDO U Accelerations (mm/s^2) M201 E1300 ; Extruder M203 X60000 Y60000 Z800 E8000 U9000 ; Maximum axis speeds (mm/min) M566 X500 Y500 Z500 E3000 U50 ; Maximum jerk speeds (mm/min) ; Endstops and probes ;------------------------------------------------------------------------------- ; Connected to the MB6HC as the table below. ; | U | Z | ; | X | ; | Y | M574 U1 S1 P"^io0.in" ; homing position U1 = low-end, type S1 = switch M574 X1 S1 P"^io2.in" ; homing position X1 = low-end, type S1 = switch M574 Y1 S1 P"^io3.in" ; homing position Y1 = low-end, type S1 = switch M574 Z0 ; we will use the switch as a Z probe not endstop M558 P8 C"io1.in" H3 F360 T6000 ; H = dive height F probe speed T travel speed ;M557 x15:300 y15:300 s20 ;define mesh grid, probe 20 points in both x and y (S20) G31 K0 X0 Y0 Z-2 ; Set the limit switch position as the "Control Point." ; Note: the switch free (unclicked) position is 7.2mm, ; but the operating position (clicked) is 6.4 +/- 0.2mm. ; A 1mm offset (i.e: 7.2-6.2 = 1mm) would be the ; Z to worst-case free position, but we add an extra 1mm ; such that XY travel moves across the bed when z=0 ; do *not* scrape or shear the limit switch. ; Set axis software limits and min/max switch-triggering positions. ; Adjusted such that (0,0) lies at the lower left corner of a 300x300mm square ; in the 305mmx305mm build plate. ;------------------------------------------------------------------------------- M208 X-13.75:313.75 Y-44:341 Z0:295 ; set axis maximum travel M208 U0:200 ; Set Elastic Lock (U axis) max rotation angle ; Heaters and temperature sensors ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; Bed ;------------------------------------------------------------------------------- M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed" M950 H0 C"out0" T0 ; H = Heater 0 ; C is output for heater itself ; T = Temperature sensor M143 H0 S130 ; Set maximum temperature for bed to 130C M307 H0 A589.8 C589.8 D2.2 V24.1 B0 ; Keenovo 750w 230v built in thermistor M307 H0 B0 S1.00 ; heater 0 , bed heater, disable bang-bang mode (B0), maximum PWM is 100% (S1.0) ; mandala rose bed M140 H0 ; Assign H0 to the bed M143 H0 S120 ; set temperature limit for heater 0 to 120C ; Tool heaters and sensors ;------------------------------------------------------------------------------- M308 S1 P"21.temp0" Y"thermistor" A"Hot End 0" T100000 B4200 ; create sensor 1 on temp0 pin of expansion board 21 (21.temp0), use a thermistor for measuring (Y"thermistor") ; Name the sensor "Hot End 0" (A"Hot End 0") ; set sensor parameters to T100000 and B4200 M950 H1 C"21.out0" T1 ; create heater 1 (H1) on pin out0 of expansion board 21 (21.out0)and assign temperature sensor T1 (T1) to it's control M143 H1 S300 ; Set maximum temperature for heater 1(H1) to 300C (S300) M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;M307 H1 ; set heating parameters as determined by a tuning run - possibly in confi.g.overwrite M308 S2 P"22.temp0" Y"thermistor" A"Hot End 1" T100000 B4200 ; create sensor 2 on temp0 pin of expansion board 22 (22.temp0), use a thermistor for measuring (Y"thermistor") ; Name the sensor "Hot End 1" (A"Hot End 1") ; set sensor parameters to T100000 and B4200 M950 H2 C"22.out0" T2 ; create heater 2 (H2) on pin out0 of expansion board 22 (22.out0)and assign temperature sensor T2 (T2) to it's control M143 H2 S300 ; Set maximum temperature for heater 2 (H2) to 300C (S300) M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;M307 H2 ; set heating parameters as determined by a tuning run - possibly in confi.g.overwrite M308 S3 P"23.temp0" Y"thermistor" A"Hot End 2" T100000 B4200 ; create sensor 3 on temp0 pin of expansion board 23 (23.temp0), use a thermistor for measuring (Y"thermistor") ; Name the sensor "Hot End 2" (A"Hot End 2") ; set sensor parameters to T100000 and B4200 M950 H3 C"23.out0" T3 ; create heater 3 (H3) on pin out0 of expansion board 23 (23.out0)and assign temperature sensor T3 (T3) to it's control M143 H3 S300 ; Set maximum temperature for heater 3 (H3) to 300C (S300) M307 H3 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;M307 H3 ; set heating parameters as determined by a tuning run - possibly in confi.g.overwrite M308 S4 P"24.temp0" Y"thermistor" A"Hot End 3" T100000 B4200 ; create sensor 4 on temp0 pin of expansion board 24 (24.temp0), use a thermistor for measuring (Y"thermistor") ; Name the sensor "Hot End 3" (A"Hot End 3") ; set sensor parameters to T100000 and B4200 M950 H4 C"24.out0" T4 ; create heater 4 (H4) on pin out0 of expansion board 24 (24.out0)and assign temperature sensor T4 (T4) to it's control M143 H4 S300 ; Set maximum temperature for heater 4 (H4) to 300C (S300) M307 H4 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ;M307 H4 ; set heating parameters as determined by a tuning run - possibly in confi.g.overwrite ;M308 S1 P"spi.cs1" Y"rtd-max31865" A"Heater0" ; PT100 on main board ;M950 H1 C"0.out3" T1 ; Heater for extruder out tool 0 ; M307 H1 A1252.3 C361.3 D5.3 V24.0 B0 ; from pid tuning without sock ;M307 H1 A811.4 C309.4 D4.7 V24.0 B0 ; With sock ;M143 H1 S300 ; Maximum temp for hotend to 300C ; Fans ;------------------------------------------------------------------------------- M950 F0 C"21.out1" Q500 ; create fan 0 on pin out1 on expansion board 21 and set its frequency M106 P0 C"Print Cool 0" ; set custom name of "Print Cool 0" for this fan M950 F1 C"21.out2" Q500 ; create fan 1 on pin out2 on expansion board 21 and set it's frequency M106 P1 C"Hot End 0" ; S1 H1 T45 ; set fan 1 (P1) to full speed (S1) when on. Thermostatic control (H) controlled by heater 1 (1) at trigger temp of 45 degrees (T45) ; set custom name of "Hot End 0" for this fan M950 F2 C"22.out1" Q500 ; create fan 2 on pin out1 on expansion board 22 and set its frequency M106 P2 C"Print Cool 1" ; set custom name of "Print Cool 1" for this fan M950 F3 C"22.out2" Q500 ; create fan 3 on pin out2 on expansion board 22 and set it's frequency M106 P3 C"Hot End 1" S1 H1 T45 ; set fan 3 (P3) to full speed (S1) when on. Thermostatic control (H) controlled by heater 1 (1) at trigger temp of 45 degrees (T45) ; set custom name of "Hot End 1" for this fan M950 F4 C"23.out1" Q500 ; create fan 4 on pin out1 on expansion board 23 and set its frequency M106 P4 C"Print Cool 2" ; set custom name of "Print Cool 2" for this fan M950 F5 C"23.out2" Q500 ; create fan 5 on pin out2 on expansion board 23 and set it's frequency M106 P5 C"Hot End 2" S1 H1 T45 ; set fan 5 (P5) to full speed (S1) when on. Thermostatic control (H) controlled by heater 1 (1) at trigger temp of 45 degrees (T45) ; set custom name of "Hot End 2" for this fan M950 F6 C"24.out1" Q500 ; create fan 6 on pin out1 on expansion board 24 and set its frequency M106 P6 C"Print Cool 3" ; set custom name of "Print Cool 3" for this fan M950 F7 C"24.out2" Q500 ; create fan 7 on pin out2 on expansion board 24 and set it's frequency M106 P7 C"Hot End 3" S1 H1 T45 ; set fan 7 (P7) to full speed (S1) when on. Thermostatic control (H) controlled by heater 1 (1) at trigger temp of 45 degrees (T45) ; set custom name of "Hot End 3" for this fan ;M950 F1 C"0.out8" ;M106 P1 S255 H1 T45 C"HeatBreakCool0" ; S = Speed of fan Px ; Hxx = heater for thermo mode ; T = temps for thermo mode. ;M950 F5 C"0.out7" ;M106 P5 C"PrintCool0" ; Tool definitions ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- M563 P0 S"Tool 0" D0 H1 F0 ; Px = Tool number ; Dx = Drive Number ; H1 = Heater Number ; Fx = Fan number print cooling fan G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ; (-273 = "off") M572 D0 S0.085 ; Set pressure advance for tool 0 (D0) M563 P1 S"Tool 1" D1 H2 F2 ; Px = Tool number ; Dx = Drive Number ; H1 = Heater Number ; Fx = Fan number print cooling fan G10 P1 X0 Y0 Z0 ; set tool 0 axis offsets G10 P1 S0 R0 ; Set tool 0 operating and standby temperatures ; (-273 = "off") M572 D1 S0.085 ; Set pressure advance for tool 0 (D0) M563 P2 S"Tool 2" D2 H3 F4 ; Px = Tool number ; Dx = Drive Number ; H1 = Heater Number ; Fx = Fan number print cooling fan G10 P2 X0 Y0 Z0 ; set tool 0 axis offsets G10 P2 S0 R0 ; Set tool 0 operating and standby temperatures ; (-273 = "off") M572 D2 S0.085 ; Set pressure advance for tool 0 (D0) M563 P3 S"Tool 3" D3 H4 F6 ; Px = Tool number ; Dx = Drive Number ; H1 = Heater Number ; Fx = Fan number print cooling fan G10 P3 X0 Y0 Z0 ; set tool 0 axis offsets G10 P3 S0 R0 ; Set tool 0 operating and standby temperatures ; (-273 = "off") M572 D3 S0.085 ; Set pressure advance for tool 0 (D0) M98 P"/sys/Toffsets.g" ; Set tool offsets from the bed M501 ; Load saved parameters from non-volatile memory