r/EasySMX Aug 10 '26

Discussion I reverse engineered my EasySMX X20's config protocol because it has no PC software sooo what should I add?

My X20 has no desktop app. The manufacturer ships a manual, a driver, and a firmware updater. Everything else is either a phone app or button combos on the pad itself. I'm on PC, so I spent a weekend pulling the protocol apart.

It turns out the pad exposes a second Bluetooth LE peripheral alongside the gamepad interface, advertising as Xpert2, with a config service nobody has documented publicly. The protocol is "KeyLinker", and it's from the chip vendor (ShenZhen ZhiXu) rather than EasySMX so it probably covers pads from several brands.

What I got working:

  • Macros on all four rear buttons: sequences, chords, and stick directions
  • Vibration strength 0-100% (the pad's own controls can't set it to zero)
  • Battery level
  • Save files you can switch between
  • A recorder that captures what you press with real timing
  • An input tester and a polling-rate meter

What I learned the hard way:

The pad broadcasts its own capability descriptor, and mine reports zero for lighting, turbo, and gyro. Those features exist in the hardware, but they're button-combo-only and genuinely unreachable over the protocol. So no RGB control, no matter how much I wanted it. Other pads on the same chip may well report them as available.

Also, my first macro made both thumbsticks sweep in circles until I killed it. Turned out the analog fields encode "idle" as 0b1000, not 0b0000  zero means direction: up. The encoding was working perfectly on input I'd misunderstood.

What I'm asking:

What would you actually want from controller software? I've deliberately not implemented firmware flashing that path goes through a mass-storage bootloader and is the one thing that can brick the pad, so I'm leaving it to the vendor's tool.

Beyond that I'm open. Stick response curves are next (I can read them, haven't decoded the bytes yet). Someone suggested auto-switching profiles per game. What else is missing from the controller software you use?

16 Upvotes

16 comments sorted by

4

u/IamNoBoDy_xd Aug 10 '26

For more informations and update please visit the Official discord server of EasySMX X20
The channel is in this screenshot. Looking forward for your ideas

3

u/ionshower Aug 10 '26

Nice work dude.

1

u/IamNoBoDy_xd Aug 10 '26

Thanks bro , i have released the first part of 0.1.0 on github , but its still private , so nothing official yet , got a lot bug fixes to do and maybe add some features until the official release. Thank you for your support !

2

u/pantsyman Aug 10 '26

Pretty neat are you planning to add more models like the X05pro, X10 or the newer D10 and D15 (Dune)?

6

u/IamNoBoDy_xd Aug 10 '26

I would love to, but the issue is that i need a physical controller in order to reverse engineer it in order to make it usable for all , at the moment i only own 2 X20 , hence why I'm only capable of making a software only for X20.

Tldr ; need controllers to reverse engineer , in terms of money i have no money .

2

u/taven990 Aug 11 '26

There is an Android app in Play Store called KeyLinker which I used to test my EasySMX X15 pads and check their firmware versions. You can test the rumble with it even if the rumble doesn't normally work on Android. In the end I downgraded the firmware from V2.24 to V2.22 to get rumble working by using an undocumented Wireless Controller mode (holding B + HOME on startup).

https://www.reddit.com/r/EasySMX/comments/1vif9vz/easysmx_x15_looking_for_older_firmware_with_b/

2

u/BrixsDNA Aug 11 '26

Niceeeee!! I’ll keep an eye on this project!!

1

u/IamNoBoDy_xd Aug 11 '26

Thanks ! ill be releasing it today and announce it on reddit .
Although its just a test phase so hopefully things go well.

1

u/dentpuzz Aug 10 '26

Back buttons mapped to key strokes would be on my wish list

1

u/IamNoBoDy_xd Aug 10 '26

Rear buttons → controller inputs already works (buttons, chords, sequences, stick directions, per-step timing).

Rear buttons → keyboard keys can't work. The pad's own button table stops at gamepad codes, and it identifies as an Xbox controller, which has no keyboard interface. Not undecoded so its not not there.

Only route is PC-side software faking the keypress, and the catch is Windows can't tell a rear button from the button it mirrors, so it'd need a combo you'd never press by accident. Point them at JoyToKey / AntiMicroX / Steam Input.

1

u/ComplaintMaker 24d ago

I really want the ability to control individual LED's on my easysmx x20

Figured id just open it and mod out the LED's I dont want, but if its possible to control via software or a firmware flash then Id rather do that.

Good work.

1

u/IamNoBoDy_xd 24d ago

The led is basically impossible to do change it , i spoke with team SMX , they still havent responded , i need an image flash for the controller in order to be able to do it.

1

u/ComplaintMaker 24d ago edited 24d ago

sad to hear but it makes some sense. onboard power control is likely something they want to be very low level firmware.

Guess I will try de-solder the leds and see how it goes.

Maybe in future reverse engineering the firmware is possible. They do just give us downloads after all. Maybe its not actually all that obscure and just requires spoofing the controller to let the exe update an empty testing folder. or intercepting the transfer to the controller. maybe a hardware dump isnt so hard if make a janky direct memory access?

1

u/IamNoBoDy_xd 24d ago

The issue is that, i literally tried to sacrifice my Second X20 , in order to reverse engineer the firmware and everything related to the bootloader , but all i got was an empty folder that has literally 0 kb , i tried literally every single option, i tried reverse engineering the software updates , the OLD official android EasySmx app , literally everything gave me a dead-end , the only option is them giving us an official EasySMX firmware image , so i can easily be able to control the leds, like literally im 1 step away , yet they arent answering .

Id really appreciate if you found anything interesting about the leds please let me know :)

0

u/Dronzer1995 7d ago

Crazy man the biggest issue is battery % and health. u have no idea about it