BLE Shield

BLEShield2.jpg
iOS BLE Arduino App Android BLE Controller App



Requirement


Android 4.3

Android devices with BLE hardware: Nexus 4, Nexus 7 and Samsung Note 3

iOS 6 or 7

iPhone 5 (all models), iPhone 4S, iPad Air, iPad (3rd gen or later), iPad mini (all models) and iPod touch (5th gen or later)



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 2560, Leonardo and Due. It allows you to connect your Arduino board with other BLE Central device like a smartphone or tablet. BLE shield could operate under 3.3V or 5V, therefore it should work with a lot of Arduino compatibles too.

So what can I do with Arduino and BLE Shield?

  • Control your Arduino pins with our/your own mobile App
  • Send sensor data from your Arduino to an App for processing
  • Use your mobile device as an internet gateway for your Arduino
  • and much more!



Quick Start for iOS


  1. Download our latest RedBearLab Library.

  2. Unzip the file and move the two subfolders, "Nordic_BLE" & "RBL_BLEShield", in BLEShield/Arduino/libraries to Arduino's libraries folder.
    For more information about Arduino's libraries folder, please visit http://arduino.cc/en/Guide/Libraries.

  3. Open our BleFirmata sketch: "File" > "Examples" > "RBL_BLEShield" > "BLEFirmataSketch".

  4. Compile and upload the program to your Arduino board.

  5. Download our BLE Arduino App from Apple's iTunes Store.

  6. 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)

  7. Start our BLE Arduino App and press "Connect".



Quick Start for Android


  1. Download our latest RedBearLab Library.

  2. Unzip the file and move the two subfolders, "Nordic_BLE" & "RBL_BLEShield", in BLEShield/Arduino/libraries to Arduino's libraries folder.
    For more information about Arduino's libraries folder, please visit http://arduino.cc/en/Guide/Libraries.

  3. Open our BLEController sketch: "File" > "Examples" > "RBL_BLEShield" > "BLEControllerSketch".

  4. Compile and upload the program to your Arduino board.

  5. Download our Android BLE Controller App from the browser on your Android device and simply "click" the downloaded file to install.

    **For more information about “Sideloading” an Android App, please visit How to sideload and install Android applications [ANDROID 101].



New Features in BLE Shield 2


  1. Besides the on-board PCB antenna, option to use SMA connector for external antenna (soldering is required)
  2. Flexible REQN and RDYN pins selectable from pin 2 to 12, these pins are fixed at 8 & 9 for BLE Shield v1
  3. Reset button also resets the Arduino board, and vice versa
  4. ICSP header provides Vcc (for other shields to get power source)
  5. ICSP header now passes through (for other shields to connect to the SPI)
  6. Shield's reset is controllable by Arduino pin 4 or 7
  7. Reset signal to the shield is now active low (i.e. pull low to reset the shield)
  8. Added test points for power consumption measurement of the nRF8001 chip (soldering is required)
  9. Added circuitry and test pin (J9 NC) for measurement of instant working current (using logic analyzer, 1mA = 100mV).




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?

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"
switch.png
  • 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.

BLE SDK




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

Transient

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)