When the iPhone 4S launched in October of last year, it shipped with a feature that has yet to be fully utilized. That feature, Bluetooth 4.0 (also known as Bluetooth Low-Energy) is also in several new Apple products including the iPad 3 and MacBook Air. It is not unlike previous versions of Bluetooth, but it has some notable advantages that make it ideal for certain applications:
- It is actually low-power (as the name suggests). How much? Bluetooth 4.0 consumes half as much energy when active and transmitting, and 1/100 the energy when sleeping.
- The pairing process is simplified. Pairing is now quicker (down to 0.1s instead of 2.0s) and can be done from within an iOS app (instead of having to go through Settings). No complicated handshaking. Just press a button within the app, and you’re paired for good.
- Once paired, the Bluetooth device can wake up the iPhone or iPad with a pop up notification, even when the app is in the background. This could be a huge behavior changer for Bluetooth devices.
- Getting data in and out of the iPhone is no longer constrained by the Classic Bluetooth profiles, a reliable internet connection, the headphone jack (that so many companies have commercially hacked), or Apple’s proprietary 32-pin connector and their expensive MFi Program.
The more we talked about this with our colleagues, the more we realized how useful it would be as a rapid prototyping tool for wireless, short-distance communication. Bolstered by the Internet of Things, one can easily come up with applications for Bluetooth.
Many folks here at IDEO know how to quickly get something up and running on Arduino, so we figured we should make an Arduino shield for a Bluetooth Module. Moreover, instead of Bluetooth-to-Bluetooth connection (which can be mimicked using Xbee radios), we focused on Bluetooth-to-iOS.
Kyle Doerksen bought some nBlue Bluetooth Low-Energy modules, designed a board, and got it produced. In parallel, I dove into the command set for this module and started writing an Arduino library to interface with this specific board and module. Dan Goodwin jumped in and focused on the iOS side. Knowing the difficulty of writing iOS apps, he created an iOS platform where one can simply write a webpage (some HTML + Javascript) to communicate to the Bluetooth device. Because we’re connected via a server, we can open up the page on any web-enabled device to interface with the Bluetooth device (as long as one device is connected via Bluetooth 4.0)
In a few hours, we hacked up a small RC car, replaced its guts with an Arduino Pro Mini, and now have it controlled by iPhone.
Admittedly, this hardly takes advantageof Bluetooth 4.0′s real power, but it shows how quickly and easily it is to prototype hardware paired with an iOS device given the right tools. This reduces prototype cycle time and makes it easier to figure out what the human experience should be. That’s really where we as IDEO want to be focusing our time.
Related posts:





