DIIGIIT ROBOTICS FORUM

You are not logged in.

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

Diigiit Sales
Member
Registered: 2014-05-26
Posts: 99

Odroid OctoPrint Quick Setup Guide

Up to now, we've been using our Lulzbot Mini V1 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 an USB cable. That's it. The problem with this setup is that you can't shutdown your desktop computer while it is printing (at least with Lulzbot Mini V1) !

Then we received an important contract that was requiring us to print tens of Odroid-C2 enclosure every day. We had to purchase a couple of Lulzbot Mini to print them but didn't want to have a desktop attached to each printer for space and cost.

OctoPrint was the way to go (in fact OctoPi which is a Raspberry Pi version of OctoPrint). Since OctoPrint is a Python program, it can be installed pretty much the same way on an Odroid-C2 or on an Odroid-XU4. OctoPrint is installed on the Odroid and accessed remotely using a web page (OctoPrint client). Sliced models are uploaded using client web page and stored on the Odroid server. You can access as many Odroid server (3D printer) you want from a single desktop using for instance one browser tab for each printer.

The following link is the reference we have used to create this guide:
https://discourse.octoprint.org/t/setti … pbian/2337

This is slightly the same installation procedure with some small change.

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

  • Lulzbot Mini 3D Printer V1.1

  • 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.

BASIC ODROID-C2 INSTALLATION

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 and use another Odroid Linux image.

CONFIGURE WIFI

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". You can also connect using wired connection.

INSTALL SSH

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
INSTALL OCTOPRINT
cd ~
sudo apt update
sudo apt install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential
mkdir OctoPrint && cd OctoPrint
virtualenv venv
source venv/bin/activate
pip install pip --upgrade
pip install https://get.octoprint.org/latest
sudo usermod -a -G tty odroid
sudo usermod -a -G dialout odroid

and then start OctoPrint server

~/OctoPrint/venv/bin/octoprint
 * Running on http://0.0.0.0:5000/
AUTO START OCTOPRINT SERVER

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

DAEMON=/home/odroid/OctoPrint/venv/bin/octoprint

as well as OCTOPRINT_USER variable in octoprint.default

vi ~/OctoPrint/scripts/octoprint.default

OCTOPRINT_USER=odroid

then

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
INSTALL HAPROXY

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

global
        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
        daemon
        log 127.0.0.1 local0 debug

defaults
        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 127.0.0.1:5000

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

Offline

Board footer