A quick write-up on the rfduino which arrived yesterday.
It consists of a Nordic Semiconductor nRF51822 chip, support circuitry and Bluetooth chip antenna all on a nice tiny board. The nRF51822 contains a custom boot loader written by rfduino which when combined with an add-on to the Arduino IDE allows you to code for the device as if it was an Arduino device. This means you don’t need the Nordic Semiconductor development kit or API’s but does limit what you can do with the nRF51822 slightly.
What’s the big fuss with BLE you ask?
It’s simple, power consumption. In theory using the rfduino I could build a device that will fetch the ambient temperature (via the in chip sensors) and transmit it to a BLE capable smart phone every few seconds and it can keep doing that, for a year (or even longer) off of a coin cell battery. I can do that using a device that is small and relatively inexpensive.
This means I can put sensors with a wireless link to a nearby smartphone in almost anything and not have to worry about the battery for a very long time.
What did I actually buy and How does it work?
The rfduino guys have a nice range of break out boards that allow it to be plugged into a breadboard and extra shields that can be stacked on with LED’s, switches and various other components. They also have a programmer board that is essentially a ftdi chip on a board for programming.
If you’re not comfortable soldering small wires, aren’t too skilled in electronics or scared of letting the magic smoke out of your new toy I suggest you buy one of the dev kits and get coding.
I’m cheap, and I like a challenge so I purchased only the bare-board (RFD22301) from RS Electronics (threw it in with another order I placed for a certain British Pi that is still on its way). I’ve soldered a few thin wire wrap wires onto the module, put a 0.1uf cap on the DTR line and hooked it up to my Sparkfun FTDI Basic board (Make sure its running at 3.3v).
The got the latest version of the Arduino IDE, I’m using 1.5.8, according to the docs from rfduino you need a 1.5.x release at least in order to get this to work. Follow the instructions and copy the support libs, programmer etc into the right place and start the IDE.
And then its as simple as using a normal Arduino.
If you search your mobile devices store you’ll find a few apps that talk to BLE devices, if you own an iPhone you can use the Official apps from rfduino. If you’re using an Android device then it appears at the moment you’re out of luck. The nRF Master Control Panel from Nordic Semiconductor does allow you to find the device though and dump various info.
I started looking into this because of an office discussion on small wireless temperature sensors you can hook up to your phone, and once you’ve done the research and discover its possible with a limited budget you might as well order the stuff and give it a try.
The only real “con” for me so far is that there is no official Linux support from rfduino for the add-on to the Arduino IDE. There are workarounds using wine though which I’ll probably give a try when I have a little more time.
Next I want to build this into a functioning temperature sensor (or something like that) running off of a coin cell battery and write a small Android application that connects to it.