I’ve got a little more to show you…

No, no it’s not the iPad-Mini. After I created the BLE-Shield in Arduino Shield form factor, I shrinked the BLE-Shield to an XBEE size form factor and added even a little more functionality.

The idea behind it was quite simple. Now that I developed the BLE-Shield, why not shrink it to an XBEE form factor, name it BLEbee and use it with an Arduino FIO or the Arduino Wireless Shield, where an XBEE module can be used. The following image shows how it looks like:


The services and characteristics are similar to the ones provided by the BLE-Shield. But there is one more thing (I’m a little addicted to Apple phrases in this post). It not only one but four.

It was not the only idea to use the BLEbee in an Arduino FIO. My first firmware I created using Bluegiga’s DKBLE112 was a firmware to switch LEDs on and off which I attached to the eval board. In the second step I wanted to attach relays to it, in order to switch devices such as Lamps on and off. Having all the firmwares already developed I was looking at Seeedstudio’s Relay Shield. It can be used as Arduino Shield but standalone as well since it provides an XBee socket for XBees or their RFBee. You can find the details on how to use their relay shield on their website  (


What I finally did, was to enable four GPIO pins of the BLE112 to be connected to the XBee pins which are necessary to switch the four relays of the shield on and off.

I created a small setup with four LEDs and resistors to drive the LEDs through the 9V voltage available on the shields header. This weird setup is shown in the picture below. Big yellow 10mm LEDs will be controlled by the relays:


So now take a short look at the services and characteristics of the BLEbee by opening up BLExplr and search for devices and after you connected to it you can see its service and after selecting the BLEBee Service you can see it’s characteristics:

photo 1

Of course there is a BLEbee service. It seems as we are BLE exploring the BLE-Shield, but:

photo 3

The new characteristics are the D0-D3 Output ones, which are available at pins 20, 19, 18 and 17 of the BLEbee pins. On the Relay Shield, these pins are used to control the relays.

If you now select e.g. the D0 output, there is no the well known read/write characteristic screen shown in BLExplr. In v1.0.4 of BLExplr I introduced a new datatype to the UUID dictionary, which is configurable on the service side. I never explained why I designed the app the way to use the server side UUID dictionary. In CoreBluetooth there is a way to get a name of the characteristic which can be read using I think the call

- (void)discoverDescriptorsForCharacteristic:(CBCharacteristic *)characteristic;

of CBPeripheral (correct me if I’m wrong), but in my server side dictionary there are more flags that can be set for a given characteristic. The magic is behind the datatype, I can define for a 3rd party characteristic as well. For the D0-D3 Output Characteristics, I added the following configuration:

<string>D0 Output</string>

So what you can see here is, that the Characteristic’s value is changed to digital high, when you write 0xff to it, and digital low if you write 0x00 to it. Using the datatype “switch” of the characteristic, BLExplr will render an on/off switch instead of a write button, where you have to enter the hex value manually to turn the switch on or of.

The convenient BLExplr UI looks like this:

photo 4

Press the UISwitch… and the Yellow LED connected to first LED will turn on…

photo 2

and finally the switch state in BLExplr is changed as well…



Other Projects using BLEbee:

Using the BLEbee an even smaller thermometer using the Arduino FIO and a SHT15 breakout board can be realized:



The sketch is the same what I’m using in the BLE-Shield Thermometer Sketch.  More things to come, but this will be covered in another post, once these things are ready to show.

Thanks for reading,


7 Responses to I’ve got a little more to show you…

  1. JoshD October 24, 2012 at 18:06 #

    This looks great. I backed the original shield and am so excited to get it and start working with it. Do you have an estimate of when this BLEbee will be available and how much it will cost?

  2. Simon Taylor November 14, 2012 at 12:24 #

    Looks really good. Will you share the BLE Script too?

    • Michael Kroll November 14, 2012 at 12:41 #

      Hi Simon,
      yes I’ll put it into the guthub repository.
      As I can see in the repo, it is already 🙂

  3. Chris Jefferies April 28, 2013 at 07:12 #

    I’m using an xbee series 1 with 4 analog inputs configured on pins , 17, 18, 19, 20. The sensors are wired directly to the xbee without any arduino involved. Can the BLEbee be configured similarly?

    Also, if I switch from my xbee to a BLEbee, what can I expect the packets to look like when reading from my central receiving BLEbee?


    • Michael Kroll May 2, 2013 at 06:44 #

      Hello Chris,
      analog pins are not yet supported by the firmware if the BLEbee. Can we discuss features in the Forum since the BLEbee is still not final and need a better firmware as well?



  1. How to connect Arduino to iPhone over a wireless connection | Alyson Fielding - January 18, 2013

    […] Kroll is also working on a smaller BLE shield, called the BLEbee, which is much more suited to PleaseReadMe. This has the potential to remove several of the […]

  2. Have you tried turning it off and on again? | Dr. Michael Kroll - March 23, 2013

    […] maybe you are familiar with IT-Croud and where the title for this blog post came from. It is some kind of an opener for a little story about a hardware I’m developing with a friend of mine in Zurich. A long time ago I started to play around with Bluetooth Low Energy and I ordered the BLE112 Devkit provided by BlueGiga. The first thing I did was to set a GPIO pin high and low in order to turn LEDs on and off. The firmware doing this is now already part of the BLEbee in order to control the Relay Shield created by Seeedstudio. You might remember the blog post I wrote some weeks ago: […]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Powered by WordPress. Designed by WooThemes