I picked up four of these bluetooth low energy (BLE) modules with the intention of setting up three wireless sensors and a receiver. After a long struggle I managed to get some basic functionality going and would like to document that to hopefully save some time for anyone else trying them out.
- BLE Mini
- Arduino Pro Mini 3.3v
- Analog Sensors
Bluetooth 4.0 compatible device. Here are some of the devices that support this:
- Nexus 4
- Nexus 7
- Samsung Note 3
- iPhone 5 (all models)
- iPhone 4S
- iPad Air
- iPad (3rd gen or later)
- iPad mini (all models)
- iPod touch (5th gen or later)
RedBearLab outlines some basic instructions on how to set the BLE mini up with iOS and Android here. With that said the instructions really need to be expanded further. Here is a breakdown of the iOS path:
Connect pins from BLE Mini “J4” to Arduino board
VIN > 5V
GND > GND
TX > Default RX (Pin 0)
RX > Default TX (Pin 1)
The Green LED at D1 should light up, otherwise please check the Troubleshooting section below.
Notes: VIN doesn’t need to be five volts, 3.3 volts will work just fine. For me, the LED did not light up on one device. I was able to fix that by uploading the latest firmware to it with the instructions a little further down.
Download our latest RedBearLab Library.
Notes: The ZIP file provided is the latest but if you want to dig through the source and be a bit more selective with the download here is the RBL GitHub page.
Although the device firmware was changed quite a few months ago a much older version appears to come with all the modules I purchased. Make sure you grab the latest from here and follow these instructions carefully
Unzip the file and copy the “RBL_BLEMini” subfolder in BLEMini/Arduino/libraries 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” > “RBL_BLEMini” > “BLEFirmataSketch”.
Compile and upload the program to your Arduino board.
Notes: Big note: use Arduino 1.0.5 and not the 1.5 nightlies, else BLEFirmata doesn’t compile. Although this setup is fairly common, we will get to some problems with BLEFirmata a little bit later.
Download our BLE Arduino App from Apple’s iTunes Store.
Turn on Bluetooth on your iOS device. (*Please note that BLE Mini 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”.
Note: The main issue here is that you only get three board so chose from when you connect via the iOS app. This is pretty backwards and I don’t have any decent solutions. While testing the A(n) pins tend to be the same across boards, I used UNO and LEONARDO modes to test the minis. The only issue is that the UNO setting is the only one that shows the ‘analog’ option for the A(n) pins, which lets you see the analog signal live in the app. When set to ‘input’ on the LEONARDO setting no data is ever displayed on the iOS app.
Once that’s done you can puppeteer your Arduino of choice via the BLE App.
Some notes on BLEFirmata: Currently only UNO, MEGA and LEONARDO are officially supported. You can get something like the pro mini to work but you can run into issues with mismatched I/O and software serial. I wish I had a fix for this right now but I don’t even know where to begin.
RBL released a library for using one BLE Mini as a master and connecting slave devices to it. Unfortunately any version of the HCI library they provide that I try to upload to the boards ends up turning off the green status LED immediately. I am checking with support about this issue now.
Overall the impressive part of this module is the stability once it’s connected. I have been using a retina iPad to test the app, and once connected I haven’t had any kind of signal loss. Hopefully this stability can be translated into more custom projects.
This thread provided some very good insight.
Although light on content the RBL zendesk support is worth a further examination.
A good project on instructables.com