This is an old revision of the document!
Table of Contents
Bluetooth Low Energy
Bluetooth Low Energy or BLE for short is the transmission protocol of my choice, because it's well defined and has proven to be rock solid. Later in the documentation I refer to default UUIDs, which can be found on the official Bluetooth SIG git repository (or you search for the PDF).
Concept
BLE hast a three layered protocol. You define a service, characteristics and if needed, descriptors. Every peripheral (our devices, which should be controlled) advertises meta data. In my project it's the manufacturer data of C0DE, so I can filter for my devices.
Services
I checked the original assigned numbers for services and right of now, the area 0xAxxx is unused, so I occupied these.
Every device will have the 0x180A, which will tell everyone what it will be. My other services will be the same across other devices, but the characteristics within will be different.
The following section will be a summary of the used services.
Device information service (0x180A)
The device information service for describing the device (hardware and software). It will use some of the characteristics (within the 0x2Axx area) from below.
Light service (0xA000)
Settings service (0xA999)
Characteristics
Device name (0x2A00)
It depends on the device, as expected.
Firmware revision (0x2A26)
It reflects the firmware version, which is important for FOTA (firmware over the air) updates.
Hardware revision (0x2A27)
The hardware depends on the custom PCB, because updated boards, sometimes need other BLE data.
Manufacturer (0x2A29)
The returned value will always be mars3142.