Skip to content

Instantly share code, notes, and snippets.

@logxen
Last active May 10, 2018 04:22
Show Gist options
  • Save logxen/ad195ccd31914bab8869 to your computer and use it in GitHub Desktop.
Save logxen/ad195ccd31914bab8869 to your computer and use it in GitHub Desktop.
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
Copy link

awesome gist!

@vrubiolo
Copy link

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
Copy link

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

@boneskull
Copy link

👍 Thanks for service definition.

@antinnit
Copy link

antinnit 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