mirror of
https://github.com/skoelle/moonweb-site.git
synced 2026-09-17 17:00:25 +00:00
57 lines
2.7 KiB
Plaintext
57 lines
2.7 KiB
Plaintext
---
|
|
title: "OctoPrint"
|
|
section: "smarthome"
|
|
tags: "smarthome"
|
|
parent: "/smarthome/"
|
|
description: "Remote 3D printer control and camera streaming with OctoPrint on Raspberry Pi."
|
|
layout: base.njk
|
|
---
|
|
<h1>OctoPrint</h1>
|
|
<div class="detail-content">
|
|
|
|
<p>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.</p>
|
|
|
|
<h2>Current setup</h2>
|
|
<ul>
|
|
<li><strong>OctoPrint</strong> runs as a Docker container, the main remote control interface for the printer.</li>
|
|
<li><strong>Camera streaming</strong> is handled by a lightweight camera-server project, exposing both an HLS stream and an MJPEG stream, the latter wired directly into OctoPrint's webcam panel.</li>
|
|
<li><strong>Container management</strong> (Portainer, cAdvisor, a node exporter) runs alongside, giving the same monitoring pattern as the rest of the fleet.</li>
|
|
</ul>
|
|
|
|
<h2>Camera and streaming</h2>
|
|
<p>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.</p>
|
|
|
|
<h2>History</h2>
|
|
<p>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.</p>
|
|
|
|
<h2>Notable OS lesson</h2>
|
|
<p>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.</p>
|
|
|
|
<h2>Why Docker on a Pi</h2>
|
|
<p>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.</p>
|
|
|
|
</div>
|