Improve consumption by UUID organisation

Hi Nordic ,

My product is working fine but i'm focusing on improving consumption at maximum because it is working on small battery  ( evoluated tpms application)

It uses two sensors : a thermal camera and a second sensors for tpms( air pressure/batterie level/air temperature sensor).

I read that, by reducing UUID size from 128 to 16, it is possible to save 7times more energy each time UUID is send over the air, but it is reserved for standard services. 

 At the moment, i have 7 custom services with in total 8 customs characeterics that can deliver temperature or pressure, battery level etc...

Services (128bit) :

- Historic : contain Temperature / Pressure historic data ( 64 temperature values), read only one times with Mobile app when we open the Historic view mode 

- Secure code : used to write a secure code to enter in full secure connexion and allow setting services to be written

- Settings (50bytes) : used to write some settings value for the fw application , written after each secure connexion

- Temperature Matrix data ( 12*16 pixels = 192bytes  temperature values), only read for debug purpose, as i prefer to transmit only column average value (16 byte instead of 192) to avoid too much data on the radio.

- Temperature Matrix averaged: 16 bytes. Read in loop 10times per second, in connected mode

- Sensor2: 18 bytes. Read each second , air pressure / batterie level / air temperature sensor)

- DFU

My idea was first to create only one charac with the temperature average data + sensors 2 data and "hack" a standard uuid to reduce sized.

The charac has to contain only 16 pixel temperature +18 tms data = 34 bytes of really usefull data send each 100ms

Questions are:

1) Is all the charac and services UUID send at each connexion to allow central to list services in peripheral? 

              -> If yes, i should reduce the number of services to only keep the really usefull one).

2) Does central send UUID of the charac to be read in each read request (meaning,128bits =  10 times per second in my case?)

              -> if yes, it is a big waste of energy !  I could may be use a standart UUID that has enough data to contain my 34bytes of usefull data, right ?

3) Even if tpms value will be 9/10 the same, Is it more profitable to have all data in one charac or keep as it is at the meoment in a second charac?

            -> I'm thinking to fixed cost of header, radio switch etc... ?)

Thanks a lot for your clarifications and optimizations idea.

I don't need to interact with other mobile app or else so idee is only to increase at the  maximum power saving.

Related