Ok, so since actually complying with BLE standards is sort of important :-) the
UUID to use is E761D2AF-1C15-4FA7-AF80-B5729020B340 which is unique, and is
That being said, it is also noted that defined characteristics are all (save
one) in the 0x2Axx range. So my choice there was bad too.
org.bluetooth.characteristic.fitness_machine_control_point defined as 0xEE1D is
the outlier there.
128-bit UUIDs are a pain in the *** if you ask me. They are easy to generate
via the website Chris so generously provided. They are annoying to translate
into 16-byte arrays, but generating 128-bit UUIDs with a common prefix/suffix
is, as best I can tell, not possible. This all makes the iOS app more
complicated if not impossible without requiring users to generate their own
UUIDs, then go edit the iOS source files, build and deploy the app to a device.
I see 2 possible solutions here:
1) we flaunt standards, a bit, and use 16-bit characteristic IDs that are NOT
within the pre-defined characteristic ranges, say 0xDExx and 0xADxx as our
Config and data prefixes -- keep in mind that this is *only* for a demo app and
would not be used for any production application.
2) We generate 2 128-bit UUIDs, say 559557e5-2ae2-4d4b-bda2-d432e8577be3 and
d5e9608f-6e41-490f-88e2-4281c8ebe2c6, then clip off the start, 559557e5- and
d5e9608f- for config and data prefixes, and folks can generate their own
128-bit UUIDs, then replace the prefixes.
1 seems a lot more straight-forward and easier to explain to people who are
trying to work through the tutorials. 2 would have a lower chance of a UUID
collision, though even with 1, the collision chances are nearly non-existent.
Happy to take suggestions here.
> On Nov 30, 2016, at 1:03 PM, Christopher Collins <ccoll...@apache.org> wrote:
> That sounds great! My only comment is that the app probably shouldn't
> use those 16-bit UUIDs. There is a registry of standardized bluetooth
> service UUIDs (https://www.bluetooth.com/specifications/gatt/services
> and 0x1811 is reserved for the Alert Notification Service.
> For non-standard services and characteristics, you will need to use
> 128-bit UUIDs. You can generate unique 128-bit UUIDs using a site like
> this one: https://www.uuidgenerator.net/ <https://www.uuidgenerator.net/>.
David G. Simmons
Web <https://davidgs.com/> • Blog <https://davidgs.com/davidgs_blog> • Linkedin
<http://linkedin.com/in/davidgsimmons> • Twitter
<http://twitter.com/TechEvangelist1> • GitHub <http://github.com/davidgs>
/** Message digitally signed for security and authenticity.
* If you cannot read the PGP.sig attachment, please go to
* http://www.gnupg.com/ <http://www.gnupg.com/> Secure your email!!!
* Public key available at keyserver.pgp.com <http://keyserver.pgp.com/>
♺ This email uses 100% recycled electrons. Don't blow it by printing!
There are only 2 hard things in computer science: Cache invalidation, naming
things, and off-by-one errors.