This document describes the process of running Klipper on a Beaglebone PRU.

Building an OS image

Start by installing the latest Jessie IoT image (2017-03-19 or later). One may run the image from either a micro-SD card or from builtin eMMC. If using the eMMC, install it to eMMC now by following the instructions from the above link.

Then ssh into the beaglebone machine (ssh debian@beaglebone – password is “temppwd”) and install Klipper by running the following commands:

git clone https://github.com/KevinOConnor/klipper
./klipper/scripts/install-beaglebone.sh

Install Octoprint

One may then install Octoprint:

git clone https://github.com/foosel/OctoPrint.git
cd OctoPrint/
virtualenv venv
./venv/bin/python setup.py install

And setup OctoPrint to start at bootup:

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

It is necessary to modify OctoPrint’s /etc/default/octoprint configuration file. One must change the OCTOPRINT_USER user to “debian”, change NICELEVEL to 0, uncomment the BASEDIR, CONFIGFILE, and DAEMON settings and change the references from “/home/pi/” to “/home/debian/”:

sudo nano /etc/default/octoprint

Then start the Octoprint service:

sudo systemctl start octoprint

Make sure the octoprint web server is accessible - it should be at: http://beaglebone:5000/

Building the micro-controller code

To compile the Klipper micro-controller code, start by configuring it for the “Beaglebone PRU”:

cd ~/klipper/
make menuconfig

To build and install the new micro-controller code, run:

sudo service klipper stop
make flash
sudo service klipper start

It is also necessary to compile and install the micro-controller code for a Linux host process. Run “make menuconfig” a second time and configure it for a “Linux process”:

make menuconfig

Then install this micro-controller code as well:

sudo service klipper stop
make flash
sudo service klipper start

Remaining configuration

Complete the installation by configuring Klipper and Octoprint following the instructions in the main installation document.

Printing on the Beaglebone

Unfortunately, the Beaglebone processor can sometimes struggle to run OctoPrint well. Print stalls have been known to occur on complex prints (the printer may move faster than OctoPrint can send movement commands). If this occurs, consider using the “virtual_sdcard” feature (see config/example-extras.cfg for details) to print directly from Klipper.