Hi there,
So, You ended up in the right place ![]()
The usual BLE pattern is:
- 1 Service = one logical group (e.g., environmental data)
- Multiple Characteristics = individual values (temperature, humidity, etc.)
So your setup of 1 service with 3 characteristics is exactly how it’s normally done.
If your sensors are environmental, I’d recommend using the standard Environmental Sensing Service (0x181A) with standard characteristics.
That way tools like nRF Connect will automatically label them properly instead of showing raw UUIDs.
Regarding names: BLE doesn’t really transmit “names” for services/characteristics. Apps recognize standard UUIDs and display friendly names. For custom UUIDs, you can add a User Description descriptor (0x2901), but support varies by app.
Also, enabling notifications per characteristic is normal — each one has its own CCCD, so the app lets you control them individually.
What you built now is actually the correct structure — just decide whether you want to go “standard UUIDs” or “custom + descriptors.”
Check out the demo’s with video & code I have on here , to learn more.
HTH
GL
PJ ![]()