A quick primer for my workshop on BLE

<<<<<<<<<<<< Update

Ok, if you’re taking the workshop here’s what you need to bring:

  1. A computer.
  2. Something that can talk over Bluetooth 4.0. Now, I won’t kick you out of the workshop if you don’t have one of these, but you won’t have nearly as much fun.

If you want your RFDuino to talk to your iPhone/iPad please download XCode and get your developer account set up before the workshop. I really won’t have time to walk you through it (it’s not hard) and the downloads are around 4gb, which means it could take all day to complete.

If you have iOS read here

If you have Android read here

If you just want to use your laptop read here

Questions? Email me, if you’re taking the course you have my email.


I’m preparing a workshop on doing things with BLE for Inst-Int and I figured I should make a quick primer for folks who might want to take that workshop. I’m going to just lay everything out here in as compact a fashion as possible so people can prep themselves. A lot of this will be links but trust me, these are well selected links, not just random grab of “oh this’ll do” links. These are *artisanal* links.

First off, what is bluetooth, in most basic form? Ok, and this is important, we will be using Low Power Bluetooth, sometimes called Bluetooth LE, sometimes called Bluetooth 4.0.
We won’t be focusing on other versions of Bluetooth for a couple of reasons: 1) they eat battery like no tomorrow, 2) IMHO they’re harder to get set up and devices are less standardized and weirder to use, 3) we’re trying to be future-oriented! 4) all the things we’ll learn in our workshop will have you pretty much ready to go with Bluetooth 2.0 (there’s no 3.0 afaict, so whatever).

So, big picture: there’s a thing that can talk to something else over radio. In our workshop we’ll have two things, something called an RFDuino that’s an Arduino compatible bluetooth device and then something else that you’ll provide which can be pretty much anything (you probably will already have it with you).

Second, how do we talk to a bluetooth radio that’s in a device? Well, we can talk to it using an Arduino over a serial connection, or if you’re lucky and own an Android, Windows Phone, Blackberry Device, or iPhone, you have a device that already has one in it. This also goes for most laptops, cars, and so many other things that it’s silly to list them all out. FOr most of those devices they’ve provided a way for you to talk to the bluetooth radio that’s in your device. For iPhones this is a library called CoreBluetooth for Android this is a group of libraries with names like BluetoothAdapter and BluetoothGatt and so on. You can write an application in OpenFrameworks or Cinder for iOS or Processing for Android that lets you leverage these libraries in a way that’s a little faster for prototyping and experimenting than building a regular iOS or Android application might be. So what do those look like? Well, let’s check it out:


Ok, this is important only newer phones and tablets support the right version of bluetooth. You can install this app and see if it works. Does it? Yay, you’re all set. Doesn’t? Check what version of Android you have. Is it higher than 4.2? You should be good. Not? Erm, can you upgrade? Check the specs. If it’s not 4.3 or doesn’t have a Bluetooth 4.0 radio it’s not the end of the world, you can still have multiple RFDuinos talk to each other or talk to your computer (probably).

Processing runs on Android and it’s actually pretty painless. Because I’m trying to leverage the newest features in Android we have a slightly hacked version of Processing for Android that I’ll be distributing at the workshop so we can talk to our Bluetooth devices. It basically comes down to changing a ’10’ to a ’20’ in a whole bunch of places, updating this library is super painless and won’t break things for you at all. If you want to be really ready, get your Android device ready to go and try a few things out before you come to the workshop.


Got an iPhone 4s, 5, 5s, 5c? You’re golden. Got a 3 or 4? Sorry.

Openframeworks makes it pretty easy to work on iOS but there are a lot of hoops to jump through beforehand. I really want everyone to be able to make things that talk to their phones or tablets or whatever in the workshop but if you want to be doing that on iOS I *beg* you to get all this set up beforehand because Apple has made it very hard to get set up and I’ve been burned so many times by assuming that their login/enrollment/keys/blah process would go smoothly that I can’t promise you that you’ll be able to do anything in the workshop.

You can use Cinder too! Rad! You use Cinder, you know what you’re doing or you can figure it out. I have a simple Cinder Block that I’ll be releasing very soon. Update it’s here.


If you’re ok with just having things talk to your laptop, rad! Most laptops these days have Bluetooth 4.0 enabled on them.

OSX how do you know?

Click the AppleIcon menu (you know, the one in the upper left corner)
Select About This Mac.
Click on the More Info… button.
Click on the System Report… button.
Select Bluetooth from the sidebar on the left, underneath “Hardware.”
Scan down the list of information until you find “LMP Version.”
If your Mac is equipped with Bluetooth 4.0, LMP Version will say 0x6. Anything lower than that is an older version of Bluetooth.

Windows how do you know?

You have Windows 8.1? You’re good to go unless you have a really old computer in which case see the below:
You have Windows 7? Get this. Get it before the workshop *please*. UPDATE: as far as I can tell this isn’t going to work because windows 7 won’t support BLE. If you’re really stuck maybe we can figure something out.


Read this


In our workshop we’re going to be using the Arduino environment to program our bluetooth devices. You don’t need to buy an Arduino for the workshop because I’m going to give you one but if you aren’t familiar with Arduino it wouldn’t hurt to get comfortable with the Arduino programming environment itself. Also, if you just want to buy an Arduino for the hell of it you should totally do it because they are awesome. To do so, download the environment and check out the samples. There are *so* many good resources for learning Arduino that it’s ridiculous (and amazing) but the Arduino site is a great great place to start. For our workshop we’ll be using the Arduino 1.5.7 Beta NOT THE 1.0.5 so if you could have that downloaded and installed when you get into the workshop that’d be great!

If you’re taking my workshop, I’ll be sending out an email to everyone as the date gets closer, if not, then I’ll be putting another post up after the workshop with the gist of what we covered and all the code.

5 thoughts on “A quick primer for my workshop on BLE

  1. The iPhone 4S also supports BLE.

    Also any Mac running Snow Leopard can support it even if the hardware is older than 0x6. Just get a cheap “Bluetooth 4.0 Dual Mode USB dongle” from EBay, should cost around $5.

    Once you plug it in OSX will see it as use it for BLE.

  2. This looks great, right in line with some project ideas I have.
    Thanks for the info! I’m really looking forward to this!

    In a nutshell, with respect to Bluetooth (or similar) communication, how does the RFDuino compare with a Raspberry Pi or BeagleBone?


  3. RFDuino is a much less powerful processor but it has the full bluetooth stack built into it. To use BLE with an RPi or BB you’d need to get a BLE transceiver like the nrf8001. The RFDuino/nrf58122 are built for power conservation which the RPi and BB are not.

  4. Are the small rfduino pc board with battery you show in your “helping tiny things talk ” workshop pdf available somewhere? Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *