antonpup / Aurora

Unified lighting effects across multiple brands and various games.
http://www.project-aurora.com/
MIT License
1.82k stars 369 forks source link

Is it possible to support QMK firmware? #1344

Open acme64 opened 5 years ago

acme64 commented 5 years ago

Forgive me if i have a term wrong or im asking for the wrong thing, i'm not well versed with this. I'm wondering if it'd be possible to support QMK firmware a lot of custom keyboards use? here's their project if you're not familiar https://github.com/qmk/qmk_firmware

clrxbl commented 5 years ago

I don't think you can modify QMK lighting without re-flashing it every single time.

acme64 commented 5 years ago

i feared that was the case

gitmacer commented 5 years ago

In theory it is possible to communicate over USB serial with the keyboard but I do not know if there are firmware limitations. You should ask for usb serial rgb controll in the firmware repo.

helluvamatt commented 5 years ago

@acme64 Don't despair! It's possible, and not even that difficult!

@gitmacer I'm very familiar with the QMK firmware. There's been some development of a "RAW HID" protocol for keyboards that support an "RGB Matrix" component (basically, any keyboard with several addressable RGB leds can support the RGB matrix, but it's targeted at underglow and back-light RGB). I've done some work getting RGB Matrix to work with the Massdrop CTRL keyboard, which includes 119 RGB leds (1 under each of the 87 keys and 32 more around the side of the keyboard). The code on the PC side is actually extremely simple on Windows. My code has been mostly .NET P/Invoke calls directly to kernel32.dll, hal.dll, or usb.dll. I would recommend against a CDC endpoint in QMK since we tend to keep CDC for debugging (printf in our firmware generally routes to the CDC endpoint so anyone listening on our COM port gets the printf calls printed there.)

Edit: usb.dll isn't a thing. (Or, if it is, I don't use it.)

helluvamatt commented 5 years ago

Unfortunately, my Massdrop CTRL developed a fault and had to be sent back for replacement.

When the replacement arrives, I'll see about getting an adapter written for Aurora to talk to my HID RAW protocol.

If anyone would like to have a look at the protocol from the firmware side, you can have a look at ctrl.c

gitmacer commented 5 years ago

@helluvamatt first of all thank you for your help! We really appreciate that. But I think you did not fully understand our way to implement devices please have a look at these files. I think Atmoorb and Wooting are easy to understand ones: here. The wrapper files are used to convert light signals from games that support "razer chroma", "lightfx" or other. If you have any additional question and want a fast answer you can always contact us over Discord here.

helluvamatt commented 5 years ago

@gitmacer Thanks for pointing me in the right direction!

It looks like the SteelSeriesHID device is going to be fairly close in that we are exposing a "vendor-defined HID class device" for host programs (such as Aurora to communicate with).

daniel5151 commented 5 years ago

@helluvamatt I'm planning on looking into this feature soonish, and I was hoping you could upload any preliminary code you've got so-far. I'm sure I could figure stuff out myself, but it always helps to have a jumping-off point :)

helluvamatt commented 5 years ago

@daniel5151 I’m afraid not at the moment.

daniel5151 commented 5 years ago

Oof. No problem tho. If you reconsider, let me know :)

Tyberious commented 4 years ago

@helluvamatt Matt any word on this? I am willing to pay to help you finish it. Just got the Massdrop CTRL and I really want this working in Aurora.

eaaaaaaast commented 4 years ago

@helluvamatt I'd also be willing to throw down on a bounty to get this done for the CTRL.

Puddinglord commented 4 years ago

@helluvamatt I would like to inquire on the progress of this? Also if you need any help? I have a CTRL and it would be amazing to have it sync with the rest of my razer gear.

acme64 commented 4 years ago

So, anyone know whats up with this? i saw some sort of support was added to the QMK git, but i have no idea what that does?

TheNinty commented 4 years ago

I was thinking of building a QMK keyboard. I would love to have aurora working on my own customized keyboard, so does anyone know if this is still being worked on?

Ming-A commented 3 years ago

so i just built a QMK keyboard and would like to know if its possible?

diogotr7 commented 3 years ago

The best chance of having qmk support is through OpenRGB. Follow the relevant issue here: https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/633

As far as i know, this fork does have support for a massdrop keyboard, although it does require enabling some setting in the firmware: https://gitlab.com/Kasper24/OpenRGB/-/tree/qmk_rgb_matrix

I'm not very familiar with how the QMK support works but if you want more info join the OpenRGB discord.

tirrorex commented 2 years ago

Thanks for the links @diogotr7, so in theory what i should do is making kasper fork compatible with my keychron and then interface it with aurora yes? (for razer chroma support).

Am i missing some things or is it all that i need to do?