Repository navigation
Device request Logitech Pro X Lightspeed Headset #103
Description
Halo Battery v1.11.0 2026-09-27 17:42:40
Python 3.12.10 win32
=== Poll result ===
G502 LIGHTSPEED Wireless Gaming Mouse: 100%, charging [logitech:E66162FA]
=== Icon colour ===
mode: auto, icons drawn for a dark bar
window events: not used
MyDockFinder detected: False (looking for dock_32.exe, dock_64.exe, mydockfinder.exe or 'mydock' in the name)
processes with 'dock' or 'finder' in the name: none
Windows theme: dark
top bar sample: 400x16, median luminance 31 (light >= 150, dark <= 105)
under the bar at x=256: MozillaWindowClass (firefox.exe) window
under the bar at x=768: MozillaWindowClass (firefox.exe) window
under the bar at x=1280: MozillaWindowClass (firefox.exe) window
under the bar at x=1792: MozillaWindowClass (firefox.exe) window
under the bar at x=2304: MozillaWindowClass (firefox.exe) window
windows under the menu bar: True
wallpaper mean luminance: 47 (light >= 130, dark <= 115)
=== Protocol details ===
[Logitech] pid=c08d 'G502 LIGHTSPEED Wireless Gaming Mouse'
idx=255 'G502 LIGHTSPEED Wireless Gaming Mouse' unit=E66162FA feature 1001: 10 7c 81 00 -> 100% (charging)
[Logitech] pid=c539 'USB Receiver'
[XInput] no controllers connected
=== All HID devices ===
VID=046d PID=0af7 if=3 usage=ff13:0001 'Logitech' 'PRO X 2 LIGHTSPEED'
VID=046d PID=0af7 if=3 usage=ffa0:0001 'Logitech' 'PRO X 2 LIGHTSPEED'
VID=046d PID=0af7 if=3 usage=000c:0001 'Logitech' 'PRO X 2 LIGHTSPEED'
VID=046d PID=c08d if=-1 usage=0059:0001 'Microsoft' 'HID VHF Driver'
VID=046d PID=c08d if=0 usage=0001:0002 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=1 usage=000c:0001 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=1 usage=0001:0080 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=1 usage=0001:0006 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=2 usage=ff00:0001 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=2 usage=ff00:0002 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c33f if=-1 usage=0059:0001 'Microsoft' 'HID VHF Driver'
VID=046d PID=c33f if=0 usage=0001:0006 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=0001:0002 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=0001:0006 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=000c:0001 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=ff43:0602 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=ff43:0604 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c539 if=0 usage=0001:0006 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=0001:0002 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=000c:0001 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=0001:0080 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=ffbc:0088 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=2 usage=ff00:0001 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=2 usage=ff00:0002 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=2 usage=ff00:0004 'Logitech' 'USB Receiver'
VID=048d PID=5702 if=0 usage=ff89:0010 'ITE Tech. Inc.' 'ITE Device'
VID=048d PID=5702 if=0 usage=ff89:00cc 'ITE Tech. Inc.' 'ITE Device'
=== Recent log entries ===
2026-09-27 17:35:45,087 INFO start v1.11.0
Activity
[-]Device request Logitech Pro X Lightspeed[/-][+]Device request Logitech Pro X Lightspeed Headset[/+]casparas123 commentedon Sep 28, 2026
Thanks for the dump. One thing to check first: it shows no headset at all - the poll result lists only the G502, and everything after it is environment (icon colour, bar, theme). So either the headset was off, or its receiver is not presenting anything the app matches.
Two things worth knowing:
0x1F20ADC measurement), which is what the G535-class headsets answer; most models put it on the receiver's long collectionff43:0202.Could you run Diagnostics again on v1.12.0 with the headset switched on and its dongle plugged in? The HID section at the top lists every collection with its usage page - that is what decides it.
ahmedkhursheed23 commentedon Sep 28, 2026
Thank you, @AbusiveUncle. Your diagnostics do show the headset's receiver, at the top of the HID list:
(@casparas123, this receiver has no
ff43collection, so the Logitech provider did not report it.)The PRO X 2 does not use the protocol of the other Logitech headsets. It uses Logitech's newer "Centurion" transport on the
ffa0:0001collection. Solaar and HeadsetControl both read its battery that way. #124 adds it, from those two sources.It is not tested on hardware yet, because I do not have this headset. When a test build is ready I will post it here. Please send the diagnostics from it, with the headset switched on.
casparas123 commentedon Sep 28, 2026
You're right, and thanks for the catch - the receiver is right there in the dump (
046d:0AF7, PRO X 2 LIGHTSPEED, interface 3) and I read past it. My "does not appear at all" line was wrong.Checked #124 while I was here: the Solaar citations hold (
decipher_battery_centurion- byte 0 SoC, byte 2 charging 0-3; and thePRO X 2 LIGHTSPEED 0AF7.textdump with the bridge at feature 3 and battery0104on the headset). Using Solaar's real-length framing over HeadsetControl's zero-padded0x41is the right call given what #512 of HeadsetControl says about how that code was written. Suite passes here (17 tests), and three spot mutants (software id, legacy frame byte, usage page) each fail at least one test. Waiting on @AbusiveUncle's run like you are.ahmedkhursheed23 commentedon Sep 28, 2026
A test build with #124 is ready: Halo Battery 1.12.0.2 (test build). It is
mainplus the open PRs, built by GitHub Actions on my fork. Download the zip, extract it to a new folder, close the running Halo Battery (tray menu → Exit), and start the newHaloBattery.exe.Switch on the headset. Please post the diagnostics (right-click an icon → Diagnostics…), and the level that G HUB shows at the same time, so we can compare. Thank you!
AbusiveUncle commentedon Sep 28, 2026
A big thank you to both Ahmed And Casparas!
It works perfectly now. Both with charging and without.
Nonetheless, here's the dump:
Halo Battery v1.12.0.2 2026-09-28 13:09:30
Python 3.12.10 win32
=== Poll result ===
G502 LIGHTSPEED Wireless Gaming Mouse: 100%, charging [logitech:E66162FA]
Logitech G PRO X 2 LIGHTSPEED: 75% [logitech-centurion:0af7]
=== Icon colour ===
mode: auto, icons drawn for a dark bar
window events: not used
MyDockFinder detected: False (looking for dock_32.exe, dock_64.exe, mydockfinder.exe or 'mydock' in the name)
processes with 'dock' or 'finder' in the name: none
Windows theme: dark
top bar sample: 400x16, median luminance 21 (light >= 150, dark <= 105)
under the bar at x=256: SDL_app (steamwebhelper.exe) window
under the bar at x=768: SDL_app (steamwebhelper.exe) window
under the bar at x=1280: SDL_app (steamwebhelper.exe) window
under the bar at x=1792: SDL_app (steamwebhelper.exe) window
under the bar at x=2304: Progman (explorer.exe) ignored
windows under the menu bar: False
wallpaper mean luminance: 47 (light >= 130, dark <= 115)
=== Protocol details ===
PlayStation full mode over Bluetooth: off (listen only)
[Logitech] pid=c08d 'G502 LIGHTSPEED Wireless Gaming Mouse'
idx=255 'G502 LIGHTSPEED Wireless Gaming Mouse' unit=E66162FA feature 1001: 10 7a 81 00 -> 100% (charging)
[Logitech] pid=c539 'USB Receiver'
idx=1 'paired device': switched off or out of range
[XInput] no controllers connected
[Logitech] pid=0af7 'Logitech G PRO X 2 LIGHTSPEED' iface=3 ffa0:0001
battery 0104@4: 4b 4b 00
=== All HID devices ===
VID=046d PID=0af7 if=3 usage=ff13:0001 'Logitech' 'PRO X 2 LIGHTSPEED'
VID=046d PID=0af7 if=3 usage=ffa0:0001 'Logitech' 'PRO X 2 LIGHTSPEED'
VID=046d PID=0af7 if=3 usage=000c:0001 'Logitech' 'PRO X 2 LIGHTSPEED'
VID=046d PID=c08d if=-1 usage=0059:0001 'Microsoft' 'HID VHF Driver'
VID=046d PID=c08d if=0 usage=0001:0002 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=1 usage=000c:0001 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=1 usage=0001:0080 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=1 usage=0001:0006 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=2 usage=ff00:0001 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c08d if=2 usage=ff00:0002 'Logitech' 'G502 LIGHTSPEED Wireless Gaming Mouse'
VID=046d PID=c33f if=-1 usage=0059:0001 'Microsoft' 'HID VHF Driver'
VID=046d PID=c33f if=0 usage=0001:0006 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=0001:0002 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=0001:0006 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=000c:0001 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=ff43:0602 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c33f if=1 usage=ff43:0604 'Logitech' 'G815 RGB MECHANICAL GAMING KEYBOARD'
VID=046d PID=c539 if=0 usage=0001:0006 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=0001:0002 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=000c:0001 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=0001:0080 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=1 usage=ffbc:0088 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=2 usage=ff00:0001 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=2 usage=ff00:0002 'Logitech' 'USB Receiver'
VID=046d PID=c539 if=2 usage=ff00:0004 'Logitech' 'USB Receiver'
VID=048d PID=5702 if=0 usage=ff89:0010 'ITE Tech. Inc.' 'ITE Device'
VID=048d PID=5702 if=0 usage=ff89:00cc 'ITE Tech. Inc.' 'ITE Device'
=== Recent log entries ===
2026-09-27 17:35:45,087 INFO start v1.11.0
2026-09-28 08:45:15,781 INFO start v1.11.0
2026-09-28 13:09:11,663 INFO autostart entry now points at C:\Users\Bille\Downloads\HaloBattery-1.12.0.2\HaloBattery\HaloBattery.exe
2026-09-28 13:09:11,671 INFO start v1.12.0.2
casparas123 commentedon Sep 28, 2026
This is the best kind of dump - thank you.
4b 4b 00under the hood and "75%" on the tray: the level and the field spot both line up on their own, and the second byte reads00for "not charging", matching the state you were in this time. Together with your charging run, both states are now covered on real hardware - so #124's Unverified note should be able to come off. And once #124 merges, this issue should be able to close. Your before/after dumps made it quick to check - thank you for the patience with the build.AbusiveUncle commentedon Sep 28, 2026
I would lastly just add. I checked in G HUB and your app. Both reported values are the same.
casparas123 commentedon Sep 28, 2026
Awesome!
ahmedkhursheed23 commentedon Sep 28, 2026
Thank you, @AbusiveUncle, for testing both states and comparing with G HUB. I will mark #124 as confirmed on hardware.
PRO X 2: confirmed on hardware in HeyOkay#103
LAMZU confirmed, Logitech PRO X 2 0AF7 (#103), HyperX Cloud III S (#106)
Logitech G PRO X 2 LIGHTSPEED over its receiver (HeyOkay#103)
HeyOkay commentedon Oct 5, 2026
Shipped in Halo Battery 1.14.0 (#124). Thank you @AbusiveUncle for testing both states against G HUB.
Generated by Claude Code