M303 T1 + thermostaticfan + 3HC does not turn on the fan
-
It seems like I may have hit a bug with running firmware 3.3. I searched the forum and looked at github and I didn't see anything similar but it's possible this is already known or I have a stupid configuration issue...
I am running a Duet 3 Mini 5+ and a 3HC expansion board attached via the can bus. There are 2 tools defined, T0 is using heater, thermistor and fan ports on the Duet 3 Mini and T1 is using heater, thermistor and fan ports on the 3HC expansion board.
When either of those heaters is enabled / disabled, the thermostatically controlled fan turns on and off as expected.
The thermostatically controlled hotend fan is also enabled correctly when running all three of the following PID tuning requests:
M303 H1 P1 S255
M303 T0 S255
M303 H2 P1 S255but when I run:
M303 T1 S255
the thermostatic controlled fan does not turn on and by around 150C, I end up triggering an emergency stop to abort the tuning.
Here's my config.g:
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves ; Drives M569 P0 S1 D3 ; physical drive 0 goes forwards, stealthchop M569 P1 S0 D3 ; physical drive 1 goes backwards M569 P2 S0 D3 ; physical drive 2 goes backwards M569 P3 S0 D3 ; physical drive 3 goes backwards M569 P4 S0 D3 ; physical drive 4 goes backwards M569 P1.0 S0 D3 ; physical drive 1.0 goes backwards M569 P1.1 S1 D3 ; physical drive 1.1 goes forwards M569 P1.2 S1 D3 ; physical drive 1.2 goes forwards M584 X0.2 Y0.1:1.2 u1.1 E0.0:1.0 Z0.3:0.4 ; set drive mapping M92 X160.00 Y160.00 U160.00 Z800.00 E830 ; set steps per mm (should be e415, tlm had e398.1,i though 404.5?)*2(0.9degree stepper) M350 X16 Y16 U16 Z16 E16 I1 ; set microstepping to 256 interpolation M566 X600.00 Y600.00 U600.00 Z18.00 E1000.00 ; set maximum instantaneous speed changes (mm/min) (bondtech) M203 X24000.00 Y24000.00 U24000.00 Z360.00 E3600.00 ; set maximum speeds (mm/min) (bondtech) M201 X500.00 Y500.00 U500.00 Z100.00 E1000.00 ; set accelerations (mm/s^2) (bondtech) M906 X700 Y700 U700 Z800 E700 I30 ; set motor currents (mA) and motor idle factor in per cent (bondtech) M84 S30 ; Set idle timeout ; Z drive M671 X175:175 Y-35:385 S2 ; motor order: front, back ; Axis Limits M208 X10 Y0 Z0 U-50 S1 ; set axis minima M208 X350 Y350 Z420 U290 S0 ; set axis maxima ; Endstops M574 X2 S1 P"^0.io5.in" ; configure active-high endstop for high end on X M574 Y2 S1 P"^0.io6.in+^1.io0.in" ; configure active-high endstop for high end on Y M574 U1 S1 P"^1.io2.in" ; configure active-high endstop for high end on U ; Z-Probe M950 S0 C"io1.out" ; servo pin definition M558 P9 C"^io1.in" H5 F100 T2000 G31 X0 Y55 Z1.30 P25 ;M557 X5:200 Y5:200 P7 ; define mesh grid ; Fans (tool 0) M950 F0 C"out5" Q250 ; create fan and set its frequency M106 P0 S0 H-1 ; set fan value (off). Thermostatic control is turned off M950 F1 C"out6" Q500 ; create fan and set its frequency M106 P1 S1 T45 H1 ; set fan value (on). Thermostatic control is turned on ; Fans (tool 1) M950 F2 C"1.out6" Q500 ; create fan and set its frequency M106 P2 S1 T45 H2 ; set fan value (on). Thermostatic control is turned on M950 F3 C"1.out7" Q250 ; create fan and set its frequency M106 P3 S0 H-1 ; set fan value (off). Thermostatic control is turned off ; Bed Heater M308 S0 P"temp0" Y"thermistor" T100000 B4092 ; configure sensor M950 H0 C"out0" T0 ; create bed heater output and map it to sensor 0 M307 H0 R0.272 C349.6 D8.37 S1.00 V23.7 M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C ; tool 0: e3dv6 40w M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor M950 H1 C"out1" T1 ; create nozzle heater output and map it to sensor 1 M307 H1 B0 R2.593 C211.1:173.4 D5.20 S1.00 V24.1 ; tuned (new) at 255 10mm off the bed with the part cooling fan M563 P0 S"E3Dv6" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets ; tool 1: e3dv6 40w ;M308 S2 P"1.temp2" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor ;M950 H2 C"1.out2" T2 ; create nozzle heater output and map it to sensor 2 ;M307 H1 B0 R2.508 C225.2 D5.67 S1.00 V24.1 ; tuned 255 10mm off of the bed with the part cooling fan ;M563 P1 S"E3Dv6" D1 H2 F2 ; define tool 1 ;G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets ; tool 1: e3dv6 volcano 30w M308 S2 P"1.temp2" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor M950 H2 C"1.out2" T2 ; create nozzle heater output and map it to sensor 2 M307 H2 B0 R1.666 C251.2 D4.48 S1.00 V24.3 ; tuned 255 no part cooling fan M563 P1 S"volcano" D1 H2 F2 ; define tool 1 G10 P1 X0 Y0 Z10 ; set tool 1 axis offsets ; Tool (common) G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C G10 P1 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; MCU DOES NOT WORK ON THE DUET 3 MINI 5+, DON'T CONFIGURE: ; M912 P0 S-12.5 ; Calibrate MCU temperature ; Miscellaneous T0 ; select first tool
-
Can you post the results of M122, M122 B1, and M98 P"config.g" please?
-
m122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.3 (2021-06-15 21:46:11) running on Duet 3 Mini5plus Ethernet (SBC mode) Board ID: VPY0D-V296U-D65J0-40KMW-JU03Z-Z5Q1H Used output buffers: 1 of 40 (13 max) === RTOS === Static ram: 102724 Dynamic ram: 93340 of which 0 recycled Never used RAM 47640, free system stack 200 words Tasks: SBC(ready,384.6%,321) HEAT(delaying,1.6%,373) Move(notifyWait,4.8%,338) CanReceiv(notifyWait,1.9%,773) CanSender(notifyWait,0.0%,371) CanClock(delaying,0.6%,338) TMC(notifyWait,54.3%,106) MAIN(running,7734.9%,566) IDLE(ready,0.1%,29) AIN(delaying,66.6%,264), total 8249.4% Owned mutexes: HTTP(MAIN) === Platform === Last reset 01:36:36 ago, cause: software Last software reset at 2021-08-17 16:35, reason: User, none spinning, available RAM 47508, slot 1 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 MCU revision 3, ADC conversions started 5796936, completed 5796935, timed out 0, errs 0 Step timer max interval 770 MCU temperature: min 26.5, current 26.8, max 28.9 Supply voltage: min 24.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 64, reads 42934, writes 12, timeouts 0, DMA errors 0 Driver 1: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 64, reads 42934, writes 12, timeouts 0, DMA errors 0 Driver 2: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 64, reads 42933, writes 12, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 67, reads 42933, writes 12, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 67, reads 42934, writes 12, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2021-08-17 18:12:01 Cache data hit count 4294967295 Slowest loop: 2.09ms; fastest: 0.08ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 0.0MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1, chamberHeaters = -1 -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === CAN === Messages queued 52186, received 69562, lost 0, longest wait 1ms for reply type 6018, peak Tx sync delay 482, free buffers 17 (min 16), ts 28985/28984/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === State: 4, failed transfers: 0, checksum errors: 0 Last transfer: 3ms ago RX/TX seq numbers: 5329/5329 SPI underruns 0, overruns 0 Disconnects: 0, timeouts: 0, IAP RAM available 0x10b00 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.3.0 Code buffer space: 4096 Configured SPI speed: 8000000Hz Full transfers per second: 34.84, max wait times: 9.5ms/0.0ms Codes per second: 0.01 Maximum length of RX/TX data transfers: 3284/752 m122 b1 Diagnostics for board 1: Duet EXP3HC firmware version 3.3 (2021-06-15 16:12:41) Bootloader ID: not available Never used RAM 158632, free system stack 4382 words Tasks: Move(notifyWait,0.0%,160) HEAT(delaying,1.0%,94) CanAsync(notifyWait,0.0%,69) CanRecv(notifyWait,0.2%,82) CanClock(notifyWait,0.3%,71) TMC(notifyWait,311.8%,63) MAIN(running,3904.2%,347) IDLE(ready,0.0%,39) AIN(delaying,56.0%,263), total 4273.6% Last reset 01:37:43 ago, cause: software Last software reset data not available Driver 0: position 0, 830.0 steps/mm, standstill, reads 20616, writes 17 timeouts 0, SG min/max 0/0, steps req 0 done 0 Driver 1: position 0, 160.0 steps/mm, standstill, reads 20617, writes 17 timeouts 0, SG min/max 0/0, steps req 0 done 0 Driver 2: position 0, 160.0 steps/mm, standstill, reads 20617, writes 17 timeouts 0, SG min/max 0/0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter -5/13, peak Rx sync delay 181, resyncs 0/0, no step interrupt scheduled VIN: 24.3V, V12: 12.2V MCU temperature: min 29.4C, current 29.6C, max 32.0C Ticks since heat task active 76, ADC conversions started 5864095, completed 5864093, timed out 0, errs 0 Last sensors broadcast 0x00000004 found 1 80 ticks ago, loop time 0 CAN messages queued 70382, send timeouts 0, received 52789, lost 0, free buffers 37, min 37, error reg 110000 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 8/17/2021, 6:12:02 PM m122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.3 (2021-06-15 21:46:11) running on Duet 3 Mini5plus Ethernet (SBC mode) Board ID: VPY0D-V296U-D65J0-40KMW-JU03Z-Z5Q1H Used output buffers: 1 of 40 (13 max) === RTOS === Static ram: 102724 Dynamic ram: 93340 of which 0 recycled Never used RAM 47640, free system stack 200 words Tasks: SBC(ready,384.6%,321) HEAT(delaying,1.6%,373) Move(notifyWait,4.8%,338) CanReceiv(notifyWait,1.9%,773) CanSender(notifyWait,0.0%,371) CanClock(delaying,0.6%,338) TMC(notifyWait,54.3%,106) MAIN(running,7734.9%,566) IDLE(ready,0.1%,29) AIN(delaying,66.6%,264), total 8249.4% Owned mutexes: HTTP(MAIN) === Platform === Last reset 01:36:36 ago, cause: software Last software reset at 2021-08-17 16:35, reason: User, none spinning, available RAM 47508, slot 1 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 MCU revision 3, ADC conversions started 5796936, completed 5796935, timed out 0, errs 0 Step timer max interval 770 MCU temperature: min 26.5, current 26.8, max 28.9 Supply voltage: min 24.1, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 64, reads 42934, writes 12, timeouts 0, DMA errors 0 Driver 1: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 64, reads 42934, writes 12, timeouts 0, DMA errors 0 Driver 2: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 64, reads 42933, writes 12, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 67, reads 42933, writes 12, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 67, reads 42934, writes 12, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2021-08-17 18:12:01 Cache data hit count 4294967295 Slowest loop: 2.09ms; fastest: 0.08ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 0.0MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1, chamberHeaters = -1 -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === CAN === Messages queued 52186, received 69562, lost 0, longest wait 1ms for reply type 6018, peak Tx sync delay 482, free buffers 17 (min 16), ts 28985/28984/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === State: 4, failed transfers: 0, checksum errors: 0 Last transfer: 3ms ago RX/TX seq numbers: 5329/5329 SPI underruns 0, overruns 0 Disconnects: 0, timeouts: 0, IAP RAM available 0x10b00 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.3.0 Code buffer space: 4096 Configured SPI speed: 8000000Hz Full transfers per second: 34.84, max wait times: 9.5ms/0.0ms Codes per second: 0.01 Maximum length of RX/TX data transfers: 3284/752 m98 P"config.g"
(nothing else printed with the config.g, no errors or warnings)
-
@crpalmer said in M303 T1 + thermostaticfan + 3HC does not turn on the fan:
M950 F2 C"1.out6" Q500 ; create fan and set its frequency M106 P2 S1 T45 H2 ; set fan value (on). Thermostatic control is turned on
@crpalmer said in M303 T1 + thermostaticfan + 3HC does not turn on the fan:
M563 P1 S"volcano" D1 H2 F2
You're using Fan2 as both a part cooling fan and a thermostatic fan. Which is it?
-
I think the jumble nature of your commands isn't helping either. Here's a cleaned up heater, fan, tool definition section from the config tool.
; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 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 M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 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 M308 S2 P"1.temp2" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin 1.temp2 M950 H2 C"1.out2" T2 ; create nozzle heater output on 1.out2 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S280 ; set temperature limit for heater 2 to 280C ; Fans M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out6" Q500 ; create fan 1 on pin out6 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"1.out6" Q500 ; create fan 2 on pin 1.out6 and set its frequency M106 P2 S1 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"1.out7" Q500 ; create fan 3 on pin 1.out7 and set its frequency M106 P3 S1 H2 T45 ; set fan 3 value. Thermostatic control is turned on ; Tools M563 P0 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 M563 P1 D1 H2 F2 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C
It uses Fan0 and Fan2 as part cooling fans, and Fan1 and Fan3 as thermostatic fans.
-
@phaedrux, thanks!
The M563 F2 was indeed the problem. I missed that because I haven't actually hooked up a part cooling fan yet....