Skip to content

Introducing the...

Bluetooth Developer Academy

An online training platform and private community for Bluetooth engineers, beginners and experts alike.

Featured in the Media

Premium Bluetooth Low Energy Resources

The best introductory book for learning Bluetooth Low Energy

Intro to Bluetooth Low Energy e-book

The only practical Bluetooth 5 & BLE developer guide for the nRF52

Bluetooth 5 & Bluetooth Low Energy: A Developer's Guide cover

Latest Blog Posts and Tutorials

Four things you should know about the upcoming Bluetooth World 2017 event

By Mohammad Afaneh | January 30, 2017 |

I just wanted to share four things I recently learned about the upcoming Bluetooth World 2017 event (March 28-29, 2017 in Santa Clara, California). This will be my first time attending the event, but from what I remember, last year the fee to attend was a bit on the high side (close to $1,000). This year, however, things are changing… After registering for the event, I received an email from the new group organizing the event this year asking if they could arrange a phone to let me know about what’s new about the event this year. After talking with them,…

Understanding SN and NESN in a BLE Link Layer packet

By Mohammad Afaneh | November 11, 2016 |

In my previous video looking at connection data captured via a BLE sniffer, I missed explaining two bits in the data that can be confusing to understand. The bits are the SN and NESN in the LL data packet. A few notes to better understand these bits: NESN and SN are used for data flow and making sure data is not missed (ACKs and NACKs). NESN and SN are looked at independently When the device sends a packet, the NESN is the next expected SN from the other side in the next packet coming back. When the device receives a…

How do I choose a UUID for my custom services and characteristics?

By Mohammad Afaneh | October 19, 2016 |

First, a few things to know: “A UUID is a universally unique identifier that is guaranteed to be unique across all space and all time” (Bluetooth 4.2 spec, Vol 3, Part B, section 2.5.1 UUID) A UUID is a 128-bit value. There are reserved UUIDs by the Bluetooth SIG that are generally represented by their 16-bit aliases. These aliases are used for convenience and represent a 128-bit value computed as follows: 128-bit value = 16-bit-value * 2^96 + BluetoothBaseUUID where the BluetoothBaseUUID is 00000000-0000-1000-8000-00805F9B34FB Examples include: 0x180F -> Battery Service UUID (128-bit UUID: 0000180F-0000-1000-8000-00805F9B34FB) 0x2A00 -> Device Name Characteristic UUID (128-bit UUID: 00002A00-0000-1000-8000-00805F9B34FB)…

Copyright © 2019 Novel Bits, LLC | All Rights Reserved

Scroll To Top