I recently got back into the 3D printing game and realized what my bottle neck was previously. Having my main machine on and not being able to reboot, etc while I was printing. Then I discovered OctoPrint.
The idea of OctoPrint is to offload the printing to a web-based interface so you can rest easy and monitor the print from any device at any time. The platform is incredibly scale-able with hundreds of plugins available from wi-fi switch control, filament inventory management, to timelapse generation. My OctoPrint configuration is a little customized and I’ll go into that later.
For this tutorial I’m using OctoPrint the most recent version at the time of writing, version 0.16.0. This also is the case with balenaEtcher, version 1.5.33. I’m doing this on Windows 10 however balenaEtcher is available on MacOS and Linux as well. If you’re missing any of the items needed to get started I’ve linked my recommendations below.
What you’ll need:
- A Creality Ender 3 or Ender 3 Pro (or really any 3D printer with a USB interface running Marlin firmware)
- Raspberry Pi 3B or 3B+ recommended (the software will run on any A, B, A+, B+, 2B, 3A+, 3B, 3B+, Zero, or Zero W however your mileage may vary)
- 16GB Micro SD card (and PC USB SD card reader)
- USB type A to micro USB cable (or if not an Ender 3, a USB cable suited for your printer)
- Recommended but optional:
- Raspberry Pi Camera v1 or v2 (or any compatible USB/ribbon camera)
First thing you’ll want to do is head over to the OctoPrint website and download the most recent version of the OctoPi distribution. For this tutorial I’m using 0.16.0. You’re also going to need a copy of balenaEtcher. Plug in your USB SD card reader with the micro SD card attached to your computer.
OctoPrint is the software that runs on the Raspberry Pi however the operating system distribution is called OctoPi. Extract the OctoPi image from the zip file you downloaded and open balenaEtcher. Select the img file you extracted and ensure that the software has your micro SD card selected. Then press “Flash!”
This will take a few minutes. When it’s done flashing it will attempt to verify that the operation was successful. In my experience I’ve never had this verification process end successfully and does not impact the rest of the guide.
When balenaEtcher confirms that it’s done go ahead and unplug your SD card reader and plug it back in. Open up “This PC” and you’ll find a new drive called “boot.” In my case it’s been assigned drive letter F:. Go ahead and open that drive.
If you plan on connecting your Raspberry Pi via WiFi, follow this. If you plan on connecting it via Ethernet, skip this entirely, Find the text file called “octopi-wpa-supplicant.txt”. I recommend using Notepad++ for this however Windows Notepad will work just fine. Scroll down to line 26 and remove the
# beside lines 27, 28, 29, and 30 as I’ve done below. Fill in your WiFi SSID and password here. You’ll also want to ensure that the correct country is selected farther down in the file starting at Line 49. For me, that was adding a
"country=GB" and removing the
"country=CA". Lastly, save and close the file.
Safely eject and remove the SD card reader from your PC. Slide the SD card into your Raspberry Pi and plug it into power with the kit’s supplied mains power adapter. You should see a red LED indicator light on steady indicating the Raspberry Pi has power and a green LED indicator light flashing from time to time indicating it is accessing the micro SD card. Give it about 45-60 seconds to boot up.
Generally you should be able to point your web browser to octopi.local. It will bring you to the OctoPrint setup wizard. If not, log into your router and find the IP address for your OctoPrint instance. Every router/modem is different so if you’re not familiar on how to do this I would recommend doing a quick Google search.
When you’re successful in connecting to OctoPrint you’ll be greeted by this Setup Wizard screen. It’s pretty straight forward and each screen explains what’s recommended.
It’s really required that you set up a username and password for OctoPrint. Even if you don’t plan on having the interface accessible outside your network it’s a good idea to have some sort of access control to a device that heats up and potentially could set fire to your home, right? Set up your username and password on the Access Control screen and choose “Keep Access Control Enabled” to continue.
OctoPrint’s developers ask that you enable Anonymous Usage Tracking – you have the option to disable it but for me it’s not really a big deal that OctoPrint phones home about bugs and such. There’s also more granular controls later on in the settings related to this.
The connectivity check helps to confirm your Raspberry Pi has internet connectivity. Turning this off will only slow down your Pi if you don’t have an internet connection. The default check interval is 15 minutes but I bumped it up to 60. They also use Google’s DNS servers – which do track all requests – so I went ahead and changed to OpenDNS’ first DNS server, 22.214.171.124.
Next up is the plugin blacklist. Go ahead and enable it for safety’s sake. It’ll ask you to set up a slicing profile – I don’t recommend slicing directly on a Raspberry Pi and even still you’d need an older version of Cura to actually export a profile that this would support.
Finally, finish up by giving your printer a name, ensure the print bed and all other settings are correct.
That’s it! You’re done. Congratulations. Start by uploading your GCode and start printing. You can either click the upload button or drag the file over to the left hand side of the screen. The right hand “Upload to SD” is not active and not needed. It’s that easy!
Next I’d take a look through the OctoPrint Plugin Repository and see if you find anything that would make printing easier for you. For me, I use the following plugins:
- Detailed Progress Plugin
- Dragon Order
- EEPROM Marlin Editor Plugin
- Fan Speed Control
- Filament Manager
- Fullscreen Plugin
- Navbar Temperature Plugin
- Preheat Button
- Printer Stats
- Simple Emergency Stop
- The Spaghetti Detective
There’s a lot there and not all of them are going to be applicable for your own particular use cases. It’s worth having a look through the Repository and seeing the possibilities OctoPrint can bring to your 3D printing experience.
I hope that this guide helped and if you have any questions, comments, or concerns don’t hesitate to leave a comment below. If this guide helped you please give it a share on your favourite social media platform. Good luck!