Octoprint is a household name for anyone into 3D printing and anyone regularly reading Hackaday. Described by creator Gina Häußge as “the snappy web interface for your 3D printer”, Octoprint allows you to control effectively any desktop 3D printer over the local network or Internet. It even has webcam support so you can watch your printer while it works, meaning you can finally put that video baby monitor back into the crib with Junior.
While the core functionality of Octoprint is fantastic alone, its true power is unlocked through the plugin system and the community that’s sprung up around it. With plugins, Octoprint can do everything from control RGB light strips in your printer’s enclosure to sending status messages via Discord. One particularly popular plugin that has been making the rounds lately is Octolapse by [FormerLurker]. This plugin provides a comprehensive intelligent system for creating time-lapse videos of prints.
What does that mean? Well, instead of simply taking a picture every few seconds like you’d do traditionally, Octolapse actually keeps track of the printer’s motions while its running. It can then take a picture at the opportune moment to create a number of user-selected effects. More importantly, it can even take control of the printer directly; moving the hotend away from the print before taking a picture. The effect is that the print simply “grows” out of the bed.
I thought it would be interesting to take a closer look at Octolapse and see just what it takes to create one of those awesome time-lapse videos. It turned out to be somewhat trickier than I anticipated, but the end results are so fantastic I’d say it’s a technique worth mastering.
OctoPrint is arguably the ultimate tool for remote 3D printer control and monitoring. Whether you simply want a way to send G-Code to your printer without it being physically connected to your computer or you want to be able to monitor a print from your phone while at work, OctoPrint is what you’re looking for. The core software itself is fantastic, and the community that has sprung up around the development of OctoPrint plugins has done an incredible job expanding the basic functionality into some very impressive new territory.
But all that is on the software side; you still need to run OctoPrint on something. Technically speaking, OctoPrint could run on more or less anything you have lying around the workshop. It’s cross platform and doesn’t need anything more exotic than a free USB port to connect to the printer, and people have run it on everything from disused Windows desktops to cheap Android smartphones. But for many, the true “home” of OctoPrint is the Raspberry Pi.
But while the Raspberry Pi is more than capable of controlling a 3D printer in real-time, there has always been some debate about its suitability for slicing STL files. Even on a desktop computer, it can sometimes be a time consuming chore to take an STL file and process it down to the raw G-Code file that will command the printer’s movements.
In an effort to quantify the slicing performance on the Raspberry Pi, I thought it would be interesting to do a head-to-head slicing comparison between the Pi Zero, the ever popular Pi 3, and the newest Pi 3 B+.
Most time-lapse videos of 3D prints show a steadily growing print with a crazy blur of machine movement everywhere else. This is because an image is captured at a regular time interval, regardless of what’s physically going on with the machine. But what if images were captured at consistent machine positions instead? [FormerLurker]’s Octolapse plugin for OctoPrint came out of beta recently and does exactly that, and the results are striking. Because OctoPrint knows where a 3D printer’s print head is at all times, it’s possible for a plugin to use this information to create time-lapse videos where the print head position is consistent instead of a crazy blur, or even have the print head absent from the shot altogether.
[FormerLurker] had originally created stabilized time lapses by hand editing G-code, which had great results but was inefficient and time-consuming. This plugin is the result of his work at automating and enhancing the process, and is also his first serious open source programming project. We’ve covered upgrading a 3D printer with OctoPrint before, and the plugins functionality of OctoPrint means features can be added independently from the core system, which itself largely remains a one-woman effort by creator and maintainer [Gina Häußge].
Not too long ago I took the plunge into the world of OctoPrint by shoehorning a Raspberry Pi Zero into a PrintrBot Play, and I have to say, the results were quite impressive. OctoPrint allows you to run your 3D printer untethered from your computer, but without all the downsides of printing off of an SD card. Generally running off of a Raspberry Pi, OctoPrint serves up a very capable web interface that gives you full control over slicing and printing from essentially any device with a modern browser.
That’s all well and good if you’ve got your laptop with you, or you’re sitting at your desktop. But what if you’re out of the house? Or maybe out in the garage where you don’t have a computer setup? OctoPrint is still happily serving up status information and a control interface, you just don’t have a computer to access it. Luckily, there are options for just that scenario.
In this post we’re going to take a look at a couple of options for controlling and monitoring OctoPrint from your mobile device, which can help truly realize its potential. Personally I have an incredible amount of anxiety when leaving a 3D printer running a long job, and in the past I’ve found myself checking every 10 minutes or so to see if it was done. Now that I can just glance at my phone and see an ETA along with status information about the machine, it’s given me the confidence to run increasingly longer and complex prints. Continue reading “Controlling OctoPrint on the Go”→
Even still, I never personally “got” OctoPrint. I was happy enough with my single printer connected to my computer and controlled directly from my slicer over USB. The majority of the things I print are of my own design, so when setting up the printer it only seemed logical that I would have it connected to the machine I’d be doing my designing on. If I’m sitting at my computer, I just need to rotate my chair to the right and I’m at my printer. What do I need to control the thing over WiFi for?
But things got tricky when I wanted to set up a second printer to help with speeding up larger projects. I couldn’t control them both from the same machine, and while I could print from SD on the second printer if I really had to, the idea seemed painfully antiquated. It would be like when Scotty tried talking into the computer’s mouse in “Voyage Home”. Whether I “got it” or not, I was about to dive headfirst into the world of OctoPrint.
Since the first desktop 3D printers, people have been trying to figure out a way to manage desktop 3D printers and turn them into tiny little automated factories. One of the first efforts was a conveyor belt build plate that was successfully used by MakerBot until it wasn’t anymore. Octoprint has been a boon for anyone who wants to manage a few printers, but that’s only half the solution.
For his Hackaday Prize entry, [Mike] has come up with a solution that turns a desktop 3D printer into a completely automated factory. Not only does this project take care of removing the part from the bed when the print is done, it also manages a web-based print queue. It is the simplest way to manage a printer we’ve ever seen, and it’s a great entry for the Hackaday Prize.
First up, the software stack. [Mike] has developed a web-based queue and slicing software that ingests 3D models and spits out Gcode to a printer. This, really, is nothing new. Octoprint does it, Astroprint does it, and even a few 3D printers have this capability. This is only one part of the project though, although it is geared more as a maker space management software than simply a dedicated 3D printer controller.
You can’t have an automated mini factory without an automated build plate, though, and here [Mike] has come up with something really great. His solution for dispensing prints after they’re completed is brilliant in its simplicity. All you need to do is drop the floor out from underneath the print. [Mike]’s solution is a trap door print bed. At the beginning of the print, an inkjet printer spits out a piece of paper, with a few lines of text, onto the print bed. When the print is finished, a stepper motor unwinds a cable, and a trap door opens up underneath the print. The part drops into a bin, the door closes, and the next print is loaded up in the queue. It’s brilliantly simple.
You can check out [Mike]’s demo of this system after the break. It’s awesome and so sublimely simple we’re shocked no one has thought of this before.
3D printers have become incredibly cheap, you can get a fully workable unit for $200 – even without throwing your money down a crowdfunded abyss. Looking at the folks who still buy kits or even build their own 3D printer from scratch, investing far more than those $200 and so many hours of work into a machine you can buy for cheap, the question “Why the heck would you do that?” may justifiably arise.
The answer is simple: DIY 3D printers done right are rugged workhorses. They work every single time, they never break, and even if: they are an inexhaustible source of spare parts for themselves. They have exactly the quality and functionality you build them to have. No clutter and nothing’s missing. However, the term DIY 3D printer, in its current commonly accepted use, actually means: the first and the last 3D printer someone ever built, which often ends in the amazing disappointment machine.
This post is dedicated to unlocking the full potential in all of these builds, and to turning almost any combination of threaded rods and plywood into a workshop-grade piece of equipment.