Adding App Support

While we don't have a tutorial yet on creating your own custom applications on iOS, Android or any other BLE-enabled operating system, the following information will be useful to any application developers, and you're free to look at our open source code for our own iOS application.

Tony Dicola has also published some source code for Android around our BLE UART service, which you can consult on github.

The UART Service

For reasons that are clearly beyond the comprehension of mere mortals like us, the Bluetooth SIG has decided not to include a UART-type service in the list of officially accepted BLE service definitions.

Without an equivalent to SPP in Bluetooth Classic, we only have one choice ... defining and implementing a custom UART-esque service ourselves!

The custom UART service uses the following UUIDs, which are the values you need to know to make your application talk to the appropriate characteristic. There is one characteristic for TX and another for RX, similar to the way that UART uses two lines to send and receive data:
  • UART Service UUID: 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
  • TX Characteristic UUID: 6E400002-B5A3-F393-E0A9-E50E24DCCA9E
  • RX Characteristic UUID: 6E400003-B5A3-F393-E0A9-E50E24DCCA9E
These are the same UUID values used by Nordic Semiconductors in their test applications to stay compatible with their iOS and Android utilities
Using some sample code for your target OS (the Application Accelerator code from Bluetooth is a good start for iOS, Android or Windows), you can connect to the nRF8001 Breakout, find the UART service via the service UUID above, and then transfer data back and forth over the two available characteristics.

If you're new to Bluetooth Low Energy and don't know what characteristics and services are, have a look at our helpful Introduction to Bluetooth Low Energy learning guide as well, which lists some useful development resources at the end!
Last updated on May 04, 2015 Published on Mar 20, 2014