Skip to content

Octoprint Setup Documentation

Teddy Warner's GitHub profile picture Teddy Warner| Fall, 2021 | 9-11 minutes

Octoprint logo and interface overview

Octoprint takes 3D printing to new heights, creating a more concise workflow with more accessible machine control. The opensource Octoprint project was created and maintained by Gina Häußge. The software enables a machine with a web interface with full machine controls and a world of community plugins - all of which run on a Raspberry Pi made Server with an octoprint image. I use Octoprint on all of my personal printers, and a special CNC-focused fork of the software for my MPCNC. As mentioned above, web interfacing a machine creates a more concise workflow and thus is great for personal machines. However, an Octoprint setup shines even more in a print farm instance. During the winter months of my sophomore year (2020) I set up secure Octoprint instances on each of my lab’s array of 20 FDM printers. Each of my setup instances can be read seen under the My Octoprint Instances section of this page.

Octoprint Installation

Octoprint Installation Requirements

You’ll need a Raspberry Pi (Recommended hardware: Raspberry Pi 3B, 3B+ or 4B), a sufficient power source for the Pi, as well as a micro SD card (4GB or larger) to flash the Octorpint image to.

Download the Latest Octopi Image

First, download and flash the latest Octoprint image (linked above). This Pi image can be flashed as you would with any other Raspberry Pi project - I use balenaEtcher for flashing, its simple 3-step interface makes the process super straightforward. After a successful flash of this image on your Pi’s SD card configure your WiFi information in the octopi-wpa-supplicant.txt located on the flashed SD card (If you’re using wired internet, you can skip this setup). To update the octopi-wpa-supplicant.txt file with your network, open the file in a code editor of your choice.

Do not use WordPad (Windows) or TextEdit (MacOS X)

These editors will mess with the file layout, and cause problems with your setup.

Next, locate the type of network you’ll be connecting to - for this example, I’ll be using the WPA/WPA2 Secured standard,

## WPA/WPA2 secured
#network={
#  ssid="put SSID here"
#  psk="put password here"
#}

for any type of connection you choose, you can enable it by uncommenting the sections lines with a single hashtag, leaving you with a block like below.

## WPA/WPA2 secured
network={
  ssid="put SSID here" // (1)
  psk="put password here" // (2)
}
  1. Replace “put SSID here” with your network’s SSID.
  2. Replace “put password here” with your network’s password.

Next, scroll down to the bottom of the document to the section starting ”# Uncomment the country your Pi is in…”. Here, remove the hashtag in front of your network’s country, and add a hashtag in front of all other (non-selected) countries.

Then, after saving your file and ejecting your SD, you can install your flashed SD in your Pi and boot.

Next, some basic Pi config. Make sure you are on the same WiFi network you set up your Pi on, and then SSH into your booted Pi at the IP octopi.local with the Pi’s default credentials (Username - pi / Password - raspberry). I use Putty as my SSH client as again, it’s pretty straightforward to use. Once connected to your Pi, run the command …

sudo raspi-config

to open the configuration GUI. Here you can change your Pi’s credentials (highly recommended), set up your local timezone (to allow for accurate machine ETAs), and change your machine’s hostname (thus changing the URL from the default octopi.local to YOURHOSTNAME.local). After all, changes, be sure to reboot your Pi.

Congrats!

You have now installed Octoprint on your Raspberry Pi, and can now connect to its web server with the URL http://octopi.local ( or if you changed your hostname, with the URL http://YOURHOSTNAME.local).

Octoprint Configuration

With an Octoprint instance up and running, the difficult part of the setup is complete. Access to the web interface allows for easy machine and interface setup, in addition to some more customizations in the form of community plug-ins.

Interface Config

Beginning with the configuration of the interface itself, basic settings can be found in the web interface by clicking on the wrench icon on the right side of the navigation bar located at the top of the interface. Scrolling through these menus allows for total customization of the interface. A good starting place is under the Octoprint section in the Appearance menu. Here (as shown below) you can customize the interface title - displayed in the interface’s navigation bar, as well as the default interface highlight color.

Octoprint appearance settings menu

Printer Setup

To enable Octoprint’s main purpose, a machine must be connected to the hardware running Octoprint via serial. This connection can come in the form of a USB cable in the simplest setup, or GPIO pins can be used for communication as well.

Personal Setup

In the case of my Prusa I3 MK3S+, I took advantage of this GPIO communication setup, to allow for the mounting of my Raspberry Pi directly under my printer’s mainboard (via this Raspberry Pi 4 Case) without a bulky USB cable connecting them …

Raspberry Pi mounted under printer mainboard using 3030 mount

Your serial connection must be set up software side in the Serial Connection menu found under the Printer section of the interface settings. Octoprint can automatically detect your Serial Port and Baudrate when AUTO is selected in these dropdowns, however, you may also specify specifics for each field.

