Bluetooth profile for Garmin Varia RTL515

Hallo,

I try to make my own iOS-App with the Varia 515 which support BT. My app already connects the radar device and grabs the radar data. However, I don't know the details about the BT profile. Does anyone know how to interpret the data? Is it similar to the ANT+ cycling radar profile?

Kind regards,

Walter

  • Thanks again for the help. That motivated me to keep on experimenting... In the meantime I got the stream reading working properly on my device. :) The demo mode is really a great help! I still need to do some field tests next week, but from what I've seen so far in the demo mode and from walking around in my apartment, I have a slightly different interpretation of the data which I am getting.

    Where I agree:

    • Packet length in bytes seems to be 1 + (threat amount * 3)
    • Byte 0 is probably some kind of packet identifier
    • Byte 2 (5,8,11...) is the distance to the threat. As the maximum range of the device is 140m according to the manual and the demo mode uses a maximum value of 143 I suppose that the unit is meters here. Moreover, it comes very close to the distances I measured in my apartment with real-life samples (OK, they were of course all <10 meters, but they were more or less accurate)

    Where I disagree (or at least have questions ;)):

    • Byte 1 (4,7,10...) seems to remain constant per threat, so I suppose this one is the threat identifier
    • Byte 3 (6, 9, 12...) seems to be the either some kind of threat level or the threat speed. Using the demo mode I took the timestamp when my mobile received the respective packet (which is probably inaccurate, but may give an indication on average over all received packets for this threat) and if the assumption on the distance (unit in meters) is correct, the values in this byte come very close to a uint8 representation of the threat speed in km/h. On average, the value is always about 12% higher than what I would expect of a value in km/h which is a good enough approximation for me at least.

    What are your thoughts on that? More updates will follow once I have time for field tests...

  • out of curiosity - what are your goals on this project?Is this for an Android App? (Since you say no to CIQ App and IOS App)

  • I alteady explained that iin my answers above, including the first four bits of byte 0. Just read all my answers and you should be fine.

  • It's an app for Sailfish OS - mainly for personal use as I don't think that there are that many other people using this mobile OS and the RTL515. In the end, I would like to have an app that displays the current GPS speed side-by-side the threats and a battery status information. So it's not really a big project... ;)

  • Well, these answers are exactly the reason why I was writing the previous comment. My issue is that I can't confirm your observations for bytes 1 and 3 so far. As said, some field tests will follow, but especially the results for byte 3 are so much different from yours (all bits of the byte being used, value seems to be more or less threat speed in km/h), I'm wondering if I might even have a different device (firmware)...

  • OK, measured several streets nearby, I'm now almost completely sure that these assumptions are correct. Byte 1 remained constant per car/motorcycle/bike, so that seems to be the threat ID on my device. Byte 2 also behaved exactly as in demo mode - measurements started somewhere between 130 and 140 m (and the LED starts flashing at about 80m distance). Byte 3 always returned the speed of cars in km/h that I expected on the respective street (I tested 30, 50, 70 and 100 km/h streets). Funny side effect was that most cars were above the maximum speed when they were far away and slowed down to the allowed maximum speed when they saw the light flashing on the sidewalk. :D

  • Hi

    I'm also considering writing my own code to graphically display the radar/threat data on a small OLED screen driven by a microcontroller (ESP32) with built-in wifi and BLE/BT.  ie. this is not an app on a phone thing.  

    Please point me to the right direction to look for more info on how to read the Varia data.

    thanks

    Ed

  • That shouldn't be a big thing. What is your question?

    Kind regards,

    Walter 

  • The code that implements my findings above is here: https://github.com/Wunderfitz/harbour-tacho/blob/master/src/variaconnectivity.cpp Not that elegant, but works smoothly - and should be transferable to most Linux-based systems having BlueZ and Qt installed...