Thanks for the new bookworm Pi image.
Unfortunately, the instructions for upgrade at https://docs.duet3d.com/en/How_to_guides/SBC_Buster_to_Bookworm fail for me at first hurdle - M586 P1 T1 S1
responds with CORS disabled
in the console and it does not appear that SFTP is available (Filezilla says 'ECONNREFUSED - Connection refused by server').
Board: Duet 3 MB6HC (MB6HC)
DSF Version: 3.4.2
Firmware: RepRapFirmware for Duet 3 MB6HC 3.4.2 (2022-09-13)
It seems that those steps are only to transfer the existing config to a PC, and I can do that via scp anyway, so I will probably press on by that route.
I also note that https://docs.duet3d.com/User_manual/Reference/Gcodes#m586-configure-network-protocols says "Note: TLS has not yet been implemented in RepRapFirmware, therefore T1 will not work." so that presumably needs an update now.
config.g
; Configuration file for Duet 3 (firmware version 3)
; initially generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Sep 17 2020 20:49:45
; but subsequently significantly modified variously
; General preferences
G90 ; send absolute coordinates
M83 ; relative extruder moves
M550 P"Delta" ; set printer name
; M665 = diagonal rod length, delta radius, printable radius, homed height, tower pos corrections
; M666 = endstop adjustments
M665 L360.250:360.250:360.250 R184.819 H538.341 B150.0 X-0.227 Y0.223 Z0.000
M666 X0.280 Y-0.101 Z-0.179 A0.00 B0.00
; Drives
M569 P0.0 S0 ; physical drive 0.0 goes backwards
M569 P0.1 S0 ; physical drive 0.1 goes backwards
M569 P0.2 S0 ; physical drive 0.2 goes backwards
M569 P0.5 S1 ; physical drive 0.5 goes forwards
M584 X0.0 Y0.1 Z0.2 E0.5 ; set drive to axis mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X160.00 Y160.00 Z160.00 E415.00 ; set steps per mm - note XYZ are 400/rev and E is 200/rev
; note extruder steps should notionally be 415 but that gives very slight under extrusion when tested
; e.g. 1.75 (measured) PLA filament, 0.4 nozzle, vase mode single extrusion average measurement = 0.440 cf target 0.450mm
M592 D0 A0.0007 B0.0010 ; configure non-linear extrusion, though negligible correction
; Speeds
M566 X1200.00 Y1200.00 Z1200.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
M203 X15000 Y15000 Z15000 E9000 ; set maximum speeds (mm/min)
; acceleration (configtool default is 1000 mm/s2) and set extruder to less
M201 X1200 Y1200 Z1200 E500 ; set accelerations (mm/s^2)
; rated current E3D high-torque motor = 1.68A, x 75% = 1260 mA
; rated current Oooznest extruder motor = 1.33A, x 75% = 1000 mA
M906 X1260 Y1260 Z1260 E1000 I30 ; set motor currents (mA) and motor idle percentage
M84 S60 ; Stop idle hold after 60 seconds timeout
; Axis Limits
M208 Z0 S1 ; set minimum Z
; IO etc
; paneldue on io0
M575 P1 S1 B57600 ; serial channel 1, PanelDue mode w checksum; 57600 baud
; Endstops
M574 X2 S1 P"io6.in" ; configure active-high endstop for high end on X via pin io0.in
M574 Y2 S1 P"io1.in" ; configure active-high endstop for high end on Y via pin io1.in
M574 Z2 S1 P"io2.in" ; configure active-high endstop for high end on Z via pin io2.in
; Z-Probe
M558 P8 R0.4 C"io3.in+io3.out" H3 F1200 T6000 ; set Z probe type to effector and the dive height + speeds
G31 P100 X0 Y0 Z-0.12 ; set Z probe trigger value, offset and trigger height (was -0.04)
M557 R145 S64 ; define mesh grid
; filament monitoring
M591 D0 P2 C"io8.in" S1 ; enable filament monitoring, low = filament present, on io8
; Heaters
; bed
M308 S0 P"spi.cs1" Y"rtd-max31865" A"bed" ; configure sensor 0 as PT100 via CS pin spi.cs1
M950 H0 C"out1" Q3 T0 ; create bed heater output on out1 and map it to sensor 0
; v3.1 tuning: M307 H0 A530 C1330 D21 S1 V0 B0
M307 H0 R0.243 C1212.7 D46.41 S1.0 V0 B0 ; configure bed heater average three runs of M303 H0 S75
M140 H0 S0 ; map heated bed to heater 0
M143 H0 S150 ; set temperature limit for heater 0 to 150C - fault at 150
; hotend
; previous: M308 S1 P"spi.cs0" Y"rtd-max31865" A"hotend" ; hotend was previously PT100 via CS pin spi.cs0
M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 A"hotend"
M950 H1 C"out2" Q25 T1 ; create nozzle heater output on out2 and map it to sensor 1
M307 H1 R4.4 K0.47 D1.48 E1.35 S1.00 B0 V24 ; average of multiple runs - see spreadsheet
M143 H1 S300 ; heater 1 limit 300 (generate heater fault)
; chamber
M308 S2 P"temp3" Y"thermistor" T4701 B4266 C1.048787e-7 A"chamber" ; dangling thermistor
M950 H2 C"out3" T2 ; create a heater, but not actually anything connected to this output
M141 H2 S99 ; set this to be chamber and set initial temperature (99 is effectively a flag)
M141 S-400 ; switch chmaber heater off
; additional sensors
; sensor 6: thermistor in bed heater mat
M308 S6 P"temp2" Y"thermistor" T100000 B3950 A"bed_mat"
; use this as additional overtemperature
M143 H0 S150 P1 T6 A2 ; turn off heater if mat gets to 150C
; sensor 7: thermistor in electronics enclosure
M308 S7 P"temp0" Y"thermistor" T4701 B4266 C1.048787e-7 A"electronics"
; sensor 8: mcu temperature sensor used as proxy for board temperature
M308 S8 Y"mcu-temp" A"processor"
; sensor 9: overtemperature flag on stepper drivers
M308 S9 Y"drivers" A"drivers"
; Fans
M950 F0 C"!out7" Q500 ; create fan 0 on pin !out7 and set its frequency
M106 P0 S0 L0.25 B0.7 H-1 C"print" ; fan initially off, min pwm 0.25, 0.5 second blip, not thermostatic
; hot end fan
M950 F1 C"out8" Q100 ; create fan 1 on pin out8 and set its frequency
M106 P1 S1 H1 T50 C"hotend" ; set fan 1 thermostatic control on heater 1 at 50C
; other cooling fans
M950 F2 C"!out4" Q25000 ; fan 2 is 4-wire noctua on out4 (note inverse for 4-wire to work correctly) tacho not used
M106 P2 S1 L0.25 B0.2 H7:9 T35:40 C"mainb" ; cooling electronics space thermostatic on sensor 7 35 to 40C
; fan 3 is small centrifugal fan blowing under main board
M950 F3 C"out9" Q100 ; fan 3 on pin out9 and set its frequency
M106 P3 S1 L0.4 B0.5 H8:9 T50:60 C"underb" ; fan 3 for cooling mainboard underside thermostatic sensor 8 (mcu temperature) 50 to 60C
; fan 4 is enclosure purge fan
M950 F4 C"!out5" Q25000 ; fan 4 is 4-wire noctua on out5 (note inverse for 4-wire to work correctly) tacho not used - could be '+out5.tach'
M106 P4 S1 L0.25 B0.2 H2 T36:40 C"chamber" ; fan 4 thermsotatic, narrow band
; Servo
; servo 1 on io7.out (note, needs to be 4, 5 or 7 as these are only PWM capable outputs)
M950 S1 C"io7.out" ; create servo 1
M280 P1 S10 ; set to 10 degree position, which is blades closed
; GPIO
m950 P2 C"io4.out" Q10 ; gpio 2 set to 10Hz on io4
M42 P2 S1 ; that gpio set high
; power control
M81 C"pson" ; set up power pin, initially switched off
; Tools
M563 P0 S"Nozzle" D0 H1 F0 ; 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
T0 ; select first tool
; global variables
global nozt = -1 ; used to memorise nozzle temperature when pausing