If you’ve got a desktop 3D printer, there’s an excellent chance you’ve heard of OctoPrint. This web front-end, usually running on a Raspberry Pi, allows you to monitor and control the printer over the network from any device that has a browser. But what if you’ve got two printers? Or 20? The logistics of each printer getting its own Pi can get uncomfortable in a hurry, which is why [Jay Doscher] has been working on a way to simplify things.
Leveraging the boosted processing power of the Raspberry Pi 4 and some good old fashioned Linux trickery, [Jay] is now controlling multiple printers from a single device. The trick is to run multiple instances of the OctoPrint backend and assign them to virtual network interfaces so they don’t interfere with each other. This takes some custom systemd
unit files to get up and running on Raspbian, which he’s been kind enough to include them in the write-up.
But getting multiple copies of OctoPrint running on the Pi is only half the battle. There still needs to be a way to sort out which printer is which. Under normal circumstances, the printers would be assigned random virtual serial ports when the Pi booted. To prevent any confusion, [Jay] explains how you can use custom udev
rules to make sure that each printer gets its own unique device node. Even if you aren’t trying to wrangle multiple 3D printers, this is a useful trick should you find yourself struggling to keep track of your USB gadgets.
If you’re wondering why [Jay] needs to have so many 3D printers going at the same time, we hear they’ve been keeping rather busy running off parts for commissioned copies of his popular projects. Something to consider the next time you’re wondering if there’s a way to make a happy buck out of this little hobby of ours, folks.
Sounds like a prime candidate for Containerization
Or use repetier server, free version supports multiple printers.
My thoughts as well. I used to have 2 printers before one broke and havent had time to fix it lol Repetier Server is light weight and works surprisingly well on lower hardware.
I was thinking exactly that since my home octoprint server is containerised and running on an ARM board. Each octoprint instance can have its own chunk of filesystem, its own serial link, port etc.
Neat, although it has been around for some time. I made a similar system where octopart instances got their own port.
The problem with many printers is that starting them is easy. stopping a failed print you have to go to the octopart interface. there’s no local control anymore which is super annoying!
(hoping to be proved wrong now!)
> (hoping to be proved wrong now!)
https://meta.wikimedia.org/wiki/Cunningham%27s_Law
I am already making money out of mine, to print off automotive relays (with electronic gubbins inside).
I expect this will also simplify the running of PiHole in parallel.
I ran 3 octoprint instances on a pi 3, never seemed to have any load issues.
don’t get me wrong, that’s cool… However a nice SPOF.
My personal preference: buy a dedicated Nano/orange-pi per printer for 15 USD it’s not soo terribly expensive if you have multiple printers…with this you have real redundancy.
I hate acronyms LOL tokens me several Google searches to find out SPOF is Single Point Of Faliure LOL
That said, a copy of the SD card can be made.once setup is running, so when the Pi kills the card it is easily replaced. I guess having one machine is also more efficient power wise as well.
The easiest way I found years ago was using OctoPi and just use different configuration files pointing which had different printer settings and using different ports. OctoPi.local:5001 OctoPi.local:5002, etc Nothing else special was needed.
There’s a neat project for Kubernetes called KubeSerial. Have a few Pis scattered around your printer room, plug any USB cable in, based on the USB idVendor/idProduct paring it creates a new octopi instance connected to that USB serial port
I never thought 2 printers 1 octopi would be a thing, but here I am thx for this, I was a little stumped at a solution.
Y’all are running out of idea huh? The community has been doing this for a while.
Cool story, bro.
You know this is a 2 year old post you’re commenting on, right?
The comment I commented on was only a few minutes old. But my comment was meant to be dismissive.