At the Open Hardware Summit just before World Maker Faire New York, Shawn Wallace introduced me to Chi from RedBearLab. Shawn knew that I’d developed a very healthy obsession with Bluetooth Low Energy; some time ago, Tom Igoe and Alasdair Allan clued me into the fact that it was not only a simple, low power communications option for Arduino and other devices, but it also avoids Apple’s requirement that you be in their MFi licensing program to do Bluetooth communications with an iPhone or iPad.
I’m happy to report that we’re now carrying Chi’s shield in the Maker Shed. Only $35, which is pretty inexpensive for a shield with the radio right on board. (Compatible iOS devices are iPhone 4S, 5, iPad 3rd generation, and iPod Touch 5th generation).
And what’s more, I doubt this is Apple-only. Any device with Bluetooth 4/Bluetooth Low Energy can join in the fun. Android Jelly Bean and later has it (hardware willing), but what I’ve been told is that the only Android devices that have an SDK are those from Google-owned Motorola Mobility: Motorola Bluetooth Low Energy API. But I’m not so sure of that. After all, the ADK 2012 hardware includes a BLE chip, and my (non-Motorola) Nexus S and 7 seem to be happy to talk to that gadget. Well, getting the Bluetooth Low Energy Shield for Arduino to talk to Android is something I’ll have to try another time. Getting it to work with iOS was easy. Perhaps a bit too easy…
I followed the instructions on the RedBearLab Quick Start page and installed a modified version of Firmata on my Arduino Leonardo. With the Bluetooth Low Energy Shield atop it, I plugged in a couple of LEDs. Next, I went to the Apple app store on my iPad Mini and installed RedBearLab’s BLE Arduino app:
That might have been the most complicated step. Next, I started the app, clicked Connect (it didn’t even ask me to choose the Bluetooth device or pair with it!), I told it that it was talking to a Leonardo, and started flipping the switches you see in the photo on the first page of this post.
This is gonna be fun. Check out RedBearLab’s SDK for iOS and Mac OS on GitHub. If you get this working with anything else (especially Android), I’d love to try it out!