Having ordered my first 3D printer, I am giddy and preparing various things.
I have installed Octoprint on my home server as a Docker container, but when running it, it seems that it wants to have a serial connection to a printer. Octoprint expects to be running on a Raspberry that is connected via its serial interface.
What am I missing?
The printer I ordered (Prusa Mini) comes with a wifi dongle, so I guess there will be a way to reach it over the network. But that does not automagically mean Octoprint can work with it.
Luckily the S in USB stands for serial, so I have 3 printers connected to my server via USB and each one has its own octoprint docker container
I thought Octoprint can have more than 1 printer? Why do you have 3 separate containers?
Also, let’s say I connect my printer to my server with USB, how do I route that USB connection from the server into the container? How did you map that?
Octoprint can only connect to 1 printer at a time, so if you want to use 2 printers at the same time you need 2 separate instances of octoprint. I use portainer so passing through a device is just a matter of finding the device path on the host machine and plugging its path into the portainer config under the runtime & resources tab. In a docker compose you’d use the devices key, for example
devices:
You will likely need to create a separate alias for the host USB path though because devices can be found in a different order every reboot so the path will change. The USB device alias will be based on the device vendor and product id so it will be persistent. https://michaelgreenhill.net/persistent-addressing-for-usb-devices-in-linux/ is one site that explains the issue and how to deal with it
lsusb is your friend during this