I’m developing a smart harvest system to track the location and weight of bins in large agricultural fields. The system relies on Particle Tracker One as the central hub and BLE beacons for real-time asset tracking. I’d appreciate your insights on a few key aspects of the system design:
Project Overview
Hubs: The system will use Tracker One devices for GPS positioning and cellular data uploads.
BLE Beacons: Each bin will be equipped with BLE beacons (considering Ezurio products) to transmit location and weight data (from load cells).
Field Setup: The system will cover large areas with potentially hundreds of bins, requiring reliable communication between the beacons and hubs.
Key Questions
System Design: Does the combination of Tracker One as the main hub and BLE beacons sound practical for this application?
Hub Requirements:
Is a single Tracker One enough to handle hundreds of BLE beacons?
Can additional hubs (without cellular capability) process BLE data locally and forward it to a Tracker One for upload?
Real-Time Location Tracking:
I aim to use Bluetooth 6.0 Channel Sounding for precise real-time location tracking, with Tracker One’s GPS serving as a fixed reference point.
Are Ezurio BLE beacons suitable for this use case?
Are there better alternatives to Ezurio for BLE beacons supporting channel sounding?
This system will operate in open agricultural fields, so power efficiency and scalability are also important considerations.
I’d love to hear from anyone with experience in similar setups or using Tracker One and BLE beacons for location tracking.
BLE 6.0 is not possible with the Tracker or Monitor One. Channel sounding is only supported on Nordic nRF54 hardware, not the nRF52840, and there is currently no plan to upgrade the Nordic processors in Particle devices.
There are a several factors that limit the maximum number of beacons that can be processed: The range of the beacon will limit the number of devices that can be nearby. Each device advertising via BLE (including beacons) typically advertise 3 times, once on each primary advertising channel, at some interval, typically 100 milliseconds. There is also a random jitter applied (often 10 ms), so beacons won't become synchronized. Since the advertisers are not sychronized, some number of transmissions occur at exactly the same time and interfere with each other, causing both to be corrupted and lost. The larger the number of advertising devices, the more often this will occur. The more advertisements you can miss without affecting your algorithm will increase the number of beacons you can theoreticaly support. There's also a limit imposed by available RAM.
We use the tracker one as a simple bluetooth gateway and we are able to handle scanning around 3-4 thousand beacons before we run out of memory.
This scan takes place over a period of ~15 minutes, which gives a better chance of avoiding the interference mentioned above. Our beacons don't transmit any meaningful data, so missed packets isn't an issue as long as we see them eventually.
This is storing just the beacon address, which we track to limit our data usage.
For our use case, we only store the last 6 characters of the advertiser address (as a uint32), so this cap may look more like 1-2 thousand for others.
Thank you for the valuable tips! I've ordered a couple of tracker units for initial R&D. Could you please direct me to some examples or off-the-shelf projects to get started with?
To add to what Jon replied above, and depending on your level on BLE, you can get a lot of benefits by playing around with the documentation and the examples Particle provides: