Fan0 & Extreme heat inaccuracies out of nowhere

  • Okay so I am running Duet WiFi on a triple C-BOT variant:
    *Bondtech QR bowden extruder
    *E3D V6 hotend
    *Keenovo heatbed 110v
    The printer has been relatively good, a constant tuning nightmare however with my previous extruder setup before I switched to Bondtech QR and bowden.
    Part of this upgrade was converting from my direct drive carriage to the Re-D bot x carriage. Installation went well, updated the config file as necessary for new Z-Probe position and extruder setup.

    First problem: Fan0, my part cooling fan, no longer responds to input.
    The weird part is that it has 22.0V at the connector when fan is set at 100%. Fan isn't turning though. Okay, So I switched the fan over to my SSR cooling fan which is FAN1. Fan works. Try 4 other 24v 40mm 2 wire fans on FAN0. Nothing works.


    Goes onto the configurator and starts from scratch with new config. FAN0 still doesn't work.
    Does it again, except sets up FAN1 as part cooling fan. This works, but FAN0 is no longer functional. Moved SSR fan to constant on and Part cooling fan to FAN1.

    One issue solved??? But why is it an issue. I don't see any burnt traces on the board.

    Now the real major problem. With new config I needed to re PID tune hotend and bed.
    Go through the setup like always and tune the hotend. It fails at 263…weird...never had issues on this machine. Also smelled very hot, thought it may have been just some residue on the new nozzle. Try tuning again, fails at 262 this time. Okay started digging around for IR thermoter, decided to tune the bed real quick. Set it for 100C. Pid tuning completes, however, I check the temperature and the bed is scorching hot, two thermometers read 160C even though duet says it is 100C. SO on both heaters, the Duet is way overheating. Please note I did not adjust or come close to touching the bed heater during installation of new carriage. wiring is still intact on E3D-V6.
    Room temperature both heaters read 22.6C

    Here is my config.g. The heat parameters are identical to my original setup.
    ; Configuration file for Duet WiFi (firmware version 1.17)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool on Mon Aug 07 2017 16:55:50 GMT-0400 (Eastern Standard Time)

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M555 P1 ; Set firmware compatibility to look like RepRapFirmare

    M667 S1 ; Select CoreXY mode
    M208 X-4 Y0 Z0 S1 ; Set axis minima
    M208 X320 Y290 Z450 S0 ; Set axis maxima

    ; Endstops
    M574 X1 Y2 Z0 S0 ; Define active low and unused microswitches
    M558 P4 X0 Y0 Z1 I1 H5 F120 T6000 ; Set Z probe type to switch, the axes for which it is used and the probe + travel speeds
    G31 P600 X0 Y72 Z1.290 ; Set Z probe trigger value, offset and trigger height
    M557 X25:285 Y25:285 S20 ; Define mesh grid

    ; Drives
    M569 P0 S0 ; Drive 0 goes backwards
    M569 P1 S0 ; Drive 1 goes backwards
    M569 P2 S1 ; Drive 2 goes forwards
    M569 P3 S1 ; Drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X100 Y100 Z400 E476.55 ; Set steps per mm
    M566 X1200 Y1200 Z600 E1200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X15000 Y15000 Z2700 E2700 ; Set maximum speeds (mm/min)
    M201 X3000 Y3000 Z1000 E10000 ; Set accelerations (mm/s^2)
    M906 X1500 Y1500 Z1680 E900 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Heaters
    M143 S295 ; Set maximum heater temperature to 295C
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M305 P0 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4725 C C0.0000000706 R4700 ; Set thermistor + ADC parameters for heater 1

    ; Tools
    M563 P0 D0 H1 F0:1 ; 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

    ; Network

    ; Fans
    M106 P0 S1 I0 F250 H0:1 T45 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P1 S0 I0 F100 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Custom settings are not configured

    ; Miscellaneous
    M501 ; Load saved parameters from non-volatile memory
    T0 ; Select first tool

  • administrators

    Which firmware version are you running? The tuning algorithm was changed between 1.17 and 1.18 and there is a further minor change in 1.19.

    If the bed is at 160C but the Duet shows 100C then either the thermistor parameters in your M305 P0 command are a long way off, or the thermistor is not in good thermal contact with the bed.

    If you are unable to control Fan 0 but the same fan works on other fan outputs, then most likely the Fan 0 mosfet has failed. This is normally because there was a short circuit at some point, assuming not is an ordinary brushless fan.

  • Ref the fan,

    I note that you are using PWM of 100 on P1 but PWM of 250 on P0. Fans are often marginal whether they work with PWM or not but as the fan works on P1 but not P0, I'd suggest you try changing the "F" value for P0 from 250 to 100.

    Ref the heater temperatures. A quick glance shows that you have an extra "C" on M305 for P1 - that might screw things up. IR thermometers are generally notoriously inaccurate - I'd believe the Duet reading rather than the IR thermometer but as I said, it may be out because of the extra C you have in M305.

    Ref the hot end tuning. How does it fail? What is the error message? If it failed to reach temperature, it could be the heater cartridge or the thermistor not reading correctly, or you have cooling fan running and blowing air onto the nozzle. Just spome ideas to check…...

  • Firmware is 1.18. I was going to update to 1.19 once it becomes official branch

    What confuses me is that if I connect a cable I use for voltage testing to the fan out pins and "turn the fan on", there is 22.0V which is where my Power supply is set. And I have tried PWM from 100-500 in increments of 50 when setting up originally.

    I deleted the extra C. that came in when I deleted the exponential notation and went to decimal last night. No difference. I used an IR thermometer on the silicone heatpad. But I wouldn't expect it to be that astronomically off. The hotend is "killed" because it fails to reach temperature after a couple of minutes. However, it now appears to be in the same situation as the heatbed, it is overheating as well. This explains why the hotend smells "hot" Hopefully thermistor isn't too badly damaged.
    I don't understand why this is happening though.

    When I run my first round of PID tuning I don't have the part cooling fans on. And I also run socks on my E3D. The heatsink cooling fan is mounted in the carriage and has a radiator duct that keeps it from blowing across the hot block and nozzle.
    I used the same setup when running the configurator, just had to adjust a few minor settings. Also the first time I tried to upload new config from configurator since manual adjustment of firmware codes wasn't working right (fan issues), I kept getting a json error code line 65. Redid the configurator identically and it took the upload. After this is when I started having heater issues. Like I said before, this machine has never once had a heating problem and has always been dead on accurate and steady in that regard.

  • administrators

    Is it a revision 1.0, 1.01 or 1.02 PCB?

    If it is 1.0 or 1.01, with power to the Duet off use a multimeter to measure the resistance between the VSSA pin on one of the thermistors and ground on one of the endstop connectors. It should be no more than 5 ohms. A higher resistance could make the thermistors under-read

    If it is 1.02, use a multimeter to measure the voltage between VSSA and ground when the board is operating. It should be no more than a few millivolts. A higher voltage could make the thermistors under-read.

    Another check you can do on the reading accuracy is to substitute a resistor of about 220 ohms for each thermistor, and see whether the temperature readings are close to the theoretical value for that resistance.

  • It is a 1.01 board. I measured the resistance to 3 ohms.
    I Installed one of my spare thermistors and tried again. Heater fails at 260 when pid tuning due to failing to reach target temperature.

  • administrators

    What was the target temperature? Did you increase the temperature limit using M143? You need to do that when using such a high target temperature. It's usual to pick a target temperature in the range 200C to 245C unless you intend to print high-temperature filaments.

  • Max temperature is 295.
    Target was 285 when it failed at 260.
    I tried again with target of 250 (usual temperature for the brand of petg I typically use) and it still fails before reaching temperature.

  • administrators

    1. What M303 command did you use when trying to tune the hot end, and what was the failure message?

    2. If you suspect that the temperatures are being misread, then you can check that the electronics is working correctly by substituting fixed resistors for the thermistors.

    3. It's just possible that you have some leakage between the hot end 12V/24V connections and the thermistor, but not enough to blow the VSSA fuse. Here are two ways to check this out:

    a) Use a multimeter to measure the voltage between VSSA and ground while the printer is hot and the heater is operating. It should be no more than 10mV.

    b) Connect both VIN and USB power, heat up the hot end, and note the temperature reading. Then remove VIN power. The temperature reading should initially be unchanged, but will start falling because power to the heater has been removed. If it immediately drops sharply instead, then there is a leakage problem.

  • M303 h1 s250
    Failure just says "auto tune cancelled because heater failed to reach target temperature"

  • administrators

    So either the temperature is under-reading, or the heater is under-powered. What type of hot end do you have? Do you have a silicone sock over the heater block? Did you have the print cooling fan or off during tuning?

  • I am running a genuine E3D-V6 24V 30W hotend with the blue silicone socks. I am not running the part cooling fans while doing intial tuning. The heatsink cooling fan is mounted in a ducted radiator, which rules out fan wash over the hot block. I have tried tuning with and without the socks as well.
    Printer has about 500 hours print time on it right now.

  • administrators

    It sounds to me that your temperature readings are inaccurate then, as you suspected from the start. See my response 4 posts up for suggestions.

  • Okay so I got another board from Filastruder and completely rewired the machine with shielded cables and updated some of the routing since I couldn't afford to have extreme downtime on the machine.

    Board works great but still having temperature issues. Is it possible that the configurator is working incorrectly? I am suspecting its a config issue but I am not sure where to look at this point. Also installed brand new 30w E3D heater cartridge and thermistor just to be safe.

    I print in PETG typically, what I am noticing is that it is starting to ooze from the hotend at a mere temperature of 185-195 now while heating up. Temperature has to be off. Typically print at 250, now I lower it to 240 and it still seems way too hot (soooo much oozing everywhere). Bed still reading over temperature as well.

    Looking at my old board, I don't see/notice any burnt traces so I think it may still be good except for the issues I was having with FAN0. May put that on my Rostock MAX V3 which I still haven't gotten to calibrate right (you commented on my troubleshoot over there about springs being too tight DC42)

  • administrators

    The way to check both the board and your calibration settings is to substitute fixed resistors for the thermistors. Compare the reading you get with the temperature at which the thermistor is supposed to have that resistance, as shown on the resistance-temperature chart provided by the manufacturer.

    Another test worth doing is to heat them both up, then unplug one of the thermistors and see whether the reading of the other is affected significantly, in case leakage to VSSA is altering the readings. The heater whose thermistor you have disconnected should fault within a few seconds, but be ready to turn it off if it doesn't.

    Regarding the PETG, are you certain that whatever other electronics you print that filament with was giving accurate temperature readings?

  • I'll have to see if I can dig up any resistors from around the shop, I think all that I have will just read room temperature though since they were intended for tricking a RAMPs board into thinking there was a heat bed on the CNC.

    I have 6 Prusa Style machines I built for producing functional parts for customers that run on mini Rambo 1.3. These have run thousands of hours but their settings completely differ from my CoreXY

    The Rostock is completely stock with less than 5 hours of print time since it can't calibrate.

    The flashforge pretty much sits still except when it needs to print parts for to fix/mod the other machines.

    My coreXY C-BOT derivative is my main machine for prototyping and personal production. It has only ever had the DUET WIFI as electronics. So all settings I mention are what used to be run on the machine with DUET. I've now installed two separate DUET WIFI boards. Both overdo the temperature (although the first board used to not until recently) The second board at least has all fans working which is great. I've replaced mechanical parts 3 times now on the hotend. At that point I would assume something must be off with my config. I redid the settings for both heaters on the configurator, this time, I used the Stein method. For heater 1 (should be hotend?) I chose the preset for E3D-V6. For the bed I used Keenovo's r–t table to the best of my knowledge. with temp1 @25=100,000 //temp 2 @50 =35899// temp 3@100 = 6710
    The bed still goes over temperature but only by about 35 at 100C and 20 at 80C. The hotend I haven't measured, but, based on print results it is printing much hotter at 240 now then it used to print when I set it to 250.

    Side note: what kind of retract/pressure advance is being running of bowdens of say 500mm with bondtech QR and E3D-V6. I'm currently using 3.5mm @50mm/s with M572 S0.1...doesn't seem to be enough I see you mentioned once that retract should be 1% of bowden length +1mm which would put me at about 6mm for retract which seems a bit much for the E3d-V6.

    I have also tried 3 different rolls of PETG to check if maybe I had a bad roll. Same results.

    Oh and seriously thanks for the help and patience!

  • administrators

    Which firmware version are you using, and what are the exact M305 commands you are sending? Have you tried running M305 P1 and M305 P2 with no other parameters, to check that it is really using the thermistor parameters you have supplied?

    Are you using the same hot end on the new machine and your old ones? different hot end designs need different printing temperatures.

    I still think there is a possibility that leakage from your heater connections to one of your thermistors is causing the problem. That would account for why it used to read correctly. You could measure the voltage difference between VSSA and ground to check that. It should be less than 5mV.

  • Firmware is 1.18 release on 04/09/2017. I am upgrading to the new 1.19 release currently.
    ; Heaters
    M143 S290 ; Set maximum heater temperature to 290C
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M305 P0 T100000 B4408 C7.271094e-8 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 1

    Here is config override:
    ; Heater model parameters
    M307 H0 A101.8 C152.3 D5.0 S1.00 B0
    M307 H1 A271.6 C123.4 D4.0 S1.00 B0

    M305 P0&P1 results
    M305 P0
    T:100000.0 B:4408.0 C:7.27e-08 R:4700.0 L:0 H:0 X:0
    M305 P1
    T:100000.0 B:4725.0 C:7.06e-08 R:4700.0 L:0 H:0 X:1

    On the bed parameters I believe it is supposed to be a B value of 3950, I am just inputting the data from Keenovo's R–T spreadsheet for 25, 50, and 100 and that is what it spits out

    Heatbed is a 110v 300mmx300mm keenovo
    hotend is E3D-V6 [note: this is the only hotend I run on all my machines(except Rostock since it hasn't been commissioned to work stock even)] So hotends are identical across all machines.
    I am wondering how there could be a leakage with an all new Board, shielded wiring, and spare hotend that I installed this past weekend? I did do the voltage test as suggested on the old board but forgot to post. Just checked new board (3.9-4.1mV) while at 200C.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.