About this project
The Bluetooth Low Energy (BLE) Shield for Arduino is a Shield that enables Arduino projects to communicate with Bluetooth Smart devices such as the iPhone 4s or the new iPad without Jailbreaking.
Simply attach the BLE Shield to an Arduino and write and read data to and from the Arduino using the Serial Port which can be the hardware Serial on pins 0 and 1 or a software serial port on pins 2 and 3. The selection is done using the switch on the BLE Shield.
How does the BLE Shield work?
The BLE Shield is using a Bluetooth Low Energy Module BLE112 from Bluegiga. It provides three services, where two services are BLE related services which are mandatory for BLE peripherals, and one service which is specific to the BLE Shield, the BLE Shield Service.
The view towards the mentioned characteristics is when you look from e.g. the iPhone to the BLE Shield. The data which is sent over the TX characteristic (max. 16 bytes of data) is transferred to the Arduino’s RX pin. Either pin 0 or pin 2 of the Arduino depending on the switch position of the shield. The transmitted data is then available to the Arduino using Serial.read() calls. On the other side the iPhone can read data from the Arduino using the RX characteristic. Here is a small difference compared to the TX characteristic. The data on the RX characteristic is only available after the internal 16 byte buffer is completely filled up. This means, if you are e.g. transferring a byte, you need to fill the buffer with leading zeros for instance. This internal buffer was necessary to implement, since otherwise the data you transfer from the Arduino to the iPhone is fragmented. This is a problem when you expect structured data sent from the Arduino, which is notified or indicated.
The RX characteristic can be read or notified. If you enable notifications on the RX characteristic there is no need to poll for new data. The BLE Shield will send you the 16 byte buffer automatically once it is filled up. Both the RX Buffer Count and Buffer Clear Characteristic are used to control this buffer. Read how many data has been already written from the Arduino to the buffer, or clear the buffer to zero.
What about compatibility to other devices?
In general the BLE Shield should be compatible with every smartphone, tablet PC, desktop or notebook that supports Bluetooth Low Energy or is simply “Bluetooth Smart Ready”. In order to connect an Arduino to desktop computers or Android devices, there are already “Classic Bluetooth” solutions available. You can add a Classic Bluetooth Shield to an Arduino, use the Arduino BT or attach a Bluetooth module supporting Serial Port Profile directly to your Arduino setup. The BLE Shield for Arduino is primarly targeting iOS devices such as the iPhone4s or the new iPad (iPad3) which are “Bluetooth Smart Ready”.
Who is making it?
The lead engineer is Dr. Michael Kroll, who is a software and hardware engineer focusing on mobile computing for almost 13 years now. Arduino is his first choice for building connected sensor devices. He already designed RFID reader solutions for iOS acting as Keyboard in order to transfer tag-id information to an iPhone without jailbreaking for a customer project.
He is author of BLExplr the generic BLE explorer app which is available for the iPhone4s on the Apple App Store which is a good developer companion, when working with the BLE Shield and other BLE peripherals in general.
Michael is teaming up again with product innovators Rowdy Robot. Michael has been instrumental in engineering the tōd Smart Beacon and continues to be a valuable asset for them as the primary developer of the tōd app.
How long will it take to create the BLE Shield?
Development of the BLE Shield is done! For the initial proof of concept a prototype has been created and published on Michael’s blog to show it to the public. The following picture shows the initial prototype.
After more and more people demanded the BLE Shield to be made available for purchase, a hardware beta test counting 10 BLE Shields was initiated, and shipped out to beta testers all around the world for testing the shield and make it as stable as possible. The second prototype, has some small issues fixed and additional ground layers on the top and bottom of the PCB. This engineering sample was shipped to the beta testers and will be used as the basis for the final BLE Shield.
The production line is already setup. The manufacturer is just waiting for the final amount and go to get the BLE Shield produced and shipped to you. Production will take about a month, which will be started once the Kickstarter campaign closes successfully.
What can be done with the BLE Shield?
Michael has already created a simple BLE RFID Reader and a BLE Thermometer using the BLE Shield and some additional components to show some use cases of the shield. Both projects are available on at http://www.mkroll.mobi, where you can download the corresponding Arduino sketches and see pictures and even videos of the built devices.
Detailed information about these two projects can be found in the blog posts covering these peripherals in more detail:
What will the money raised in this Kickstarter used for?
Initial polls on how many people are interested in getting a BLE Shield, is way too much do be paid upfront to get the demanded amount of shields done. The raised money will be used for the production run of the BLE Shield. So the last step in this project is to get the shield produced and shipped to the Kickstarters pledging for a shield.
Where can I get BLE Shield support?
The Schematic and PCB files are licensed under CC BY-SA 3.0 and the firmware files under LGPL. The complete Project is open! Schematic, PCB and firmware files are available for download at http://www.mkroll.mobi.
A support forum is already available at http://forum.mkroll.mobi.
To get a quick start in CoreBluetooth iOS development, an open sample iOS application to connect to a BLE Shield and read from and write to it will be provided as well!
Have a question? If the info above doesn't help, you can ask the project creator directly.
Support this project
- (20 days)