Connecting to Pseudoterminals


#1

Is there a way to connect to a Pseudoterminal?

Let's say, I'm running my Stepper driver and G-Code engine on the same device that the octoprint is running on. Naturally, I would want Octoprint to connect to that engine locally (peferably by TCP/IP but I'll live with serial). How do I change the connection endpoint from /dev/ttyUSB0 to /dev/[some virtual port].


#2

Hi @kurtnelle!

There is already a virtual printer installed with OctoPtint.
I hope this helps


#3

You might see if the documentation for config.yaml helps.

http://docs.octoprint.org/en/master/configuration/config_yaml.html#serial

But then again, many of these are represented in the Settings area.


#4

Cool, so I can change the serial port to a virtual port that loops back to my engine by changing the config.yaml? Will the settings be locked on the UI when that happens? I want to prevent the end user from being able to change it (without having to modify the python).

Further, will that config.yaml change persist even after octoprint version updates?


#5

Your config.yaml should persist from one update to the next, noting that plugins and OctoPrint routinely updates it.

You can't necessarily prevent a geeky user from modifying his/her config.yaml, though, especially if they know the Pi's password. Note that a geeky user who knows the API key could likely change settings remotely from the REST API.

Unless you write a plugin to block changes in the Connection side panel, the user could in theory change this back to the raw device. I couldn't tell you if the non-Admin setting for a user in User Access control would or wouldn't affect this; you'd need to test.

Ewald was suggesting the available virtual printer.

In your case, I think I would suggest something which involves socat.