02 Jul '12

Bluetooth 4.0 as a prototyping tool

Arduino, Hack

By Jimmy Chion

how our Bluetooth platform works

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

15 Comments:

  1. don

    03/07/2012 at 9:43 pm // Permalink

    Great 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!

  2. Jonathan Rosen

    10/07/2012 at 8:02 pm // Permalink

    Any chance you guys will open source the design for the Bluetooth 4.0 Arduino Shield?

  3. Jimmy Chion

    10/07/2012 at 10:39 pm // Permalink

    We’re still considering that route. The Arduino library still needs a little work and testing before we release it for further development. Stay tuned!

  4. Jonathan Rosen

    10/07/2012 at 10:40 pm // Permalink

    Cool. 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?

  5. Jimmy Chion

    10/07/2012 at 10:51 pm // Permalink

    I 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.

  6. sudopeople

    14/07/2012 at 12:17 am // Permalink

    Well 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.

  7. ZenIdea

    15/07/2012 at 6:50 pm // Permalink

    Nice 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.

  8. Ray

    16/07/2012 at 10:48 pm // Permalink

    Hi 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.

  9. Mike Westerfield

    18/07/2012 at 2:56 pm // Permalink

    Hi 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.

  10. wintifrosch

    23/07/2012 at 8:37 am // Permalink

    Any intentions to port the driver to RaspberryPi / Rasbian?

  11. Ken Hui

    08/09/2012 at 9:35 am // Permalink

    Could I know how to make one?
    Like tools, hardware i need?
    I hope there would be a tutorial.
    Thanks

  12. Nic

    20/10/2012 at 12:19 am // Permalink

    Hi, do you have any new about this shield? I’m really interested!

  13. Dave

    06/11/2012 at 3:19 pm // Permalink

    Great 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

  14. Mike Westerfield

    14/12/2012 at 1:50 pm // Permalink

    I’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.

Trackbacks
  1. Bluetooth 4.0 | Design Research 10/10/2012

Leave your comments