OctoPrint is most commonly used on a Raspberry Pi using a dedicated OS called OctoPi (essentially a Raspbian image with OctoPrint pre-installed) [Link].

Although it can run on any Linux distribution, the Raspberry Pi is a popular choice due to its compact size, low power consumption, and compatible camera modules like this:

To deploy OctoPi on a Raspberry Pi using the official Imager, go to Choose OS > Other Specific-Purpose OS > 3D Printing, then select OctoPi.

To install on a Linux host:

sudo apt install git -y
git clone https://github.com/paukstelis/octoprint_deploy.git
sudo octoprint_deploy/octoprint_deploy.sh

To install as a Docker container:

sudo apt install git docker.io docker-compose -y 
git clone https://github.com/OctoPrint/octoprint-docker.git
cd octoprint-docker
docker-compose up -d

Then, navigate to http://127.0.0.1:5000/ or http://127.0.0.1/.

Note: Replace the loopback IP address as needed. Port 5000 is used for direct access or as the default port behind a reverse proxy. Refer to the official documentation for instructions on granting the Docker container access to the webcam or USB-Serial port.


BASIC UNDERSTANDING

OctoPrint is more than just an application; it is a framework on which developers can build Plugins (extension-like applications).

Most popular Plugins:

  • Bed Visualizer
    • Visualizes and reports the misalignment and distortion values of the print bed to help with leveling adjustments.
  • Octolapse
    • Replaces the native timelapse feature with greatly expanded control over image stabilization and capture settings.

There are two ways to print through OctoPrint: from SD (a memory card inserted into the printer) or from Local (the internal storage of the OctoPi host).

  • Printing from SD
    • Does not require a continuous connection, as OctoPrint instructs the printer to run autonomously and simply monitors its metrics.
    • Many features are unavailable in this mode because OctoPrint hands control over to the printer.
    • When transferring files to the SD card via OctoPrint, transfer speed is limited to 115,200 baud over the serial connection, which is extremely slow.
  • Printing from Local
    • Requires OctoPrint to remain connected and running throughout the entire print.
    • OctoPrint sends each movement command to the printer via USB in real time.
    • File transfers to local storage are as fast as the host hardware allows.

There is a section in the settings called Event Manager that allows shell commands to be executed when specific events occur.

In my case, I have a Pi HAT with RGB LEDs that I use to visually indicate the current status of the printer or print job, along with email notifications on completion or failure (virtually anything you want):


BONUS

In Octolapse, these are the profile settings that worked for me on an Ender 3 V2 Neo with PLA to prevent drooping and stringing during travel moves:


READ MORE

3D Printing Tips and Tricks [Link]

Motorizing Pan Tilt on Celestron Telescope [Link]