Skip to content

1.1.0

Choose a tag to compare

@AmjadAAYD AmjadAAYD released this 17 Aug 09:35
· 3 commits to main since this release
Immutable release. Only release title and notes can be modified.

Acts on the first round of user feedback against 1.0.1.

Download x20ctl.exe and run it. No install, no Python needed.

Added

  • Taskbar tray icon showing battery, with Show and Quit
  • Swap left and right sticks, on the Sticks page
  • Swap L2 and R2, on the Triggers page
  • Home button in the Test page, via XInputGetStateEx
  • Macros now load from the controller on connect, all four at once

Changed

  • Power moved out of Advanced: a sleep timer needs no warning
  • Power page says it is reading, instead of showing a value it has not read
  • Battery readings carry the raw status byte, and report.py prints it

Fixed

  • Idle shutdown showed 10 minutes regardless of what the controller held
  • Chunked HOST_MENU records silently truncated: continuations were sent as a
    bare index byte, which that opcode answers with silence
  • tools/ble_enum.py read an OTA characteristic while claiming to skip OTA

Protocol

  • HOST_MENU kind 6 is macro step data; this pad reports 42 steps per slot
  • Kind 7 is the device can-change list, and this pad does not answer it
  • The full SET_MODE page table, 05 DF AB 00 <a> <b>, including which pair
    enters firmware update
  • SET_MODE 03 DF AB 0A0F are a 5 ms uptime counter, not six features
  • The USB bootloader's command set: opcode 0xF1 reads the same GUID as
    HOST_GUID does over BLE, and there is no bulk read at all
  • Lighting writes are chunkable and do land; the LEDs ignore them regardless

Known limitations

  • Colour, brightness and RGB mode are on-pad only (C + R3, C + L3).
    caps.lighting is zero and KeyLinker cannot change them either.
  • Battery has four steps because the controller reports four; the intermediate
    decode is unconfirmed against a discharging pad.
  • Rear buttons cannot appear to Steam Input as their own buttons: the firmware
    replays them as existing buttons.
  • The 2.4 GHz receiver carries no configuration channel.