← Back to smarthome overview

OctoPrint

A Raspberry Pi 3B runs OctoPrint for remote 3D-printer control, plus a live camera stream so print progress can be checked without walking over to the printer. This eliminates the need to stand next to the printer watching the first layer, a quality-of-life improvement that's hard to go back from once you've experienced it.

Current setup

Camera and streaming

The camera setup uses a standard USB webcam connected to the Pi. The camera-server project provides two streaming modes: MJPEG for the OctoPrint dashboard (low latency, works in any browser) and HLS for remote viewing over slower connections. The MJPEG stream is the primary way to check on prints; it loads quickly and updates in real time in the OctoPrint web interface.

History

This Pi originally also had a small status display attached; the display was later moved to the backup Pi (which benefits more from local, no-network status output) once this Pi's camera stream took over as the primary way to check on things remotely. The unit was also renamed at that point to better reflect its now-singular focus on the printer.

Notable OS lesson

After moving this Pi to a newer OS release, boot configuration files moved to a new path. Editing the old path silently does nothing, which is an easy trap when following older notes or tutorials for the same hardware. The lesson: always verify that configuration changes actually take effect, especially after OS upgrades on embedded hardware.

Why Docker on a Pi

Running OctoPrint in Docker on a Pi 3B might seem like overkill, but it provides consistency with the rest of the fleet. The same Portainer interface manages this container alongside the NAS services, the same monitoring stack collects its metrics, and the same backup strategy covers its configuration. The overhead of Docker on ARM is minimal for a single-container setup, and the operational benefits justify the small resource cost.