I run half a dozen Duet but one of them started to give me a lot of headaches and only this one (unique hardware + configuration so no other to compare to).

issue: tool head 3 heater is always enabled. The software detects a thermal runaway but the heater stays enabled. The only option to stop the machine from catching fire is to remove the main power.

Hardware:

  • Duet 2 wifi
  • Due5X

troubleshooting done (hardware):

  • measuring the mosfets => good
  • checking the driver for obvious issues with a multimeter => no issue found
  • moving toolheads hotends around. Issue persists on #3 spot (4th toolhead) so it is unrelated to the tool head. disconnecting it entirely also causes the heater to stay on
  • removing the SD-card => issue is gone.
  • sometimes it works like it should. Most of the time it doesn’t.
  • on this particular unit there were some other minor anomalies regarding the WIFI earlier (wouldn’t connect to the network) but those fixed themselves after a few rounds of resetting the wifi module, adding it to the wifi network again, waiting a few days for it fail once more.

**TL;DR Is my assumption correct that this indicated an issue with the Firmware from Duet which isn’t just on this device but also on the newer Duet 3?

Did anybody has run into a similar issue and was able to resolve it?

In the wider picture: Is every duet product unsafe?** This is an older Duet 2 but it runs the same/similar firmware as the current generation Duet 3. So one of the big questions is if all of the Duet products are unsafe. Would be bad as this has been my controller of choice meaning a lot of work to replace all of them.

Btw. If you buy a duet: don’t expect ANY support from the manufacturer.

Here is the main config file:

spoiler

; Configurat; Configuration file for Duet WiFi / Ethernet ; executed by the firmware on start-up

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

; Network ; Read https://duet3d.dozuki.com/Wiki/Gcode#Section_M587_Add_WiFi_host_network_to_remembered_list_or_list_remembered_networks M550 P"ToolChanger" ; Set machine name M552 S1 ; Enable Networking M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S1 ; Enable Telnet M667 S1 ; Select CoreXY mode

; Endstops M574 X1 Y1 S3 ; Set X / Y endstop stall detection M574 Z1 S2 ; Set Z endstop probe M558 C"zstop" P8 X0 Y0 Z2 H3 F360 I0 T20000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds G31 P200 X0 Y0 Z-0.10 ; Set Z probe trigger value, offset and trigger height M557 X10:290 Y20:180 S20 ; Define mesh grid

; Drive direction M569 P0 S0 ; Drive 0 X M569 P1 S0 ; Drive 1 Y M569 P2 S1 ; Drive 2 Z M569 P3 S0 ; Drive 3 E0 M569 P4 S1 ; Drive 4 E1 M569 P5 S1 ; Drive 5 E2 M569 P6 S1 ; Drive 6 E3 M569 P7 S0 ; Drive 7 COUPLER M569 P8 S0 ; Drive 8 UNUSED M569 P9 S0 ; Drive 9 UNUSED

M584 X0 Y1 Z2 C7 E3:4:5:6 ; Apply custom drive mapping M208 X-35:328.5 Y-49:243 Z0:300 C0:260 S0 ; Set axis maxima & minima M350 C8 I0 ; Configure microstepping without interpolation M350 X16 Y16 Z16 E16:16:16:16 I1 ; Configure microstepping with interpolation M92 X100 Y100 Z1600 C100 E655:655:655:655 ; Set steps per mm M566 X400 Y400 Z30 C2 E300:300:300:300 ; Set maximum instantaneous speed changes (mm/min) “was 2 before” M203 X35000 Y35000 Z1200 C5000 E3600:3600:3600:3600 ; Set maximum speeds (mm/min) M201 X6000 Y6000 Z400 C400 E600:600:600:600 ; Set accelerations (mm/s^2) M906 X2000 Y2000 Z1330 C400 E500:500:500:600 I30 ; Set motor currents (mA) and motor idle factor in percent M84 S120 ; Set idle timeout

;Stall Detection M915 C S5 F0 H200 ; Coupler

;Stall Detection M915 X Y S3 F0 H400 R2 ; X / Y Axes ;M915 X Y S5 F0 H400 ; OLD X / Y Axes

