Duet3 with SSRs for bed and enclosure heaters

  • Disclosure: I am a Duet noob and documentation on the Duet3 appears to still be evolving.

    I need assistance with how to wire SSRs for both bed and enclosure heater. I see plenty of posts on how to add SSRs with the Duet2, but unless I'm missing something, it's not translating to the Duet3. Plain and simple, I want to use AC for both the bed and the enclosure heater. What is the cleanest way to accomplish this? I don't need help with the SSR wiring - I just need assistance with what are the appropriate connections and the gCode to configure it. Thanks

  • There is no practical difference between the Duet 2 and 3 when it comes to the heaters. The difference lies in the Duet 3 needing to use RRF3 which changes the configuration by needing to define the pin before defining the heater.

    So the connections would be the same as for a Duet 2; you have a fixed positive voltage and a switched negative on the heater output, they can go 1:1 to the SSR input provided Vin on the Duet is within the input range of the SSR.

    As for the setup the online configuration should help with that, there are no special concessions to be made for an SSR if you control it with the DC from the heater output.

  • Bed, it is OK to just use the 12 or 24V output that would have gone to a bed heater, use that to drive the low side of an SSR.

    Configuration is perfectly standard (for V3) bed. The Duet literally does not know the SSR is there.

    ; Temperature sensors
    M308 S0 P"0.temp0" Y"thermistor" T100000 B3950 A"Bed" 
    M308 S1 P"1.temp0" Y"thermistor" T100000 B3950 A"HE1"
    M308 S2 P"1.temp1" Y"thermistor" T100000 B3950 A"HE2"
    M308 S3 P"2.temp0" Y"thermistor" T100000 B3950 A"HE3"
    M308 S4 P"2.temp1" Y"thermistor" T100000 B3950 A"HE4"
    ; Heaters
    M950 H0 C"0.out0" T0           ; Bed.  H = Heater 0, C is output for heater itself, T = Temperature sensor (defined above)
    M950 H1 C"1.out0" T1           ; Heater for extruder out tool 0
    M950 H2 C"1.out1" T2           ; Heater for extruder out tool 1
    M950 H3 C"2.out0" T3           ; Heater for extruder out tool 2
    M950 H4 C"2.out1" T4           ; Heater for extruder out tool 3
    ; Further setup for bed
    M143 H0 S130                                           ; set temperature limit for heater 0 to 130C
    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

    Here is a photo of how mine is wired. Note the 24V in to the leftmost connectors to drive the board itself, another set of 24V in in the middle to drive the "bed" (these are thick, but could have been thin, and/or jumper from the main in), and the very thin wires at the far right going to the Low Voltage side of the SSR. Polarity does matter. If you get it backwards, it won't hurt anything, it just won't work.


    Output side of the SSR should be controlling the "hot" side of a 110V (if in US) or either side of 220V (if elsewhere) "mains" (wall plug) circuit. GROUND YOUR FRAME.

  • And for a chamber heater, either use another heater out, or a GPIO out, your choice. Note that GPIO out will be 3.3V and most SSRs will do that... but a very few won't.

  • @Danal said in Duet3 with SSRs for bed and enclosure heaters:

    Bed, it is OK to just use the 12 or 24V output that would have gone to a bed heater, use that to drive the low side of an SSR.

    Thanks.. I get this approach for the bed heater, but thought it would be cleaner to use two other outputs. I think it all just clicked though when reviewing the M950 command in your config. Is there another gCode to associate the heaters to the bed, extruder, chamber, etc?

    edit - I now see "M140 H0" in your config..

  • I tend to think of it as "Define a bunch of stuff" and then "gather it up into a tool", when associating a heater and two fans and and extruder and...


    That doesn't really apply to things that are just "one thing", like the bed. You just define them, maybe one other statement to set thermostatic or a limit or something, and there they are.

    Or at least that's how my mind works.

    And, "cleaner" is a style thing that varies by individual. I personally think it is cleaner to use out0 for the heater. Because it is hardware set up to be the heater. Other people seem to want to avoid it like... well I won't use the traditional cliche.

    Anyway, Duet3 is somewhat like PERL - their motto is - "There is more than one way to do it"

  • @Danal thanks for the assist..!

Log in to reply