Bosch and the XDK Cross Domain Development Kit
Bosch is, without a doubt, a leading enterprise when it comes to research and development of technology designed for the Internet of Things (IoT). According to Bosch, the IoT is creating new types of businesses, centred around services and user experience, and they predict we’ll have more than 15 billion devices connected to the internet by 2020.
These connected devices will provide real time data, and send this data back to businesses that can remotely and automatically control the underlying physical infrastructure. Imagine your car sensors performing periodical data relay to Volkswagen in exchange for payment. Imagine how much your car company could learn with this data!
As devices get more connected to the internet, heading to the “data as new oil” era, some companies like Bosch are creating powerful tools to experiment in this sandbox. Such is the case for the Bosch XDK 110, a programmable sensor device and a prototyping platform for any IoT use case imaginable.
This amazing piece of hardware includes an accelerometer, gyroscope, magnetometer, environmental sensors (humidity, temperature, air pressure), ambient light and a microphone for noise detection, together with WiFi, BLE and SD.
The XDK was originally created for Bosch Connected Devices and Solutions to create IoT products, but ended up being not only a prototyping platform, but also a sensor node solution. Therefore, Bosch decided to commercialize it in order to help others who want to shape their own IoT projects.
Bosch XDK and IOTA, a first approach
Bosch plays such a big role in the development of the IoT via hardware, proof of concept implementation, and even financial investments via Robert Bosch Venture Capital.
Considering all of this, and after having seen the live presentation of Masked Authenticated Messaging (MAM) done by Paul Handy at Chicago Connectory, we thought it would be a good idea to get our hands on one of these XDKs (Paul even mentioned them while he was introducing this new second layer feature to allow messaging over the Tangle).
So we bought one online and found a way to get it into Argentina with a friend returning from Europe. We did a quick unboxing, downloaded the XDK Workbench (an Eclipse based IDE with the needed libraries), and started flashing the Examples included. It was awesome! The way Bosch handled this little piece of hardware is just amazing, and you understand why it is so useful for prototyping. Get one in your own hands and you’ll see just how much that little box can do.
After testing different sensors and methods to send and receive data successfully, we thought it was time to start using all this with IOTA. This was the start of XDK2MAM journey and, we must say, it was not all fun.
Being part of the solution
It turns out that, despite the relation between Bosch and IOTA, there was no open source code available to connect this two pieces. We did a lot of research and spent long hours on the XDK Forum just to find pieces of code that would send some data via MQTT. It was something, but somehow neither Bosch nor IOTA had provided the code needed to get this working out of the box with its full potential.
Maybe because this was a solution that involved developing mixed software: C programming on the XDK side and Node.js at IOTA endpoint to publish the sensor’s data on the Tangle via MAM. So we had a clear mission: we were going to provide an open source and well documented solution to connect the XDK with IOTA through its various methods (HTTP/MQTT/BLE being the most importants). And so XDK2MAM was born.