Write your robots in go with gobot, and distribute the software as snaps



Have you seen gobot before? It’s a go framework for robotics.

When I found that I could write software for arduino, rpi, bbb and dragonboard in go I jumped and danced :dancer:

They now have a guide to distribute the software as snaps, which will work on all the boards and operating systems that we support:


They recently added support for dragonboard, and I would like to write a blog post about that. But, build.snapcraft.io is not yet building snaps for arm64. @cjwatson @evan do you know if that’s going to happen any time soon?

pura vida


See build.snapcraft.io #556 - it’s blocked on some work in snapcraft.


I didn’t know we were waiting for that, I thought we would do the same as launchpad with checks to enable archs.

So, after following links, it sees we need a final agreement here:

I’ll push for this once Sergio is back.

Thanks Colin.


I wrote a blog post about using gobot and snapcraft to write, package and deliver snaps for bbb, rpi and dragonboard:

@ogra can you help me finding a smarter way to figure out which board is executing the code?


The first thing that strikes my mind is (/proc/cpuinfo should be accessible from all snaps for reading):

cat /proc/cpuinfo |grep ^Hardware| sed 's/^.*: //'

… but i just noticed that the dragonboard CPU doesn’t actually return a value for “Hardware:”

Alternatively perhaps shipping lshw in your snap and use the “hardware-observe” interface might also work.

And third, you could perhaps query snapd on localhost for the currently used model assertion somehow.


FYI, it is as part of the apparmor base abstraction.