Electronics cooling fan on RRF3



  • Tried to search for it, but either i searched for the wrong stuff or it haven't been asked bedfore.

    But how to go around to assign "Fan2" as a thermostaticly controlleded by the MCU?

    In RRF2 i have "M106 P2 T45:65 H100:101:102", but from what i recon this won't work on RRF3 right? Or am i overthinking it?


  • administrators

    You need to define an extra sensor for this (see M308) and then map it using the H parameter of M106. In RRF3 the M106 H parameter specifies the sensor number and not the heater number. The sensor type should be mcu-temp and/or drivers.



  • This post is deleted!


  • @chrishamm said in Electronics cooling fan on RRF3:

    You need to define an extra sensor for this (see M308) and then map it using the H parameter of M106. In RRF3 the M106 H parameter specifies the sensor number and not the heater number. The sensor type should be mcu-temp and/or drivers.

    Yeah that's what i thought, but i got a little threw off course since i have no "P" parameter, i guess it "P" just ain't needed since mcu-temp and/or drivers are virtual heaters?

    Doing the intial leap to RRF3 now so i'm still a little shaky on the "new stuff" in regard to RRF2 🤕

    So if i do the following:

    M308 S100 Y"mcu-temp"
    M308 S101 Y"drivers"
    

    Then i can use:

    M106 P2 T45:65 H"100":"101"
    

    Or am i missing something?


  • Moderator

    @Exerqtor said in Electronics cooling fan on RRF3:

    Or am i missing something?

    Yes. See the RRF3 example here: https://duet3d.dozuki.com/Wiki/Mounting_and_cooling_the_board?revisionid=HEAD#Section_Cooling

    M308 S2 Y"drivers" A"DRIVERS"  ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    M950 F2 C"fan2" Q100 ; create fan 2 on pin fan2 and set its frequency                        
    M106 P2 H2:3 L0.15 X1 B0.3 T40:70 ; set fan 2 value
    

    Creates sensors for the driver overtemp flag and the MCU temp reading using M308 as S2 and S3. Creates a fan port for Fan2 with M950. Then creates a fan command to link those sensors to fan2 with a temp range of 40-70 using M106.

    Note that the MCU temperature must be calibrated to get an accurate temperature reading. See here: Calibrating the CPU temperature

    @Exerqtor said in Electronics cooling fan on RRF3:

    Doing the intial leap to RRF3 now so i'm still a little shaky on the "new stuff" in regard to RRF2

    You'll get there. I assume you've seen this? https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview

    Between that and the gcode wiki you can get a lot, but some of the more esoteric things such as this require an example and explanation since they aren't really intuitive. But that's what we're here for.



  • @Phaedrux

    Yeah i did the M950 already so that's all nailed, but i didn't see that first link with the how-to before. That sure helped, thanks! 😅

    Yeah some stuff migrating to RRF3 is a little hard to get your head wrapped around, but i think i got my config.g and homing files more or less gtg now. Sure as h**l would be even more dificult without the forum to lean on 🥵



  • @Phaedrux said in Electronics cooling fan on RRF3:

    @Exerqtor said in Electronics cooling fan on RRF3:

    Or am i missing something?

    Yes. See the RRF3 example here: https://duet3d.dozuki.com/Wiki/Mounting_and_cooling_the_board?revisionid=HEAD#Section_Cooling

    M308 S2 Y"drivers" A"DRIVERS"  ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    M950 F2 C"fan2" Q100 ; create fan 2 on pin fan2 and set its frequency                        
    M106 P2 H2:3 L0.15 X1 B0.3 T40:70 ; set fan 2 value
    

    Creates sensors for the driver overtemp flag and the MCU temp reading using M308 as S2 and S3. Creates a fan port for Fan2 with M950. Then creates a fan command to link those sensors to fan2 with a temp range of 40-70 using M106.

    Note that the MCU temperature must be calibrated to get an accurate temperature reading. See here: Calibrating the CPU temperature

    @Exerqtor said in Electronics cooling fan on RRF3:

    Doing the intial leap to RRF3 now so i'm still a little shaky on the "new stuff" in regard to RRF2

    You'll get there. I assume you've seen this? https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview

    Between that and the gcode wiki you can get a lot, but some of the more esoteric things such as this require an example and explanation since they aren't really intuitive. But that's what we're here for.

    Physically what PIN of the board should I use in this example to connetc the fan? The Fan 2 pin?
    this one:

    1bfd9109-e206-41a0-9e8e-7f9df749ba3d-image.png

    In case would it be possible to use other pins? FAN0, FAN1 and FAN2 in my board are already busy....



  • @the_dragonlord said in Electronics cooling fan on RRF3:

    @Phaedrux said in Electronics cooling fan on RRF3:

    @Exerqtor said in Electronics cooling fan on RRF3:

    Or am i missing something?

    Yes. See the RRF3 example here: https://duet3d.dozuki.com/Wiki/Mounting_and_cooling_the_board?revisionid=HEAD#Section_Cooling

    M308 S2 Y"drivers" A"DRIVERS"  ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    M950 F2 C"fan2" Q100 ; create fan 2 on pin fan2 and set its frequency                        
    M106 P2 H2:3 L0.15 X1 B0.3 T40:70 ; set fan 2 value
    

    Creates sensors for the driver overtemp flag and the MCU temp reading using M308 as S2 and S3. Creates a fan port for Fan2 with M950. Then creates a fan command to link those sensors to fan2 with a temp range of 40-70 using M106.

    Note that the MCU temperature must be calibrated to get an accurate temperature reading. See here: Calibrating the CPU temperature

    @Exerqtor said in Electronics cooling fan on RRF3:

    Doing the intial leap to RRF3 now so i'm still a little shaky on the "new stuff" in regard to RRF2

    You'll get there. I assume you've seen this? https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview

    Between that and the gcode wiki you can get a lot, but some of the more esoteric things such as this require an example and explanation since they aren't really intuitive. But that's what we're here for.

    Physically what PIN of the board should I use in this example to connetc the fan? The Fan 2 pin?
    this one:

    1bfd9109-e206-41a0-9e8e-7f9df749ba3d-image.png

    In case would it be possible to use other pins? FAN0, FAN1 and FAN2 in my board are already busy....

    I'm using FAN2 yeah, if your using RRF3 it's quite simple to assign it to something else to. If your not using your second heater port for example?



  • @Exerqtor said in Electronics cooling fan on RRF3:

    @the_dragonlord said in Electronics cooling fan on RRF3:

    @Phaedrux said in Electronics cooling fan on RRF3:

    @Exerqtor said in Electronics cooling fan on RRF3:

    Or am i missing something?

    Yes. See the RRF3 example here: https://duet3d.dozuki.com/Wiki/Mounting_and_cooling_the_board?revisionid=HEAD#Section_Cooling

    M308 S2 Y"drivers" A"DRIVERS"  ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    M950 F2 C"fan2" Q100 ; create fan 2 on pin fan2 and set its frequency                        
    M106 P2 H2:3 L0.15 X1 B0.3 T40:70 ; set fan 2 value
    

    Creates sensors for the driver overtemp flag and the MCU temp reading using M308 as S2 and S3. Creates a fan port for Fan2 with M950. Then creates a fan command to link those sensors to fan2 with a temp range of 40-70 using M106.

    Note that the MCU temperature must be calibrated to get an accurate temperature reading. See here: Calibrating the CPU temperature

    @Exerqtor said in Electronics cooling fan on RRF3:

    Doing the intial leap to RRF3 now so i'm still a little shaky on the "new stuff" in regard to RRF2

    You'll get there. I assume you've seen this? https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview

    Between that and the gcode wiki you can get a lot, but some of the more esoteric things such as this require an example and explanation since they aren't really intuitive. But that's what we're here for.

    Physically what PIN of the board should I use in this example to connetc the fan? The Fan 2 pin?
    this one:

    1bfd9109-e206-41a0-9e8e-7f9df749ba3d-image.png

    In case would it be possible to use other pins? FAN0, FAN1 and FAN2 in my board are already busy....

    I'm using FAN2 yeah, if your using RRF3 it's quite simple to assign it to something else to. If your not using your second heater port for example?

    yes! just a question: the fan I want to control is a parallel of three fans, one above the Duet, one above the Raspy and one in front of the Mosfet... I'm starting to think that maybe the total impedence of the parallel could be too low and could damage the board... is it possible?


  • Moderator

    @the_dragonlord What are the specs of the fans?



  • @Phaedrux said in Electronics cooling fan on RRF3:

    @the_dragonlord What are the specs of the fans?

    uh I don't know exactly, they are 2 120mm fans for the 2 boards and a 40x20 Noctua for the Mosfet... all of them 12vdc


  • Moderator

    @the_dragonlord Check the labels on the fans to see if you can find some specs.

    The biggest thing will be to make sure you're not drawing more current than the single fan port can handle.

    We recommend no more than 1.5A continuous current draw from each fan output, although up to 3.5A for a few seconds while the fan starts up will not harm them.

    I'd be most concerned with the large 120mm fans.

    12vdc and the fans wattage would give you the current for each. add them up and see if it's more or less than 1.5A.



  • @Phaedrux said in Electronics cooling fan on RRF3:

    @the_dragonlord Check the labels on the fans to see if you can find some specs.

    The biggest thing will be to make sure you're not drawing more current than the single fan port can handle.

    We recommend no more than 1.5A continuous current draw from each fan output, although up to 3.5A for a few seconds while the fan starts up will not harm them.

    I'd be most concerned with the large 120mm fans.

    12vdc and the fans wattage would give you the current for each. add them up and see if it's more or less than 1.5A.

    excellent, thanks



  • @Phaedrux said in Electronics cooling fan on RRF3:

    @the_dragonlord Check the labels on the fans to see if you can find some specs.

    The biggest thing will be to make sure you're not drawing more current than the single fan port can handle.

    We recommend no more than 1.5A continuous current draw from each fan output, although up to 3.5A for a few seconds while the fan starts up will not harm them.

    I'd be most concerned with the large 120mm fans.

    12vdc and the fans wattage would give you the current for each. add them up and see if it's more or less than 1.5A.

    the two 120mm fans declare to need 0.19A each, I don't know about the Noctua but I don't think it's more than the 120mm...just to overestimate the load let's suppose a load of 200mA each, putting them in parallel I'll obtain a total load of 600mA wich is more than safe for the board... am I right?


  • Moderator

    @the_dragonlord said in Electronics cooling fan on RRF3:

    in parallel I'll obtain a total load of 600mA wich is more than safe for the board... am I right?

    Yes I think so.



  • @Phaedrux said in Electronics cooling fan on RRF3:

    @the_dragonlord said in Electronics cooling fan on RRF3:

    in parallel I'll obtain a total load of 600mA wich is more than safe for the board... am I right?

    Yes I think so.

    It doesn't work....

    1. I always see the drivers temp=0

    47034135-c719-43ef-b08a-a6872df7cc8b-image.png

    As you can see from my config.g I've setted 20 as trigger temperature for both of them but the fans only blips at startup and then doesn't spin at all....what am I missing?

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sun Nov 01 2020 08:34:36 GMT+0100 (Ora standard dell’Europa centrale)

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

    ; Network
    M551 P"khiraa090971" ; set password
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S1 ; enable FTP
    M586 P2 S1 ; enable Telnet

    ; Drives
    M569 P0 S0 ; physical drive 0 goes backwards
    M569 P1 S0 ; physical drive 1 goes backwards
    M569 P2 S0 ; physical drive 2 goes backwards
    M569 P3 S0 ; physical drive 3 goes backwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 E16 I0 ; configure microstepping without interpolation
    M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
    M92 X159.6 Y159.6 Z1188.11 E411.88 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X330 Y330 Z400 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
    M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X-39 Y0 Z1.10 ; set Z probe trigger value, offset and trigger height
    M557 X40:290 Y10:320 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 ; create bed heater output on bedheat 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"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T50 ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency
    ;M106 P2 S0 H-1 ; set fan 2 value. Thermostatic control is turned off

    ; Tools
    M563 P0 S"E3DVolcano" 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

    ; Custom settings are not defined

    ; Miscellaneous
    M575 P1 S1 B57600 ; enable support for PanelDue
    M501 ; load saved parameters from non-volatile memory

    ; =========================================================
    ; = D R A G O N C O R E =
    ; =========================================================

    M671 X5:165:320:320:165:5 Y325:325:325:5:5:5 P0.5 ; point1 (40,320), point2 (165,320), point3 (290,320), point4 (290,10), point5 (165,10), point6 (10,10)
    M591 D0 P3 C"e0_stop" S1 R70:130 L25.8 E3.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length
    M911 S11.0 R11.5 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"
    M950 F3 C"e1heat" Q500 ; create fan 0 on pin fan0 and set its frequency
    M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    ;M950 F2 C"fan2"; create fan 2 on pin fan2 and set its frequency
    M106 P2 H2:3 L20 X100 B0.3 T20:20 ; set fan 2 value


  • Moderator

    You've got the M950 in your first fan block uncommented, but then the m950 in the lower block commented.

    So I think you're being affected by this

    Order dependency

    When M950 is used to create a heater, the M950 command must come later in config.g than the M308 command that creates the sensor referred to in the T parameter

    @the_dragonlord said in Electronics cooling fan on RRF3:

    M950 F3 C"e1heat" Q500 ; create fan 0 on pin fan0 and set its frequency
    M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    ;M950 F2 C"fan2"; create fan 2 on pin fan2 and set its frequency
    M106 P2 H2:3 L20 X100 B0.3 T20:20 ; set fan 2 value

    You can also send M98 P"config.g" to see if there are any syntax errors.

    If you send M106 P2 H-1 S1 in the console do the fans turn on?



  • @Phaedrux said in Electronics cooling fan on RRF3:

    You've got the M950 in your first fan block uncommented, but then the m950 in the lower block commented.

    So I think you're being affected by this

    Order dependency

    When M950 is used to create a heater, the M950 command must come later in config.g than the M308 command that creates the sensor referred to in the T parameter

    @the_dragonlord said in Electronics cooling fan on RRF3:

    M950 F3 C"e1heat" Q500 ; create fan 0 on pin fan0 and set its frequency
    M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    ;M950 F2 C"fan2"; create fan 2 on pin fan2 and set its frequency
    M106 P2 H2:3 L20 X100 B0.3 T20:20 ; set fan 2 value

    You can also send M98 P"config.g" to see if there are any syntax errors.

    If you send M106 P2 H-1 S1 in the console do the fans turn on?

    thanks tomorrow morning i'll give it a try! thanks



  • @Phaedrux said in Electronics cooling fan on RRF3:

    You've got the M950 in your first fan block uncommented, but then the m950 in the lower block commented.

    So I think you're being affected by this

    Order dependency

    When M950 is used to create a heater, the M950 command must come later in config.g than the M308 command that creates the sensor referred to in the T parameter

    @the_dragonlord said in Electronics cooling fan on RRF3:

    M950 F3 C"e1heat" Q500 ; create fan 0 on pin fan0 and set its frequency
    M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    ;M950 F2 C"fan2"; create fan 2 on pin fan2 and set its frequency
    M106 P2 H2:3 L20 X100 B0.3 T20:20 ; set fan 2 value

    You can also send M98 P"config.g" to see if there are any syntax errors.

    If you send M106 P2 H-1 S1 in the console do the fans turn on?

    and how about the drivers temperature to 0?


  • Moderator

    @the_dragonlord said in Electronics cooling fan on RRF3:

    and how about the drivers temperature to 0?

    The drivers don't report a temperature, they report a flag for normal, warning, and overtemp.

    The MCU does report a temperature, and is why it is used as a proxy for general board temperature.

    If you want to add a temperature for the drivers, you'd need to add a thermistor to the chip.

    But generally, as long as there is some cooling, the drivers are highly unlikely to enter overtemp in normal usage.



  • @Phaedrux
    (I hope we get 4 or even 5 controllable fans on duet3mini - I wouldn´t even bother if only 3 or 4 can do pwm if the other 2 could be made on/off("bang/bang") via conditional g-code...)



  • @Phaedrux said in Electronics cooling fan on RRF3:

    @the_dragonlord said in Electronics cooling fan on RRF3:

    and how about the drivers temperature to 0?

    The drivers don't report a temperature, they report a flag for normal, warning, and overtemp.

    The MCU does report a temperature, and is why it is used as a proxy for general board temperature.

    If you want to add a temperature for the drivers, you'd need to add a thermistor to the chip.

    But generally, as long as there is some cooling, the drivers are highly unlikely to enter overtemp in normal usage.

    uh ok... so the two values of the T parms in M106 aren't one for the mcu and other for the drivers?


  • Moderator

    @the_dragonlord said in Electronics cooling fan on RRF3:

    so the two values of the T parms in M106 aren't one for the mcu and other for the drivers

    Yes they are, the mcu will function on temp basis to control the fan and the driver over temp still functions in a similar way, you're just not getting a temp reported.



  • @Phaedrux said in Electronics cooling fan on RRF3:

    M106 P2 H-1 S1

    This is the result of the M98:
    Cattura.JPG

    And if I send M106 P2 H-1 S1 the fans spin at 100% only for the time setted in the B parm of M106

    But making experiment I've noticed somehing very very strange...I've increased the blip time like this:

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T50 ; set fan 1 value. Thermostatic control is turned on
    M308 S2 Y"drivers" A"DRIVERS" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency
    M106 P2 H2:3 L30 X100 B10 T32:70 ; set fan 2 value
    M950 F3 C"e1heat" Q500 ; create fan 0 on pin fan0 and set its frequency

    well, I put my finger over the MCU, when it reaches the 32°C the fans start to spin ato 100% spin for 10 seconds and then stop...it's a mistery for me


  • administrators

    @the_dragonlord said in Electronics cooling fan on RRF3:

    and how about the drivers temperature to 0?

    The drivers don't give a temperature readout. The 'drivers' virtual sensor will read 0 when the drivers are not overheating, 100 if a driver is warning that it is hot, and 130 if a driver has shut down due to overheating.


Log in to reply