How to Monitor Multiple 3D Printers at the Same Time
OctoPrint is a major upgrade to any 3D printer setup that most dedicated hobbyists have heard of if not already begun using. Typically run on a Raspberry Pi, this program allows users to monitor and control a 3D printer on a browser for any device connected to the same network (or on an external network with a little tinkering). It's a great option for managing 3D printing, so can it be used to monitor multiple 3D printers at the same time?
If you have more than one printer, efficient monitoring can be difficult, particularly because OctoPrint does not natively support multiple printers. Getting a separate Pi setup for each printer and running them individually is possible but labor-intensive and can get pricey depending on the number of printers in your workspace.
The good news is that the Raspberry Pi 4 has enough processing power to run multiple instances of OctoPrint, which essentially links the Pi to each printer individually but outputs the information on the same interface. There’s a catch, though—because OctoPrint isn’t equipped with the ability to do this normally, determining which printer is which and controlling them effectively can be a bit tricky.
With some work in Linux and a little customization, you can assign unique identities to your printers, manage them via OctoPrint, and run your setup effectively without having to manage each individually on your computer.
The basics of this process are as follows:
systemd unit files are required to run OctoPrint for multiple printers on a single Pi, and custom udev rules are needed to ensure that each printer is assigned a unique device. The latter part is useful for any kind of DIY electronics monitoring as this can also be done to identify non-printer tech that is connected via USB.
One of the major advantages of working with OctoPrint is that it is open source with a massive community of users. This means that any lacking features or bugs are quickly identified, and by the time you notice it, you can almost guarantee that someone is developing a workaround.
Why bother trying to monitor multiple printers at once?
If you have multiple printers but have gone this long without managing each using a separate interface, you may wonder whether setting up a monitoring system that integrates your printers is even worth it. If you routinely run multiple prints, create parts for commission or for sale, or want to simplify your management setup, we strongly recommend putting in the time now to save your time down the line.
Doing this also negates the need to buy a separate Pi for each printer. Depending on the load you’re working with, even the souped-up Raspberry Pi 4 might not cut it. For 3D printing workshops or farms with a lot of machines, you might want to dedicate a PC as the control node.
Monitoring multiple 3D printers on a single Raspberry Pi using OctoPrint
As always, we have thoughtful and dedicated folks in the 3D printing community to thank for figuring out how to optimize and streamline printing processes. Jay Doscher figured out this method for running multiple OctoPrint instances on a single Pi and detailed the process here.
Doscher’s article provides detailed diagrams to reference when integrating each OctoPrint instance on the Pi and making sure that each printer has a unique identifier. If you’re following this method, we strongly recommend reading through the article in full before trying it out yourself so you’re prepared for the configuration changes required.
Doscher’s method may be a little daunting for hobbyists who are just getting into programming and 3D printing. Still, it is a great method for maintaining all OctoPrint functionality for each printer. Because you are running several version of the program at the same time, however, it can be pretty demanding on your Pi.
Using an app container can have a similar effect, allowing you to run containerized instances of OctoPrint. Like Doscher’s method, this approach is best for those who have at least a baseline knowledge of programming or are willing to do some background research and practice before working on their own setups.
Docker is a platform that allows developers to create containerized apps, which are applications that are run in isolated user spaces while being on the same operating system. This allows multiple OctoPrint iterations to be installed and run on a single device, despite the original application not having this functionality.
There are currently multiple Docker versions of OctoPrint. These version are community-made, with slight modifications to address different limitations and applications. We recommend researching a few version and seeing what has worked for other makers that may have as similar setup to yours.
For this approach, you’ll need Docker and an auxiliary tool like Docker Compose. Once the program is setup, adding printers should simply require that another Docker app is run.
MatterHackers is a fan-favorite 3D printing supply company that has been at the forefront of making 3D technology accessible to hobbyists. They are developing a control software called MatterControl, which combines 3D modeling, slicing, and printer management in a single interface.
Unlike OctoPrint, MatterControl isn’t going to be natively compatible with Raspberry Pi. Instead, a Linux package will be available for manual installation. The major drawback of this system is that it reduces the mobility of a user’s setup and won’t allow for a webcam monitoring system unless a designated laptop is setup to run the program.
Repetier is another strong presence in the 3D printing community, having released an app, firmware, host software, and web interface dedicated to 3D printing. Repetier-Server is specifically designed to optimize printing for multiple devices on the same server. The program provides a ready-to-install Raspberry Pi image and supports touchscreen controls. The paid version boasts a wide range of functionality, including webcam support.