don
03/07/2012 at 9:43 pm // PermalinkGreat job guys! BLE RULES! The wave is coming.
Solderless prototyping is one of the core reasons we launched the toad smart beacon. However with the blue giga SOC and up to 15 firmware controllable pins an Arduino Shield can be skipped for many simple applications, such as the example in the video. With our hardware and API there are a wide range of custom applications options out of the box. I’m definitely interested in what you guys are doing. Very cool stuff!
Jonathan Rosen
10/07/2012 at 8:02 pm // PermalinkAny chance you guys will open source the design for the Bluetooth 4.0 Arduino Shield?
Jimmy Chion
10/07/2012 at 10:39 pm // PermalinkWe’re still considering that route. The Arduino library still needs a little work and testing before we release it for further development. Stay tuned!
Jonathan Rosen
10/07/2012 at 10:40 pm // PermalinkCool. Any way I can get in on the testing? Are your designs based on those by Michael Kroll, or did you roll your own solution?
Jimmy Chion
10/07/2012 at 10:51 pm // PermalinkI appreciate your willingness to contribute, and it provides further excitement to open source it, but right now, we’re going to develop it a little more internally.
This is our own custom solution, made with easy internal prototyping in mind. We were inspired though by Michael Kroll’s solution.
sudopeople
14/07/2012 at 12:17 am // PermalinkWell the race is on. I think there a lot of us casual Arduino tinkerers are gagging for an out of the box BLE solution, dinky dow, like now.
We’ve essentially waited 5 years for it and there’s a light at the end of the tunnel. If Sparkfun had half a brain they’d be done with a shield by now, instead we’ve got “Dr” Kroll working on what I’m sure will be akin to vaporware. In all likelihood he will ship 50 units and disappear off the face of the earth like so many half baked endeavors.
Long story short: you have a big opportunity. Don’t waste it. Crack open Eagle, call a fab house, print some PCBs and give us enough sample code to make an iPhone blink an LED. ????? Profit.
ZenIdea
15/07/2012 at 6:50 pm // PermalinkNice article~!
Not only because of i-Devices, the characteristic of BLE makes itself popular like you guys described. I have suggested DI companies such as Sony, Panasonic, Fujifilm and etc. to integrate BLE instead of only using WiFi Direct.
Via BLE, DI devices can get the Geo-Tag info from smartphones without integrating a GPS module. Also, it can be a remote controller taking photos, displaying the photo by smartphone’s bigger screen and reviewing the status of the DI device such as battery life, available capacity of storage, number of photos and so forth.
I think BLE can be the long distance version of NFC (FFC? XD) even though it requires pairing but on the other hand, it will be more secure.
Ray
16/07/2012 at 10:48 pm // PermalinkHi Jimmy – I’ve been out of the arduino scene for a while but I’m the person behind the arduino powered paypal vending machine. We used a wi-fi solution at the time but I would love to re-do this via BLE. If you could get a hold of me, I’d love to work together on this. Thanks.
Mike Westerfield
18/07/2012 at 2:56 pm // PermalinkHi Jimmy,
I wrote techBASIC, a technical programming environment for iOS. It already supports HiJack, and we’re working to extend the external sensors it can support. The next version will have BLE support. We’re looking for hardware that is compatible, both for testing our support and to promote hardware/software projects. Your BLE module looks tailor made for techBASIC support!
I’m interested in getting one of your boards, and also in information about when and how it will be made widely available.
If you’re curious about how we’ve supported HiJack, take a look at the bogs section of our web site, particularly at http://www.byteworks.us/Byte_Works/Blog/Entries/2011/12/7_HiJack_Hello_world!_Project.html. You might also want to glance at the reference manual for techBASIC, or check out the article in the June 2012 issue of Nuts & Volts. You can also find several movies that show the general capabilities of techBASIC on YouTube; search for Byte Works techBASIC. I think the fit between techBASIC and your board will be pretty obvious from these links.
I look forward to hearing from you.
wintifrosch
23/07/2012 at 8:37 am // PermalinkAny intentions to port the driver to RaspberryPi / Rasbian?
Ken Hui
08/09/2012 at 9:35 am // PermalinkCould I know how to make one?
Like tools, hardware i need?
I hope there would be a tutorial.
Thanks
Nic
20/10/2012 at 12:19 am // PermalinkHi, do you have any new about this shield? I’m really interested!
Dave
06/11/2012 at 3:19 pm // PermalinkGreat article! I saw the note about bluetooth-enabled apps being able to pop up an alert, even if the app is in the background, when receiving a signal from a bluetooth device. I’m looking to do exactly that – do you have a link to a tutorial or documentation on the API that illustrates how to do this?
Thanks in advance,
-Dave
Mike Westerfield
14/12/2012 at 1:50 pm // PermalinkI’d really like to support your device. We now have support in techBASIC for Bluetooth LE, and it’s working great. If you would like to see how to prototype Bluetooth LE projects on a BLE equipped iPhone, iPod or iPad, see either of these blogs, which walk you through all of the steps needed to connect to any Bluetooth LE device using either the Texas Instruments 2540 Key Fob or the Texas Instruments 2541 SensorTag.
SensorTag: http://www.byteworks.us/Byte_Works/Blog/Entries/2012/10/31_Controlling_the_TI_SensorTag_with_techBASIC.html
Key Fob: http://www.byteworks.us/Byte_Works/Blog/Entries/2012/8/20_Controlling_Bluetooth_LE_Devices_with_techBASIC.html
There’s also a cool project using the Texas Instruments SensorTag. I loaded it into a model rocket with an iPhone to record and analyze acceleration, pressure and rotation. You can find the blog here, which has source code for the program to collect data and a separate, graphics-based program to analyze it:
http://www.byteworks.us/Byte_Works/Blog/Entries/2012/10/31_Collect_Data_from_an_iPhone_Rocket_Flight.html
There’s also a fun movie of the flight here: http://www.youtube.com/watch?v=8YNjwcNXOK4
Please get in touch if you would like us to blog about your device, too.