Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Thermostatic fan strange behaviour

    Scheduled Pinned Locked Moved
    Using Duet Controllers
    fans heater thermostatic fan
    2
    3
    394
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • e4dundefined
      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
      
      gloomyandyundefined 1 Reply Last reply Reply Quote 0
      • gloomyandyundefined
        gloomyandy @e4d
        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
        
        e4dundefined 1 Reply Last reply Reply Quote 0
        • e4dundefined
          e4d @gloomyandy
          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
          
          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Unless otherwise noted, all forum content is licensed under CC-BY-SA