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.
Surely the most popular option for controlling OctoPrint from a mobile device is TouchUI by [Paul de Vries], which is available in the official OctoPrint plugin repository. TouchUI optimizes the standard OctoPrint web interface for smaller devices and, as the name suggests, touch screens. It isn’t just limited to smartphones and tablets either, it’s not unheard of to run it on a small TFT touch screen built directly into the printer. Similar to what PrintrBot has done with their new Simple Pro printer.
Using TouchUI is simple enough, just install the plugin through the OctoPrint interface and then open the printer’s IP or hostname into the browser on your mobile device. The server will automatically detect you aren’t on a desktop machine, and load the TouchUI interface.
Being designed for low-resolution touch screens, TouchUI has a fairly chunky layout. It also uses highly contrasting colors to help visibility on devices which may not have very good screens to begin with. The layout is very logical, and it has pretty much everything you need to keep tabs on the current print.
That being said, TouchUI does take the concept a bit to the extreme. As I mentioned previously, this interface is sometimes used on small (under three inch) displays with very low resolution. That’s a far cry from a current generation smartphone, which is likely to have at least a 720p display on even the most low end of devices. Accordingly, I found TouchUI to be a bit too simplistic; there’s just a lot of wasted space in the layout. It’s certainly usable, but doesn’t exactly impress.
At the time of this writing, Printoid Pro is the highest rated OctoPrint client application on Android. This is a paid application, but a free version is also available. In fact, to really complicate things there are actually two paid versions: Pro and Premium. Without getting into the confusing state of paid smartphone software, it’s enough to say that the free version does pretty much everything you need, while the Pro version adds in some interesting customization and scripting for the OctoPrint server-side that could be useful if you’re looking for additional automation.
I really like the amount of information that Printoid manages to pack into a single screen. The other OctoPrint clients I’ve tried separate the different functions (file management, temperature control, extruder motion, etc) into their own tabs in the interface. Of course that’s all the rage right now in UI design, but it means you have to do a lot of horizontal swiping to see everything. But in the Printoid UI, almost every function of OctoPrint is compressed into the same view.
It’s a bit cramped, and admittedly might seem a bit overwhelming, but I think they’ve done an excellent job all things considered. I really like way Printoid expresses the time remaining on the print job, not only with a big countdown timer, but bar graphs to show progress through not only the physical operation but the GCode file that’s being parsed. The cost estimate is a nice touch too, on the off chance you want to know exactly how many pennies you’re burning up each time you print out a Benchy.
The second highest rated OctoPrint client for Android is OctoRemote. Refreshingly, it’s completely free and does not have any ads, though there is a button to donate to the developer if you want. I was happy to see a prominent listing of the Apache-licensed libraries it uses in the menus, but as far as I can tell OctoRemote itself is not open source.
Interface wise, OctoRemote is basically a refined version of TouchUI. It fully embraces the modern “Material Design” that Google is so obsessed with in the latest versions of Android, which gives it a very “native” look compared to other clients. There’s a considerable amount of horizontal swiping required to perform tasks, which can be annoying. For example, if you wanted to heat up the extruder and push out some filament (I.E. for changing filament colors), you would need to swipe between three separate tabs.
That said, I do like how faithfully this reproduces the functionality of stock OctoPrint. The general layout and options are nearly identical to those in the OctoPrint web interface, so it’s a very easy transition if you’ve become used to expecting certain options to be under particular menus and that sort of thing.
Probably my favorite feature of OctoRemote is the big “Upload” button which you use to push files to the printer. The other clients of course feature a similar function, but for whatever reason they downplay it considerably. The whole point of OctoPrint is to be able to push jobs to your printer over the network, so it seems only logical that it should be front and center in the user interface.
Personally, I’ve become quite fond of Printoid. The interface might look a bit like the control panel for a spaceship compared to the more minimalist approach used in other clients, but I appreciate having everything immediately accessible. But OctoRemote does strike a very compelling balance between the minimalism and functionality if Printoid throws a bit too much at you.
That said, TouchUI is still an excellent option if you don’t want to install a native application. While its interface is perhaps not perfectly suited to modern smartphones, it absolutely gets the job done. Installing it just takes a few clicks in the OctoPrint settings, and its large user base means there’s plenty of community support.
There are quite a few other OctoPrint clients for Android, and at least a couple for iOS if you’re into that sort of thing. The goal here wasn’t to be an exhaustive test of all the available options, but to simply highlight some of the most popular ones in use right now. Of course, we’d be interested in hearing what the Good Readers of Hackaday are using in the comments below.