; Heaters M308 S0 P"bedtemp" Y"thermistor" A"Bed" T100000 B4725 C7.06e-8 ; Set thermistor M950 H0 C"bedheat" T0 ; Bed heater M140 H0 ; Add heater to bed after RRF3.01 RC10 M143 H0 S200 ; Set temperature limit for heater 0 to 225C

M308 S1 P"e0temp" Y"thermistor" A"T0" T500000 B4723 C1.19622e-7 ; Set thermistor M950 H1 C"e0heat" T1 ; Extruder 0 heater M143 H1 S350 ; Set temperature limit for heater 1 to 300C

M308 S2 P"e1temp" Y"thermistor" A"T1" T100000 B4725 C7.06e-8 ; Set thermistor M950 H2 C"e1heat" T2 ; Extruder 0 heater M143 H2 S300 ; Set temperature limit for heater 2 to 300C

M308 S3 P"e2temp" Y"thermistor" A"T2" T100000 B4725 C7.06e-8 ; Set thermistor M950 H3 C"duex.e2heat" T3 ; Extruder 0 heater M143 H3 S300 ; Set temperature limit for heater 3 to 300C

M308 S4 P"e3temp" Y"thermistor" A"T3" T100000 B4725 C7.06e-8 ; Set thermistor M950 H4 C"duex.e3heat" T4 ; Extruder 0 heater M143 H4 S300 ; Set temperature limit for heater 4 to 300C

; Tools M563 P0 S"T0" D0 H1 F2 ; Define tool 0 G10 P0 X0 Y0 Z0 ; Reset tool 0 axis offsets G10 P0 R0 S0 ; Reset initial tool 0 active and standby temperatures to 0C

M563 P1 S"T1" D1 H2 F4 ; Define tool 1 G10 P1 X0 Y0 Z0 ; Reset tool 1 axis offsets G10 P1 R0 S0 ; Reset initial tool 1 active and standby temperatures to 0C

M563 P2 S"T2" D2 H3 F6 ; Define tool 2 G10 P2 X0 Y0 Z0 ; Reset tool 2 axis offsets G10 P2 R0 S0 ; Reset initial tool 2 active and standby temperatures to 0C

M563 P3 S"T3" D3 H4 F8 ; Define tool 3 G10 P3 X0 Y0 Z0 ; Reset tool 3 axis offsets G10 P3 R0 S0 ; Reset initial tool 3 active and standby temperatures to 0C

; Fans

M950 F1 C"fan1" M950 F2 C"fan2" M950 F3 C"duex.fan3" M950 F4 C"duex.fan4" M950 F5 C"duex.fan5" M950 F6 C"duex.fan6" M950 F7 C"duex.fan7" M950 F8 C"duex.fan8"

M106 P0 S0 ; UNUSED M106 P1 S255 H1 T70 ; T0 HE M106 P2 S0 ; T0 PCF M106 P3 S255 H2 T70 ; T1 HE M106 P4 S0 ; T1 PCF M106 P5 S255 H3 T70 ; T2 HE M106 P6 S0 ; T2 PCF M106 P7 S255 H4 T70 ; T3 HE M106 P8 S0 ; T3 PCF

