Project in progress
3D Printer Power Controller and Fault Monitor

3D Printer Power Controller and Fault Monitor © GPL3+

A 3D printer power controller using the Arduino 101 and Visual Studio app to Monitor and cut power in the event of an issue

  • 7 respects

Components and supplies

Ph abx00005 iso (1) bavevgguw1
Arduino 101
DS18B20 Temperature Sensor
MQ-2 Gas Sensor
Mfr 25fbf52 4k75 sml
Resistor 4.75k ohm
11026 02
Jumper wires (generic)
12002 04
Breadboard (generic)
Relay (generic)

Apps and online services

About this project

Does pretty much what it says in the name. I use my printer quite a bit, and I cannot constantly monitor large prints as they can take hours. I started with the idea that I could remotely control the power to the printer to turn it off and on after a print or just before so I could start printing if I wasn't nearby. I then thought, maybe I should include a thermometer to measure the ambient temperature, and what if I had motion sensing capability to sense if the printer was actually moving.

I had read stories of printers overheating due to failed parts or an issue printing and nearly catching fire. If the printer isn't moving while printing I'd like to know, if the temperature is too high, I'd like to know and if there is any smoke, I'd really like to know! A cut off might also be useful, so how about if any of those things are detected that power is automatically cut off?

As I use a windows 10 computer and Repetier-Server to control my printer I started writing a Visual Studio application to control the printer and use the API to communicate with Repetier-Server to receive the printer's status periodically. Using this information I could tell when the printer was printing, how far it was into printing, how much was left, etc.

I connected an Arduino 101 to the computer and connected it to Visual Studio using the com ports, this way I could communicate with the Arduino, tell it to turn on/off a relay, receive temperature, motion and smoke detection. I connected a relay to the Arduino and connected that to the printer's power source. I wired up a perf board with a 4k7 Resitor and an Dallas 18B20 temperature sensor and an MQ-2 smoke sensor to the Arduino. I also connected a button to the arduino, which when pushed, will turn on the power to the printer as a manual control.

The Visual Studio app polls the Arduino once a second for information, receiving back whether the printer is on/off, if it is moving, the temperature and if any smoke has been detected. It also polls Repetier-Server every 3 seconds. First it receives basic information, names of printers etc. Once a printer is selected it then asks for basic printing information about that printer which is then displayed within the main form of the app.

If a checkbox to monitor movement has been ticked, the application monitors the printer status and once a print starts it waits for 5 minutes (for the printer to heat up) and then if the Arduino detects no motion before the printer has finished, it cuts power. Another checkbox indicates to the application if temperature cut off should be enabled, if the ambient temperature goes over a defined amount, the Arduino cuts power. And finally if any smoke is detected at any time, it cuts power.

The application works in both server mode (directly connected to the Arduino) and client mode (the application connects to another copy of the application running in server mode) so everything can be monitored and controlled remotely.

It's a little rough around the edges as I ran short on time for debugging and testing everything but the program works.  I added in a PHP page but it proved to complicated to add.  I was also working on a filament detector and connecting over Bluetooth but time proved a problem.


3D Printer Project and Sketch
Visual Studio project to communicate with Arduino via Serial and Printer Software via TCP


Schematic and Diagram
open in Fritzing
ignore the MQ3 label on the gas sensor, its an MQ2 you need for smoke detection!
3dprintermonitor bb lwjpv3h7e7
3dprintermonitor schem bpamby3zyz


Similar projects you might like

3D Printer Fire Safety

Project tutorial by Miles Nash

  • 46 respects

RepRap 3-Dimentional Additive Manufacturing Printer with IOT

Project showcase by Team Tiny Ants

  • 30 respects

Digital 3D Printer Filament Counter Using PS/2 Mouse

Project in progress by ArtSuzhou

  • 43 respects

3D Printer Filament Monitor for Arduino

Project showcase by Enrico Miglino

  • 23 respects

How to Make a Big 3D Printer at Home Using Arduino

Project tutorial by Desi Engineer

  • 263 respects

3D Controller Bot

Project tutorial by 4 developers

  • 1 comment
  • 54 respects
Add projectSign up / Login