Picroft – Mycroft on a Raspberry Pi – is the most popular way for people to get familiar with Mycroft software and to start experimenting with Skills and our other tools such as Precise, Padatious, and Mimic. To date, we’ve had tens of thousands of downloads of our Picroft disk image, and it’s wonderful to be able to unite affordable open ARM-based hardware with our software to deliver an open source voice assistant.
Picroft has been around since January 2017, when the first disk image was made available. Since that time, it’s been based on the Raspbian Jessie Lite image, and has been targeted at the Raspberry Pi 3 Model B. With new models of Raspberry Pi hardware being introduced (particularly the powerful Pi3B+) we are now at a crossroads.
The Raspbian Jessie Lite image is dated, and we must now consider a move to Raspbian Stretch Lite.
Raspbian Stretch contains several improvements over Raspbian Jessie.
- The Bluetooth stack now uses the Bluez-ALSA package instead of PulseAudio; this means that PulseAudio is not installed by default
- Instead of automatically logging in as the pi user, Stretch has implemented login with the passworded name of the current user
- In another security measure, the Broadpwn vulnerability in the BCM43xx wireless chipset is also resolved in Stretch
The Raspbian distro is available in two flavours – a main distribution and a ‘Lite’ version. The ‘Lite’ version is cut-down and removes the desktop environment, which consumes memory and CPU, providing only a command line interface (CLI). For example, the main Stretch distribution includes the audio creation tool, Sonic Pi, which can be used to create incredible synthesized sounds (and some pretty kick-ass drum and bass if you ask Kathy).
The intent of the ‘Lite’ version is primarily for development and IoT purposes – where having a ‘heavy’ desktop environment impedes the function that the Raspberry Pi is being used for.
That’s exactly why we’ve chosen the ‘Lite’ version of Raspbian to power Picroft in the past – we want to reserve as much CPU and memory as possible for functions such as text-to-speech (TTS) processing and Wake Word recognition.
It sounds straightforward doesn’t it – we simply re-package Picroft using Stretch Lite as the base distribution, rather than Jessie Lite. However it’s a little more complicated than that.
Stretch significantly reworked the audio subsystem. In general this is a good thing, but some of these changes broke compatibility with the way Mycroft accesses the microphone. Until this is solved, transitioning to Stretch won’t be possible. Unfortunately for the Raspberry Pi 3+ the new wifi chipset requires Stretch and won’t work with Jessie.
We intend to have a single unified image for the Raspberry Pi 3 and Pi 3+. But at the moment we are at an awkward spot where only the Pi3 is functional with Mycroft. Fortunately some of our community members have had luck experimenting in this vein, so we are optimistic this can be resolved.
While most parts of Picroft work ‘out of the box’, audio configuration is the most problematic part of getting a Picroft up and running, particularly if you want to use audio out through Bluetooth or HDMI; we want to improve this to reduce frustration for new Picroft users.
We have many competing demands on the Picroft roadmap.
- Is Picroft inherently a developer platform, and as such should we be focusing on debugging tools for Skill Authors? Or is it being used for “production” purposes and needs more support for a broader range of microphones? Should there be different images to support these two functions?
- Can we create native support for the popular Google AIY hardware, and most importantly can we distribute it on the same Picroft image? AIY requires special drivers.
- Can we support Magic Mirror systems with Picroft? This likely needs the more powerful Raspberry Pi 3+ which can support running a GUI.
- Should we engage with other dedicated images for tools that could benefit from voice control, such as OpenELEC or Home Assistant?
As you can see, our roadmap here is not straightforward – and your feedback can help shape where we take it, ensuring that we align our actions with community needs.
We’d really appreciate you letting us know how you use Picroft. What model Raspberry Pi are you using? What speakers and microphone do you use? Do you have a Raspberry Pi Model 3B+ and are hanging out for a working Picroft image? Take our super-quick survey and help us help you.
If you’re an advanced user, you might even want to have a go at building your own Picroft image.
Let us know what you think on the forums.