Remove serial ports from OctoPrint's list


#1

I'm currently running OctoPrint 1.3.10 on OctoPi 0.16, Raspberry Pi 3 B+. I have two instances running, connected to two identical Monoprice Mini Delta printers. When I have both printers running at the same time, then one finishes, I will turn that printer off, OctoPrint will note a serial issue and everything is fine.

The problem occurs when I turn the printer back on and the other printer is still printing. There is a likelihood that with the combination of the auto connect function, the "AUTO" serial port and the OctoPrint-PortLister plugin, this idle instance will try to auto connect to the "AUTO" serial port when OctoPrint-PortLister notices the printer return to life. In turn, there's a chance that it will try the serial port the other printer is using, and then kill the running print job with the double connection to the serial port.

I have a udev rules file that identifies my printers by their serial number, so printer 1 will always be /dev/MiniDelta1 and printer 2 will always be /dev/MiniDelta2 regardless of the real /dev/tty* device (which will vary depending on the order the printers were turned on).

I've added the serial port /dev/MiniDelta1 to the first OctoPrint and /dev/MiniDelta2 to the second OctoPrint, but AUTO and /dev/ttyACM* are also there. Is there any way I can can remove the actual /dev/ttyACM* ports from OctoPrint's list, and possibly remove the AUTO port as well? That would leave me with only zero or one serial port options per OctoPrint instance. This way I can keep my dangerous cocktail of auto connect and OctoPrint-PortLister.

Thanks!


#2

You could go that route...

...or you could ask Santa to bring your second printer another Raspberry Pi 3B for Christmas. And then, because of the magic of Christmas, everything would probably work out just great.


#3

You are correct, and I've thought of getting a second RPi and either dedicate one RPi to each printer/camera combo, or have one RPi for the printers and a second for the cameras. However, the reality is that I've gotten over the under-voltage speed bump by purchasing a powered USB hub and a real RPi power supply and the load on the system is almost always below 25% with both cameras and printers running.

So, if I ask Santa for another RPi, it'd only be for this serial port issue, everything else is really working great as it is. The quick-fix for now was to just turn off the auto-connect feature. Now when I power a printer back on, I have to manually click the Connect button (after I verify the correct serial port is selected). Oh, poor me! Lol

As a side note, I know Gina is surprised by all the under voltages she's seeing in the new anonymous stats. Well, in my case, I bought a RPi kit with a "2.5 amp" power supply (https://www.amazon.com/dp/B07BDRD3LP/ref=cm_sw_em_r_mt_dp_U_bJXgCbDBQTVBY). While the power supply is listed/rated as 2.5 amp, I found out the hard way that it's not quite true. I looked at some 3 amp power supplies, but ended up getting the official Raspberry Pi one (https://www.amazon.com/dp/B01LCNF8FU/ref=cm_sw_em_r_mt_dp_U_4LXgCb7EGQRH6) which is also 2.5 amp, but I haven't had any under voltages since. So I believe the official RPi power supply can truly provide the full 2.5 amps when needed.


#4

when you have more than one printer than this would be a good hardware for octoprint ...


(you can choose to put more ram into it ... i have 4GB because so i had it lying around)
This is not the cheapest solution, in germany when you buy some things locally and some from aliexpress then you are cheaper than that. but with that hw you have enough power to handle several webcams and printers.

starting at 3 printers you are cheaper than working with raspberries...

This is an incomplete docu about my setup.
Currently i am writing it in german and english so it takes a while :smiley:
octofarmInstallEN.pdf.zip (329,8 KB)


#5

I'm very happy with my current setup of one RPi with 2 cameras and 2 printers. Everything is working great, but when I add more printers (which will probably happen sooner rather than later) I'll check out this route.

But in both cases, I'd really like to be able to remove serial ports from OctoPrint's list. In other words, I want to provide the static list of available serial ports to each OctoPrint instance and prevent it from adding or trying /dev/tty* ports by itself.


#6

btw have 2 times the same port should be no issue i have 4 printers running at the same with the auto settings with no issue / you can have the same port on each serial device.

An you define in the printer settings the used device.
So maybe there is a bug in this plugin.

the /dev/ttyACM* devices should definitely be no issue.
because in the printer configuration you set the udev names.


#7

The thing about saving money on this sort of project says two things:

  • your time isn't very valuable
  • your opinion of our time is low

It's a great learning opportunity for you to work on debugging the code, though.


#8

I suppose a dirty little secret about the entire Raspi line is that it only has one good UART. This is part of the Broadcom computer-on-a-chip design of course.

Read me

Trust me, I've got a one-Raspi-that-needs-two-UARTs project which would be awesome if that were the case. It's not.


#9

You have to put it on an oscilloscope. Once you see the difference in output between the two under load, you'll do a facepalm.