Hi all,
It's my first post here so hello everybody!
I'm quite new in BLE5, but I have been playing with BLE4 some years ago (around 12) and I want to confirm some information with somebody who knows BLE5 better than me.
In my project (some kind of "smart gardening") I want to use nRF52805 as sensor nodes (battery powered) and some other nRF528xx as central (with power supply).
Every node will need to exchange some data (around 30 bytes) with central every 10minutes. To make whole system more deterministic I want to use central with direct advertising and every node will know when to wake up and start scanning ("sleep for around 599s and wake up for around 1s").
Central will establish connection with node, exchange data, disconnect and start direct advertising to the next node. If I would know how fast data exchange can be executed, I would know how many nodes I can handle every X minutes. I could you only one advertisement channel to shorten establishing connection time
My question here is how short/fast this connection can be. Please correct me if I'm wrong but whole transmission "log" would look like this:
Central: ADV_DIRECT_IND to #1 node - how much it may take? 1B preamble + 4B Access-Address + 2B header + 6B AdvertiserAddress + 6B TargetAddress + 3B CRC? 22 Bytes in total?
Node: CONNECT_IND - can be send first direct advertise packet with T_IFS 150us time? This frame contains connection configuration, right?
Central: 1# data frame - "hi node, gimme some this specific data"
Node: 2# data frame - "ok, here's my data"
Central: 3# data frame - "That's all,disconnect and go to sleep for next X seconds" - I couldn't found disconnecting command I assume sensor can go immediately to sleep and central can just "destroy" connection in SW(?)
Central: ADV_DIRECT_IND to #2 node
and so on.
I don't want to use whole discovery services procedure, I would like to use my own kind of data since sensors will be connected only with specific central. I could use node as advertiser but I want to have place to put some additional commands like "go to sleep this time for 10 hours" or "give me your FW CRC value".
I would really appreciate for help!