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
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!