RFduino is a miniature (23mm x 28mm) version of an Arduino that includes a Bluetooth LE radio. The devices are incredibly small and provides a subset of the io pins you get on an regular Arduino. The basic RFduino board costs just $23 which can make it cheaper to add into a project. The biggest downside of the RFduino is that it only has 6 GPIO pins, which is quite a few less than an Arduino Uno (6 Analog, 13 Digital) and a heap less than a Arduino Mega. However if you have simple hardware needs and want to include a BLE interface the RFduino definitely fits the bill.
The RFduino can provide iBeacon like proximity information, however it doesn’t have the API integration like iBeacons do. However the RFDuino’s are capable of providing information beyond what a normal iBeacon device would typically give you.
I recently bought the RFduino experimenters dev kit RFD90103. This comes with 2 RFduino’s, a USB programmer, and shields with: RGB LED, Servo, USB Shield, Battery Shields, MicroSD, Relays and a prototyping/breadboard. I ordered this quite a while ago, and they have just started shipping units to the kick starter backers and the people who preordered units.
As the RFduino is such a small unit the USB programming interface isn’t included on the main shield like an Arduino. Instead the USB Shield Accessory Board provides a connection to allow you to program the board. Just like an Arduino with regular shields the shields simply slide together, but with an RFduino the main board with a processor also has pins that slide into the USB shield. It is not important which order you have the shields, unless it causes them to hit the table!
RFduino includes a quick start guide, and a great bunch of sample applications, including a couple in the app store. The sticking points in setting up the RFduino for me were:
1) Make sure you install the FTDI drivers.
2) The RFduino files need to be copied into the Arduino application (Mac). This needs to be copied into Arduino.app:Contents:Resources:Java:hardware:arduino the RFduino directory should appear alongside avr & sam directories. Initially I copied it into the hardware directory, this doesn’t work.
3) Make sure you have the port selected correctly. On a mac it something like /dev/tty.usbserial-DC008IDJ, on my machine I have a bunch of iPhone and Bluetooth ports appearing which aren’t correct.
4) Finally I needed to make sure that the board is selected as RFduino inside the Arduino development environment. On my machine it defaulted to Arduino Due. If you select the wrong board you will get a message of either “No device found on tty.usbserial-DC008IDJ” or “fatal error: RFduinoBLE.h: No such file or directory” depending on the example you try to load. Choosing the right board will fix both these issues.
For example, you can download the RFduino ColorWheel app from the AppStore and build a simple stack of a USB-Shield, RFduino and the RGB Shield and you can test your app with your iPhone/iPad.
For a cheap way to get an Arduino processor with Bluetooth LE the RFduino is a fantastic choice. The only downside is the limited number of io ports on the RFduino. The Red Bear Labs (***** link) shield uses 5 of a standard Arduino pins, leaving you with 8 digital and all the analog pins.