Multiple printers on 1 Raspberry Pi (or other device) with SimplyPrint, OctoPrint or Klipper (multi-printer setup)
In this article, we'll talk about the different ways you can use a single Raspberry Pi (or other device, if you don't use a Pi), to run SimplyPrint.
This article is quite advanced, and the multi-printer setup is not recommended unless you're ready to get your hands dirty and get technical. We also cannot provide support on this setup, as SimplyPrint support can only help with the standard setup - so you're on your own.
As described in our setup guide, the regular SimplyPrint set up does not support multiple printers per Raspberry Pi out of the box.
Our "SimplyPi" Raspberry Pi image ships with the SimplyPrint plugin on top of OctoPrint, and as OctoPrint doesn't natively support controlling multiple printers, we do not natively either.
But, there are other ways you can achieve this! Not via the standard SimplyPrint setup, but if you're willing to dive into some slightly more advanced ways, keep reading for a guide on how to achieve multiple printers on a single Pi.
Before we get into the "How-to" section, let's briefly look at the possible pitfalls, limitations and issues that one may encounter when opting for the multi-printer setup method;
Running multiple printers on 1 Pi puts extra pressure on the Pi, which it will need to be able to handle.
The SimplyPrint guide on
Picking the right Raspberry Pi for running SimplyPrint / OctoPrint is a good start, but not all Pi's in this list are suited for this, as they either lack the power, RAM or USB capabilities.
Recommended Pi's;
Pi 4B with at least 2 GB of RAM - 4GB is the more safe choice
Pi 5
As long as you make sure the Pi or device you use, has a good amount of power and RAM, you're off to a good start! If you plan on using cameras with the printers, more RAM is recommended.
Sadly, there are 3D printers out there that do not handle being on the same Raspberry Pi together very well.
In the case where you have multiple printers that do not have a serial number, or doesn't have a unique one on its main board that is fed to the serial port (where the USB connection between Pi and printer happens), the Pi will not be able to differentiate between your printers, and though the setup will work, every time the Pi restarts, the printers might switch places and be mistaken for each other, as the Pi can't tell them apart.
At time of writing, this is the case with all Creality printers, most, if not all, Anycubic printers as well - and more, especially Chinese, brands share the same issue with not having unique serial numbers per printer.
If you pick a Pi that can't handle the load, or even if you pick one that is better suited for the multi-printer setup, there is the risk of an overworked Pi - not being able to process all the tasks and printers it's running at the same time - which can result in poor print quality, stopped prints, pauses in prints due to the print (Gcode) not being fed to the printer fast enough, so the printer stalls, creating discoloration and blobs on your print.
This is especially a problem if you print large files, as sending a ~100+ MB file to the Pi for all your printers (let's say you run 4 on one Pi), will result in the Pi trying to download 400 MB at the same time, as it must download the same file for each individual printer, which may result in your printer showing as "Offline" in SimplyPrint for a while, or the download process failing and the prints not starting on 1 or all printers.
Lastly, even if you - in the case of 4 printers on 1 Pi - have 3 running printers, sending a large file to 1 idle printer, may result in the Pi having such a hard time, that it affects the other 3 instances.
The issues that may be presented by an overworked Pi are described in greater detail here;
Bad print quality when printing through USB / SimplyPrint / OctoPrint
As mentioned, this is not a plug n' play solution, and requires you to use external tools, not developed, supported, or endorsed by SimplyPrint - using them is done so at own risk.
Setting up multiple printers for 1 Pi with the OctoPrint setup, which would be the pick for most printers, requires picking a method that allows you to set up multiple OctoPrint instances on 1 Pi.
We have highlighted 2 ways to achieve this here;
We have found the "OctoPrint Deploy" project, made by GitHub user paukstelis to be easy to set up, reliable and to get the job done!
Project link; https://github.com/paukstelis/octoprint_deploy
How to set it up;
The project page includes a how-to guide on install & use, and links to this.
If you are - or would like to be - familiar with Docker, you can use the OctoPrint Docker image (https://hub.docker.com/r/octoprint/octoprint), allowing you to spin up multiple "containers" (which is what Docker helps you do), to run multiple isolated OctoPrint instances next to each other.
How to set it up;
With some general knowledge of Docker, the instructions on the Docker image page should get you started in no time; https://hub.docker.com/r/octoprint/octoprint
The "prind" project (https://github.com/mkuf/prind) allows you to run Fluidd, Mainsail and/or Klipper screen (and OctoPrint) in Docker containers.
How to set it up;
You can learn more about the project and how to set it up here; https://github.com/mkuf/prind
That concludes our overview-guide of how to run multiple 3D printers on a single Pi, and what you must consider first.
Please note that SimplyPrint cannot provide support on any of the setups mentioned in this guide.
This article is quite advanced, and the multi-printer setup is not recommended unless you're ready to get your hands dirty and get technical. We also cannot provide support on this setup, as SimplyPrint support can only help with the standard setup - so you're on your own.
Can I just plug multiple printers into the same Pi?
As described in our setup guide, the regular SimplyPrint set up does not support multiple printers per Raspberry Pi out of the box.
Our "SimplyPi" Raspberry Pi image ships with the SimplyPrint plugin on top of OctoPrint, and as OctoPrint doesn't natively support controlling multiple printers, we do not natively either.
But, there are other ways you can achieve this! Not via the standard SimplyPrint setup, but if you're willing to dive into some slightly more advanced ways, keep reading for a guide on how to achieve multiple printers on a single Pi.
When to, and when not to consider running multiple printers on 1 Pi
Before we get into the "How-to" section, let's briefly look at the possible pitfalls, limitations and issues that one may encounter when opting for the multi-printer setup method;
1. Choosing the right Pi
Running multiple printers on 1 Pi puts extra pressure on the Pi, which it will need to be able to handle.
The SimplyPrint guide on
Picking the right Raspberry Pi for running SimplyPrint / OctoPrint is a good start, but not all Pi's in this list are suited for this, as they either lack the power, RAM or USB capabilities.
Recommended Pi's;
Pi 4B with at least 2 GB of RAM - 4GB is the more safe choice
Pi 5
As long as you make sure the Pi or device you use, has a good amount of power and RAM, you're off to a good start! If you plan on using cameras with the printers, more RAM is recommended.
2. Printers that do not work well together on 1 Pi
Sadly, there are 3D printers out there that do not handle being on the same Raspberry Pi together very well.
In the case where you have multiple printers that do not have a serial number, or doesn't have a unique one on its main board that is fed to the serial port (where the USB connection between Pi and printer happens), the Pi will not be able to differentiate between your printers, and though the setup will work, every time the Pi restarts, the printers might switch places and be mistaken for each other, as the Pi can't tell them apart.
At time of writing, this is the case with all Creality printers, most, if not all, Anycubic printers as well - and more, especially Chinese, brands share the same issue with not having unique serial numbers per printer.
3. Overworked Pi risk
If you pick a Pi that can't handle the load, or even if you pick one that is better suited for the multi-printer setup, there is the risk of an overworked Pi - not being able to process all the tasks and printers it's running at the same time - which can result in poor print quality, stopped prints, pauses in prints due to the print (Gcode) not being fed to the printer fast enough, so the printer stalls, creating discoloration and blobs on your print.
This is especially a problem if you print large files, as sending a ~100+ MB file to the Pi for all your printers (let's say you run 4 on one Pi), will result in the Pi trying to download 400 MB at the same time, as it must download the same file for each individual printer, which may result in your printer showing as "Offline" in SimplyPrint for a while, or the download process failing and the prints not starting on 1 or all printers.
Lastly, even if you - in the case of 4 printers on 1 Pi - have 3 running printers, sending a large file to 1 idle printer, may result in the Pi having such a hard time, that it affects the other 3 instances.
The issues that may be presented by an overworked Pi are described in greater detail here;
Bad print quality when printing through USB / SimplyPrint / OctoPrint
Setting up multiple printers on 1 Pi; available methods
As mentioned, this is not a plug n' play solution, and requires you to use external tools, not developed, supported, or endorsed by SimplyPrint - using them is done so at own risk.
For OctoPrint;
Setting up multiple printers for 1 Pi with the OctoPrint setup, which would be the pick for most printers, requires picking a method that allows you to set up multiple OctoPrint instances on 1 Pi.
We have highlighted 2 ways to achieve this here;
1. OctoPrint Deploy (recommended, easiest)
We have found the "OctoPrint Deploy" project, made by GitHub user paukstelis to be easy to set up, reliable and to get the job done!
Project link; https://github.com/paukstelis/octoprint_deploy
How to set it up;
The project page includes a how-to guide on install & use, and links to this.
2. Docker
If you are - or would like to be - familiar with Docker, you can use the OctoPrint Docker image (https://hub.docker.com/r/octoprint/octoprint), allowing you to spin up multiple "containers" (which is what Docker helps you do), to run multiple isolated OctoPrint instances next to each other.
How to set it up;
With some general knowledge of Docker, the instructions on the Docker image page should get you started in no time; https://hub.docker.com/r/octoprint/octoprint
For Klipper with Fluidd, Mainsail and/or KlipperScreen (or OctoPrint)
prind
The "prind" project (https://github.com/mkuf/prind) allows you to run Fluidd, Mainsail and/or Klipper screen (and OctoPrint) in Docker containers.
How to set it up;
You can learn more about the project and how to set it up here; https://github.com/mkuf/prind
That concludes our overview-guide of how to run multiple 3D printers on a single Pi, and what you must consider first.
Please note that SimplyPrint cannot provide support on any of the setups mentioned in this guide.
Updated on: 19/10/2023
Thank you!