AllJoyn on Raspberry Pi (Raspbian) and Windows 10

After the announcement of Windows 10 including out-of-the-box support for AllJoyn, I decided to try and connect my Raspberry Pi Model B+ running Raspbian to a Windows 10 PC to see how this all pans out. If you’re not familiar with AllJoyn: AllJoyn is a system that allows devices to advertise and share their abilities with other devices around them. The beauty of AllJoyn is that it can be used over a bunch of different transports (Wi-Fi, Bluetooth, RF, etc.) and will allow for interoperability between devices that may initially have not been designed to work together. This of course piqued my interest, with my continuous efforts in home automation. This blog post will outline the steps needed to get AllJoyn on Raspberry Pi up and running, as the process is quite lengthy and the available resources on the web didn’t cover the full installation in my particular case.

First of all, here are the resources that I found on the web, which covered 90% of the process I’m about to describe. I’m writing my own post to cover the remaining 10% and hopefully clear up some of the things that weren’t particularly evident to me while reading these resources, so hopefully you won’t have to go through the same process.

Compiling AllJoyn on Raspberry Pi

I’m going to assume you already have Raspbian running on your Raspberry Pi and know how to get to a terminal interface. If not, there’s very good documentation on the official Raspberry Pi website on how to do so. Let’s get started by installing the necessary packages to compile AllJoyn:

Note the last package, which is missing on the GitHub Gist, but is needed to prevent a “sys/capability.h: No such file or directory” error popping up during compilation.

Now that we have all the necessary packages, let’s get the source from the AllSeen Alliance’s Git repository:

Note the “WORKING_DIRECTORY” path in here, which should be replaced by something that makes sense in your case. I used “repos” on my Raspberry Pi.

Next up is the actual compilation, which can take quite some time, which is probably an understatement. I got to sneak in a bunch of Destiny matches on Xbox One, so you should probably prepare a seperate activity before compiling. These are the particular flags I used to get the basics set up, but you can refer to the GitHub Gist for more information on additional flags that may apply to your situation:

When the compilation is finally finished (hopefully without errors), it’s time to build the additional services. You can also do this in one go by specifying the SERVICES parameter in the previous scons command, but I prefer the separation as it makes tracking down errors a bit more manageable. Note that this will also take quite a bit of time (less than the previous one, but get that Xbox One ready just in case):

After all this, you should have a completely compiled AllJoyn implementation available on your Raspberry Pi! You can test things out by navigating to the following directory and executing the daemon with the –version parameter:

Testing it all out

As I mentioned, I’m using a PC running Windows 10 as the other node to connect to AllJoyn on Raspberry Pi. On the Windows IoT GitHub, there’s a bunch of documentation about AllJoyn on Windows 10. Additionally, a few samples are available near the bottom of the page, one of which is the AllJoyn Explorer. We can use the AllJoyn Explorer app on Windows 10 to listen for any AllJoyn capable devices advertising on the network. Follow the instructions to install it and launch it on your Windows 10 PC.

With AllJoyn Explorer running, go back to the Raspberry Pi and execute the following commands:

If all goes well, you should see a device pop up in AllJoyn Explorer and you can drill down into the device to view its capabilities! Hope this post helps you get things going in a reasonable time frame without having to spend a lot of time researching errors and quirks. If you find anything missing in this guide, please let me know and I’ll update it accordingly!

Pin It

6 thoughts on “AllJoyn on Raspberry Pi (Raspbian) and Windows 10

  1. Hi Rajen,
    We have a website called pihunt.co that share projects made with RaspberryPi. Today we share your project and people like it.
    We’ll happy to see your next RaspberryPi project 🙂
    Regards,

  2. Pingback: Raspberry Pi Windows IoT Projects – List | Go Internet Of Things

Leave a Reply

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