Skip to content

Device request Logitech Pro X Lightspeed Headset #103

Closed

Description

@AbusiveUncle

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

  1. changed the title [-]Device request Logitech Pro X Lightspeed[/-] [+]Device request Logitech Pro X Lightspeed Headset[/+] on Sep 27, 2026
  2. casparas123 commented on Sep 28, 2026

    @casparas123
    Contributor

    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:

    1. Logitech headsets are supported in v1.12.0: the provider reads them over HID++ 2.0 (0x1F20 ADC measurement), which is what the G535-class headsets answer; most models put it on the receiver's long collection ff43:0202.
    2. The G Pro X Lightspeed's receiver does not appear in your dump at all, so whether this is a matching problem (its collection/product string differs) or simply that it was off cannot be told from this run.

    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.

  3. ahmedkhursheed23 commented on Sep 28, 2026

    @ahmedkhursheed23
    Contributor

    Thank you, @AbusiveUncle. Your diagnostics do show the headset's receiver, at the top of the HID list:

    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'
    

    (@casparas123, this receiver has no ff43 collection, 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:0001 collection. 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.

  4. casparas123 commented on Sep 28, 2026

    @casparas123
    Contributor

    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 the PRO X 2 LIGHTSPEED 0AF7.text dump with the bridge at feature 3 and battery 0104 on the headset). Using Solaar's real-length framing over HeadsetControl's zero-padded 0x41 is 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.

  5. ahmedkhursheed23 commented on Sep 28, 2026

    @ahmedkhursheed23
    Contributor

    A test build with #124 is ready: Halo Battery 1.12.0.2 (test build). It is main plus 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 new HaloBattery.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!

  6. AbusiveUncle commented on Sep 28, 2026

    @AbusiveUncle
    Author

    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

  7. casparas123 commented on Sep 28, 2026

    @casparas123
    Contributor

    This is the best kind of dump - thank you. 4b 4b 00 under the hood and "75%" on the tray: the level and the field spot both line up on their own, and the second byte reads 00 for "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.

  8. AbusiveUncle commented on Sep 28, 2026

    @AbusiveUncle
    Author

    I would lastly just add. I checked in G HUB and your app. Both reported values are the same.

  9. casparas123 commented on Sep 28, 2026

    @casparas123
    Contributor

    Awesome!

  10. ahmedkhursheed23 commented on Sep 28, 2026

    @ahmedkhursheed23
    Contributor

    Thank you, @AbusiveUncle, for testing both states and comparing with G HUB. I will mark #124 as confirmed on hardware.

  11. added a commit that references this issue on Sep 29, 2026
  12. HeyOkay commented on Oct 5, 2026

    @HeyOkay
    Owner

    Shipped in Halo Battery 1.14.0 (#124). Thank you @AbusiveUncle for testing both states against G HUB.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions