Difficulties in receiving Telemetry packets


#1

Hi everyone. I am currently using Estimote Beacons to obtain Telemetry data for a project. I am having difficulties with beacons and the Telemetry packet. First of all, I read all the posts I could find on this forum, but even following hints and suggestions from those who answered, I could not solve the problem. I am using TelemetryFullScan, since I need access to all the information (Temperature, Lux, Motion and Pressure, but also RSSI and macAddress). I am also using RSSI to find out the nearest beacon broadcasting. Here I found my first problem. I tried multiple combinations of advertising latency and broadcasting signal strength, but it didn’t change a thing. I rarely receive packets. I tried to log them, only to find out that one-two packets were received over 5 seconds. Signal Strength is High (also tried Weak) and advertising time is 300ms (also tried 200, 100, 500). Then, the few packets I receive contain an RSSI value equal to 0. Each and every one of them. It all seems strange, and I know I am probably doing something wrong, but I really can’t find out what it is. If someone could help me, it would be much appreciated! Thanks in advance.


#2

Did you try the withLowLatencyPowerMode flag? I think it goes something like this:

bluetoothScanner
.estimoteTelemetryFullScan()
.withLowLatencyPowerMode()

Also, what Android device are you scanning with? In stock Android, the low-latency mode should force the Bluetooth hardware to scan all the time, with no pauses, but some Android manufacturers modify that.

The RSSI thing is probably because “full scan” is actually a combination of scans/packets, so our SDK doesn’t really know which RSSI it should give you. You could try doing separate scans, and combine them yourself, and decide for yourself how to merge the RSSI values from different scans.


#3

Thank you so much for the answer. First, I tried without setting the LowLatencyMode flag (it is stated in the comments that battery consumption is high in this mode) and only scanning for one of the frames, but RSSI was still 0. After setting the LowLatencyMode, finally I started receiving RSSI values, and now it works accordingly. That said, since the scan I need here is to recognize the nearest beacon over 5 seconds, I think I can leave it like it is now, even though it consumes a little more battery when scanning. So, the problem is solved, for now! Thanks again, it was really helpful!