Bluetooth Low Energy (BLE) Arduino Shield Prototype finished.

After spending some time on hardware- and software development I finally finished a first working prototype of an Arduino Bluetooth Low Energy Shield. A detailed story about the shield shown below can be found in the Hardware Section or directly using this link:


Read what others are writing about the BLE Shield:

62 Responses to Bluetooth Low Energy (BLE) Arduino Shield Prototype finished.

  1. Erin RobotGrrl March 19, 2012 at 19:58 #

    This is super cool!

    Definitely interested & eager to try one of the revision B prototypes. Sign me up, please!

    Been trying to connect Arduinos to iOS for a while, created a sort of convoluted way (but it works!) that connects back to the computer via bonjour & tcp. BLE would be much better! 😀

    Let me know if I can help, I’m good at ObjC and building robots. ^_^

    • Michael Kroll March 19, 2012 at 21:09 #

      You’re very welcome. I already changed the PCB to 0.9.1 where I fixed the design fault with a missing GND line on the power regulator. I’ll test a little bit with iBLE and create a more sophisticated demo hardware setup and will then go over to create a v1.0 board. Thanks for your interest.

    • Michael Kroll March 19, 2012 at 21:40 #

      Where do you read about the BLE Shield?

      • Nabil March 22, 2012 at 21:41 #

        Found out here

        So if I understand correctly you don’t have to be a certified Apple accessory developer. Is this because of the BT module you are using? Also, what are the limitations of low power bluetooth? Thanks, interested in getting one myself.

        • Michael Kroll March 26, 2012 at 20:40 #

          Yes, that’s correct. Since the BLE Shield is using a Bluetooth 4.0 / Bluetooth Low Energy Module, there is no need to be MFi licensee to connect it to an iPhone4s or the new iPad. BLE is not intended for streaming, but sensor data. Streaming data stored on a SD card or even a HDD would not be the goal of BLE. sending and reading small amounts of data such a temperaure data, an RFID Tag UID or a Youstick would be fine. I think there are lot of introductions on Youtube showing you what BLE is intended for.


  2. Matthew March 21, 2012 at 16:42 #

    When will these be available for purchase? I’d like to have one overnighted as soon as possible

    • Michael Kroll March 26, 2012 at 20:43 #

      Hi Matthew,
      It is planned for shipping by the end of April though an online shop which will be integrated directly into my Blog. In the meantime I have setup a small ‘preorder’ surveyjust to get an impression on how many people are interested in the shield. Please participate and leave your email, so I can contact all people who are interested once they are available.


  3. Eberhard Rensch March 22, 2012 at 16:07 #

    That’s exciting news!

    I’ve done some experiments with connecting iOS devices via embedded WiFi modules, but it’s kind of an overkill for most applications and not very user friendly. Connecting devices over BLE would be so much easier.

    I’d be also interested to try one of these boards

    • Michael Kroll March 23, 2012 at 08:45 #

      I will set a preorder page over this weekend, in order to get a better estimate how many people are interested in a BLE Shield so I can arrange an initial production run for them.


      • Marek March 25, 2012 at 19:30 #

        Yes please!

  4. Michele March 25, 2012 at 23:19 #

    Me interested too!!!!

    I cannot find the preorder page. Did you put it up already?

    Great project, thanks


    • Michael Kroll March 26, 2012 at 20:33 #

      It’s setup now, and I can see you already participated 🙂 Thanks!

  5. Michael Kroll March 26, 2012 at 20:05 #

    I just setup an octopus preorder survey so I can count how many people are interested in the shield. The more preorders I will count, the cheaper the final shield will be offered 😉


  6. Bob H. March 29, 2012 at 13:29 #

    Hi Michael,

    I love it!

    I am very interested in trying one of the revision B prototypes.
    I would use it to read the values of 2 sensors that I currently use a Hope RF transceiver.

    Can’t wait to get my hands on this shield.



  7. Jose M. March 31, 2012 at 22:44 #

    Great work, that board looks super professional. I’m already using TI’s CC2540 development kit (same chip as your module), but I’ve essentially hacked the kit’s keyfob so the setup is too unrealiable with wires all over the place. I also don’t have access to all the GPIO pins.

    The BLE112 module and good SMD soldering skills is the way to go! I’ve now registered my interest for two of your shields.

    Also interesting coincidence that you’ve worked with DICOM and brainwaves for your research articles. I’m analysing brain DTI (Diffusion Tensor MRI) myself in my “day job”.

    Can’t wait for more updates!

    • Miguel February 21, 2013 at 11:30 #

      I would like to know this (connect the 2540 keyfob to the arduino..-waspmote in mi case-).. could you give me some guides please?
      Thanks in advance.

  8. Julian April 2, 2012 at 07:08 #

    Hello Michael,

    I try to do something like that without using Arduino. Im’ trying to connect to a BLE112 module mounted on a small PCB and as you made try to see it on Serial Monitor like your CoolTerm.

    Why do write in your Arduino sketch :


    And how did you configured the hardware.xml in your BLE project ?
    (I think you can’t send me your BLE112 project right ?)

    Thanks in advance,


    • Michael Kroll April 3, 2012 at 12:55 #

      Hi Julian,
      this is how data is send from Arduino to the BLE Shield which is connected to pin 2/3 using SoftwareSerial.

      No at this time I’m not planning to release the BLE112 project files. I’ll provide them once the Shield is released including the Schematic and Board files as well. The plan is to release it as Open Hardware including all necessary files to create it from scratch.

      Furthermore I’m very interested in getting feedback and tips on how to make it even better.


  9. Julian April 5, 2012 at 11:25 #

    All right, thanks Michael

    a last question, do these values have a particular meaning ?




  10. Patrick Crilly April 5, 2012 at 22:08 #

    Great job

    At University we are looking into wireless health monitoring and mobile phones (Android based ones). We are already using the Arduinos and Bluetooth. Being able to add BLE with a shield will be really good.


  11. Mikel April 6, 2012 at 16:55 #

    Cool, I wish I found this before I got my DevKit.
    Anyway, I’m new and still playing with it.

    I’m trying to simulate SPP profile in BLE like what you did.
    Looking at your GATT profile from,
    did you code BGScript to make the GATT works?


    • Michael Kroll April 6, 2012 at 21:44 #

      Yes the Shield’s GATT was written using BGScript.


  12. Mikel April 8, 2012 at 07:41 #

    Thank you Michael.
    Is your BGScript code is for sharing? 🙂
    I’m very interest to know how you do it.

    I need to send 140 bytes of string to my arduino to display it.
    From this forum, it seems it’s not easy.


    • Michael Kroll April 8, 2012 at 15:52 #

      Hi Mikel,
      you have to send the140 characters in chunks of 20 bytes. Currently the BGScript which is used in the BLE Shield is not yet available.


      • Mikel April 9, 2012 at 08:24 #

        Got it. Before I can even do 140 chars, I need to find a way to send 20 bytes. If you open your BGScript, please let me know. Thank you!

  13. Danilo April 11, 2012 at 10:11 #

    I’m really excited about this work. Hopes the preorder come soon, I was really looking for something like this!

  14. Krispin April 15, 2012 at 19:13 #

    Great project!

    I’m curious:

    * Do you have any plans to publish the objective c and BGscript source code, together with the Arduino source code?

    * You mention a notification interval of 4 seconds… What dictates the upper bound for the notification rate? (I understand that BTLE is meant for very low data rates, and am wondering what sort of upper limits Apple, BlueGiga and the BTLE standard may have put in place…)

    Anyway, thanks for the inspiration!

    • Michael Kroll April 15, 2012 at 19:28 #

      Thank you.

      No no, this in not the upper limit! I picked this interval randomly.
      The Arduino code sample just sends 4 bytes every second to the BLE Shield, and the Shields then notifies the iPhone after 4 seconds since the 16 byte buffer is full.

      I’m planning to release the BGScript code as well as rhe schematics and make the whole project open (software and hardware).

      I’m still working on getting real offers from some assemblers here in switzerland, to produce a Swiss-Made hardware 🙂

      I’ll update my blog as soon as I have these offers, and will tell all people who filled out the preorder survey the final retail price.


  15. Juan April 15, 2012 at 20:00 #

    Awesome! It’s just what I need.
    Please make it happen 🙂
    Thanks so much!

  16. Mikel April 20, 2012 at 14:38 #


    I’m testing on BGScript. I can send data using UART, TX(P0_4).
    But I couldn’t received data RX(P0_5).
    Even I monitor the event:

    event system_endpoint_rx(endpoint ,datalen, mydata)
    call attributes_write(xgatt_va1ue1, 0, 3, “ABC”)

    Can you shed some light?

    • Michael Kroll April 20, 2012 at 16:00 #

      Hi Mikel,

      in one of my initial approaches I used the following call:

      event system_endpoint_rx(endpoint, data_len, data_data)
      call attributes_write(xgatt_rx, 0, data_len, data_data(0:data_len))


      Using this approach, there is no flow control and the system endpoint rx might be called after the first bytes, or call for each byte received.
      There is not means to wait until you send e.g. “Hello World\n”. completely. system endpoint rx is not called after \n, but can be called wherever 😉

      This is why I’m using this internal buffer.


      • Mikel April 20, 2012 at 18:05 #

        Thanks Michael. But it can’t even receive the 1st byte. It seems like it’s never being called.
        Because If it is ever received the first byte, attribute xgatt_value1 should become ABC.

        event system_endpoint_rx(endpoint ,datalen, mydata)
        call attributes_write(xgatt_value2, 0, 3, “ABC”)

        This is my hardware.xml:
        [usart channel=”1″ alternate=”1″ baud=”9600″ endpoint=”uart1″ flow=”false”/>

        Not sure what went wrong :-\

        Any clue? DId you face this problem before?

        • Michael Kroll April 20, 2012 at 19:23 #

          You are sending from an iPhone or BLED connected to a Windows machine? Are you using a BLE module where the uart is connected to or an eval board of blue giga? Tell me about your hardware setup!

          • Mikel April 21, 2012 at 04:38 #

            I’m using BLE112 Eval Board + BLED(USB) + windows 7. Connected to Arduino over UART interface. TX (P0_4) and and RX (P0_5).

            I use BLEGUI to send data and successfully received by Arduino.
            But when Arduino send data, BLE board never receive the data.

        • Jens Willy Johannsen May 4, 2012 at 12:47 #

          I have the same problem: I can send data on system_endpoint_uart1 just fine, but I can’t seem to receive anything.

          I have the same setup in hardware.xml (I have also tried other baud rates and connecting to endpoint ‘none’ instead – and even tried using uart0, alternative 2 on ports P1_5 and P1_4) but nothing helps. I also set an attribute in the system_endpoint_rx event and I have created an iPhone app that connects and reads the value of the attribute in question – but it never gets changed.

          I’ve verified that the data is being sent in the correct format and baud rate by using an oscilloscope and logic analyzer connected to the pins of the BLE112 module. But the system_endpoint_rx event handler doesn’t get called…


          • Michael Kroll May 4, 2012 at 15:07 #

            I will share the project files for the BLE Module and the eagle schematics of the shield soon. I’d love to get comments on the source and hope to make it even better with the help of the community.


  17. Juan April 26, 2012 at 00:31 #

    Hi! Any update on when it will become available?
    Thanks so much!

    • Michael Kroll April 26, 2012 at 13:31 #

      I’m still looking for a good source to get the shield produced. I will post an update on the availability and pricing in the first week of may. I already have a list of people who are interested in a shield due to the octopus survey. Two shields are already out for beta testing the hard- and firmware. I would like the testers to play a little bit with them and add their feedback to make some final adjustments.

      • Juan April 27, 2012 at 20:08 #

        Thank you very much for your hard work!
        Looking forward for the update 🙂

  18. Chris Allick April 28, 2012 at 20:28 #

    Are the schematics available? I have a number of assistive technology applications for this and would love to print and build my own boards. I already ordered the modules.

  19. jan April 30, 2012 at 03:23 #

    i actually did a lot of research for a project i’m planning that involved sending serial data between device and mobile phone. this one seems to be the perfect solution i’ve been looking for for weeks now.
    is there a way to purchase a beta version of the board or get the board files? please let me know.

  20. Mike MacMillan May 1, 2012 at 05:56 #

    Michael very nice and I just saw your TOD sensor. We are trying to put together a staff tracking solution where we can identify with extremely good accuracy the location of staff members. We are using time as one of the real time elements to identify the tag at an accuracy level of less than 3 meters. Given the cost of your beacon and the ability to view data possibly on iPhone I would be very interested in discussing the opportunity with you. We are a startup so not much is on our website but I would be happy to share more with you by mail if you are interested?

    Mike MacMillan

    • Michael Kroll May 1, 2012 at 11:27 #

      Hi Mike,
      TOD is not mine. It’s an idea of Jon an Don in the US. I just helped to do the proof of concept. I like the idea as well and there will be demand for such kind of solution. I’ll send you an email, where we can discuss your questions.


  21. RF May 8, 2012 at 18:06 #

    Hi Michael,

    I’m coming at this from the iOS side, working on a new development system for building iOS apps. I’d like to include support for CoreBluetooth and BT4.0 but for testing a variety of sensors I’d like to go through a general purpose hardware interface like an Arduino.

    At first I couldn’t find anything so I started looking at the TI CC2540, the Bluewave BLE112, and the Nordic nRF8001 development kits. I’m more of a software guy and not quite at the ‘design and build my own shield’ level when it comes to hardware. Then I came across your post and it looked like it might be the best solution.

    I’ve already put myself down in your survey and am a TOD backer (yes, I’m covering all bases 🙂 Curious when you think your shield might be available? I’m going to be at WWDC in June and was hoping to be able to show something working by then. Also, happy to beta test.


  22. Alexander Moroz May 9, 2012 at 20:29 #

    Hi Michael

    Ich finde die Idee mit dem BLE Shield klasse, und eventuell die Loesung fuer unser Problem hier:

    Der Link auf der Projektseite (kickstarter) hatte uns zu deinem Blog zu dem Artikel über BLE in Verbindung mit Apple Geräten geführt und wir dachten uns, dass eventuell mit dem neuem Bluetooth 4.0 wir ein für uns derzeit bestehendes Problem lösen können. Da du ein Experte auf dem Gebiet zu sein scheinst, wollte ich dich fragen ob du uns eventuell einen Ratschlag geben könnten bzw. aber sich auch vorstellen könntest mit uns zu kooperieren.
    Wir stellen Bluetooth Videospiel Kontroller für Android und iOS her. Momentan entwickeln wir ein neues mobiles Gamepad, für welches bis dato der Einsatz des BT 2.1 Modul von Roving Networks RN-42 geplant war, weil jener sowohl das HID als auch SPP Profil unterstützt (beide werden benötigt). BLE wäre für uns insoweit interessant, weil wir so anstatt mit HID scheinbar richtige Datenpakete ans iPhone senden könnten und das Ganze ohne dass wir Mitglied bei Apple’s MFI Programm sein müssten.

    Wäre dies deiner Meinung nach durchführbar? Wir sind leider auf dem Feld der Bluetooth Technologie relativ unerfahren.

    Unser jetziger Kontroller verkauft sich bereits sehr gut und wir sind fest überzeugt, dass der kommende einen noch höheren Absatz erzielen wird.

    Ich bedanke mich im Voraus und warte auf deine Antwort.

    Freundliche Grüße

    Alexander Moroz

    Chief Technology Officer
    Phonejoy Solutions Ltd.
    Rm 1801, 18/F Wing On Central Building, 26 Des Voeux Rd. C., Central,
    Hong Kong

  23. Chris May 12, 2012 at 03:52 #


    I’m working on a aviation related project using Arduino as a prototype. I think BLE is the best way to connect a Arduino based hardware “dongle” to an iOS device, and would like to discuss if the application I’m working on is suitable for BLE. Can we discuss via email?

    Great work, I love it!

    Fly safe,


  24. Mikel May 13, 2012 at 07:04 #


    I tried to send 20 chars and it was truncated or not complete.
    Do you have this issue and how did you solve it?
    Do you use the CTS and RTS pins?

    Thank you

    • Michael Kroll May 15, 2012 at 19:09 #

      Yes I had the same issue here. That’s why I’m using the internal buffer to wait until the buffer is filled completely before sending the data. No I’m not using RTS/CTS since the Arduino Serial Port is RX/TX only. I was thinking of using an SPI < -> UART converter to provide a full UART and attach the BLE112 usind SPI.

      • Abel August 22, 2012 at 11:16 #

        Hi Michael,
        I’m trying to connect the ble112 by SPI but there is not enough information about that in the datasheet. Did you were able to do something about that(SPI)? Please If you could give me some guide lines.

        • Michael Kroll August 22, 2012 at 12:45 #

          Hi Abel,
          no sorry I have not yet tried to attach an SPI device to the BLE112 and programmed it successfully.

          Maybe a better place for discussion these kind of issues is the forum which is available at:


  25. Carsten May 13, 2012 at 18:18 #

    Amazing! Is there an update regarding the shield. I like to order 3 🙂

  26. David May 14, 2012 at 19:01 #

    Are you planning to make the BLE profile used by the BLE112 module configurable? That would make the shield *very* useful for prototyping.

    • Michael Kroll May 15, 2012 at 19:06 #

      Maybe you can explain your plans a little more in detail. I want to make the Schematics and BGScript of the shield open source this weekend 🙂

      • Michele May 23, 2012 at 13:37 #


        any progress on open sourcing it. I can’t wait….
        Also do you know when you’ll start selling them?



      • Brian May 24, 2012 at 14:34 #

        Please open source the schematics and BGScript as soon as possible!

        I would love to get started on a prototype I’m building and I have checked you blog every day since your last comment about releasing it last weekend…

        • Michael Kroll June 3, 2012 at 16:05 #

          The Schematics, Board and Firmware files are now available.

          • Juan June 5, 2012 at 21:27 #

            Are you planning to sell the shield soon? Where can I find the Schematics, Board and Firmware files?
            Thanks so much!

          • Michael Kroll June 7, 2012 at 19:19 #

            Selling the Shield is still in the works. That’s why I wanted to give the Schematics and firmware away before. You can find them here:

  27. David May 25, 2012 at 20:30 #

    Looking forward to order one. I’m wondering, if Apple allows an App to wake up from Background when the Bluetooth Shield is in reach.

  28. Jimmy July 10, 2012 at 21:58 #

    Nice work! We at IDEO were inspired, and just developed a similar board, Bluetooth 4.0 iOS.


  1. URL - September 23, 2012

    … [Trackback]…

    […] Informations on that Topic: […]…

Leave a Reply

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

Powered by WordPress. Designed by WooThemes