Thermostatic fan strange behaviour
e4d last edited by
Hello, I have a strange behaviour with a fan that I set to thermostatic on my Duet3 6CH with SBC.
If I start the Duet or do an emergency stop with the heater cold (<70°C) the extruder fan will never turn on when the temperature get hot. Either if I start a print or I set a temperature manually.
If I emergency stop with the tool hot, the fan will then turn on and will function properly until the next cycle.
I'm a bit lost and don't know if this is a bug or I made a mistake in my config.
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; G4 S1 ; Wait for expansion boards to start ; GENERAL PREFERENCES G21 ; Work in millimetres G90 ; send absolute coordinates... M83 ; but relative extruder moves M667 S0 ; cartesian mode ; NETWORK M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; DRIVES DIRECTION M569 P0.0 S0 ; X M569 P0.1 S1 ; Y1 M569 P0.2 S0 ; Y2 M569 P0.3 S0 ; Z M569 P0.4 S0 ; A M569 P0.5 S0 ; C M569 P1.0 S1 ; U M569 P1.1 S0 ; E ; DRIVES CONFIG M584 X0.0 Y0.1:0.2 Z0.3 A0.4 C0.5 U1.0 E1.1 ; set drive mapping M92 X200 Y200 Z640 A17.777 C17.777 E385 U91.022 ; Set steps per mm assuming x16 microstepping M350 X16 Y16 Z16 A16 C16 E16 U16 I1 ; configure microstepping with interpolation M566 X10 Y10 Z100 E2 U2 ; set maximum instantaneous speed changes (mm/min) M203 X13000 Y17000 Z4000 A5000 C5000 E5000 U5000 ; set maximum speeds (mm/min) M201 X600 Y600 Z600 A2000 C2000 E600 U500 ; set accelerations (mm/s^2) M906 X1450 Y1450 Z1450 I100 ; set motor currents (mA) and motor idle factor in per cent M906 A500 C500 E1000 U500 I100 ; set motor currents (mA) and motor idle factor in per cent ; AXIS LIMITS M208 X-108:418 Y-129:283 Z0:320 A-90:90 C-180:180 U-90:90 ; set axis minima ; ENDSTOPS M574 X1 S3 ; configure stall stop for low end on X M574 Y1 S4 ; configure multi motors stop stall for low end on Y M574 Z1 S2 ; configure stall stop for low end on Z M574 A1 S3 ; configure stall stop for A ; STALL DETECTION M915 X Y Z S3 F0 H400 R0 ; X / Y / Z Axes ; Z-PROBE M558 P8 C"!0.io1.in" H3 F360 I0 T20000 ; disable Z probe but set dive height, probe speed and travel speed G31 P200 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height M557 X-15:260 Y-52:225 S38 ; define mesh grid ; HEATERS ; H0 Bed M308 S0 P"0.temp0" Y"thermistor" A"Bed" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"0.out0" T0 Q10 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 R0.455 C810.0 D14.70 S1.00 V23.9 ; enable PID mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S215 ; set temperature limit for heater 0 to 215C ; H1 Chamber M308 S1 P"0.temp1" Y"thermistor" A"Chamber" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"0.out1" T1 Q10 ; create chamber heater output on out1 and map it to sensor 1 M307 H1 B0 R0.092 C2302.8 D104.47 S1.00 V24.3 ; enable bang-bang mode for the chamber heater and set PWM limit M141 H1 ; map chamber to heater 1 M143 H1 S200 ; set temperature limit for heater 1 to 150C ; H2 T0 M308 S2 P"0.temp2" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin temp2 M950 H2 C"0.out2" T2 ; create nozzle heater output on out2 and map it to sensor 2 M307 H2 B0 R1.855 C202.4 D6.00 S1.00 V23.8 ; disable bang-bang mode for heater and set PWM limit M143 H2 S280 ; set temperature limit for heater 2 to 280C ; PT100 ;M308 S3 P"0.spi.cs0" Y" rtd-max31865" A"PT100" M912 P0 S-11.8 ; MCU calibration factor ; FANS ; T0 M950 F0 C"0.out7" Q250 ; create extruder fan M106 P0 S1.0 H2 T70 B0.1 ; thermostatic control is turned on 70C M950 F1 C"0.out8" Q250 ; create part cooling fan M106 P1 S0.0 H-1 B0.1 C"T0 PC Fan" ; set fan 1 value. Thermostatic control is turned off ; TOOLS ; T0 M563 P0 S"FDM" D0 H2 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 ; T1 M563 P1 S"T1" ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets M98 P"tool-offsets.g" G29 S2 ; disable mesh compensation T-1 ; deselect tool
gloomyandy last edited by
@e4d It would probably help anyone looking into this if you provide the output from M122 (so we can see what versions of things you are running) and a set of steps to reproduce the problem keeping things as simple as possible. In particular what is you are doing to trigger the emergency stop (button in dwc) and change the hotend temperature? What happens if you start both the sbc and duet when the hot end is cold, does the fan come on then, or does it only work correctly if you do an emergency stop when hot?
So for instance if you do the following does this reproduce the problem?
Boot duet and sbc turn on heater from dwc panel confirm that fan turns on at 70 turn off heater from dwc panel wait for fan to turn off hit emergency stop button on DWC turn on heater from dwc Check to see if fan starts at 70 turn off heater from dwc
e4d last edited by
@gloomyandy i tried your suggested steps and here is the result :
Boot duet and sbc Turn on heater from dwc panel The fan don't turn on I turn off the heater wait for the temperature to go under 70°C hit emergency stop turn on heater fan don't turn on emergency stop (heater hot) fan turn on wait for the temperature to go under 70°C fan turn off Turn heater on Fan don't turn on
Here's the output of the M122 command :
=== Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956L2-G43S8-6JTD6-3SS6K-KA1AH Used output buffers: 1 of 40 (14 max) === RTOS === Static ram: 150904 Dynamic ram: 62348 of which 0 recycled Never used RAM 140940, free system stack 202 words Tasks: SBC(ready,5.0%,330) HEAT(delaying,0.0%,325) Move(notifyWait,0.0%,302) CanReceiv(notifyWait,0.0%,908) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.1%,93) MAIN(running,87.7%,1250) IDLE(ready,0.1%,29), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:01:43 ago, cause: power up Last software reset at 2021-09-29 11:43, reason: StuckInSpinLoop, GCodes spinning, available RAM 143016, slot 2 Software reset code 0x4083 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0040080f BFAR 0x00000000 SP 0x2041970c Task IDLE Freestk 43 ok Stack: 00479e85 0047a862 61000000 a5a5a5a5 00479e85 a5a5a5a5 a5a5a5a5 2041ad9c 0000aaea 20432ac4 20424c74 20419728 20424c6c 00000004 2042cda0 2042cda0 20419728 00000000 00000001 20419784 4e49414d 00000000 00000000 00000001 00000001 00eec918 00000000 Error status: 0x00 Step timer max interval 154 MCU temperature: min 35.8, current 36.5, max 47.7 Supply voltage: min 24.3, current 24.4, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.0, max 12.0, under voltage events: 0 Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, reads 53339, writes 15 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 53339, writes 15 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 53339, writes 15 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 53340, writes 15 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 53340, writes 15 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 53341, writes 14 timeouts 0, SG min/max 0/0 Date/time: 2021-09-29 11:52:03 Slowest loop: 0.46ms; fastest: 0.04ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, 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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = 1 -1 -1 -1 === 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 844, received 8, lost 0, longest wait 1ms for reply type 6018, peak Tx sync delay 607, free buffers 49 (min 48), ts 517/516/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === State: 4, failed transfers: 1, checksum errors: 0 Last transfer: 1ms ago RX/TX seq numbers: 2731/2870 SPI underruns 0, overruns 0 Disconnects: 1, timeouts: 0, IAP RAM available 0x2c810 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: 15.42, max wait times: 4.7ms/0.0ms Codes per second: 0.01 Maximum length of RX/TX data transfers: 3579/64