Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Edison Quickstart Guide for Octoprint and Smoothie
# *** Documentation Links
Documentation list: https://communities.intel.com/community/makers/edison/documentation/content
Edison Guide: https://communities.intel.com/docs/DOC-23158
Mini Breakout Guide: https://communities.intel.com/docs/DOC-23252
Mini Breakout Schematic: https://communities.intel.com/docs/DOC-23323
Mini Breakout BoM: https://communities.intel.com/docs/DOC-23322
Arduino Breakout Guide: https://communities.intel.com/docs/DOC-23161
Arduino Breakout Schematic: https://communities.intel.com/docs/DOC-23309
Arduino Breakout BoM: https://communities.intel.com/docs/DOC-23308
BSP Guide (yocto build environment): https://communities.intel.com/docs/DOC-23159
Native Application Guide (cached copy): https://dl.dropboxusercontent.com/u/45859274/Intel%C2%AE%20Edison%20Native%20Application%20Guide.htm
# *** to flash latest yocto image:
# *WARNING* doing this will erase your edison installation
# download the edison yacto complete image from https://communities.intel.com/docs/DOC-23242
# windows also needs the driver found on the same page installed
# there are two usb ports on the edison breakout ... holding it upgright so you can read the module silk,
# -the upper connector is connected to an ftdi chip and is the main serial terminal for the edison. this
# is nice because it remains connected during resets. also worth noting this does NOT power the edison,
# only the ftdi chip.
# -the lower connector is a usb-otg port directly connected to the edison. when you connect it to the pc,
# it comes up as a rad composite device with serial, mass storage, and ethernet (that i'm aware of).
# to flash a new image we will need both.
# first unzip the contents of the downloaded zip file to the root of the edison drive (which should be empty)
# once that is complete, connect a terminal app to the ftdi port of the edison at 115200
# hit enter twice to get a login prompt, and type "root" to login, then enter:
---
reboot ota
---
# *** to run initial edison setup:
# you must set a root password to enable SSH on Wifi
---
configure_edison --setup
---
# *** to just change the wifi setup:
---
configure_edison --wifi
---
# *** to install nano (i don't really care for vi):
---
wget http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz && tar xvf nano-2.2.6.tar.gz && cd nano-2.2.6 && ./configure && make
make install DESTDIR=/home/root
export PATH=$PATH:/home/root/usr/local/bin
---
# TODO: i still need to find the best way to set the startup environment variables
# *** to tell the edison about the package repos:
# add the following lines to new file /etc/opkg/intel-iotdk.conf
---
src intel-iotdk http://iotdk.intel.com/repos/1.1/intelgalactic
src all http://iotdk.intel.com/repos/1.1/iotdk/all
src i586 http://iotdk.intel.com/repos/1.1/iotdk/i586
src x86 http://iotdk.intel.com/repos/1.1/iotdk/x86
---
# *** to use opkg on the package repos:
---
opkg update
opkg upgrade
opkg install git
---
# *** to install octoprint
---
opkg install git python-setuptools
git clone https://github.com/foosel/octoprint
cd octoprint
python setup.py install
---
# octoprint doesn't like to run as root so use this command line to run it:
---
octoprint --iknowwhatimdoing
---
# *** to setup octoprint as a service:
# add the following lines to new file /lib/systemd/system/octoprint.service
---
[Unit]
Description=OctoPrint_Daemon
After=network.target
[Service]
Environment="NODE_PATH=/usr/lib/node_modules"
Environment="NODE_ENV=production"
Environment="AVAHI_COMPAT_NOWARN=1"
Environment="HOME=/home/root"
#User=root
ExecStart=/usr/bin/octoprint --iknowwhatimdoing
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
---
# *** to enable octoprint as a system service that starts automatically at boot:
---
systemctl enable octoprint
---
# *** and then to start it as an edison service now without rebooting
---
systemctl start octoprint
---
# *** to install Smoothieware build environment and compile firmware
---
opkg install git bash
git clone https://github.com/Smoothieware/Smoothieware
cd Smoothieware
---
# edit the linux_install and find the wget line a couple pages down
# and add this option before continuing: --no-check-certificate
---
./linux_install
./BuildShell
make
---
# *** to install ruby from source:
# i recommend installing stuff to /home whenever possible because that's where
# most of the space available to the user is
---
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.3.tar.gz
tar -zxf ruby-2.1.3.tar.gz
cd ruby-2.1.3
./configure --prefix=/home/root
make
make install
---
# *** to install screen:
---
opkg install git
git clone git://git.savannah.gnu.org/screen && cd screen/src && ./autogen.sh && ./configure && make
make install DESTDIR=/home/root/usr/local
---
@makevoid

This comment has been minimized.

Copy link

commented Mar 21, 2015

awesome gist!

@vrubiolo

This comment has been minimized.

Copy link

commented Dec 21, 2015

Excellent documentation! Used it today to install octoprint on an Edison with the mini breakout board. Instead of cloning from the git repo, I picked up a tarball from the master branch, as described in the Octoprint docs.

The parts about adding octoprint as a system service were especially useful. Just note that 'opkg install git' is present in both the section about opkg itself and a few lines after for octoprint, you might want to fix that.

@mentaluproar

This comment has been minimized.

Copy link

commented Mar 14, 2016

I'm having trouble getting ffmpeg working on the edison. Could that be added to this?

@boneskull

This comment has been minimized.

Copy link

commented Jul 31, 2016

👍 Thanks for service definition.

@antinnit

This comment has been minimized.

Copy link

commented Jan 8, 2017

When I view the Octoprint :5000 within my web browser the page doesn't seem to want to load correctly, it looks like a wall of HTML elements (no layout).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.