You are not logged in.

#1 2016-09-15 20:59:21

Diigiit Sales
Registered: 2014-05-26
Posts: 97

Odroid-C2 OctoPrint Quick Setup Guide

Up to now, we've been using our Lulzbot Mini 3D printer to create small experimental parts. The setup was pretty straight forward with Cura 3D installed on Ubuntu. The slicer was sending GCode to the 3D printer thru a USB cable. That's it. The problem with this setup is that you can't shutdown your desktop computer while it is printing!

Then we decided to design and 3D print an Odroid-C2 enclosure for an important customer as well as making it available in our website. So we faced the following challenge: how to print more and more enclosure every day to fulfill customer demand without using a desktop computer, keyboard, mouse, etc .. for each printer?

OctoPrint seemed to be the solution but we struggled a little bit to set it up on an Odroid-C2 computer as well as to understand exactly how it was working. So we'd like to help you a little bit with that.

OctoPrint is a Python program that you start on a computer (most likely a Single Board Computer like Raspberry PI that going to replace your desktop computer). The OctoPrint server listens at requests from a web page (basically a STL model and a configuration file) and send appropriate GCode to the printer.

The following link is the reference we have used to create this guide:
https://github.com/foosel/OctoPrint/wik … g-Raspbian

Here is what we have used to create this Wifi 3D Lulzbot Printer:

  • Lulzbot Mini 3D Printer

  • Odroid-C2 computer

  • Odroid-C2 Linux 8GB eMMC

  • Odroid Wifi module 4

  • USB cable

  • For setup only: USB keyboard, mouse, HDMI cable

So here what you should do to have OctoPrint working. We did not install any camera but if you need it, please refer to the previous link.


Upload Linux on the Odroid-C2 eMMC module (this may be already done). Plug the video cable, keyboard, mouse and Wifi module and start your computer. Log in. Open a terminal an upgrade:

sudo apt-get update; sudo apt-get upgrade

You should restart you computer after that. If upgrade creates boot or display problem, reinstall eMMC and skip upgrade.


Inside the desktop, right click on Wifi icon (upper right corner of the screen). Select your wifi connection and enter SSID and password so that you can reach internet. Right click on more time on the Wifi icon and select "Edit Connections". Edit your Wifi connection and in the General tab, make sure to check "Automatically connect to VPN when using this connection".


Please refers to ssh documentation for installation and configuration

sudo apt-get install openssh-server

Make sure ssh is started each time your Odroid-C2 is going to boot:

sudo update-rc.d ssh defaults
cd ~
sudo apt-get install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
git clone https://github.com/foosel/OctoPrint.git
cd OctoPrint
virtualenv venv
./venv/bin/pip install pip --upgrade
./venv/bin/python setup.py install
mkdir ~/.octoprint
sudo usermod -a -G tty odroid
sudo usermod -a -G dialout odroid

and then start OctoPrint server

 * Running on

Since you don't want to manually start octoprint server each time your computer boots, you need to change the DAEMON variable inside octoprint.init file

vi ~/OctoPrint/scripts/octoprint.init


as well as OCTOPRINT_USER variable in octoprint.default

vi ~/OctoPrint/scripts/octoprint.default



sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint
sudo chmod +x /etc/init.d/octoprint
sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint
sudo update-rc.d octoprint defaults . 

Now you can start stop octoprint with the following command:

sudo service octoprint start

next check that everything is ok

sudo service octoprint status

Since you need to access Octoprint from a remote desktop, you need to install a HTTP server.

sudo apt-get install haproxy

and edit /etc/haproxy/haproxy.cfg

here lulzbot-m1 is the name of your computer

        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        maxconn 4096
        user haproxy
        group haproxy
        log local0 debug

        log     global
        mode    http
        option  httplog
        retries 3
        option redispatch
        option  dontlognull
        option http-server-close
        option forwardfor
        maxconn 2000
        timeout connect 5s
        timeout client  15min
        timeout server  15min

frontend public
        bind *:80
        default_backend octoprint

backend octoprint
        reqrep ^([^\ :]*)\ /(.*)     \1\ /\2
        option forwardfor
        server lulzbot-m1

Last edited by Diigiit Sales (2016-10-22 17:19:23)


Board footer