OctoPrint is a wonderful addition to any 3D printer setup. It provides a really snappy, responsive interface and is extendable through plugins. You can run it on a RaspberryPi, or any PC you’ve got lying around.
So why do I need something like OctoPrint you might ask? Well, one can certainly connect their printer to a computer and run a print there. A major disadvantage is that now the printer is tethered to a computer. If you’re like me, and have a laptop, this is far from ideal since I like to have the ability to move around with my laptop. You could just print off the SD card, but then remote monitoring isn’t really possible.
OctoPrint acts as host software for your printer, allows you to monitor and control your print remotely, and is completely extensible with plugins! When installed on a RaspberryPi, it provides you with an inexpensive and powerful print server.
Some Core Features
There are some really cool features included right out of the box.
Temperature Graph
This graph is really handy. It visualizes your current temperatures, and set points over time. It can sometimes be hard to notice when you need to do a PID tuning just by looking at the on-screen display of the printer, this graph lets you see exactly what’s going on, in realtime.
Webcam Stream and Printer Control
Sometimes you need to be able to manually tell the printer to move the print head to a certain position. Sure, you can send gcode commands over the serial terminal, but that’s a lot more annoying than being able to just push a button. The control tab does just that. You can (when not printing, of course) control all the axes, the fan, and turn the motors completely off. The flow-rate can also be easily adjusted here.
If you’ve got a USB webcam plugged in, you’ll see it’s stream here. If you mouse over the stream, various keyboard controls become available for use.
Timelapses
Timelapses are neat videos that show the progression of a print, as a sped up animation. There are two modes of operation, you can take a snapshot at a given time interval, or on Z change.
Built-in ACL
The built-in authentication mechanisms are really handy. If you put OctoPrint on the public internet, you’ll definitely want to have this enabled. I can’t stress enough how much I discourage opening up the thing, that controls a thing, that can burn your house down, for the whole internet to see. There are better ways to do this, such as through a VPN, or with the Telegram plugin.
On the public internet, is most certainly not the only use case for access control. Even on a private network, it makes sense to have additional security, in case someone gets on your Wi-Fi, you have kids with computers, or have a guest in your home, who stumbles upon your OctoPrint instance. Accidents can happen, it’s best to put security and safety first, in regard to something with such a high potential for disaster.
Serial Console
For the more advanced users, direct access to the serial console is critical. OctoPrint shows you what’s happening, as it happens, and allows you to send commands directly to the printer. The autoscroll feature is handy for monitoring output, and is accompanied by the ability to suppress certain types of constantly repeating messages from the printer.
Software Updates
Updating OctoPrint and its various plugins couldn’t be any easier. You’ll get a notification when an update is available, and have the option to start the update process.
Plugins
One of the coolest features, is the ability to extend functionality through plugins. There is a plugin repository with a plethora of plugins already available, and a well documented API if you need to write your own. Here are a few of the plugins that I find useful, but by no means is this a complete list…
Bed Level Visualizer
This plugin is particularly cool. If you have an auto bed level sensor (proximity sensor, BLTouch, microswitch) it can visualize your bed level. It’s particularly useful for adjusting the level of your bed, with respect to the nozzle. As you can see above, my bed is slightly off. The corner at 0,0 is slightly lower than the rest of the bed. Right now, I’ve given up on trying to perfect it further, though I expect my OCD will kick in at some point, and I’ll put more time into it. This plugin can be found here
ATXPiHat
The ATXPiHat plugin is written specifically for a piece of hardware that sits on top of a RaspberryPi, which can power your printer with an ATX PSU, and lots more.
The board in this picture is the first version of the hat. It has a few more bells and whistles than the latest version, the ATXPiHat Zero. Included on this board, is the ability to control LED lighting, emergency power off support, on board fan control, switch functionality as well as realtime measurement of how much current is passing through it.
The plugin’s main tab offers the ability to control your LED lights, monitor the fan RPM and power metrics, as well as (if you have it enabled) a control button for the built-in switch. Not pictured here, is a dropdown menu on the main navigation bar that allows you to turn on/off the power to the printer. So, with the printer off, how does the pi run? Easy! The pi is powered on the 5V standby power line on the PSU, this way OctoPrint will be accessible even if the main supply is switched off.
The only drawback here, is that if your printer’s control board is powered over USB, there’s a chance your screen could be powered on, even though there’s no power going to anything else (i.e. the board is booted, but there’s no power for the motors, hotend, or heatbed).
These are the LEDs in my enclosure, which are controlled by the hat. I feel this is a huge improvement over having a separate IR remote control for the LEDs. Now, when I turn on power to the printer, the lights come on, and vice-versa when I cut the power. Both the LEDs and the built-in switch can be controlled either from the web interface, or by sending gcode commands!
If you’re interested in grabbing one of these for yourself, check out Brian’s Website for more info!
OctoLapse
This is probably one of my favourite plugins in the ‘neat’ category. OctoPrint has a timelapse feature built in, but the images aren’t necessarily stable. The shot can be taken when the print head is at a totally different position, creating a sort of choppy feel. This plugin will move the print head to a pre-configured position, take the snapshot, and then continue printing. Check out the video below for a sample I made.
As pretty as these timelapses are, they come at a price. You can end up with print artifacts if you don’t have your settings dialed in just right, or you could end up ruining a print entirely. The timelapse above was the first one that I made, and I got really lucky. A few attempts after that resulted in failed prints. Sometimes the failures were nothing more than a little extra stringing, other times it rendered a print unusable (to be fair, it was a print with particularly tight tolerances to begin with).
For someone with a moving bed, a plugin like this really allows me to get some nice timelapses, with minimal effort.
I highly recommend giving this plugin a try, you can find it here
.
Telegram Plugin
This plugin is really cool. It should go without saying that putting OctoPrint on the public internet is generally a bad idea. If you don’t have the ability to use a VPN to connect to your home network (and even if you do…), then this plugin is probably for you. You can send commands to start or stop a print, tweak parameters mid-print and receive status updates throughout the print. Basically, you register the plugin as a Telegram bot, and then in the plugin’s configuration, grant yourself, or whoever else access as needed. This one’s available here.
Supporting The Project
OctoPrint is created and maintained by Gina Häußge(foosel). OctoPrint is her full-time job, and without the support she gets from the community, the project simply wouldn’t be possible. You can support OctoPrint a number of different ways. Opening pull-requests on GitHub is a nice way to give back, but since not everyone can code, there are other ways of supporting Gina and her work, such as becoming a Patron, sending a one time contribution with PayPal, or purchasing an all-in-one hardware kit from various suppliers, of which she gets a portion of the proceeds.
I highly encourage everyone to try to support in some way, click here to learn how you can help out!
Conclusion
I can’t repeat this often enough: OctoPrint is a perfect addition to any printer setup. It’s such a versatile tool on its own, and with its plugin API, the possibilities are virtually limitless.
Thanks for reading!