I’m trying to figure out the maximum amount of data that we might need to store in one day.
My worst case usage scenario ignores battery life, and collects data at the maximum sustainable rate.
TS05 collected accelerometer data at 10Hz. I was able to work perfectly well with that, but let’s assume we may need to log at 100Hz, i.e. 100 samples from all the sensors each second. So I’m going to estimate the maximum number of bits in each sensor sample.
At 100Hz, the time field needs to measure a new record every 10 ms. If we assumed we required an accuracy of 1uS. A 64 bit time field can represent 500,000 years. 8 bytes!
Most accelerometers produce about 12 bits for each of the three axes. Let’s assume 16 bits/axis = 6 bytes.
A magnetometer is similar, but it responds very slowly so polling at 100Hz is probably pointless. Anyway, let’s say another 6 bytes
A barometer is slow to respond – let’s assume 10Hz is the best it can do, and you get 2 bytes of P, and 2 of Temp. There’s 4 bytes
BLE RSSI to one anchor
If you were taking RSSI measurements from the BLE beacons, each measurement is 16 bits, and let’s assume the beacon address is a full iPv6 address (16 bytes), and we don’t do anything smart to compress it. That’s 18 bytes. Each polling cycle would hit a different beacon. I’d expect to rotate through some subset of the beacons.
DW Range to one anchor
We use the relatively inexpensive BLE measurement, and any previous knowledge of the layout to guess the best three anchors to range. This is only done when the user settles because it’s too power intensive. But for the sake of argument let’s say it is gathered at the same rate as the RSSI and in the same format. That’s another 18 bytes.
Battery status is 2 bytes.
Adding it up
8+6+6+4+18+18+2 = 62 bytes.
At 100Hz we generate 6200 bytes /sec. and 535,680,000 / day = 536MB.
When the subject comes to a complete rest then the device figures out it’s position and goes to sleep.
If we assume that people are stationary for 80% of their day. (pulled that number out my arse), and no samples will be gathered, then we will only generate data 20% of the time, and only produce 107MB / day.
At 10Hz it would be 10MB / day.
How much power would this consume?