Serial connection settings for printer configuration

Next, a machine profile must be created for your connected machine to ensure safe machine control with regard to hardware limits. A profile can be created in the Printer Profiles menu under the Printer section of the interface’s settings. Create a new profile by clicking the Add Profile… button in the lower right corner of the menu, and fill out the profile with your machine’s information.

Printer profiles configuration menu

One key feature of Octoprint is its webcam machine stream, allowing for remote supervision of your machine. Anything from USB webcams to Raspberry Pi ribbon cable cameras can be used for this stream & Octoprint will automatically find this attached webcam and will use it to stream your machine (some more exotic cameras or mounting styles may require an additional configuration - discussed below).

Personal Setup

On my printer, I’ve mounted a Raspberry Pi camera to the X-Axis stepper of my machine (via this Raspberry Pi camera mount), yielding a pretty nice side view of prints, shown below.

Raspberry Pi camera mounted to X-axis stepper motor Octoprint webcam feed showing side view of print

Due to my printers camera mount, my Raspberry Pi camera is heald in an upsidedown orientation and thus needs to be compensated for on the software side. Luckily, in the Webcam & Timelapse menu under the Features section of the Octorprint interface settings, webcam orientation can be changed. In addition, more advanced webcam options can be found, allowing for the use of almost all cameras connected to the hardware running Octorpint.

Webcam and timelapse settings configuration

Plugins

One of the greatest features of Octorpint stems from its open-source nature … its community plugins. Under the Plugin Manager menu in the Octoprint section of the interface’s settings, plugins can be added to the octoprint instance, allowing for entire customization of the instance from the interface to machine interaction. There are tons upon tons of plugins that exist in the Octorprint community, and you may even develop your own, however below is a list of plugins I find to be amazing additions to an instance

Note

Some of these shown plugins are machine specific to my Prusa I3 MK3S+

Plugin manager showing installed plugins

  • Access Anywhere - The Spaghetti Detective1 - AI-powered failure detection & Remote Octoprint Access

The Spaghetti Detective home interface The Spaghetti Detective mobile app interface

The Spaghetti Detective printer control interface

  • Bed Visualizer2 - Uses Plotly js library to render a 3D surface of the bed’s reported mesh

Bed visualizer showing mesh leveling data in 3D

  • Custom Background3 - Change the background image on the temperature graph

Custom background image on temperature graph

  • Exclude Region4 - Adds the ability to prevent printing within rectangular or circular regions of the currently active gcode file

Exclude region configuration menu

  • Floating Navbar5 - Make the navbar stick to the top of the page while scrolling
  • GcodeEditor6 - Edit gcode that’s been uploaded to OctoPrint

Gcode editor interface Gcode editor interface

  • Heater Timeout7 - Automatically shut off heaters if no print has been started
  • Navbar Temp8 - Display temperatures on the navbar

Navbar temperature display

  • Octoprint Display ETA9 - Show finish time (ETA) for current print

Octoprint display ETA

  • PrettyGCode10 - adds a 3D GCode visualizer tab in Octoprint

PrettyGCode 3D GCode visualizer tab

  • Themeify11 - Beautiful themes for octoprint
  • ipOnConnect12 - Display the ip address of the connected OctoPrint instance on the control panel ⚠ MK3S+ specific

IP address display on control panel

Octoprint Interface Workflow

Although the Octoprint web interface is rather intuitive, the number of stock features (not to mention plugin-enabled ones) can be a bit overwhelming without a bit of exploring. Below is a short PowerPoint I put together walking through the basics of the interface for students using my lab print farm, allowing for a bit of knowledge before exploration.

My Octoprint Instances

Personal Octoprint enabled Prusa I3 MK3S+

My Personal Octoprint Enabled Prusa I3 MK3S+

Lab's Octoprint enabled printer farm

My Lab's Octoprint Enabled Printer Farm


  1. https://plugins.octoprint.org/plugins/thespaghettidetective/ 

  2. https://plugins.octoprint.org/plugins/bedlevelvisualizer/ 

  3. https://plugins.octoprint.org/plugins/custombackground/ 

  4. https://plugins.octoprint.org/plugins/excluderegion/ 

  5. https://plugins.octoprint.org/plugins/floatingnavbar/ 

  6. https://plugins.octoprint.org/plugins/GcodeEditor/ 

  7. https://plugins.octoprint.org/plugins/HeaterTimeout/ 

  8. https://plugins.octoprint.org/plugins/navbartemp/ 

  9. https://plugins.octoprint.org/plugins/display_eta/ 

  10. https://plugins.octoprint.org/plugins/prettygcode/ 

  11. https://plugins.octoprint.org/plugins/themeify/ 

  12. https://plugins.octoprint.org/plugins/ipOnConnect/ 

Comments