153
linuxxx
6y

Bought a Logitech G13 a few years ago knowing that the Linux support isn't good. Thought fuck it, I'll develop something for it.

That didn't go as planned. Tried numerous times to write something but the fucker is proprietary and I couldn't figure out how to get data from it.

Decided to try it again tonight with a "You're not winning this time, motherfucker!" mindset.

Figured out how to read data from it, looked long enough at the data coming in to discover patterns and started programming while testing my ass off.

Two hours later I have "mapped" all specific data points that the device sends to the hardware keys and now, whenever I have the device connected and run the program (node, no kidding), it displays which key I'm pressing when I press a key!

I finally fucking won.

Comments
  • 43
    This is a huge accomplishment. If I knew you personally and you told me this I’d be pulling out the whisky.
  • 38
    Wooo!
    Open source it!

    I might finally buy one.
  • 14
    GitHub pls? this is literally the only reason I don't own a G13 is I knew Linux support would be awful and I didn't want to RE the damn thing.
  • 2
    If you map it in windows ore use it premapped all works flawlessly. No need for extra drivers etc. But why would you use gamepad on linux? I once tried controlling cameras with it.
  • 5
    [PIN]==>
  • 6
    If you put it on gitlab/github/sourceforge, I could write a Gentoo ebuild for it.

    I guess quite a few people could be happy about an "x11-drivers/xf86-input-g13" package... 😉

    ...on the other hand, logitech has abandoned this product. You can't find any information for it on their site (or I am too dumb to search properly), and amazon has only "used" offers...

    Well, I thought about buying a "KKmoon T9" for a while now. It has no display, but it costs only a quarter of the G13.
  • 1
    Reminds me of this https://gitlab.com/C0rn3j/...

    The dude knows what he's doing
  • 1
    @estinf I want to be able to execute custom stuff when keys are pressed :)
  • 1
    Hey linuxxx,

    first of all, great project :) Did you write this in PHP?

    I hate that I have to tell you this but unfortunately I can't go to FOSDEM. I have written why on qTox.

    I am really sorry about this, as I'd have really liked to meet you and the others. Hopefully we can meet at some other point, maybe next year at FOSDEM or, if all else goes wrong, at defqon :)
  • 1
    @404response Hey, I've been trying to reach you on here, could you email me at the tuta address?
  • 0
    @linuxxx hey sorry. I will email you the id tomorrow if that's ok
  • 0
    @404response An id? What do you mean exactly? 😅
    But sure!
  • 2
  • 0
    @Root orrr he might get sued from logitech 😂
  • 3
    @techno848 For reverse-engineering?
    Reverse-engineering what? There are no linux drivers so he's not reverse-engineering those, and he's not reverse-engineering the hardware.

    Nope, not in legal danger as far as I can tell.
  • 1
    @Root I'm not indeed. Just looking at the buffer input coming in and parsing to map it to the keys.
  • 2
  • 2
    @Root Tbh the program is really tiny, all it does is mapping buffer input to keys based on an array.

    Would you even be able to call that a driver (it works great but.... it's so simple)
  • 4
    @linuxxx software running on host machine allows for interaction with an external device. yea, I'd say it's a driver.
  • 3
    @deadPix3l I've always wanted to program "a driver" but I was imagining something very difficult, that's why it feels weird to call it a driver haha.
  • 1
    @linuxxx Haha
    No I really wouldn't. More of a wrapper or a mapper
  • 1
    @linuxxx I mean technically? but most wouldn't. I usually think of complex, highly optimized kernel modules or something complicated.

    I usually call my stuff like this "userspace drivers." I think it's technically correct? but it also acknowledges that "this doesn't feel like it qualifies" feeling you're having.
  • 0
    OMG this guy is hacker
Add Comment