OctoPrint 3D Printer Control Station
This lab guides students through building and deploying a network-attached 3D printer control and monitoring station using the OctoPrint host platform and OctoPi operating system. Working with an ARM-based single-board computer such as a Raspberry Pi, students flash and configure embedded Linux, establish local network connectivity via Wi-Fi or Ethernet, configure remote access, and interface the host computer to a fused deposition modeling (FDM) 3D printer over a USB serial connection. Students integrate a camera subsystem for real-time video streaming and optical print monitoring, manage print jobs via a web interface, and track machine telemetry such as thermal curves and G-code execution. Through this exercise, students develop practical skills in embedded Linux administration, additive manufacturing machine supervision, serial communication, and local network service configuration.
Uploaded by demo on 2026-09-03 · ready · Electronics · Original source ↗
Files: OctoPi_README.md · OctoPrint_README.md · OctoPrint_SECURITY.md · OctoPrint_setup.py
Readiness checks
-
complete 2026-09-03 02:20 🛡 Cybersecurity: Do not place on an open network · 6 findings 24 searches · 11 pagesview · PDF
Latest report — 2026-09-03 02:20
Readiness: OctoPrint 3D Printer Control Station
Verdict: Ready with caveats · 2026-09-03 · est. parts cost $266–$806 (the 3D printer itself is $169–$649 of that; the control station on its own is roughly $97–$157) Cybersecurity — software & network: Do not place on an open network
This is the cold check for this lab — there is no previous report, so everything below is the baseline the next check will measure drift against. The station is almost entirely commodity hardware and every required part can be ordered today: the Raspberry Pi 4 Model B is in stock at $55.00, the official 5.1 V / 3 A power supply at $8.00, and the printer cable at $2.26. Two of the snapshot's example part numbers are not catalog numbers and were replaced by their catalog siblings (details in Substitutes). The one real problem is the optional Raspberry Pi Camera Module 3, which is out of stock at every authorized distributor checked with 9–26 week factory lead times; the snapshot itself accepts any UVC USB webcam instead, and those are plentiful. Three items are cheap and in stock but arrive with one unverified attribute each — the power supply's output connector, the cable's shielding, and UVC compliance of any specific webcam — none of which blocks the build, all of which the instructor should confirm at the cart.
Action required
| Part | Problem | Recommended action |
|---|---|---|
| Raspberry Pi Camera Module 3 (SC0872 / SC1223) | Zero stock at every ECIA-authorized distributor checked — Newark 0, Mouser 0 (9-week factory lead), DigiKey 0 (26-week factory lead). Supply-chain risk rated High for SC1223. | The camera is optional, and the snapshot accepts any UVC USB webcam. Buy a USB webcam instead ($14.99–$59.99 retail) after confirming UVC/MJPEG support on the seller's product page — see Substitutes. If the CSI module is required for the exercise, order against a 9-week lead time. |
| Raspberry Pi 15.3W USB-C PSU (KSA-15E-051300HU) | Not a catalog number — no DigiKey record and no ECIA-authorized distributor lists it. | Order Raspberry Pi SC0445 instead ($8.00, 2931 in stock). Confirm the output connector is USB-C (Pi 4 / Pi 5) or Micro-USB (Pi 3 / Zero 2 W) to match your board — the evidence does not state it. |
| Qualtek 3021001-01M (USB A-to-B cable) | Not a catalog number — no DigiKey record and no ECIA-authorized distributor lists it. | Order the sibling 3021001-03 ($2.26, 3384 in stock), 0.914 m, inside the snapshot's 0.5–1.5 m band. Confirm it is shielded before ordering; the snapshot requires shielding against stepper and heated-bed noise. |
| SanDisk SDSQUA4-032G-GN6MA (MicroSD) | Not stocked through authorized electronics distribution — the only ECIA listing is Avnet at 0 stock. | Not a real obstacle: buy any Class 10 / UHS-I card of 8 GB or more at retail ($7.22–$21.60). The snapshot explicitly allows any such card. |
| Libre Computer AML-S905X-CC ("Le Potato") | Retail listings could not be confirmed for the bare board; both vendor product pages returned no readable text. | Optional alternative board only — the Raspberry Pi path is fully sourceable. Confirm price and stock directly with Libre Computer if you want this board. |
Cybersecurity — software & network
Do not place on an open network — The image ships documented default SSH credentials and an unauthenticated camera stream on port 8080, and OctoPrint's own security policy declares exposure beyond a private trusted network unsupported — network isolation is the control here, not a patch.
| Component | Version | How known | Support status |
|---|---|---|---|
| OctoPrint (host application, web interface on ports 80/443) | 1.11.8 | inferred (OctoPi installs it with pip install $OCTOPI_OCTOPRINT_PACKAGE where OCTOPI_OCTOPRINT_PACKAGE="OctoPrint" carries no version (fetched/03-config, fetched/04-start_chroot_script), so a build takes whatever PyPI serves; 1.11.8 is the current PyPI release, uploaded 2026-06-23 (fetched/05-json)) |
— |
| OctoPi (operating system distribution) | not determined | unpinned (no release tag or commit is pinned; the module config and build script reference moving upstream archives (fetched/03-config, fetched/04-start_chroot_script)) | — |
| Debian 13 (Trixie) — current Raspberry Pi OS Lite base | 13 | inferred (Raspberry Pi OS release notes: every entry from 2025-10-01 onward is 'Based on Debian Trixie release', latest entry 2026-06-18 (fetched/06-release_notes.txt)) | supported until 2028-08-09 |
| Debian 12 (Bookworm) — Le Potato image option and older OctoPi base | 12 | inferred (the snapshot records the Libre Computer base image as Debian 12 Bookworm / Debian 11 Bullseye, and OctoPi as a Raspberry Pi OS Lite / Debian derivative) | extended/LTS support only until 2028-06-30 |
| Debian 11 (Bullseye) — Le Potato image option and older OctoPi images | 11 | inferred (the snapshot records the Libre Computer base image as Debian 11 Bullseye / Debian 12 Bookworm) | unsupported since 2024-08-14 |
| Raspberry Pi OS Lite armhf (base disk image) | not determined | unpinned (downloaded through the rolling 'latest' alias https://downloads.raspberrypi.org/raspios_lite_armhf_latest; no image release is pinned (snapshot)) | — |
| mjpg-streamer (webcam stream, port 8080) | not determined | unpinned (OCTOPI_MJPGSTREAMER_ARCHIVE points at https://github.com/jacksonliam/mjpg-streamer/archive/master.zip — a moving branch archive, not a release (fetched/03-config)) | — |
| OctoPrint Python dependency stack (setup.py) | not determined | unpinned (62 dependency rows are version ranges; only 6 are exact pins and five of those apply only to Python < 3.9 (fetched/01-setup.py). pyproject.toml declares no project dependencies at all (fetched/02-pyproject.toml)) | — |
| Python 3 runtime (virtualenv at /home/pi/oprint) | not determined | not determined (the build creates the virtualenv from the image's system python3 (python3 -m virtualenv --python=python3 oprint, fetched/04-start_chroot_script); OctoPrint 1.11.8 requires >=3.7,<3.14 (fetched/05-json)) |
— |
| CustomPiOS (image build framework) | not determined | unpinned (cloned with git clone and no tag or commit hash (snapshot)) |
— |
| Component | Finding | Severity | Fix available? |
|---|---|---|---|
| Debian 11 (Bullseye) | The Le Potato build path and any older OctoPi image still on Debian 11 Bullseye run an operating system whose security support ended on 2026-08-31, so those stations stop receiving security fixes entirely. | posture | Yes — build on the Debian 12 (Bookworm) or Debian 13 (Trixie) image instead; Libre Computer publishes a Debian 12 image for the AML-S905X-CC and Raspberry Pi OS Lite is already on Trixie. |
| mjpg-streamer (webcam stream) | The camera stream is served on port 8080 and through the /webcam/ proxy path with no authentication recorded anywhere in the sources, so anyone who can reach the station on the network can watch the printer. | posture | Mitigation only — keep the station on an isolated or segmented lab network and block port 8080 at the reverse proxy or the network edge; there is no authentication option to switch on. |
| OctoPi / SSH | The image ships with a published default login (user pi, password raspberry) and SSH listening on port 22, so anyone on the same network who knows the documented default can log into the station until the password is changed. |
posture | Mitigation only — change the password on first boot with sudo raspi-config (or preseed a password/SSH key before flashing) and verify it on every station before students connect one. |
| OctoPi image build | The image build downloads the webcam streamer from a moving master.zip branch archive and the yq tool from whatever GitHub release is newest, with no version or checksum pinned, so nobody can say afterwards which code went into a given station. |
posture | Mitigation only — pin OCTOPI_MJPGSTREAMER_ARCHIVE to a tagged release and record the build date and OCTOPI_COMMIT alongside each station. |
| OctoPrint | OctoPi installs OctoPrint with no version constraint, so two images built on different days contain different releases of the network-facing application and the lab has no fixed version anyone can check or reproduce. | posture | Mitigation only — pin the version at build time (OCTOPI_OCTOPRINT_PACKAGE="OctoPrint== |
| OctoPrint Python dependency stack | 62 of OctoPrint's dependency rows are open-ended version ranges rather than pins, so the library versions actually running on a station depend on the day it was imaged and cannot be determined from the project files. | posture | Mitigation only — capture pip freeze from the built image and re-check that list on each rebuild, rather than relying on the project's ranges. |
What this means for your lab
Treat this station as an appliance that anyone on the same network can reach. As shipped, the OctoPi image has a published default login (user 'pi', password 'raspberry') for remote shell access, and the webcam stream on port 8080 has no password at all — so a person on the campus network could watch the printer's camera, and, if the default password has not been changed, log into the machine and send commands to the printer, including moving the head and heating the nozzle and bed. The web interface is reachable over plain HTTP on port 80, and the HTTPS option uses a self-signed certificate that will make every browser warn students to click through a security error. OctoPrint's own maintainers state that the software is built only for private, trusted networks and that putting it on the open internet is unsupported and dangerous. Practical steps before students use it: change the default password on first boot, put the station on an isolated or segmented lab network rather than the general campus network or the internet, never forward ports to it from outside, and talk to campus IT before connecting it. Build stations from a Debian 12 or Debian 13 based image — a Debian 11 (Bullseye) build no longer receives security updates at all. One more thing to know rather than to fix: because the image installs whatever version of OctoPrint and its libraries is current on the day it is built, two stations built months apart are not running the same software, so record what each one has and re-check it after every rebuild.
Not checked
- tornado (OctoPrint web layer): the only exact pin available to check, 6.4.2, applies solely to Python 3.8 builds (
python_version>='3.8' and python_version<'3.9'); a current build takes the rangetornado>=6.5.1,<6.6instead, and the version it resolves to was not determined this run — so the advisories recorded against 6.4.2 in the evidence do not describe this lab - OctoPrint Python dependency stack (62 range-specified rows): specified as ranges rather than pins; no exact version exists in the project to check against the advisory database
- mjpg-streamer: installed from a moving
master.zipbranch archive; no version to check and no advisory database covers this source-only C project - CustomPiOS: unpinned git clone with no tag or commit hash recorded
- Python 3 runtime: the virtualenv is built from the image's system python3; that version was not determined this run
- Raspberry Pi OS Lite armhf image: downloaded through the rolling 'latest' alias, so no image release is pinned; only its Debian base was established
- Image build APT packages (gawk, util-linux, qemu-user-static, git, p7zip-full, python3, jq, sudo) and the runtime apt set (nginx, haproxy, ffmpeg, avahi-daemon, imagemagick, avrdude): installed unpinned by apt; the versions depend on the distribution snapshot at build time and were not determined this run
- Vagrant (> 1.9), VirtualBox, vagrant-nfs_guest, nfs-kernel-server, Docker builder image: build-host tooling only, never on the station; '> 1.9' is a minimum constraint, not a version, so no support-status lookup was possible
- Development toolchain (ruff, djLint, prettier, pre-commit): development-only dependencies with no versions stated in the sources; not present on a student station
- BrowserStack, PyVmMonitor, Sentry: hosted third-party services, not versioned software shipped with the lab
Parts
| Part | Spec/Package | Status | Stock | Price | Source |
|---|---|---|---|---|---|
| Raspberry Pi 4 Model B 2GB — snapshot MPN RASPBERRY PI 4B/2GB | SBC, 85.00 mm x 56.00 mm, 5 V rail, 0 °C ~ 50 °C | Active; ordered as SC0193(13) | 1210 | $55.00 | DigiKey (Raspberry Pi SC0193(13)) |
| Raspberry Pi 4 Model B 2GB — DigiKey keyword match SC0193(11) | SBC 1.5 GHz 4-core 2GB, 85.00 mm x 56.00 mm | Active; stock not reported | — | $55.00 | DigiKey (Raspberry Pi SC0193(11)) |
| Libre Computer AML-S905X-CC ("Le Potato") — alternative SBC | SBC, Pi-3 footprint 85 mm x 56 mm, 5 V at 2.0–2.5 A | not verified — bare board not priced in evidence | — | $64.99 (bundle with case) | eBay listing (bundle, not the bare board) |
| MicroSD card — snapshot MPN SDSQUA4-032G-GN6MA | MicroSDHC/SDXC, Class 10 / UHS-I / A1, >= 8 GB | 0 stock at authorized distribution; readily available at retail | 0 (ECIA) | $21.60 | Sweetwater (retail; $7.22 at Circuit Specialists) |
| SBC power supply — snapshot MPN KSA-15E-051300HU | 90–264 VAC in; 5.1 V, 3 A, 15 W out; 45 x 45 x 27 mm | Active; ordered as SC0445 | 2931 | $8.00 | DigiKey (Raspberry Pi SC0445) |
| Raspberry Pi Camera Module 3 — snapshot MPN SC0872 | CSI ribbon camera module | hard to obtain — 0 stock, 9-week factory lead (Mouser) | 0 | $25.00 (Mouser), $27.25 (Newark) | ECIA authorized distributors; no stock anywhere |
| Raspberry Pi Camera 3 — DigiKey record SC1223 | CSI ribbon camera module | hard to obtain — 0 stock, 26-week factory lead (DigiKey); supply-chain risk High | 0 | $25.00 | DigiKey (out of stock) |
| 3D printer USB cable — snapshot MPN 3021001-01M | USB 2.0 A plug to B plug, 0.5–1.5 m, shielded required | Active; ordered as 3021001-03 (0.914 m) | 3384 | $2.26 | DigiKey (Qualtek 3021001-03) |
| Consumer FDM 3D printer | Serial G-code controller (Marlin/Repetier/Smoothieware), USB virtual serial, 115200 or 250000 baud | readily available at retail; serial G-code support not verified per model | — | $179.00 | MatterHackers (Creality Ender-3 V3 SE); band $169.00–$649.00 |
| MicroSD reader/writer for the flashing workstation | USB 3.0 SD/microSD reader-writer | readily available | — | $9.99 | Iogear (GFR304SD); band $9.99–$29.99 |
| Flashing host workstation (PC) | Any Windows/macOS/Linux PC running Raspberry Pi Imager, Etcher or dd |
not checked | — | — | assumed institutional equipment, not a purchased line |
Substitutes
| For part | Substitute | Differences | Verified | Judgment |
|---|---|---|---|---|
| RASPBERRY PI 4B/2GB (SC0193(11), no stock figure reported) | Raspberry Pi SC0193(13) — "RASPBERRY PI 4 DUAL RAM VARIANT", $55.00, 1210 in stock | Same manufacturer, same Pi 4 Model B family, identical board outline 85.00 mm x 56.00 mm, identical $55.00 price. "Dual RAM variant" means the board ships with RAM from either of two sources; the capacity is not stated. | verified: form factor / board outline (DigiKey parametrics, 85.00 mm x 56.00 mm on both), Pi 4 Model B family and Active lifecycle (DigiKey descriptions), price and stock. not verified: RAM capacity — the evidence never states 2GB. | Acceptable — confirm the RAM option at the cart. |
| KSA-15E-051300HU (no catalog record) | Raspberry Pi SC0445 — "AC/DC WALL MNT ADAPTER 5.1V 15W", $8.00, 2931 in stock | 5.1 V output sits inside the required 5.0–5.25 V window; 3 A max meets the top of the required 2.5–3.0 A; 90–264 VAC input exceeds the required 100–240 VAC, which is acceptable. Same manufacturer. | verified: output voltage, output current, wattage, AC input range and physical size (DigiKey parametrics). not verified: that SC0445 is the same physical unit as KSA-15E-051300HU; and the output connector type (USB-C vs Micro-USB), which DigiKey's parameters do not state. | Acceptable on electrical specification — confirm the connector matches your board. |
| Qualtek 3021001-01M (no catalog record) | Qualtek 3021001-03 — "CBL USB2.0 A PLUG TO B PLUG 3'", $2.26, 3384 in stock | Length 0.914 m instead of 1.0 m, inside the snapshot's allowed 0.5–1.5 m band. Same manufacturer, same series, same connector pair, same USB 2.0 standard. | verified: connector pair (A plug to B plug) and cable length from the DigiKey description; Active lifecycle, price and stock. not verified: shielding — DigiKey returned no parameters block and the description does not state it, while the snapshot requires a shielded cable. | Acceptable on connectors and length — confirm shielding on the datasheet, or use any equivalent shielded USB 2.0 A-to-B cable. |
| Raspberry Pi Camera Module 3 (SC0872 / SC1223, 0 stock everywhere) | Generic USB UVC webcam — e.g. Inland iC780 Full HD 1080p, $14.99 (Micro Center) or PiShop 1080p Full-HD WebCam, $39.95 | Connects to a USB Type-A host port instead of the CSI ribbon connector, drawing from the 5 V USB bus (snapshot allows up to 500 mA) rather than the 3.3 V CSI interface. This is a different interface, but the snapshot explicitly permits it, so it is not a footprint hard stop. In stock at retail and cheaper at the low end. | verified: retail price and seller for each listing (shopping results this run). not verified: UVC / MJPEG compliance of any specific listing — the one claim the swap hinges on. The product-page fetch was blocked, and shopping results are redirect URLs, not product pages. | Plausible, unverified — confirm UVC/MJPEG support on the seller's own product page before ordering. |
Verify any substitute against its datasheet or the seller's product page before ordering — the comparisons above rest only on the evidence gathered in this check.
Other dependencies
- Fabrication: none required. The snapshot records no PCB layouts, Gerber files, schematics or STL/STEP files — the station is built entirely from commercial off-the-shelf modules and a pre-manufactured printer. Nothing to check.
- Raspberry Pi OS download host (
https://downloads.raspberrypi.org/) — reachable. The release-notes file at this host was fetched successfully during this check. - Upstream Git repositories — both reachable.
github.com/OctoPrint/OctoPrintlisted 35 entries at its root andgithub.com/guysoft/OctoPilisted itssrc/modules/octopidirectory during this check. - OctoPi distribution download endpoints — not checked. No reachability evidence was gathered for
octopi.octoprint.org/latest, the GitHub releases mirror,octopi.gnethomelinux.com, theunofficialpi.org32-bit and 64-bit nightly build directories, or the tworpi-imager-octopi.jsonmanifests. These are the links an instructor actually downloads the image from, so they are worth a manual click before a class. - Libre Computer image thread (
hub.libre.computer/t/debian-12-bookworm-and-11-bullseye-for-libre-computer-boards/230) — not checked. - Documentation and community sites — not checked:
docs.octoprint.org,plugins.octoprint.org,community.octoprint.org,octoprint.org/security.
Watch list
- Raspberry Pi Camera Module 3 — the only part already in trouble. Zero stock at Newark, Mouser and DigiKey with 9-week and 26-week factory lead times and a High supply-chain risk rating on SC1223. Expect it to still be scarce at the next check; the USB webcam path is the durable answer.
- Raspberry Pi 4 Model B — SC0193(11) returned no stock figure at all this run, and the orderable line is the dual-RAM SKU SC0193(13). Pi 4 board availability and SKU naming have moved before; re-confirm which SC0193 variant is stocked and what RAM it carries.
- SanDisk SDSQUA4-032G-GN6MA — already at zero stock across authorized distribution and rated "Med" supply-chain risk. It will likely stay a retail-only purchase; watch that the Class 10 / UHS-I retail price band stays near $7–$22.
- Libre Computer Le Potato — could not be priced from a primary source this check. If the alternative board matters to the course, establish a real supplier and price before the next run so there is a baseline to compare.
- Consumer 3D printer — the retail band ($169–$649) is stable, but the risk is compatibility rather than price: new consumer models increasingly ship closed firmware without a serial G-code USB port. Confirm serial G-code support for whichever model the program standardises on.
Snapshot What the lab depended on when it was uploaded — the baseline the readiness checks research against.
This lab implements a network-attached print server and monitoring station for consumer 3D printers using the OctoPrint host software and the OctoPi operating system distribution. The hardware platform centers on an off-the-shelf single-board computer (SBC)—specifically a Raspberry Pi (armhf/arm64) or Libre Computer AML-S905X-CC ("Le Potato")—connected to a consumer 3D printer over USB/serial and optionally integrated with a camera (CSI or USB UVC) for optical monitoring. The SBC operates on a single primary power rail of 5 V DC (typically requiring 2.5 A to 3.0 A via Micro-USB or USB-C), while the attached 3D printer typically runs on its own internal 12 V or 24 V DC power supply, communicating over standard 5 V or 3.3 V USB serial signaling.
Bill of Materials
Primary Single-Board Computer (Host Platform)
- Identity: Raspberry Pi Foundation single-board computer (Raspberry Pi 3 Model B, 3 Model B+, 4 Model B, or Zero 2 W; 32-bit armhf or 64-bit arm64 architecture). Described in documentation as "Raspberry Pi".
- Quantity: 1
- Footprint/package: Single-board computer module (Raspberry Pi standard form factor ~85 mm x 56 mm or Pi Zero form factor ~65 mm x 30 mm).
- Electrical constraints: 5.0 V to 5.25 V DC input rail via Micro-USB or USB-C; current demand 2.5 A to 3.0 A minimum under full CPU and USB peripheral load. Logic I/O level 3.3 V.
- Substitution latitude: Must be an ARM-based board supported by Raspberry Pi OS Lite and the OctoPi build script. Older single-core Raspberry Pi models (Model 1, Zero) are functionally discouraged due to performance constraints during video streaming, but armhf/arm64 multicore models are fully compatible.
- Student control: No (fixed platform; students connect cables and insert storage).
- Sourcing plan: distributor lookup (representative example — sources give spec only): Raspberry Pi 4 Model B 2GB (MPN: RASPBERRY PI 4B/2GB).
Alternative Single-Board Computer (Host Platform)
- Identity: Libre Computer AML-S905X-CC ("Le Potato"). Explicitly referenced in documentation as an alternative supported target.
- Quantity: 1 (alternative to Raspberry Pi).
- Footprint/package: Single-board computer module (form factor compatible with Raspberry Pi 3 footprint, 85 mm x 56 mm).
- Electrical constraints: 5.0 V DC input rail via Micro-USB; requires 2.0 A to 2.5 A regulated power supply.
- Substitution latitude: Must run Debian 11 (Bullseye) or Debian 12 (Bookworm) images provided by Libre Computer for AML-S905X-CC.
- Student control: No.
- Sourcing plan: retail shopping search: Libre Computer Board AML-S905X-CC Le Potato.
Storage Media (Boot / OS Drive)
- Identity: MicroSDHC / MicroSDXC flash memory card, Class 10 / UHS-I / A1 rating, minimum 8 GB capacity (OctoPi build environment requires at least 2.5 GB free space; typical runtime images require ≥ 8 GB to accommodate logs and print files).
- Quantity: 1
- Footprint/package: MicroSD card (11 mm x 15 mm x 1 mm).
- Electrical constraints: 2.7 V to 3.6 V operating voltage supplied internally by SBC MicroSD slot.
- Substitution latitude: Any reliable MicroSD card meeting Class 10 or UHS-I read/write speeds to prevent write-latency bottlenecks during print execution.
- Student control: Yes (inserted/removed by user during flashing and setup).
- Sourcing plan: distributor lookup (representative example — sources give spec only): SanDisk Ultra 32GB MicroSDHC UHS-I (MPN: SDSQUA4-032G-GN6MA).
Single-Board Computer Power Supply
- Identity: AC-to-DC external regulated switching wall adapter, 5 V DC output, ≥ 2.5 A (preferably 5.1 V / 3.0 A to avoid under-voltage throttling), terminated in Micro-USB or USB-C to match target SBC.
- Quantity: 1
- Footprint/package: Wall-mount plug-in AC adapter with captive cable or USB female port.
- Electrical constraints: Input: 100 V to 240 V AC, 50/60 Hz. Output: 5.0 V to 5.25 V DC regulated, 2.5 A to 3.0 A continuous output.
- Substitution latitude: Must maintain output voltage above 4.75 V under full 2.5 A transient loads; inferior mobile phone chargers cause brownouts and dropped prints.
- Student control: No (connected at setup).
- Sourcing plan: distributor lookup (representative example — sources give spec only): Raspberry Pi 15.3W USB-C Power Supply (MPN: KSA-15E-051300HU).
Monitoring Camera Subsystem (Optional / Supported)
- Identity: USB UVC compliant webcam or Raspberry Pi Camera Module (RaspiCam CSI interface). Sources explicitly cite compatibility with "mjpg-streamer with RaspiCam support" and standard "USB webcam".
- Quantity: 1
- Footprint/package: CSI flat flexible ribbon cable module (e.g. Raspberry Pi Camera Module v2/v3) or external chassis-mount USB webcam enclosure with USB Type-A plug.
- Electrical constraints: Powered via SBC 5 V USB bus (up to 500 mA) or SBC 3.3 V CSI camera ribbon interface.
- Substitution latitude: Any USB Video Class (UVC) standard webcam supporting MJPEG/YUV output streams, or official Raspberry Pi Camera Module supported by the kernel v4l2 drivers.
- Student control: Yes (manually positioned/aimed by user to focus on printer bed).
- Sourcing plan: distributor lookup (representative example — sources give spec only): Raspberry Pi Camera Module 3 (MPN: SC0872).
3D Printer Interconnect Cable
- Identity: USB data and power cable, USB Type-A male to USB Type-B male (or Mini-B / Micro-B male, depending on 3D printer mainboard receptacle).
- Quantity: 1
- Footprint/package: Molded cable assembly, typical length 0.5 m to 1.5 m.
- Electrical constraints: 5 V VBUS line with differential USB 2.0 D+/D- signaling (3.3 V logic levels). Shielded cable required to mitigate EMI/RFI noise from stepper motor drivers and AC heated beds.
- Substitution latitude: Any high-quality shielded USB 2.0 cable with connectors matching the SBC host port (Type-A) and 3D printer controller board port.
- Student control: Yes (plugged in by user during station setup).
- Sourcing plan: distributor lookup (representative example — sources give spec only): Qualtek USB 2.0 A-to-B Cable 1m (MPN: 3021001-01M).
Consumer 3D Printer (Controlled Host Platform)
- Identity: Consumer Fused Deposition Modeling (FDM) 3D printer equipped with an open-source or standard serial G-code controller (e.g., Marlin, Repetier, or Smoothieware-based controller board).
- Quantity: 1
- Footprint/package: Standalone machine assembly.
- Electrical constraints: Self-powered machine running on 110 V / 230 V AC mains with internal 12 V or 24 V DC power bus; exposes serial interface via internal USB-to-UART bridge running at 115200 or 250000 baud.
- Substitution latitude: Any FDM 3D printer accepting standard G-code over a virtual serial USB port.
- Student control: Yes (students prepare print bed, load filament, and monitor mechanical motion).
- Sourcing plan: retail shopping search: consumer FDM 3D printer with USB interface.
Flashing Host Workstation
- Identity: Host PC (Windows, macOS, or Linux) with MicroSD card reader/writer slot or external USB-to-MicroSD adapter.
- Quantity: 1
- Footprint/package: Desktop or laptop computer workstation.
- Electrical constraints: Standard workstation power.
- Substitution latitude: Any computer capable of running Raspberry Pi Imager, Etcher, or standard Unix imaging tools (
dd). - Student control: Yes (operated by student to flash OS image and write WiFi configuration).
- Sourcing plan: retail shopping search: USB 3.0 MicroSD card reader writer.
Software and network dependencies
- Operating System Distribution: OctoPi (custom distribution based on Raspberry Pi OS Lite and Debian). Source repository: https://github.com/guysoft/OctoPi. Version: not stated (documentation references nightly builds and release branches, but no explicit static release tag in repository root). Version origin: not stated. Version pinning: unpinned; scripts reference dynamic upstream links. Manifest:
OctoPi_README.md. Check plan: support-status lookup: Debian Bullseye / Bookworm. - Base Upstream Disk Image (Raspberry Pi): Raspberry Pi OS Lite armhf. Download URL: https://downloads.raspberrypi.org/raspios_lite_armhf_latest (matching
*-raspios*.xz). Version: "latest" (unpinned rolling release alias). Version origin: stated in documentation (OctoPi_README.md). Version pinning: unpinned. Check plan: support-status lookup: Raspberry Pi OS Lite. - Base Upstream Disk Image (Le Potato): Libre Computer Debian 11 Bullseye / Debian 12 Bookworm. Download URL: https://hub.libre.computer/t/debian-12-bookworm-and-11-bullseye-for-libre-computer-boards/230. Version: "Debian 12 Bookworm and 11 Bullseye". Version origin: stated in documentation (
OctoPi_README.md). Version pinning: unpinned. Check plan: support-status lookup: Debian 11 / 12. - Distribution Image Build System: CustomPiOS. Source repository: https://github.com/guysoft/CustomPiOS.git. Version: not stated. Version origin: not stated. Version pinning: unpinned (
git cloneexecuted with no tag or commit hash inOctoPi_README.md). Check plan: not checkable: unpinned git repository. - Host Application: OctoPrint (3D printer control web interface). Source repository: https://github.com/OctoPrint/OctoPrint. License: AGPL-3.0-or-later. Version: dynamically resolved at build time via
src/octoprint/_version.py(module.get_data()["version"]); root packaging scriptsetup.pycontains no hardcoded version string. Version origin: not stated in provided sources. Version pinning: unpinned insetup.py. Manifest:src/octoprint/_version.pyandpyproject.toml(referenced in documentation badges andsetup.py, but files missing from repository root). Check plan: not checkable: version dynamically resolved from missing local file. - Video Streaming Server: mjpg-streamer (fork with RaspiCam support by jacksonliam). Source repository: https://github.com/jacksonliam/mjpg-streamer. Version: not stated. Version origin: not stated. Version pinning: unpinned. Check plan: not checkable: unpinned third-party C repository.
- Python Runtime and Virtual Environment: Python 3 virtual environment provisioned at
/home/pi/oprint/with pip package manager at/home/pi/oprint/bin/pip. Python runtime version: not stated. Version origin: not stated. Check plan: not checkable: version not stated. - Image Build System APT Dependencies (Host System):
gawk,util-linux,qemu-user-static(qemu-arm-static),git,p7zip-full,python3,jq,sudo. Versions: unpinned (sudo apt-get installwithout version specifications inOctoPi_README.md). Version origin: not stated. Check plan: not checkable: unpinned OS packages. - Kernel Modules (Host/Build):
loop(sudo modprobe loop) andnfs(sudo modprobe nfs). Stated inOctoPi_README.md. - Container / Virtualization Build Tools:
- Vagrant: version required "> 1.9". Version origin: stated in documentation (
OctoPi_README.md). Version pinning: minimum constraint (> 1.9), exact version unpinned. Check plan: support-status lookup: Vagrant >1.9. - Vagrant plugins / tools:
nfs-kernel-server,virtualbox,vagrant-nfs_guest. Versions: unpinned. - Docker:
mydistro_builderbuild container image. Version: unpinned.
- Vagrant: version required "> 1.9". Version origin: stated in documentation (
- Code Formatting and Development Toolchain (Development only):
ruff(Python linting/formatting),djLint(HTML/Jinja formatting),prettier(JS/CSS/LESS/YAML formatting),pre-commit(Git hook manager). Versions: not stated in sources (badges present inOctoPrint_README.md). Version origin: not stated. Check plan: not checkable: versions not stated. - Quality and Error Tracking Services: BrowserStack, PyVmMonitor, Sentry. Version: cloud services, not versioned.
Network Exposure:
- Network Interconnection: System connects to local network via Wi-Fi (configured pre-boot via
wifi.nmconnectionon the root of the firstbootfsFAT partition) or wired Ethernet. - Hostname Resolution: mDNS / Zeroconf / Bonjour broadcasting hostname
octopi.local(configurable viaraspi-config). - SSH Remote Shell: Listening on standard port 22/TCP (documented instruction: "Log into your Pi via SSH (it is located at octopi.local..."). Default credentials documented in
OctoPi_README.md: Usernamepi, Passwordraspberry. Documentation instructs users to runsudo raspi-configimmediately to change the default password. - HTTP Web Interface: Reverse proxy / web server listening on port 80/TCP (
http://octopi.local). - HTTPS Web Interface: Reverse proxy / web server listening on port 443/TCP (
https://octopi.local), using an untrusted self-signed SSL certificate automatically generated on first boot. - Video Streaming Service: Direct streaming port listening on port 8080/TCP (
http://octopi.local:8080/?action=stream) viamjpg-streamer, also exposed via reverse proxy path/webcam/?action=stream. - Threat Model and Exposure Constraint: Documented in
OctoPrint_SECURITY.md: OctoPrint is strictly designed for deployment on private, local, trusted networks. Maximum CVSS 4.0 Attack Vector accepted by maintainers isAdjacent. Exposure to the public Internet or hostile networks is explicitly designated an unsupported and dangerous misconfiguration.
Downloads and External URLs
- OctoPi Distribution Downloads:
- Latest Stable Build:
https://octopi.octoprint.org/latest - GitHub Releases Mirror:
https://github.com/guysoft/OctoPi/releases - Secondary Mirror:
https://octopi.gnethomelinux.com/Distros/OctoPi/ - 32-bit Nightly Builds:
https://unofficialpi.org/Distros/OctoPi/nightly/ - 64-bit Nightly Builds:
https://unofficialpi.org/Distros/OctoPi/nightly-arm64/ - Raspberry Pi Imager Repositories:
https://unofficialpi.org/rpi-imager/rpi-imager-octopi.jsonandhttps://octopi.gnethomelinux.com/rpi-imager/rpi-imager-octopi.json
- Latest Stable Build:
- Upstream Base Images:
- Raspberry Pi OS Lite:
https://downloads.raspberrypi.org/raspios_lite_armhf_latest - Libre Computer Le Potato OS Images:
https://hub.libre.computer/t/debian-12-bookworm-and-11-bullseye-for-libre-computer-boards/230
- Raspberry Pi OS Lite:
- Upstream Git Source Repositories:
- CustomPiOS Image Generation Framework:
https://github.com/guysoft/CustomPiOS.git - OctoPi Distro Repository:
https://github.com/guysoft/OctoPi.git - OctoPrint Application Repository:
https://github.com/OctoPrint/OctoPrint - MJPG-Streamer Camera Streamer:
https://github.com/jacksonliam/mjpg-streamer
- CustomPiOS Image Generation Framework:
- Documentation and Project Community URLs:
- OctoPrint Security Policy:
https://octoprint.org/security/ - OctoPrint Official Documentation:
https://docs.octoprint.org - Plugin Repository:
https://plugins.octoprint.org - Support & Forum:
https://community.octoprint.org
- OctoPrint Security Policy:
Fabrication Requirements
No custom printed circuit board (PCB) layouts, Gerber files, schematics, or mechanical fabrication files (STL/STEP) are present in the provided design package. The station is constructed entirely from commercial off-the-shelf (COTS) computing modules, standard peripherals, and pre-manufactured consumer 3D printers.