So there are quite a few options here. You could use a hdmi monitor or use the official pi display. It will all depend on the space available, application and the UI size you intend to display. Sadly the answer is, "it depends"
@@jamesmackay6815 I have not, but a quick google search has enlightened me ;). Looks like there is a docker container for this also, so this could possibly be wrapped up with one Pi4
@@IQWorkshop Totally, the only issue with the Pi4 is the 32-bit arch. You'd need to install Ubuntu 64-bit if their rasbian 64-bit isn't out yet. OctoFarm runs very well on a Pi4 though I have a few users doing so.
Repetier Server is great for this purpose. It runs on raspberry pi and natively supports multiple printers. The great think about is the installation is extremely simple
There are many ways to do things. None are wrong if they work, just different. I use octoprint for the web front end controls and the webcam options. I learnt a lot using docker and can take this to other projects. ;)
@@IQWorkshop I just installed io broker on my raspi and wand also octoprint on it. It worked easy with portainer, but I want to use only docker and that don't worked because I missed the yml
Thank you for the video. I've been running a CR-10S and Ender-3 off of one Raspberry Pi 3B+ and recently bought a Ender-3 Pro as a 3rd printer. I found with the 2 printers running off one Pi that some weird things would happen occasionally, like one printer stopping in the middle of a print. I am thinking because the plugins get basically shared across all instances this was affecting it. So I bought a Raspberry Pi 4 to use with them now. I am new to Docker so have been trying to find a way to get it working and came across your video so this looks promising. I like the idea of keeping each instance of Octoprint separate from one another. I would say the only thing with some of the config stuff you were whipping through it pretty fast, so maybe slow that down a little bit. Even going back to rewatch I had to pause several times just to see what screen you were on. Other than that looking forward to future videos.
this setup hasn't skipped a beat for me. Really happy with the performance. The intention of the video wasn't to be a full step by step process. There are links to that in the description. Let me know how you get on and i'll be happy to discuss if you run into issues (see email in about)
@@IQWorkshop I feel like I'm like 90% of the way and got all the Octoprint instances to show up. My only issue is if I plugin the printers in a different order, they map to ACM0, ACM1, ACM2 in the order they are connected. So then this of course messes up which printer is actually mapped to each instance of Octoprint. So when I go to what I think is my 1st printer, it's actually my 2nd or 3rd printer depending on the order they are connected. So not ideal. I followed some of Chris Riley's videos and tried adding entries in here: sudo nano /etc/udev/rules.d/99-usb.rules to basically map them and then enter them in the additional serial ports section of Octoprint, but it never lists them in the Connection settings after I refresh. Would be nice to get these all mapped so that I will then know if I go to the one on port 8001 it will always be the same printer. Any thoughts?
Just an update that I mostly got this working. I have all SKR mini E3 boards on my printers so have them mapped as below. None have serial numbers so that was a bummer. SUBSYSTEM=="tty", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", ATTRS{devpath}=="1.2", SYMLINK+="CR10S" SUBSYSTEM=="tty", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", ATTRS{devpath}=="1.4", SYMLINK+="Ender3" SUBSYSTEM=="tty", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", ATTRS{devpath}=="1.3", SYMLINK+="Ender3Pro" Then in the docker-compose.yml file I use the following format instead of /dev/ttyAMC1 and so on for the other printers. This way when I'm accessing Octoprint on port 8001 it is devoted to one printer. devices: - /dev/Ender3Pro:/dev/Ender3Pro My only issue now is if I power off the printers and then turn them on in a different order then they may get mapped differently than to when I first configured this so when I think I'm controlling one printer it's actually controlling a different one. The way I got around this, was just to restart the docker containers. Will see how things go over time as this is only the 2nd day running like this.
@@mikeneron i have this issue too. This is an issue with 2 cr10 v2s as the controllers both have the same identifier so I can programmatically map the printer to a port. The way I work around this issue is to firstly identify what ports show up when the printer is plugged in and switched on. Then in the yml config file, I only allow connection to one USB port (see link in description for the yellow file example) Then when I am ready to start docker-compose, I power up and connect each printer in the order I want them to connect to the octoprint instances. These can then be powered down when not in use. The only issue there after is that if you want to use a specific printer that is not on octoprint instance 1, you will have to power them up and connect in sequence. Its a pain, but I can live with it. This is not an issue for the intended use as a farm as all printers will be running anyway. Let me know if you need to see this in action and I'll do a video on it
You can setup the entire PI remotely using ssh if you either plug it into Ethernet or modify the wpa_supplicant.conf file to have your network Ssid and password
This video wasn't intended to be a super detailed instructional video, but the shots where I am using the terminal are via ssh. This means the pi can be put in a location more suited to the print setup and be remote administered outside of the web UI
As far as I'm aware an octoprint instance can only communicate with 1 concurrent printer. Having multiple instances enables you to have multiple printers running each with their own configuration
@@IQWorkshop maybe it's a new feature or something. I saw a few people do tutorials on youtube about it. one pi per printer might be more stable maybe? I was just curious. thank you for replying.
I believe so. if my understanding is correct, you need to create a service that will be started by systemd. documentation here www.raspberrypi.org/documentation/linux/usage/systemd.md Although this is not something I have done in my setup. All 3 of my printers need to be powered on and connected before running docker-compose up, or it fails as the referenced USB interfaces are not there. in the event the pi is shut down I manually power on the printers and then run docker-compose up. I just leave the pi running at this point and power up/down the printers as needed. hope this helps
storage is defined in the yml file as part of the container decloration. there are links to this file in the description. I have been using a 32GB sd card and not had an storage issues yet, and all gcode files stay with the container instance.
Questions!
How could I have done this differently?
What did you like about the setup?
What did you dislike about the setup?
Comment below
can u suggest the best lcd for the PI server? i want to setup standalone lcd to monitoring all the printer connected to PI server...thanks
So there are quite a few options here. You could use a hdmi monitor or use the official pi display. It will all depend on the space available, application and the UI size you intend to display. Sadly the answer is, "it depends"
Dunno if you've seen OctoFarm but would be a good addition to this.
@@jamesmackay6815 I have not, but a quick google search has enlightened me ;). Looks like there is a docker container for this also, so this could possibly be wrapped up with one Pi4
@@IQWorkshop Totally, the only issue with the Pi4 is the 32-bit arch. You'd need to install Ubuntu 64-bit if their rasbian 64-bit isn't out yet. OctoFarm runs very well on a Pi4 though I have a few users doing so.
Repetier Server is great for this purpose. It runs on raspberry pi and natively supports multiple printers. The great think about is the installation is extremely simple
There are many ways to do things. None are wrong if they work, just different. I use octoprint for the web front end controls and the webcam options.
I learnt a lot using docker and can take this to other projects. ;)
finally a good guide, which works. Thank you very much!
You are very welcome.
What will you use this for?
@@IQWorkshop I just installed io broker on my raspi and wand also octoprint on it. It worked easy with portainer, but I want to use only docker and that don't worked because I missed the yml
@@adamriese3610 I'm glad I help you out 👍
Thank you for the video. I've been running a CR-10S and Ender-3 off of one Raspberry Pi 3B+ and recently bought a Ender-3 Pro as a 3rd printer. I found with the 2 printers running off one Pi that some weird things would happen occasionally, like one printer stopping in the middle of a print. I am thinking because the plugins get basically shared across all instances this was affecting it.
So I bought a Raspberry Pi 4 to use with them now. I am new to Docker so have been trying to find a way to get it working and came across your video so this looks promising. I like the idea of keeping each instance of Octoprint separate from one another.
I would say the only thing with some of the config stuff you were whipping through it pretty fast, so maybe slow that down a little bit. Even going back to rewatch I had to pause several times just to see what screen you were on. Other than that looking forward to future videos.
this setup hasn't skipped a beat for me. Really happy with the performance. The intention of the video wasn't to be a full step by step process. There are links to that in the description.
Let me know how you get on and i'll be happy to discuss if you run into issues (see email in about)
@@IQWorkshop I feel like I'm like 90% of the way and got all the Octoprint instances to show up. My only issue is if I plugin the printers in a different order, they map to ACM0, ACM1, ACM2 in the order they are connected. So then this of course messes up which printer is actually mapped to each instance of Octoprint. So when I go to what I think is my 1st printer, it's actually my 2nd or 3rd printer depending on the order they are connected. So not ideal.
I followed some of Chris Riley's videos and tried adding entries in here: sudo nano /etc/udev/rules.d/99-usb.rules to basically map them and then enter them in the additional serial ports section of Octoprint, but it never lists them in the Connection settings after I refresh. Would be nice to get these all mapped so that I will then know if I go to the one on port 8001 it will always be the same printer. Any thoughts?
Just an update that I mostly got this working. I have all SKR mini E3 boards on my printers so have them mapped as below. None have serial numbers so that was a bummer.
SUBSYSTEM=="tty", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", ATTRS{devpath}=="1.2", SYMLINK+="CR10S"
SUBSYSTEM=="tty", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", ATTRS{devpath}=="1.4", SYMLINK+="Ender3"
SUBSYSTEM=="tty", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", ATTRS{devpath}=="1.3", SYMLINK+="Ender3Pro"
Then in the docker-compose.yml file I use the following format instead of /dev/ttyAMC1 and so on for the other printers. This way when I'm accessing Octoprint on port 8001 it is devoted to one printer.
devices:
- /dev/Ender3Pro:/dev/Ender3Pro
My only issue now is if I power off the printers and then turn them on in a different order then they may get mapped differently than to when I first configured this so when I think I'm controlling one printer it's actually controlling a different one. The way I got around this, was just to restart the docker containers. Will see how things go over time as this is only the 2nd day running like this.
@@mikeneron i have this issue too. This is an issue with 2 cr10 v2s as the controllers both have the same identifier so I can programmatically map the printer to a port. The way I work around this issue is to firstly identify what ports show up when the printer is plugged in and switched on.
Then in the yml config file, I only allow connection to one USB port (see link in description for the yellow file example)
Then when I am ready to start docker-compose, I power up and connect each printer in the order I want them to connect to the octoprint instances.
These can then be powered down when not in use.
The only issue there after is that if you want to use a specific printer that is not on octoprint instance 1, you will have to power them up and connect in sequence. Its a pain, but I can live with it.
This is not an issue for the intended use as a farm as all printers will be running anyway.
Let me know if you need to see this in action and I'll do a video on it
You can setup the entire PI remotely using ssh if you either plug it into Ethernet or modify the wpa_supplicant.conf file to have your network Ssid and password
This video wasn't intended to be a super detailed instructional video, but the shots where I am using the terminal are via ssh.
This means the pi can be put in a location more suited to the print setup and be remote administered outside of the web UI
This is good i want to set something like this up for 2 x ender 5 plus. (does 2 count as a farm??) :)
Sure, why not. Running 2 off this setup is pretty straightforward 👍
What's the benefit of using different instances of octoprint over just running all 3 printer on the same?
As far as I'm aware an octoprint instance can only communicate with 1 concurrent printer. Having multiple instances enables you to have multiple printers running each with their own configuration
@@IQWorkshop maybe it's a new feature or something. I saw a few people do tutorials on youtube about it. one pi per printer might be more stable maybe? I was just curious. thank you for replying.
@@Vrx-yp1eu if you have the budget then yes, one pi per printer is better, but let's just say I'm on a "limited" (near zero) budget with my projects 🤣
is here any way to set it up to start automatically when raspberry starts, so I do not need to going in an run "docker-compose up" ?
I believe so. if my understanding is correct, you need to create a service that will be started by systemd. documentation here www.raspberrypi.org/documentation/linux/usage/systemd.md
Although this is not something I have done in my setup.
All 3 of my printers need to be powered on and connected before running docker-compose up, or it fails as the referenced USB interfaces are not there.
in the event the pi is shut down I manually power on the printers and then run docker-compose up.
I just leave the pi running at this point and power up/down the printers as needed.
hope this helps
@@IQWorkshop awesome , thanks.
what about storage for stls using containers.. how is storage defined??.
storage is defined in the yml file as part of the container decloration.
there are links to this file in the description.
I have been using a 32GB sd card and not had an storage issues yet, and all gcode files stay with the container instance.
Headless config friend.