Starting With Mycroft

June 13, 2020
2 minutes

This post was inspired by Mike Stone’s post on using Mycroft.

Setting up my personal Mycroft instance looked like a fun experiment to try out on my Raspberry Pi, which is mostly idle from Pi-hole.

Mycroft isn’t a package that comes directly from the Raspbian (or Debian for that matter) repository, so you have two options to get it:

  1. Download source from Git and compile
  2. Grab a docker image and run

Since the Raspberry Pi isn’t a high powered device, I decided to go with trying Docker instead of sitting around waiting for compilations to finish. I actually haven’t played around with Docker before, so this was a good way to try out multiple new things!

Using Docker

There are all sorts of website to guide people through docker, but I used this one from freeCodeCamp. The instructions varied slightly on granting the user the correct group access, but for the most part I was able to run the hello world docker in about 15 minutes.

Mycroft’s official docker instructions can be found here. After downloading and attempting to run, I kept getting this message:

standard_init_linux.go:211: exec user process caused "exec format error

My searches had mostly generic answers, but ultimately I discovered that this error is due to the official docker image for Mycroft is for x86 architecture (Intel/AMD), and not ARM (Pi).

All was not lost! Docker Hub has a very straightforward search and yielded a compatible ARM based image for Mycroft! I am using this one from mjkaye.

Testing it Out

Now that it’s running, it’s time to play! The official Docker instructions show how to pull up a bash terminal and start the CLI:

docker exec -it mycroft /bin/bash
./start-mycroft.sh cli

My first test was something simple and make sure it behaves appropriately:

Screenshot of Mycroft CLI

Success! I was able to also install a few other skills such as jokes and an Alice chatbot.

Since there isn’t any microphone or speaker to Pi, I need a simpler interface besides the terminal. I started playing around with the Android app, which I will talk about in a later post.

Day 7 of #100DaysToOffload