Connection methods

There are 3 different ways to connect Octoprint to Smoothie:

  • Ethernet
  • USB
  • UART pins

Octoprint can't connect via network natively, so we'll use socat (a fork of famous netcat) to create a local pipe to route traffic to Smoothie

First install it (all the following examples are for OctoPi):

sudo apt-get install socat

Now try this command (replace SMOOTHIE_IP with your Smoothieboard address, like 192.168.0.10)

sudo socat pty,waitslave,link=/dev/ttySmoothie,perm=0660,group=tty tcp:SMOOTHIE_IP:23

You'll see no output (that's ok). Leave the command running. We'll finalize that later.


Proceed to Octoprint Web UI

Go to OctoPrint SettingsSerial Connection:

Set Additional serial ports to /dev/ttySmoothie

Save, then reopen the same settings page.

Set Serial Port to /dev/ttySmoothie

Set Baudrate to maximum: 250000

Save and close


Now try to connect to the printer. If it connects, we should finalize the configuration and add socat to system startup

Open /etc/rc.local

sudo nano /etc/rc.local

Go down with key until you reach the end of the file. The last line is usually exit 0. Before this line add the following (replace SMOOTHIE_IP with Smoothie IP address):

socat pty,waitslave,link=/dev/ttySmoothie,perm=0660,group=tty tcp:SMOOTHIE_IP:23 &

Save & exit: Ctrl+O, , Ctrl+X

Reboot and check if it works.

Sorry, it's slow

Try to print (stream) some file from Octoprint (not from Smoothie's SD card).
You may notice that it streams gcode awkwardly slow even on a fast network connection.
That's how it happens for some of the users. That means you should prefer USB to Ethernet connection.

It might be woking for you. Please leave a note somewhere if the speed is fine via socat.

Still you can upload to SD (slow too: 1 MB/min for some users) and use Octoprint to start / stop jobs and control printer status

Described on Octoprint wiki at https://github.com/foosel/OctoPrint/wiki/Setup-OctoPrint-with-Smoothie .

TODO add some documentation here