What should be on our Raspberry Pi and Picroft Roadmap?

Originally published at: http://mycroft.ai/blog/picroft-roadmap-2018/

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.

Differences between Raspbian Jessie and Raspbian Stretch

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

What are the ‘Lite’ versions of Raspbian?

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.

What are our challenges for the next Picroft version?

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.

What’s the current state of play and where do we go from here?

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.

How can you help?

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 below.

1 Like

Because I am on a satellite internet connection I probably have a different view. I am much more interested in running the entire picroft suite including Precise, Padatious, and Mimic on a standalone computer(s) to get around the latency issue. Those of us out here in the hinterlands, though low in density, probably have more needs to replace manual labor with AI than those in urban areas. Raspberry Pis are great to work with but I’d gladly dedicate some computing “horse power” to something that can help me.

2 Likes

For my part, I develop on my desktop, native Ubuntu.
My Mycroft (production) runs on mini PCs (Celeron), on Ubuntu as well.
I see the RPI as a good entry to create a Mycroft production platform easily. And I know many people have good experienceces with the RPI. But, memory is limited, processing power is limited, and SD cards fails. I would hate to see that keeping the RPI as a “default” platform, would hold back improvements. But it is a balance between that and easy accessibility.

2 Likes

Honestly @Mike120 & @CarstenA I don’t see either of these as actually related to the topic of the Pi Roadmap.

It seems you both are talking about using something besides the PI that you would like developed.
Not sure that fits with this post.

As for the actual topic, I would like to see the AIY Kit include by Default, since, last time I checked you could get them for $9.99 US at Amazon. I only have a Pi2 B and Pi3 B, that making sure those were included would a my suggestion as well.

1 Like

Sorry, perhaps I was unclear :slight_smile: I don’t want something developed, I already develop code to Mycroft on Ubuntu, and I already run Mycroft production units on mini PC. No need to develop anything :slight_smile: The reason I brought it up was that the original post asked about it. Or actually it asked about how we use Picroft, my interpretation was that not using Picroft, but Mycroft on other platforms, is valid input here. But maybe you are right, I could be off on a tangent here. On the other hand, the original post also ask if Picroft is inherently a developer platform.
As for the roadmap, I think the Pi is a good choice, unless, for instance, it become too slow, or cannot handle both Mycroft and all the skills we want to add to it. I do have looong response times in some cases already.

2 Likes

Alright, I understand. I thought it was an odd response to the topic of the post.

  • magic mirror would be great really set mycroft apart from the rest of the market, imagine you could have them in malls so you could say like “hey mycroft where is the nearest cafe” and it would give directions
  • also do you have any idea on how long until the Pi+ version will be ready am going to set up a picroft but if its available i’ll wait for the +
  • i think that picroft will remain a developer/tinkerers ai offering a unique thing no one else does (complete customizability), normal users will not need it but its still very good to have as companies would be more favourable towards it for customization as well
  • also need to focus on an intuitive language for skills (think scratch), schools (as would i) will love it introducing kids to programming etc in an interactive way (and one that they can ‘take/upload’ home to show their parents)
3 Likes

P.S Reckon prioritisation of a drag and drop programming language

1 Like