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

  • ...some progress. It seems that the radar transfers 3 bytes per threat. The middle one seems to be the distance. However, I'd like to avoid more reverse engineering (if it is not necessary). So please Garmin (or anyone else), could you please provide some information about the profile?

    Kind regards,

    Walter

  • ...for everyone who is interested in. I have reversed-engineered the following things:

    • Characteristic payload length in bytes: 1 + 3*i (whereas i is the amount of threats)
    • byte_0 is unknown. Could be something like a timecode or so?!?
    • byte_1 seems to be the threat speed as uint8. Unit is unknown
    • byte_2 seems to be the threat distance as uint8. Unit is unknown
    • byte_3 seems to be the threat level (only bits 6 and 7) -> 0: no threat, 1: medium risk, 2: high risk, 3: unknown
    • byte_4 corresponds to byte_1 for threat 2, etc.

    Have fun with it.

  • I don't know for BLE, but for ANT+ speed unit is 3.04m/s (4 bits) and distance is 3.125m (6 bits). 

  • Thanks a lot. It seems that speed as well as distance is a full uint8. Also the speed and distance unit seems to be different. Hmmmm....

  • As you see the data as a ByteArray, you may want to look into encodeNumber and decodeNumber

    For the thingy52 profile, you'll also see things like numbers in fixed point, such as heading which is 16Q16,  or pressure with is 4 bytes integer and one byte for the decimal part.  Thiings like this might not be clear without a profile.

    see https://nordicsemiconductor.github.io/Nordic-Thingy52-FW/documentation/firmware_architecture.html for this profile.

  • ...can't get it. How does the thingy profile helps? I already investigated the three bytes. I still don't know the first byte and I don't know the units of distance and speed. But actually, this is not relevante fo a simple Watch app.

    Kind regards,

    Walter

  • It's just an example of how things can be more complex than they first appear.  Where having the profile helps.

  • Hi @Kurev are you saying it is now possible to access the data stream via ANT+ within a Connect IQ app, I know 18 months ago this was not possible as I discussed it with Nick Kral. but I've not kept an eye on the API changes over the last year. If it is possible, I might re-visit my app idea Slight smile

  • Via AntPlus API, you can use listener and in onMessage() you'll have the payload data. This works with sensors paired and connected to Garmin device.

    For non-connected, you can connect yourself and get data via Ant API.

    Or was this what you mean by data stream?

  • Hi, thanks for the response. I wanted to connect the radar directly to the iPhone and/or Apple Watch (via Bluetooth). Actually reverse engineering was not sooo hard. However, Garmin could have saved my time by providing bluetooth profile information.

    The profile is as described above in one of my posts (only valid for Bluetooth!). One addition: The first 4 bits of the first byte (byte0) should be used to recognize splitted payloads because for many multiple threats, the payload will be splitted (due to max. payload length of 20 bytes). Splitted payloads will have the same 4 bits, so they can be concatenated in your application.

    At the end I struggeled with the idle mode of the Apple watch which can not be deactivated. However, the iPhone app provides notifications (in case of threats) which are sent to the watch (if iPhone display is off).

    So, everything is now fine. If someone needs additional info, just contact me.

    Kind regards,

    Walter