Having a 3D printer at your disposal is pretty amazing, but it can be a pain when you have to keep the printer tethered to your working computer for hours (or even days) while it runs! I was looking for a simple solution to drive my printer while I used my laptop for other purposes (like going to work during the week) when I came across OctoPrint, an open-source 3D printer web interface for controlling and monitoring the printer from a remote computer. The software essentially creates a running web server for the printer and takes the place of printing suites like MatterControl or Repetier, so it does require running on a machine connected to the printer via USB. If you have an old PC gathering dust, you can easily set it up and have a permanent print station. I, however, don’t have the luxury of a lot of space, so I wanted a more portable option that I could pull out when I needed to use it and easily put away. For this, I chose the Raspberry Pi as it is small enough to easily fit into the printer’s form factor, doesn’t require much electricity to run, and has built-in WiFi compatibility. The OctoPrint software even comes as a complete Linux distro optimized for Raspberry Pi called OctoPi.
Out of the box, OctoPi incorporates the LAMP stack for web hosting, a complete OctoPrint installation (including dependencies) for controlling the 3D printer, the mjpg-streamer package for streaming timelapse videos of the print process, and CuraEngine for slicing. This last item, however, is really moot because of the anemic computing power of the Raspberry Pi. I prefer to slice models on my working computer then transfer over the network to OctoPi for printing.
OctoPi is a pretty simple setup with a lot of really good documentation both at the OctoPrint.org site and their GitHub page. To start, make sure you have Etcher installed and simply download the latest stable version from http://octopi.octoprint.org/download (Be sure to grab the md5 file to verify the download as well!). Unzip the downloaded image and burn it to your SD card using Etcher like you would any other RPi image.
Open the newly burnt SD card as a removable drive in your computer’s file explorer. In the root folder of the SD card, use a text editor to open
octopi-network.txt and edit the file as necessary to match your network configuration. Don’t forget to delete the
# at the beginning of the appropriate lines or OctoPi will not connect to the network!
Eject the SD card from your computer, pop it into the Raspberry Pi, run a USB cable from the Pi to the printer, and turn on the Pi by plugging it into a power supply. Give the Pi a minute to boot up, and SSH into it from your main computer. The Pi will be located on the network as
octopi.local (or an IP address assigned by the router). As usual, the default username is
pi and the default password is
Change the password using the
passwd command, then close your SSH session.
Open a browser on your main computer and point it to
octopi.local (or the assigned IP address). The OctoPrint interface will open with the “First-Run Wizard” and prompt you to set up access controls such as username and password. This is specific to OctoPrint and independent of the username and password used to access the Pi via SSH. If you don’t plan on having your printer exposed to the Internet or having anyone else connecting to your network, you may disable access control. I keep it active just in case, so disable at your own risk!
Reboot OctoPi through the menu at the top right of the screen, and you will be all set to print! If you need more help, check out the README section of the GitHub page or drop a comment below!