BLE Shield
If your cannot view the video above, please try video on YouKu.


Requirement
Compatible devices
iPhone 5, iPhone 4S, iPad mini, iPad with Retina display (4th gen), iPad (3rd gen) or iPod touch (5th gen).
Devices not in the above list does not have the hardware to support Bluetooth 4.0 Low Energy.
iOS Version 5.1.1 or above
Description
What is BLE Shield?
BLE Shield stands for Bluetooth Low Energy (BLE) Shield. It is designed to work with Arduino boards, including Arduino Uno, Mega and Leonardo. BLE shield could operate under 3.3V or 5V, therefore it should work with a lot of Arduino compatibles too.
What can BLE Shield do?
It allows you to connect your Arduino board with other BLE device. In our current implementation, the Shield supports connection between Arduino and iOS device including iPhone 5, iPhone 4S, iPad 3rd generation and iPod touch 5th generation.
So what can I do with Arduino and iOS device?
- Control your Arduino pins with an iPhone
- Pass all sensors data from your Arduino to an iOS App for processing
- Use your iDevice as an internet gateway for your Arduino
- There are a lot of other possibilities...........
Quick Start
Download our BLE Shield Library for Arduino.
Unzip the file and move the two subfolders, "BLE" & "BluetoothLowEnergy", to Arduino's libraries folder.
For more information about Arduino's libraries folder, please visit http://arduino.cc/en/Guide/Libraries.Open our BleFirmata sketch: "File" > "Examples" > "BluetoothLowEnergy" > "BleFirmata".
Compile and upload the program to your Arduino board.
Download our BLE Arduino App from Apple's iTunes Store.
Turn on Bluetooth on your iOS device. (*Please note that BLE Shield or any Bluetooth Low Energy device will not show in the “Devices” list as pairing to BLE device is not required)
Start our BLE Arduino App and press "Connect".
Troubleshooting
Make sure you are running our BLE Arduino App on
- iPhone 5, iPhone 4S
- iPad with Retina diaplay (4th gen), iPad mini, iPad (3rd gen)
- iPod touch (5th gen)
Have you uploaded our BleFirmata Sketch to your Arduino?
- Please follow the instructions our Quick Start Guide.
You have recived error message when trying to verify or upload our sketch to your Arduino.
- You may not have put our BLE library at the right location, please refer to the Quick Start Guide.
The LED on the BLE Shield is not "ON".
- Check whether BLE Shield is connected to the Arduino board correctly.
The LED lights on both the Arduino and the BLE Shield are "ON", but cannot connect using our BLE Arduino App.
- Make sure that you have loaded our BleFirmata sketch into your Arduino
- Check whether the "Default Handshaking" switch is set to "On"

- Unplug the power source to the Arduino board, re-connect and wait for 10 seconds before trying again
Software Development Kit (SDK)
Our SDK is still under beta testing, therefore you may encourage some bugs/issues. Thank you for your patient and understanding.
Technical Details
Nordic nRF8001 Bluetooth Low Energy IC
- Support Peripheral (Slave) role operation only - nRF8001 IC limitation.
- Proprietary simple serial interface - Application Controller Interface (ACI).
- Please refer to Nordic’s nRF8001 Product Specification for more details.
Application Controller Interface (ACI)
- The ACI enables an application controller to communicate with nRF8001.
- The physical ACI interface on nRF8001 consists of five pins. All ACI data exchanges use a standard SPI interface, with nRF8001 using a mode 0 slave interface to the application controller.
- However, nRF8001 does not behave as a pure SPI slave device; nRF8001 can receive new data over-the- air at any time or be busy processing a connection event or new data. Consequently, the traditional CSN signal used to initiate an SPI transaction is replaced by two active low hand-shake signals; RDYN and REQN.
| Signal | Arduino | nRF8001 | Description |
|---|---|---|---|
| MISO | Input | Output | SPI: Master In Slave Out |
| MOSI | Output | Input | SPI: Master Out Slave In |
| SCK | Output | Input | SPI: Serial data Clock |
| REQN | Output | Input | application controller to nRF8001 handshake signal |
| RDYN | Input | Output | nRF8001 to application controller handshake signal |
Shield Layout

A. nRF8001 Reset Button
B. Factory Testing Pins
C. Power On LED
D. Default Handshaking Switch
On – Pins 8 and 9 on Arduino board will be used as RDYN and REQN respectively for ACI
OFF – not supported yet
E. Nordic nRF8001
F. Onboard Antenna
Pins Availability
Since we have to enable SPI interface for ACI communication, some I/O pins will not be available for other usage. On Arduino Uno, the SPI bus uses pins 10 (SS), 11 (MOSI), 12 (MISO), and 13 (SCK). On the Arduino Mega, they are 50 (MISO), 51 (MOSI), 52 (SCK), and 53 (SS). For Leonardo, the SPI pins are not connected to any of the digital I/O pins as they are on the Uno and Mega, they are only available on the ICSP connector. Our BLE Shield is designed to utilize the SPI pins on the ICSP Header, therefore it is compatible with all three Arduino models.
Moreover Nordic’s ACI requires two hand-shake signals, RDYN and REQN, two additional pins will be used (pins 8 & 9 in the current implementation).
| Available | Not Available | |
|---|---|---|
| Uno | 0-7, A0-A5 | 8-13 (6 in total) |
| Mega | 0-7,10-49, A0-A15 | 8-9, 50-53 (6 in total) |
| Leonardo | 0-7, 10-13, A0-A5 | 8-9 (2 in total) |
