|Part:||Octoprint on Raspberry PI 3+|
|Cost:||Octoprint is free to download; Raspberry PI approx $60 dollarydoos; microSD $10ish dollarydoos|
|Brief Comments:||A must have addition to any 3D printer that doesn’t have wireless connectivity from the factory.|
|Bang for buck score:||10/10|
If you’re a bit like me, you may find it a huge pain in the arse going through the motions of getting a freshly sliced Gcode from the computer screen to actually printing on a 3D printer. The hassle of using a SD card reader, then copying the Gcode file onto the card, then removing it from the computer, then stuffing around trying to fit the card into that miniscule slot on the printer, then figuring out which way the card slots in (it always takes 3 goes), then the infinite scrolling using the knob that destroys thumbs and fingers, then trying to find the file to print on that teeny tiny little screen. What a pain! An alternative is using direct USB from the computer to the printer itself, which is fine if you don’t mind tying up a USB port for the duration of the print, try that on a 24 hour plus print.
Such a strenuous and exhausting procedure should not be tolerated by any sane individual! This is where a Raspberry Pi and a little piece of software called Octoprint came to the rescue and saved me from my first world 3D printing dystopia.
Octoprint is an open source human machine interface (MHI) which allows for 3D printer control and most importantly network connectivity on machines which are USB or microSD card only from the factory. There are many wonderful things about this program: it works with pretty much any and all Arduino based control boards; makes a previously USB/SD printer network compatible; uses a clean, well laid out web browser user interface and the best feature in my opinion, its customisable with a huge range of software plugins which allows even more features and functionality.
A lack of network connectivity becomes more obvious the more a printer is relied upon and the more frequently it is used. The ability to have a connection to a printer on a network either via WIFI or Ethernet is hugely advantageous. Simply by having this feature on the machine it really does transform the means of interaction and the ease to which the work load can be managed. Therefore I would consider this upgrade, Octoprint, as one of the most essential additions to any desktop 3D printer setup and the best part is it’s not as complicated as I originally thought it was going to be to get up and running.
I have been running Octoprint for my Creality CR-10 on a PI 3+ for the best part of two years. I’m using a PI 3+ because at the time of setting up Octoprint this was the most current version available, this has since has been superseded by the PI 4 (as you’d expect 4 coming after 3) and depending on how far into the future you are reading this there may even be more advanced versions than this. Octoprint works perfectly fine on my now ‘older’ version the PI, I’m sure that even earlier PI revisions could handle the program with no problems as the base program itself isn’t too processor or RAM hungry.
There are plenty of off the shelf kits available to purchase which are ‘plug and print’ and allows users to get up and running in no time at all. This is a perfectly acceptable option, after all Raspberry PIs can be daunting and confusing for those who may not have ever had any experience with them before. I am by no means a computer programmer or IT expert but felt confident enough to give it a go from setting up from scratch, worst case scenario being if shit hit the fan I lose the microSD card with the brains of the PI on it which was a minor risk worth taking in my opinion.
All that’s needed to install Octoprint is a computer with interweb access, a fresh microSD card (don’t be a tight-ass and try and reuse an old one just pay the $10 and buy a nice new one, it will save you headaches later on down the track), microSD card reader, WIFI or ethernet connection, USB cable (to go from PI to 3D printer) and of course a Raspberry PI. From what I’ve read this can be done on most RPI’s but considering how cheap they are best practice is to buy the latest revision available, and I think it goes without saying – as the PI connects to the printer via USB, make sure you get a PI which has USB ports on it i.e. not a PI zero.
While I won’t go into the details about the actual installation process, take my word for it if you can install a piece of software onto a computer then you will be able to follow a set of instructions to get this working because after all that’s all it really is, installing a piece of software (Octoprint) onto a computer (Raspberry PI).
There are plenty of setup tutorials online and on YouTube which detail the step by step procedure for getting it all going. I followed the installation guide by Caleb from Reality Check VR. His vid was great! Straight forward, easy to follow and got me up and running in a relatively little stretch. I had to watch it through a couple of times just to make sure I didn’t miss any important points, but this is more because I’m a bit slow when it comes to following instructions rather than anything to do with the tutorial itself. I found this how-to a good place to start and would definitely recommend it as a good starting point for anyone else wishing to do the same.
The PI was easy enough to program, even for someone like myself who is one rung on the ladder above being just a point and click computer operator. If everything has been installed correctly then it should just be a case of plugging a USB cable from the PI to the USB of the printer and letting Octoprint figure out the connection configuration automatically.
But sometimes things don’t always go as smoothly as I’d like them to. During my set-up I had a seemingly small but fundamental issue, when I first plugged the CR-10 into the PI there was no connection between the two devices. As it turned out, the factory Melzi board had a faulty USB port causing the Raspberry PI/Octoprint to not be able to connect to the printer no matter what settings or configuration I tried or tinkered with. It took me WAY too long to figure out it was a faulty part or maybe I was in denial that I’d soon have to fork out for a new control board. After many expletives, I ended up binning the factory board and replacing it with an upgraded TH3D Melzi (Link to the upgraded Melzi board here). As soon as the busted board was replaced Octoprint connected first go and ran like a charm!
With this feature now on the CR-10 there is no need to use either a microSD card or USB when printing and getting a print going is now as easy as pie. To use the printer its now just a case of entering an IP address into a browser and signing into Octoprint. From here the printer is fully controllable to a level which is almost par with Pronterface. Each of the axes’ can all be incrementally moved independently, temperature for the extruder and heated bed can be set and monitored, feed rate and flow rates can also be changed, and there is also a command line window for manually entering Gcodes and commands to send for controlling the machine the old school way. All Gcodes files for printing are stored on Octoprint and can be called upon whenever so desired, I simply select the file I wish to start and click the little printer icon and the printer does its thing!
As I briefly mentioned before, Octoprint can also be customised using a wide selection of plugins. This is one of the best features as it allows for even more functionality to the software making it personalized to suit the requirements of the machine, workflow and personal preference. I will save the plugins I have installed for a future blog post, but needless to say there are many available to download and try and plenty of write ups and YouTube videos about what are the best plugins around. I have downloaded and Installed heaps over the time using Octoprint, I have my favorites which I rely on heavily, some not so much and others I didn’t see any value added and got rid of almost straight away. In most cases the 3D printing community has done the hard work and figured out the plugins worth installing and I have followed suit in many of those instances (baaah), and other times its just a case of trail and error and seeing what works.
If I could choose only one upgrade for my printer this would definitely be the one I’d pick. It truly does transform a bog standard machine into something better, functionally and practically better also. Having a printer connected onto a network and accessible via a web browser will dramatically change a cheap machine into something that feels more complete and more thought out. This isn’t a subjective improvement either, it genuinely does improve a machines functionality by allowing a better means of interfacing and communicating to it, hence also making it a more practical machine in doing so.
For the cost involved, which lets be honest is pretty minimal, this upgrade is a no brainer. It’s a must do and will do so for any and all future printers I use.