M593 F42.2 ; cancel ringing at 50Hz (https://forum.e3d-online.com/threads/accelerometer-and-resonance-measurements-of-the-motion-system.3445/) ;M376 H15 ; bed compensation taper

;tool offsets ; !ESTIMATED! offsets for: ; V6-tool: X-9 Y39 Z-5 ; Volcano-tool: X-9 Y39 Z-13.5 ; Hemera-tool: X-37.5 Y43.5 Z-6

G10 P0 X-9 Y39 Z-5.0 ; T0 G10 P1 X-9 Y38.7 Z-4.7 ; T1 G10 P2 X-8.9 Y38.5 Z-4.8 ; T2 G10 P3 X-9.1 Y38.5 Z-4.7 ; T3

;deselect tools T-1

M572 D0 S0.02 ; pressure advance T0 M572 D1 S0.02 ; pressure advance T1 M572 D2 S0.02 ; pressure advance T2 M572 D3 S0.02 ; pressure advance T3 M575 P1 S1 B57600 M501; load config-override.g

config-overwrite:

spoiler

; config-override.g file generated in response to M500 at 2021-04-13 12:07 ; This is a system-generated file - do not edit ; Heater model parameters M307 H0 R1.331 C160.969:160.969 D2.79 S1.00 V24.4 B0 M307 H1 R2.634 C271.153:235.156 D6.07 S1.00 V24.3 B0 M307 H2 R1.953 C229.435:178.815 D5.00 S1.00 V24.3 B0 M307 H3 R1.858 C222.604:195.090 D5.31 S1.00 V24.4 B0 M307 H4 R1.612 C251.412:217.040 D7.48 S1.00 V24.4 B0 ; Workplace coordinates G10 L2 P1 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P2 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 C0.00 G10 L2 P9 X0.00 Y0.00 Z0.00 C0.00 M486 S-1

  • EmilieEvansOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    21 hours ago

    here is the schematic: https://github.com/Duet3D/Duet-2-Hardware/blob/master/Duet2/Duet2v1.06/Duet2_Schematic_v1.06.pdf

    https://github.com/Duet3D/Duet-2-Hardware/blob/master/Duet_Expansion/Duex5v0.9a/Duex_Schematic_v0.9a.pdf

    There is a 74HCT02 which can do up to 20mA so no pulldown resistor is required.

    Not looking forward to cut traces on it for troubleshooting. It is an original board (no clone) so it should be exactly the parts in this schematic assuming the linked revision matches the board revision.

    I would troubleshoot that hardware first

    Was my first instinct as well as I didn’t do any firmware updates prior.

    The continuity test doesn’t show a short and the test Duet recommended in one of the documentation was to remove the SD-card. If the issue stays it is a hardware issue. If it is “gone” it isn’t and me removing the SD-card causes this behavior to stop further indicating a software issue. Reading the schematic right now for the first time and I am schoked that there is no ESD-protection at all. Nothing. Just a straight connection from the mosfet to the output… what the hell where they thinking …

    Would need to have an in-depth look at the schematic but likely I can’t probe the MOSFET gate voltages in the circuit.

    What I could do is probe the signal/heater enable signal from the MCU.

    • j4k3@lemmy.worldM
      link
      fedilink
      English
      arrow-up
      1
      ·
      20 hours ago

      Removing the SD card shows whether there is a burned or shorted connection somewhere, but does not show if a gate is staying high after it is triggered. HCT logic is translating CMOS threshold voltages on the input to TTL levels at the output. Still while the window of where bit logic high and low are specified, the actual logic zero voltage is relatively high. You also have to remember that all chip manufacturers have an error rate distribution curve and send bad parts or parts that are right on the edge of acceptable. It is quite possible that you happened to get a FET with a low gate threshold voltage and a logic gate with abnormally high logic zero threshold. I would just tack on a through hole resistor between gate and source similar to how Fan 2 MOSFET control is configured and see if that solves the issue.

      I’m not effectively able to help with the software, so this may still be a red herring, but I do not think removing the SD card effectively addresses the question of whether the gate is driven low correctly.

      • EmilieEvansOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        19 hours ago

        Will report back tomorrow.

        One more information: It happens immediately after turning the printer on. the heater output doesn’t need to be enabled in the control interface or by g-code.

        • j4k3@lemmy.worldM
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          6 hours ago

          But it doesn’t happen when plugged in and the thing is powered but no SD card? If that is the case, it is likely software… If you take out the SD card you could use a 4k7 resistor between 5v and the gate of the MOSFET to test triggering the FET and if it then turns off. A 4k7 resistor at 5v is just over 10mA and shouldn’t hurt anything.

          5v logic triggered MOSFETs are tricky in practice when designing circuits. Back when I was getting stuff from AliEx, I got a bunch of overburden FETs that were supposed to be logic level gates and only around a quarter actually worked right. It is to be expected and they were like a penny each. Many work at slightly higher voltages of 6-7 volts though. They are often labeled like old part numbers but they don’t have the same specifications as the old parts. Things like this have become kinda ubiquitous and very hard to track down.