Orange PI + 3D Printing over WiFi

I recently bought an Ender Pro 3 to learn more about 3D printing and eventually make all the plastic cases for my HomeBots.

The first thing that bothered me is either swap around a TF Card or hook an USB cable for serial communication.

And you know that connecting and disconnecting a USB is too much work for a nerd, so why not hook my OrangePI to the side of the printer and make it print over WIFI?

NOTE: if you don't have a memory card with linux yet, you will have to flash an ARM-based Debian image to a TF card and use it as a boot disk for our system. You can download Armbian from their website and flash to a card using a flasher like Balena Etcher

What you're gonna need/use

  • Orange Pi with Armbian installed on an SD Card
  • USB Cable for your printer
  • SSH with root access to your OPi
  • Octoprint software from GitHub

Luckily for me, I already have Armbian running on OPi and I found a quick tutorial on the webz to do it. We're gonna setup some packages, install PySerial and build OctoPrint to start our prints.

At the moment the stable version of OctoPrint is 1.3.12. Check the latest stable version here

If you are like me and cannot read through a whole article here's a quick sequence of commands to do everything:

NOTE: I assume you are logged in as root here. If not, run "sudo sh" first

apt-get install -y \
  python-pip \
  python-dev \
  git \
  virtualenv \
  python-setuptools \
  psmisc

adduser octoprint && \
  usermod -a -G tty octoprint && \
  usermod -a -G dialout octoprint &&\
  adduser octoprint sudo

echo "octoprint ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/octoprint && \
  chmod 0440 /etc/sudoers.d/octoprint

git clone https://github.com/foosel/OctoPrint.git /opt/octoprint && \
  cd /opt/octoprint && \
  git checkout 1.3.12 && \
  virtualenv venv && \
  ./venv/bin/python setup.py install

cp /opt/octoprint/scripts/octoprint.init /etc/init.d/octoprint && \
  chmod a+x /etc/init.d/octoprint && \
  cp /opt/octoprint/scripts/octoprint.default /etc/default/octoprint

echo "DAEMON=/opt/octoprint/venv/bin/octoprint" >> /etc/default/octoprint

echo "OCTOPRINT_USER=octoprint" >> /etc/default/octoprint

update-rc.d octoprint defaults

If everything went well, you can start OctoPrint now: service octoprint start

The server will be available at your machine's IP + ':5000', like so: 192.168.1.100:5000

You can change the server port (and other configs) in /etc/default/octoprint. After saving your changes, run update-rc.d octoprint defaults && service octoprint restart

Notes

  • After changing the port sometimes Octoprint will get stuck. I just pulled the plug of OrangePI and put it back. After reboot it was back online :)
  • If you have an Ender 3 Pro like me, here's the Octoprint profile for it:
Print bed & build volume:
  Form factor: Rectangular
  Origin: Lower Left
  Heated Bed: Yes
  Heated Chambere: No
  
  Width: 220mm
  Depth: 220mm
  Height: 250mm
  Custom Bounding Box: No
  
Axes -  use default values:
  6000, 6000, 200, 300

Hotend & extruder
  Nozzle Diameter: 0.4mm
  Number of Extruders: 1

Easy peasy, 3d-print squeezy!

What now?

Do you know OctoPrint also has a bunch of plugins?

Yes! It does! And there's a bunch of them!

Here's my favourite: exclude a region during print.

Take a look at this and other plugins here.

Ciao!

Subscribe to darlanalv.es

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe