There is an underlying problem to one of the safety features of the Klipper thermal shutdown - most mosfets and SSR's have a tendency to fail closed (current is being passed). That means that if an SSR fails, even if Klipper shuts down, there is still 100% power going to the heated bed. I have assembled what I think is a solution to the issue that uses a mechanical relay as a safety measure.
Couple of caveats / design choices:
Configure the Pi as an MCU as described in the Klipper docs.
All that is needed in Klipper is this section of configuration:
When Klipper is in shutdown for any reason, the relays are turned off and the heaters cannot be powered regardless of the mosfets or SSR. But connection is maintained to the MCUs so restarting Klipper is easy.
I'll update this when I have some time to add pictures and more clarification.
Couple of caveats / design choices:
- I wanted to ensure that even if Klipper went into shutdown all cooling fans would keep running. This means keeping power to the MCU(s).
- This does not work with MCU-based toolhead boards like HUVUD, EBB36, etc since the heater control is at the toolhead.
- This is run entirely with Klipper. It can also be controlled with Moonraker.
Configure the Pi as an MCU as described in the Klipper docs.
All that is needed in Klipper is this section of configuration:
Code:
[mcu host]
serial: /tmp/klipper_host_mcu
[output_pin hotend_heater_safe]
pin: host:gpio5
pwm: False
value: 1
shutdown_value: 0
[output_pin bed_heater_safe]
pin: host:gpio6
pwm: False
value: 1
shutdown_value: 0
When Klipper is in shutdown for any reason, the relays are turned off and the heaters cannot be powered regardless of the mosfets or SSR. But connection is maintained to the MCUs so restarting Klipper is easy.
I'll update this when I have some time to add pictures and more clarification.