Most 3D printer firmware includes some sort of thermal runaway protection, a feature that monitors the heaters and shuts the printer down if it notices something gone wrong. You should always enable the thermal runaway protection in the firmware.
However, most printers use MOSFETs to switch power to the heating element. Unfortunately, when MOSFETs fail, they usually fail closed (i.e. conducting). This means that, even if the firmware detects something has gone wrong, it won't be able to do anything about it. Solid State Relays (SSRs) can fail in the same way. This can be dangerous if you have a powerful high wattage (mains-powered) heated bed.
This device provides extra protection against such failure by monitoring the temperature independently and control the printer power with its own thermistor. It is primarily designed for monitoring the heated bed, especially those powered by mains voltage. It also can be used for monitoring other parts of the printer that heat is of concern, such as the hotend or the step motor drivers to prevent hardware damage or fire.
There are many sensors can be used for measuring the temperature. In the design, the same type of 100K 3950 NTC thermistor as that is commonly found on 3D printers is used. Therefore the device can be also used as a thermistor tester.
Parts are relatively simple. Below is the list of main parts:
1 × Arduino UNO or Nano (I used a Nano with expansion board)
1 × Serial LCD 1602 16x2 Module With IIC/I2C Adapter
1 x KY040 Rotary Encoder module
1 x 5V 1 Channel Level Trigger Optocoupler Relay Module For Arduino
1 × 5V Active Buzzer
1 x NTC 3950 100K Thermistor
1 x 100K resistor
1 × 3 Pin ICE320 C14 Male Power Socket 15A 250V (optional)
1 x 3 Pin US Power Socket Plug Panel Mount 15A 125V (Or other types of power socket for the countries you are in, optional)
1 x 12V power supply (optional). I installed a small PSU salvaged from a power adapter of a wireless router inside the Watchdog box. Alternatively, you can use an external power brick for the Arduino board.
Dupont jumper wires or 16-18 AWG stranded wires, several.
Additionally, you'll need some wires and screws, as well as access to a 3D printer to print the case, and a soldering iron.
I printed all the parts use PLA with 25% infill. The STL files are attached.
Wiring the rest of the circuit according to the wiring schematic as well as the comments in the Arduino sketch. You can use either Dupont jumper wires or solder the wires directly to the pin headers. When hooking everything together be sure to use enough wire to allow the electronics to fit into the enclosure. Note the Vref is connected to 3.3V for better precision.
You can use the power socket and plug as shown in the picture. Alternatively, the 3D Printer Thermal Watchdog can be spliced into the 3D printer power wire. Use caution when working with mains voltage.
The design uses normally-open contacts of power relay for extra protection. The power will only be supplied when there is no thermal run-away detected, and the Watchdog is powered up. Once thermal runaway is detected, the power will not resume unless the Watchdog is manually reset, even after power loss.
1. Add the LiquidCrystal_I2C and EEPROM library to your Arduino IDE if you haven't done so.
2. Connect your Arduino to the computer and install the sketch.
- Once powered up, the screen will display the current temperature and the maximum temperature that has been observed.
- The screen also will display the current temperature target in the setting.
- To clear the maximum temperature, press the knob on the rotary encoder.
- Set the new target temperature by turning the knob on the rotary encoder, press the knob to save the setting.
- If the thermal runaway is detected, the Watchdog will shut off the printer power and generate alarm sound for 1 minute. The power will remain off until the Watchdog is manually reset.
- To reset the thermal runaway alarm and restore the printer power, press the knob on the rotary encoder.
- All the information including maximum temperature, target setting, and alarm status is saved in EEPROM against power loss.
No preview (download only).