Duet Toolboard Fan Issue



  • Hello, I'm having an issue with my Duet Toolboard.

    I'm using a Duet 3, with Raspberry pi 4 SBC, and the Duet toolboard. The mainboard is on version 3.1.1 and Toolboard is on version 3.1.0.

    I've gotten just about everything else working with it, endstop, BLtouch, extruder motor, ect, however the two fans I have plugged in are not working correctly. One is for the hotend heatsink and is thermostatically controlled and the other is a print cooling fan. The hotend fan doesn't turn on at all. Where as the print cooling fan is always on 100%. I've tried a bunch of different changes to my config but can't seem to get this straightened out.

    I do get these two messages on startup:

    M106: Fan number 0 not found
    M950: Pin 20.out2 is not free

    Not sure what the issue is. Here is my config.g file.

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Mon Jun 29 2020 01:54:12 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Duet 3" ; set printer name
    M669 K1 ; select CoreXY mode

    ; Drives
    M569 P0.0 S1 ; Physical drive 0.0 goes forwards
    M569 P0.1 S1 ; Physical drive 0.1 goes forwards
    M569 P0.2 S1 ; Physical drive 0.2 goes forwards
    M569 P0.3 S1 ; Physical drive 0.3 goes forwards
    M569 P20.0 S0 ; Physical drive 0.4 goes backwards
    M584 X0.0 Y0.1 Z0.2 E20.0:0.3 ; Set drive mapping
    M350 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation
    M92 X160 Y160 Z1600 E409:1600 ; Set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:12.00 ; Set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z250.00 E1200.00:250.00 ; Set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z50.00 E500.00 ; Set max accelerations (mm/s^2)
    M906 X900 Y900 Z1800 E900:1800 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M584 X0.0 Y0.1 Z0.2:0.3 E20.0 ; Set actual drive mapping, does not work with above for some reason
    M84 S30 ; Set idle timeout
    ;M915 XYZ H10 S5 F0 R0 ; Set stall detection

    ; Axis Limits
    M208 X10 Y0 Z0 S1 ; set axis minima
    M208 X500 Y520 Z480 S0 ; set axis maxima

    ; Endstops
    M574 X2 S1 P"20.io2.in" ; configure active-high endstop for low end on X via pin io0.in
    ;M574 X1 S3 ; configure active-high endstop for low end on X via pin io0.in
    M574 Y1 S1 P"io1.in" ; configure active-high endstop for low end on Y via pin io1.in

    ;Leads
    M671 X510:-10 Y250:250 S12.0 ; leadscrews at left and right of X axis
    M208 X-5:505 Y0:500 ; X carriage moves from -5 to 505, Y bed goes from 0 to 500

    ; Z-Probe
    M558 P9 C"^20.io0.in" H15 F120 T1400 ; set Z probe type to bltouch and the dive height + speeds
    M950 S4 C"20.io0.out" ; create servo pin 0 for BLTouch
    G31 P25 X-15 Y-54 Z2.9 ; set Z probe trigger value, offset and trigger height 2.95 x-15
    M557 X50:450 Y50:450 S25 ; define mesh grid
    ;M574 Z1 S2 ; Define Z to use Probe. Home to Min

    ; Heaters
    M308 S0 P"temp0" Y"thermistor" A"Bed" T100000 R2200 B5000 ; configure sensor 0 as thermistor on pin temp0
    M950 H0 C"out0" T0 Q10.0 ; create bed heater output on out0 and map it to sensor 0
    ;M307 H0 B1
    M307 H0 A331.0 C885.5 D75.5 V0.0 S1.0 B1 ; disable bang-bang(PID B=0) 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 S2 P"20.temp0" Y"PT1000" A"HotEnd" T1000 R2200 B4725 C0 ; configure sensor 1
    M950 H1 C"20.out0" T2 ; 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 S290

    ; Fans
    M950 F0 C"20.out1" Q500 ; create fan 1 on pin out8 and set its frequency
    M106 P0 S0 H-1 ; set fan 1 value. Thermostatic control is turned off
    M950 F1 C"20.out2" Q500 ; create fan 0 on pin out7 and set its frequency
    M106 P1 S0.0 L127 X255 H1 T45 ; set fan 0 value. Thermostatic control is turned on

    ; Tools
    M563 P0 D0 H1 F0 S"1LC" ; 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
    M572 D0 S0.11 ; Set pressure advance for tool0

    ;M593 F40.5 ; acceleration resonance

    ;legacy pid
    ;Computed PID parameters for setpoint change: P13.4, I0.482, D51.4
    ;Computed PID parameters for load change: P13.4, I0.949, D51.4

    ; Miscellaneous
    M501 ; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    T0 ; select first tool



  • Found a sorta fix. For the print fan I had the wire in GND and not PWM, rewired and now it works. For the hotend fan I rewired it so its ground goes to to GND on out1, this way it stays on all the time. Not sure why thermostatic control still doesn't seem to work but just a slight annoyance that the hotend fan stays on permanently.


  • Moderator

    @vishiano said in Duet Toolboard Fan Issue:

    M950 F1 C"20.out2" Q500 ; create fan 0 on pin out7 and set its frequency
    M106 P1 S0.0 L127 X255 H1 T45 ; set fan 0 value. Thermostatic control is turned on

    To get thermostatic to work you'll probably need to change S0.0 to S1.0 so that when the temp is reach it turns on.



  • @Phaedrux said in Duet Toolboard Fan Issue:

    To get thermostatic to work you'll probably need to change S0.0 to S1.0 so that when the temp is reach it turns on.

    Gave it a try, doesn't appear to make a difference.


  • Moderator

    @vishiano said in Duet Toolboard Fan Issue:

    M106 P1 S0.0 L127 X255 H1 T45

    You can remove the S, L and X parameters, they are not needed the way you've set it up. As soon as temperature on H1 hits 45C (set by T45) it turns on 100%. You can set a maximum speed with the X parameter, but yours is maximum anyway. If you set a temperature range eg T45:65, I think it should start at the L parameter, so include that if you set a temp range.

    Ian



  • ;== Fans ===============================
    M950 F0 C"20.out2" ; Creates fan 0 on pin out2 (print cooling fan)
    M106 P0 S0 H-1 ; Sets fan 0 to manual control

    M950 F1 C"20.out1" ; Creates fan 1 on pin out1 (hotend cooling fan)
    M106 P1 T50 H1 ; Sets fan 1 to thermostatic control

    I have the same setup (Duet3/RPi and toolboard). Here is my config that is working as it should. The only difference I see is that F0 is set to the print cooling fan and F1 is set to the hotend cooling fan.

    You mentioned your BLtouch is working.. is it v3.1? I'm curious if it self-tests at start up? I have a workaround for this if not..



  • @oozeBot

    I believe the BLtouch is 3.1. It doesn't self test and actually is giving me an error led(slow red blink). I double checked the wiring and it doesn't seem to be an issue so I'm not sure whats causing it. If you have a fix I'm all ears.



  • @vishiano here you go.. I'd love to know if this works for you as well!

    https://forum.duet3d.com/topic/18261/bltouch-v3-1-toolboard-resolution?_=1598536146302



  • @oozeBot Thanks I'll give this a shot after my print is done 😁


Log in to reply