This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

General Mesh Proxy Question GATT Bearer Data limit

My question is how to handle large amounts of data over the Gatt service

Our Current setup is 10 devices all on a Mesh Network. We use nRF5 SDK for Mesh and NRF mesh BLE based on the light switch example.

Using our mobile app we connect to a device and setup a Gatt service for communication RX and TX. This allows us to send messages to the connected node Proxy which relays the messages to the nodes on the mesh. The problem is once we start adding more and more devices we are creating a bottle neck on that one Gatt Service because of the size of the data being relayed to the mobile app.

One solution I'd like to implement is setting up multiple Gatt services and defining separate rx/tx characteristics for the different data points.

Here is an example (Current way first):

Current way we communicate now: This service relays data to the mobile app (fue levell, battery level,temp, settings, gps, device info, on/off/, windspeed, etc...) all data for 10 devices is in an array and this is very slow. Plus in order to see the fuel level for a certain device I have to receive data for all 10 devices.

deviceGattService

deviceGattCharacteristicRX

deviceGattCharacteristicTX

What I'd like to do, but I'm wondering if it's possible to create multiple services and characteristics with Proxy Gatt on mesh

deviceGattService

settingsGattCharacteristicRX

deviceGattCharacteristicTX

tempGattCharacteristicRX

batteryGattCharacteristicRX

statusGattCharacteristicRX

speedGattCharacteristicRX

gpsGattService

gpsLongitudeGattCharacteristicRX

gpsLattitudeGattCharacteristicRX

gpsElevationGattCharacteristicRX

and so on breaking out multiple services and characteristics. This way the mobile app is only listening for updates on separate Characteristics.

Is there a better way to handle this type of setup? We'd like to be able to scale to 100's of devices on a mesh.

Related