RedBearLab 是國際知名 Maker 開發套件大廠，完整軟體 SDK 與 Arduino 韌體
RedBearLab BLE Shield 目前除了 BLE Arduino 之外，其餘的 iOS SDK 與 Arduino Library 都是開源的，你可以直接到 http://redbearlab.com/bleshield/ 進行了解，或是參訪官方的 github 查看相關專案的開發進度。
以 RedBearLab BLE Shield 為例，提供了 BleFirmata （透過 BLE 直接控制、讀取各腳位）、Chat（BLE 轉 UART）、與 SimpleControls （腳位控制範例）等範例，也提供了 iOS 與 Mac OS X 上的範例對應源碼。
- BLE Arduino 讓你透過 iPhone 就能直接控制 Arduino 上的各個腳位。（未提供 iOS App 源碼）
- 能夠將你 Arduino 上所有的感測器資料都上傳給 iOS App 進行後續處理。
- 讓你把 iDevice 當作是 Arduino 的 Internet 閘道。
- nRF8001 藍牙晶片 SPI 控制介面 3.3V or 5V
- SPI 通訊可選 ICSP 或 Pins 11-13 彈性絕佳
- Arduino (Uno, Mega, Leonardo, Due…)
- 低功耗長待機，且無需 MFi 認證
- iOS, Android, Windows, Linux, Mac 範例
- Redbear BLE 系列產品完整豐富，開源且互通
- 全新改版縮短 PCB 以便插入 Arduino Yun
BLE Shield stands for Bluetooth Low Energy (BLE) Shield. It is designed to work with Arduino boards or compatibles, including Arduino Uno, Mega 2560, Leonardo and Due. It allows you to connect your Arduino boards with other BLE Central device like a smartphone or tablet. So you can develop some applications like:
- 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!
BLE shield could operate under 3.3V or 5V, therefore it works with a lot of Arduino compatible boards too.
Supported BLE Central Devices
iOS 7 or 8
- iPhone 4s
- iPhone 5/6 (all models)
- iPod touch 5
- iPad 3/4/mini/Air
Android 4.3 or above (4.4 recommended for stability) with Bluetooth 4.0 hardware support
Windows 8.1 with built-in Bluetooth 4.0 or USB dongle
Mac OSX 10.9.2 with built-in Bluetooth 4.0 or USB dongle
Linux with BlueZ 5.1 with built-in Bluetooth 4.0 or USB dongle
New Features in BLE Shield Version 2.1
- Reset button is changed to "side button"
- nRF8001 SPI pins can be set to either Pins 11-13 on the side or ICSP, this allows other Arduino compatible boards with no ICSP header such as FRDM-KL05 board, RedBoard and so on to interface with the nRF8001 BLE chip
- Flexible REQN and RDYN pins selectable from pin 2 to 10
- The board is shorter than before and this allows it to fit on Arduino Yun physically
Features Since v2.0
- Besides the on-board PCB antenna, option to use SMA connector for external antenna (soldering is required)
- Flexible REQN and RDYN pins selectable from pin 2 to 12, these pins are fixed at 8 & 9 for BLE Shield v1
- Reset button also resets the Arduino board, and vice versa
- ICSP header provides Vcc (for other shields to get power source)
- ICSP header now passes through (for other shields to connect to the SPI)
- Shield's reset is controllable by Arduino pin 4 or 7
- Reset signal to the shield is now active low (i.e. pull low to reset the shield)
- Added test points for power consumption measurement of the nRF8001 chip (soldering is required)
- Added circuitry and test pin (J9 NC) for measurement of instant working current (using logic analyzer, 1mA = 100mV).
Getting Started Guide
We recommend using Codebender, an online development and collaboration platform for all Arduino users, please read to our Quick Start with Codebender to start playing with your BLE Shield in just a few easy steps.
We have also prepared a detail guide Getting Started with BLE Shield to show you how to program your BLE Shield using Arduino IDE.
How It Works
- BLE Shield communicates with Arduino through the ACI (Application Controller Interface). The ACI is similar to SPI but does not actually work as SPI. SPI is consist of MOSI, MISO, SCK and SS, whereas ACI is consist of MOSI, MISO, SCK, REQN and RDYN.
- Since BLE Shield may receive data anytime even not selected by SPI master (Arduino), so the SS line is not needed.
- In ACI,data exchanged still through MOSI and MISO, and SCK provides the clock generated by master.
- When master wants to request data from BLE Shield, it puts the REQN to low until RDYN line is put to low by BLE Shield, and then master generates the clock to read out the data. After reading out the data, master will release the REQN and BLE Shield release the RDYN, put them to high.
- If BLE Shield has data to transmit to master, it will put the RDYN to low to indicate master, even though master havn't requested data and REQN is idle. If master detectes a low level condition on RDYN, it will put REQN to low and generate the clock to read out the data.After reading out the data, both REQN and RDYN will be put to high.Note that REQN is controlled by master while RDYN is controlled by BLE Shield.
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 and 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 signal; RDYN and REQN.
||SPI: Master In Slave Out
||SPI: Master Out Slave In
||SPI: Serial data Clock
||Application controller to nRF8001 handshake signal
||nRF8001 to application controller handshake signal
A. nRF8001 & Arduino board Reset Button
B. Factory Testing Pins
C. Power On LED
D. Flexible REQN and RDYN pins from pin 2 to 10
E. External Antenna
F. Onboard Antenna
G. Nordic nRF8001
H. Optional Pin to Control the Shield’s reset
I. Power Consumption Measurement of the nRF8001 chip
J. Power Monitor on Oscilloscope
K. SPI interface connection for nRF8001
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 default settings).
||Pins Not Available
||0 – 9 (except pins that REQN and RDYN occupied),
A0 – A5
|REQN, RDYN, 10 – 13 (6 in total)
||0 – 49 (except pins that REQN and RDYN occupied),
A0 – A15
|REQN, RDYN, 50 – 53 (6 in total)
||0 – 13 (except pins that REQN and RDYN occupied),
A0 – A5
BLE Shield Respository - Provides BLE Shield resources such as schematics.
Nordic Bluetooth Smart SDK for Arduino - Provides a lot of BLE tutorials and examples for BLE beginners to work with the BLE Shield, supported by Nordic.
RedBearLab nRF8001 library - Provides simple APIs for exchanging data between BLE central and the BLE Shield
For questions about Nordic Bluetooth low energy SDK for Arduino,
please visit Nordic Developer Zone
All other questions regarding BLE Shield, please go to BLE Shield Forum
Frequently Asked Questions
Q1: What is Bluetooth dual mode? Is the BLE Shield a dual mode device?
A1: Dual mode devices (e.g. iPhone 4S/5) are compatible with both Bluetooth Classic and Bluetooth Low Energy (BLE) devices. BLE Shield is a single mode device only, so it is not compatible with the classic mode Bluetooth.
Q2: What is BLE Central role? Can the BLE Shield work in Central role?
A2: Central role devices (e.g. iPhone 4S/5) can work as a master in the BLE star network, they can perform scanning and connect to peripheral devices. The BLE Shield can work as peripheral role only, i.e. it can only be connected from other central rol devices.
Q3: Can I get RSSI from the BLE Shield?
A3: The nRF8001 does not provide any function call to get RSSI, so this is not possible. You can get RSSI from the BLE Central side, e.g. iPhone 5.
Q4: Can I change the name (BLE Shield) to others?
A4: You can use the API - "ble_set_name(name)" to do that. See examples.
Q5: Can I change the 128-bit UUID with my own one?
A5: You need to use Nordic's nRFgo Studio and open the BLEShield.xml to edit the settings, it will generate some C source files using the .bat file. You can also set the connection interval, advertising data, etc.
Q6: Can two BLE Shields talk to each other?
A6: Since the BLE Shield cannot run in Central role, so this is not possible.