ANT Battery Level for LIGHTS

I don't expect anyone will know this. Kind of a corner case. But frustrating that there doesn't seem to be a solution.

I can get the battery levels for my ANT Shifters, Radar, Power Meters, Speed sensors, etc. Unfortunately, HEART RATE is still not supported by CIQ.

I can even get it for my Headlight and Taillight.

For a 24 hr ride I have coming up, I'll have two ANT headlights I can swap out. The issue is, I can't see distinctions between the two headlights to report on their individual battery levels.

I can POLL the Light Network and see I have two devices. But in the Page 0x01 onMessage(msg) where the battery status is reported, there is no device ID. And "msg.deviceNumber" is not populated.

So both headlights will send a Page 0x01. With their battery status (eg: GOOD, OK, CRITICAL, etc). But there is no way to know which headlight is reporting. Not a big deal. But if anyone has played with ANT LIGHTS and knows how to grab the device ID from the responding lights and can tie that ID to the Page 0x01 onMessage... let me know. Thanks!!

  • TRUE! On a side note, you may have noticed that the Polar H10 continue to boradcast bogus HR data when off your chest (even when the strap is dry). Mine is broadcasting 145 right now! This was from my MTB with a 1x SRAM AXS shifter, RADAR and Speed and Cadence Sensor, and a Bontrager headlight. The time is the time since last update. I'd love to add HR to this view. I know it lasts forever. But just for completeness. I didn't have my Power Meter on for that ride, but I also grab that too.

  • I'm not sure it's a bug in the H10. You could argue that, but it's something that can be "fixed" in software. My datafield correctly detects if the HR data wasn't updated for more than 4 seconds and it displays "--" instead of the last HR that could have been measured minutes ago. To do that you'll need to look at bytes: 5 (heart beat event time), 6 (heart beat count) and do your calculations to detect when the data is stale.

  • Hi

    I implemented the battery logic. I also have a Polar H10. Here is what I'm finding.

    First, I'm logging all the pages I get. Mostly Page 4 and once in a while Page 2 and Page 7. I care about Page 7.

    I'll get Page 4, Toggle Bit = 1. Then I'll get three Page 7s all with Toggle Bit = 0.

    So the change in toggle bit isn't Page Specific? The fact that the first Page 7 had a toggle bit that was different than Page 4 mean that Page 7 data is useful?

    But here are the other strange things. Bytes 1/2/3 in all three of the Page 7 pages tell me this. These don't make sense. Any ideas?

    1. The BATTERY STATUS is a "3", which is only OK. Somewhat used up. I believe that.

    2. The BATTERY LEVEL is 100%. That is not consistent with the STATUS. But is valid since it isn't 0xFF.

    3. The COURSE Voltage is 15 (that make no sense, it is a 3V coin battery)

    4. The FRACTIONAL Voltage is 255 (maxed out), so the actual voltage is 15.9961 (15+254/255)

  • Yes, this is super confusing. I asked it on the thisisant forum and I got the answer that the toggle bit is not per page, all I need to wait for is to see the toggle bit switch once, and from that moment I can use any page.

    Regarding the values: I also agree with you (I also see the same in Polar H10), I even sent a bug report to them, because IMHO it's not too logical. I also admit that the standard is not too logical either. Because it doesn't tell the producers what does OK mean, and so probably they just chose something that makes sense for them. I mean if they don't really know the percentage but they know somehow that it's getting low maybe they'll use OK and Low only, and maybe they'll send 100% and then 10% and nothing in between (we'll see, so far I used it for a few months, 3 times a week and it's still OK and 100%)

    I don't think that 15 and 255 are valid values. Isn't that what indicates it's invalid - or in other words it's not reported by H10?

  • Awesome. I love the H10. And now even more, since I can pair to my device via BLE and still grab the ANT stats using the ANT channel.

    If you and I are getting the same results, then at least I know I'm not doing something wrong in my code. And I see Garmin Connect Mobile -> Devices -> Sensors also tells me the Battery Level is "ok". I'll be watching this over time. I'll also add logic to LOG at each transition of STATUS (eg: Good to Ok) so I know the Level and Voltage threshold for each status. And I might also add run time so I know how long it takes to get to each level. I can use persistent storage to keep track of run time. I'll put in a brand-new battery to start at a known level. Once I get useful data, I'll reply here. Thanks! Merry Christmas.

  • I didn't try it with H10, but in theory you should be able to see the cumulativeOperatingTimeSec in page 1, so no need to log the run times (plus it has the real value, including the minutes you already conected the H10 so it started to send data, use battery but you haven't started the run yet)

  • The Wahoo implementation must be flawed. The BATTERY profile says: "However, a value of 255 (0xFF) in the fractional field does not indicate that the voltage data field is invalid. This can only be determined by the value in the descriptive bit field." Since the STATUS is valid ("OK" not 0xFF") then 255 for fractional voltage should be legit. Especially since the Course voltage is not 0xFF. Oh well. Let's see what happens. I have a Garmin HR strap I'll get out and try as well. Cheers!

  • Ok, I tested 3 different HR sensors. I'll stick with Polar for many reasons. Battery indication, multiple transmit channels (ANT, GYM and 2xBLE), easier access to swapping batteries (no jewelry-sized screws), more accurate HRV, and a strap that lasts longer.

    1. Wahoo Polar H10

    This one transmits Page 7. But the data is inconsistent. The Polar Beat iPhone App says the Battery is FULL. The ANT messages say Level = 100% (even though I've used this battery for at least 30 hours). But the Status is just OK (Not New or Good). And the Voltage is 15.9V, which makes no sense. It does not transmit Page 1.

    2. Garmin Forerunner 955 with Optical HR

    This device transmits Page 7 with good data. Level = 85% (true), Status = 2 (Good). And Voltage = 4.25V. This also transmits Page 1 data.

    3. Garmin Premium HR Strap

    This device does not transmit Page 7 or Page 1. No battery info. This is confirmed by pairing to my FR955... Battery level remains "-".