Advanced Printer Control Aims To Stop Idle Waste

3D printers are capable of creating complex geometries with a minimum of fuss, but one of the tradeoffs is the long period of time it takes to print a part. Often, printers are left to run for many hours with a minimum of supervision to complete their tasks. This can leave printers idling for long periods of time after their work is finished. Noting this, [TheGrim] put together the Advanced Printer Control.

The aim of the APC is to monitor 3D printers, and shut them off when their work is complete. The aim is to avoid leaving printers running for hours after their prints are finished, which causes needless wear on fans and screens which can have a limited life. This is achieved by putting an ESP8266 in charge of the printer’s AC power supply, via a triac. It measures the current drawn by the printer when idling and in use to set a baseline. Then, whenever the printer drops back to idle levels, a timer begins. When the timer runs out, the printer is switched off. There’s also an option to automatically trigger shutdown with an I/O pin, too.

It’s a project that aims to extend printer life and save power, too. Of course, if you’re really worried about power draw, you could use a solar powered printer instead. If you’ve got your own printer controller hacks, be sure to drop us a line.

21 thoughts on “Advanced Printer Control Aims To Stop Idle Waste

  1. An interesting idea, but can’t say I’ve ever been too concerned about the fans in my printer being overused. Come to think of it, they stop on their own after awhile of not printing. So not really sure what this project is trying to accomplish.

  2. Hmm.. if you declare constants at the top of your code, please use them in your switch/case and if/else statements rather than magic numbers.
    It will make the code easier to maintain, especially when you come back to it months later and decide that you need to add additional states/logic paths Otherwise, this will come back to bite you on the ass,as it has me on many occasions.

    It would be nice if the printer controllers had this sort of feature built into them, rather than us having to build something additional to stick on the side of the printer. But that’d probably make the printers a lot more expensive. Maybe some of the (higher end) controllers already have this feature and I haven’t noticed?

    Another interesting take on an issue that crops up with many 3D printers, though.
    Good project.

  3. Why not just update the 3D printer’s code to do this “idle” processing (most are open source)? Seems simple enough to set a flag and start an idle timer that “cleans up” when idle for a preset (& adjustable) time. Any action to start, continue, or restart a print will start the process over.

    1. This is a one size fits all solution that will work for all printers, rather than a solution that has to be customized for each one. Ideally 3d printer manufacturers would put energy saving features in their printers, but people also want cheap 3d printers…

  4. problem i have with my aging printrbot is that if im not there to pull the filament right as the print ends, it usually gets stuck in the hot end and another hour long rebuild and recalibration is in order to clear it.

    or maybe i can just add some g-code to retract the filament when its done. but i worry about it breaking it in the hot end or gumming up feed wheels or whatever they are called.

    1. If your filament overheats in the hotend, your fans shut off too soon, i.e. before the hotend cools down. Sounds like your slicer does something wrong. Retracting the filament in the g-code is just symptom treatment, you should really look for the reason it gets stuck at all, like the fans shutting off too soon, or the heat staying on.

    2. You need better heat separation. Put an always-on fan pointed above the heat break. I use a little 10 (or is it 15mm?) model. Cover your hot block with silicone or ceramic tape or some other insulator.

  5. Or you could just put a switch at the end of the bed travel so that when it sits in its “finished” position for a while you know it’s done. Some printers (like ultimakers etc that lower the bed when done) you could just relocate the power switch so it hits it for you.

  6. I am actually working on a project to do this with an octoprint / orange pi / relay after I had a hotend MOSFET on my control board fail in the permanently on state after a print finished leading to a VERY hot end.

  7. That’s definitely an advantage to a printer which uses an ATX supply. Just add M81 to the end of the post-print script in your slicer’s config.

    I’ll miss that when I finally get around to upgrading to 24V.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.