Installing OctoPrint on BeagleBone Black Rev C with Angstrom

Published on Author JFLeave a comment

After finally committing to a 3D printer (LulzBot Mini), I was looking around for a way to run a print server so I wouldn’t have to have a laptop connected to it all the time.

On a side note, I love the Mini: its auto leveling, all metal hot end, and heated PEI print bed got me started printing as soon as it came out of the box. My friends with other printers complained about the price until I showed them my prints. I am sure that these features will become standard across their platforms (the LulzBot Taz looks great, but wasn’t in my price range), and probably all printers in the future.

And, they’re still open source!

That finally said, I really enjoy James Bruton’s channel of YouTube. Even though he is sponsored by LulzBot (this is a fairly recent phenomenon), LulzBot was my top choice. Anyway, the stuff he makes is amazing considering the space. It is amazing to see how passion for problem solving, invention, and fun are truly what drive innovation. Definitely subscribe to his channel!

I watched this video and decided I would try out the BeagleBone Black [BBB] (although you can do Raspberry Pi, as well) with OctoPrint.

And that’s where several hours later I was ready to throw it away due to older instructions. This is what worked *for me* on this particular date and time (September, 2015). With everything I read it seems that the versions of software out there certainly can have an impact on the installation.

Note: OctoPrint is Open Source Software. This means that someone spent their time and effort creating a better world for us in some way. When you come across free software that doesn’t work right away, please consider how much effort it takes to do updates, make improvements, update documentation, etc, etc. Before you start complaining, roll up your sleeves and see if you can help figure out what the problem is!

So, here we go.

What I did:

    1. I watched this video about using BBB and OctoPrint
    2. Chose BBB-eMMC-flasher-2013.09.04.img as my Angstrom image to install
    3. Followed these directions: https://github.com/foosel/OctoPrint/wiki/Setup-on-BeagleBone-Black-running-%C3%85ngstr%C3%B6m.
      1. You will note that it talks about requirements-bbb.txt, which no longer exists in the repo and hasn’t since about March/April 2015.

As it turns out, some of those instructions will get you on the way to it running, but you may spend hours trying to find a quick solution to the number of issues present, like I just did.

Here’s a list of things I did. Some of them may not be necessary, but I know all of them are good steps, regardless. You should follow the sequence, at least.

  1. Get a power supply and make sure your board always has power.
  2. Connect it to the Internet. Skipping this step will lead to heartache. Don’t think you can skip it.
  3. Get the latest version of Angstrom here:https://s3.amazonaws.com/angstrom/demo/beaglebone/BBB-eMMC-flasher-2013.09.04.img.xz
    1. Follow these instructions
    2. Note: you can probably get this running on Debian – I didn’t try.
    3. Note: DNS stopped working at weird times with WGET throwing errors If so, reboot.
  4. At this point your board has rebooted and you’re connected via Putty. The next steps are going to take a while, so get some tea or coffee.
  5. Logged in as root, for now.
    Make sure your system time is set correctly. This is a big source of failure.
    date
    Sun Sep 13 21:42:11 UTC 2015

    If the date is not correct, make sure to set up NTP
    http://codepen.io/timbergus/timbergus/bbbangnode
  6. Update Packages
    opkg update ; opkg --force-reinstall install connman-angstrom-settings
    opkg update

    Takes a while, then update the tools. If you don’t you will get version conflict errors.
    pip install --upgrade setuptools
    Update CA Certs
    opkg install ca-certificates
    Add octo as a user and give it some perms it needs:
    useradd octo
    passwd octo [enter password]
    usermod -a -G tty octo //add octo to tty
    usermod -a -G dialout octo //add octo to dialout
    usermod -a -G sudo octo //add octo to sudo

    Follow this precisely. Make sure everything finishes and there are no errors.
    cd ~
    su
    opkg install python python-modules python-pyserial python-numpy python-setuptools python-misc python-pip git
    exit
    git config --global http.sslverify false
    (NOTE: this works after updating SSL, if you did that step – do it if you did not.)
    git clone http://github.com/foosel/OctoPrint
    cd OctoPrint
    (case matters!)
    su
    pip install -r requirements.txt (note this is NOT requirements-bbb.txt -it does not exist, although everything in it seems to be now in another file)
    python setup.py install
    exit (you should be running it as octo after this point)
    ./run
    That’s it! Hopefully is starts without errors. Feel free to post any here from the log file and I will look into it.Now, go to your BBB ip address and start configuring, e.g. http://111.222.333.444:5000

    Don’t forget the port declaration = on mine it was port 5000!

Next Steps:

  1. Too busy doing other things right now, but when I get a chance i will post about how to configure with the Lulzbot Mini
  2. Some other reading:
    1. IP Addresses on BBB
      http://derekmolloy.ie/set-ip-address-to-be-static-on-the-beaglebone-black/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.