This last summer I developed Bluetooth Low Energy (BLE) interfaces for a couple of embedded boards and an Android app companion to operate the boards.
BLE Serial Console is currently in Beta and is available in Google Play.
Special thanks to Federico Biagioli who made the app’s Icon!
The app can discover all the GATT Services available in a BLE device. It was tested with an HM-10 module (in a breakout board) and Intel Edison’s HM11 integrated BLE module. BLE uses a protocol called Generic Attributes Profile (GATT), that exposes hierarchical data on any BLE device.
Once you enter the right GATT Characteristic, if it has Read/Write permissions you can exchange data with the module from the app to whatever device is connected to the BLE Module. Additionally, if the GATT Characteristic has the Notify permissions, you can subscribe to the device, and receive any updates made to that GATT Characteristic from the other side of the line. Subscribing will enable you to have bidirectional communication with the module.
HM10’s breakout board works with 3.3V with voltage and logic converters and exposes TX/RX pins that you can connect very easily to any Arduino based board having UART protocol. In my case I connected the RX/TX pins to the RS232 RX/TX pins in the CIAA board. HM10’s default GATT Characteristic contains a 20 bytes long registry with Read/Write/Notify permissions.
Service UUID: 0000ffe0-0000-1000-8000-00805f9b34fb
Characteristic UUID: 0000ffe1-0000-1000-8000-00805f9b34fb
I wrote some
node.js code for Intel Edison’s board. To enable BLE in this board you have to login and run 3 commands:
rfkill unblock bluetooth
hciconfig hci0 up
Last but not least, I wrote some plain
twenty first century C code to interface with an embedded board called CIAA (Computadora Industrial Abierta Argentina). I connected an HM-10 BLE module to the board and configured the interface between a PC terminal, the board itself and the BLE module in Master Mode.