Technically speaking, a computer is not a necessity for a 3D printer to operate (except for slicing a 3D model to create the required G-code file), as a 3D printer usually comes with its own interface that you can use to practically execute any command that will be necessary to configure, start, and monitor a print.
On the other hand, having to always use the LCD controller on the 3D printer can eventually become cumbersome if you use your 3D printer frequently, especially if your 3D printer is located in an area that is not too close to your desk, where controlling your 3D printer directly on your computer by using a 3D printing interface will definitely take your 3D printing experience to the next level.
In today’s article, we will be talking about setting up one of the most popular 3D printing interfaces available right now, known as OctoPrint, on a Raspberry Pi for the purposes of usage with an Ender 3, which will bring many advantages such as being able to send G-code commands to the Ender 3 and monitoring the progress of your prints directly from your computer, eliminating the need to use the LCD controller.
So, how to set up OctoPrint on a Raspberry Pi for the Ender 3?
At its core, the process of setting up OctoPrint on a Raspberry Pi to act as an interface for the Ender 3 involves flashing the OctoPi operating system on the Pi, connecting the Pi to the Ender 3 through USB, and networking the Pi, which will bring the OctoPrint server up and ready to access.
Moving forward, we will go through the process of setting up OctoPrint on a Raspberry Pi for the Ender 3 in greater detail, discuss which Raspberry Pi would be a suitable purchase for the purposes of installing OctoPrint, and finally, talk about why it’s a good idea to set up OctoPrint to control your Ender 3.
Table of Contents
How to Set Up OctoPrint (OctoPi) on a Raspberry Pi for Ender 3 (Pro/V2)?
There is no denying that setting up OctoPrint on a Raspberry Pi can be a bit of a challenging process, especially if you don’t have a lot of technical expertise.
On the other hand, once the exact steps on what to do are laid out, the process is actually a breeze, which is what we will be doing in this section.
First, let’s start by taking a glance at the list of components you will need for the process:
- Raspberry Pi & Power Adapter
- USB Cable – USB-A to Mini USB (Micro USB for Ender 3 V2)
- microSD Card – Anything over 8GB will do, but 32GB+ is optimal if you’re planning to store G-code files and timelapses
- Computer with microSD card slot & Internet connection
- Wireless network or Ethernet cable
Now that we have everything ready, it’s time to dive into the process of setting up OctoPrint (OctoPi) for the Ender 3.
Below, you can find a step-by-step guide that will take you from the very first step of fetching OctoPrint, all the way to the point where it becomes possible to utilize OctoPrint to start a print on your Ender 3:
- Insert the microSD card into your computer.
- Grab the Raspberry Pi Imager software from the official website.
- Install Raspberry Pi Imager to your computer, and run it.
- Click the Choose OS button on the Raspberry Pi Imager main menu.
- Navigate to “Other specific-purpose OS” -> 3D Printing -> OctoPi, and click the OctoPi (stable) option.
- Click the Choose Storage button.
- Choose the SD card from the Storage menu.
- Click the gear icon located at the bottom-right corner to bring up the Advanced Settings dialog. Alternatively, you can use the CTRL + SHIFT + X keyboard combination.
- Check the “Set username and password” checkbox.
- Fill the password input with a password of your choice, which will allow you to SSH into the Raspberry Pi with the chosen password. Please do not modify the Username field (it should read pi).
- Check the “Configure wireless LAN” checkbox if you will be connecting the Raspberry Pi to your network through wireless. Else, connect the Ethernet cable to your Raspberry Pi and skip to Step 14.
- Fill the SSID and the Password input fields accordingly to match the configuration of your wireless network.
- Select the country you currently reside in by utilizing the Wireless LAN country dropdown.
- (Optional) Check the “Set locale settings” box and fill the locale fields accordingly.
- (Optional) Check the “Set hostname” box and fill the input with the hostname you would like the Pi to have.
- Click the Save button, and click X (top-right corner) to close the Advanced Options dialog.
- Click the Write button. Ensure that you have chosen the correct storage medium (the SD card) in the Choose Storage option before clicking the Yes button, as this action will erase all the data in the selected disk.
- Wait for Raspberry Pi Imager to finish writing OctoPi to the SD card.
- Insert the SD card to your Raspberry Pi, and power it on by connecting the power adapter.
- Connect your Raspberry Pi to your Ender 3 with the USB cable.
- Power on your Ender 3.
- Navigate to “octopi.local” on your browser to access the OctoPrint interface. Skip to Step 24 if you see the OctoPrint interface on your screen.
- Navigate to your router’s interface to find the Raspberry Pi’s local IP, and navigate to the IP address you have found to bring the OctoPrint interface up.
- Click Next twice on the Setup Wizard to access the Access Control section.
- Set up a username and password of your choice, and click the Create Account button. These will be your login credentials for accessing the OctoPrint interface.
- Click Next to access the Connectivity Check section.
- Click the Enable Connectivity Check button, and click Next.
- Click the Disable or Enable Anonymous Usage Tracking button based on your preference, and click Next.
- Click the Enable Plugin Blacklist Processing button, and click Next.
- Fill the Printer Profile section accordingly for your Ender 3, ensuring that you have supplied all tabs with the correct information.
- Click Next 3 more times, and then click Finish.
- Click the Connect button in the Connection section (top-left) with all settings, which should connect your Ender 3 to OctoPrint.
After this point, you should be able to utilize all the features that OctoPrint offers, whether uploading a G-code file and starting the printing process directly from the interface or installing plugins that will improve your OctoPrint experience.
Which Raspberry Pi Works Best for OctoPrint (OctoPi) & Ender 3 (Pro/V2)?
As it’s already possible to find multiple Raspberry Pi models with different specifications at the time of the writing, which most likely will increase even further as time goes on, choosing one that will support OctoPrint without any issues is the first step to take before anything else.
Even though the current version of OctoPrint (and OctoPi) is technically compatible with all models of Raspberry Pi, starting from the original model A, all the way to 4B, including the Zero series and the 400, the older Raspberry Pi models may not be able to keep up from a processing power perspective.
As the official OctoPrint website states that models 3B, 3B+, 4B, and Zero 2 are recommended, with Zero and Zero W models not being supported officially, our recommendation would also be in this direction, which will ensure that your Raspberry Pi can run OctoPrint without performance issues.
The Raspberry Pi model we are using ourselves for the purposes of running OctoPrint, along with the Ender 3, is the Raspberry Pi Model B with 2 GB of RAM, which we can directly recommend as one that is working perfectly, especially considering that it’s the latest model available right now.
Why Should You Set up OctoPrint for Your Ender 3 (Pro/V2)?
While setting up OctoPrint for your Ender 3 is not a necessity to create successful prints by any means, there is no denying that OctoPrint makes the 3D printing experience much more user-friendly and accessible with the level of control that it offers.
Below, you can find the reasons that make OctoPrint a great tool to control the Ender 3, based on our experiences and opinions.
You will be able to access the OctoPrint interface through any device that is connected to the same network as your Ender 3, which allows you to fully control your Ender 3 without being next to it, practically making it possible to perform any task ranging from transferring a G-code file to monitoring the status of your print.
Additionally, plugins such as OctoEverywhere and Obico for OctoPrint take the remote control feature a step further and allow you to control your Ender 3 from anywhere, removing the necessity of having to use a device that is in the same network, as long as an Internet connection is available.
OctoPrint makes it possible to send individual G-code commands to your Ender 3 directly by utilizing the included text input field located in the Terminal tab, which comes in extremely handy in many cases, ranging from pausing the 3D printing process to creating a report of the current settings.
Additionally, you will also be able to see all the G-code commands that your Ender 3 is running and their outputs in real-time, including the ones you send through the terminal, which will give you deeper insight into the actions that your Ender 3 is performing and their results whenever necessary.
With OctoPrint, you can remotely observe your Ender 3 as it conducts the printing process through a webcam that is connected to the Raspberry Pi, practically as if you were right next to your 3D printer.
Considering that 3D printing is a process that requires constant attention to ensure that a dangerous situation does not occur, being able to watch your Ender 3 from anywhere in your home is definitely a great option to have at hand.
If you have a webcam attached to your Raspberry Pi, OctoPrint allows you to create timelapse videos of the 3D printing processes that your Ender 3 conducts, which is a form of video where photos are taken during the process, lined up, and played in a sped-up way.
With timelapse videos, it becomes possible to watch the entirety of the printing process, which can go up to tens of hours in some cases, in a matter of minutes or seconds, offering a fun viewing experience and also a way to diagnose any issues that might have occurred during the 3D printing process.
Extensive Plugin Support
For any feature that does not exist in OctoPrint by default, or one that requires some improvements, there is a good chance that a community-made plugin exists, which you can directly add to your OctoPrint by using the built-in Plugin Manager feature.
For instance, the Bed Level Visualizer plugin, which is the most downloaded OctoPrint plugin at the time of writing, converts the bed mesh data reported in Octoprint into a 3D model, allowing you to see precisely how the mesh is laid out in a user-friendly form.
On the other hand, the OctoPrint-PrintTimeGenius plugin, which is another one of the most downloaded plugins at the time of writing, improves the default print time estimation capabilities of OctoPrint and provides estimations that are much more accurate than the default.
Please note that this list is not an exhaustive representation of the features that OctoPrint offers by any means but rather a curation of the ones that we have found to be the most useful and the ones we utilize the most frequently.
While there are certainly more than a few short steps involved in setting up OctoPrint on a Raspberry Pi, it should be a relatively straightforward process with the steps laid out and will definitely be a worthy addition to your 3D printing stack with the advantages it brings once you’re through with the installation.
To quickly recap, a Raspberry Pi that is connected to the Ender 3 through USB while running the OctoPi operating system will automatically be hosting the OctoPrint server, only requiring networking for other devices to be able to connect to it.
Once the Pi is networked, you will be able to access the OctoPrint interface through any device that is in the same network, whether it’s your desktop computer, your tablet, or your mobile device, and control your Ender 3 without having to be in physical contact with it.
Mike started his 3D printing journey with the Anet A8 when it first came out back in 2017, and has been obsessed with 3D printers ever since. Nowadays, he primarily uses his Ender 3 to print functional parts that make his life more convenient whenever possible.