OctoPrint on Wyse 3040

Having recently purchased an Elegoo Neptune 2 3D printer, I was excited to set up OctoPrint. OctoPrint describes itself as an open source 3D printer controller application, which is to say it provides a web interface to manage your 3D printer. My primary use case for OctoPrint is being able to send jobs to my printer over the network. My printer is locked away in the guest bedroom to minimize noise in the rest of the house, though it is suprisingly quiet by default, and having to walk back and forth from my computer to the printer to manage an SD card would become onerous. OctoPrint is great for this because it connects right to the slicer I use, Ultimaker Cura, and has plugins for more "nice to have" features.

A web browser showing the OctoPrint dashboard, a combination of statistics and visualizations for the currently running print job.
The OctoPrint Dashboard

Overwhelmingly it seems, in the 3D printing community OctoPrint is run through the OctoPi project. OctoPi is an all in one solution to get OctoPrint running on a Raspberry Pi with minimal setup. However, for both price and Pi availability reasons, I have decided to run OctoPrint on a Wyse 3040 thin client I already had. 3040s run around $40 on Ebay, compared to a Pi 4 starting at $35 or going extremely light spec with a Pi Zero 2 W coming in at $15. If you can find one. The chip shortage means getting a Raspberry Pi in 2020 is no small feat. Additionally, these price points start without storage, power, or a case for the Pi, versus the inclusive price for the 3040.

A black box, around the size of a deck of cards, the Wyse 3040
The 3040 fits on the table snugly next to my printer.

To get started installing OctoPrint on my 3040, I ran a quick and dirty install of Debian 11 Bullseye, my favorite Linux server operating system (this is due in no small part to being friendly with a former Debian dev on Discord). With Debian installed it was just a matter of installing pip and then OctoPrint. I did run into some initial trouble having OctoPrint recognize my printer, but adding my user account to the dialout group fixed that.

In terms of getting plugins installed in OctoPrint, most everything works right out of the box except for monitoring. OctoPrint will connect you to a web based webcam for either control and monitoring or timelapse purposes. OctoPi includes the mjpg-streamer program for ease of setup. To my knowledge, mjpg-streamer isn't in the Debian package repository and I didn't want to go through the process of building it myself when the repository hasn't gotten updates in multiple years. In comes µStreamer from the PiKVM devs. Designed to be a drop in replacement for mjpg-streamer, µStreamer is under active development and is available in the Debian repository. Setup was simple and all of a sudden I could make timelapses of my prints and monitor the printer for print failures remotely.

A timelapse of a filament tension relief hook

All in all, I recommend those looking to setup OctoPrint in 2022 take a look at alternatives to the Raspberry Pi that are actually obtainable.