OpenRGB: Open-source RGB lighting control
openrgb.org
openrgb.org
If I wanted to control all LEDs on my relatively new "Gaming" PC (Windows 10), I'd normally need software from Gigabyte for the GPU (which straight up doesn't work [0]), Ducky for the keyboard, a no-name Corsair knockoff software where the name escapes me for the mouse, actual Corsair software for the fans, and NZXT for the AIO.
All of them are not only proprietary, they also use a ton of resources and often times cannot be run in parallel, presumably because they try to talk to the same devices (but never all of them!) - analog to an I2C device that only allows one process to access it at a time. Difference being, there is nothing stopping me from trying - everything will just freeze.
It's fascinating - for something as simple as a bunch of LEDs, these companies must have spent millions of developer hours to produce such heaping piles of garbage - and OpenRGB proves all of them wrong.
[0] If anyone knows of a way to control at least the LED backlight on a Gigabyte Auorus XTREME 3080 (ideally the little LCD as well) - please let me know - OpenRGB can't do it. The Gigabyte software is so unbelievably broken that it doesn't even recognize the GPU, and I feel like I've tried every workaround under the sun. I am unfortunately not very well versed in the Windows world.
What's doubly annoying is that the new mouse I bought, a Steelseries Rival 5, doesn't seem to store any settings on the mouse. Instead it relies completely on you running their software. All the other mice I've tried have stored keyboard macros and other settings on the mouse, and because of that I'm able to switch easily between PC and work Macbook and still have have my pageup/pagedown side buttons work.
Open source cross platform RGB, fan control, and input settings would be fantastic.
[1] https://www.gigabyte.com/FileUpload/global/Microsite/369/ima...
Other than Apple, every other hardware company is _not_ a software company.
Yes, they write software. It is universally garbage. If there is anything well-done about the software, it will be because the hardware company licensed (or more likely, just ripped off) someone else's software.
Google (a software company) cannot make any of the hardware companies in the Android ecosystem produce anything but garbage. Samsung Bixby anybody?
And this should not surprise anyone, as the leadership at a hardware company does not care, at all, about the software. Once you plunked down your coins and bought the hardware, the leadership at the company only sees software as an endless cost center. They want you gone as fast as possible.
It's a classic race to the bottom, and this is the result.
It's also one of the most potent forces driving people to use OpenRGB and every other free/libre open source tool.
Here's why hardware companies refuse to participate:
1. CEO says, "You're eroding our business's moat. Let's just rip off linux, shove our garbage driver out the door, and refuse to provide the source code."
2. CFO says, "You're trying to set yourself up as the expert on the standard, creating a career for yourself in the standards body. Sorry, we're not paying for you to fly to conferences. Denied."
(This one is particularly ironic because a company with enough clout to define the standard for the whole industry, and employ the experts on it, would quickly become the industry leader with a modicum of effort.)
3. CTO says, "We use outsourced labor to implement our drivers. Shareholders demand it. As a result we don't own the license to the driver source code. Denied."
I see crowdfunded hardware as the next step in this evolution. It's the innovator's dilemma all over again.
But when it comes to user experience, yes, hardware manufacturers tend to be terrible.
And even Apple is a pretty mediocre software company, compared to the others of their class.
I was fully expecting M1 to be a shit show on the software front, but Rosetta 2 has made it a non-issue for all but a minuscule minority of applications. Now that we're well into the M1 lifecycle and more software is moving to native builds, it's just going to keep getting better from a compatibility standpoint.
DJI stands as a very notable exception. They are frequently Apple-level good on both hardware and device firmwares. It's a different style, but similar levels of polish.
Comparing them to Apple is not a very big a complement, however. Apple isn't well known for having the best software. Apple often has well-designed interfaces and has worked hard to improve human-computer interfaces (both the hardware and the software). To be clear, I do not consider that to be "best-in-class software" though.
It was so bad I reverse engineered it in order to make a Linux version. Couldn't figure out how to intercept the I2C/ACPI/EC stuff but it turned out the LEDs were implemented via USB. Wireshark gave me all the data I needed to write a free software replacement.
There's a feature on the keyboard that lights up keys when they're pressed. I thought it was implemented in hardware... I was wrong. They made a driver for this. It runs in kernel mode, intercepts keystrokes and sends commands to the keyboard telling it to blink the specific LEDs. It's such an insane design, I have no idea why they'd do such a thing.
That's why for my custom watercooled loop I run an Aquaero by Aquacomputer - as it has its own SoC once you've used Aquasuite to setup your fan curves you can remove the USB connection from the device and it will just keep on doing its thing.
Update: DDR4 modules seem to have pins for a built-in SMB/I2C bus. Maybe this is used for controlling the LEDs. // It looks like it:
https://www.reddit.com/r/hardware/comments/aiwrt2/how_does_r...
https://gitlab.com/CalcProgrammer1/KeyboardVisualizer/-/issu...
They have a ROM that can be read to retrieve the the JEDEC and XMP Profiles, so perhaps there's some I/O there?
Fun fact: there are mouse mats with lighting.
And here is a list of alternatives.[0]
After years of trying to find a way to disable the annoying bright red LEDs on my MSI Ryzen mobo in Linux, I had to give this a shot.
AppImage, sudo, done. Fucking finally!
Thanks for posting this. I owe a you a beer.
It just seems garish to me. I also imagine it must be quite distracting to have a bunch of lights flashing out of your PC.
I've never seen them used inside of a PC, though, which made this project page a bit confusing. Is that a thing now? Because that does sound like a garish and distracting place for them.
Personally I do like lighting, but I want static colors. The great thing about RGB lighting is that I can choose whatever color I want. Much better than when the choices were basically just red or blue and you had to commit to one when you bought it.
But what kills me the most is the fact that the RGB Lightshow from RAM keeps running even when I put the system to sleep!
Time makes fools of us all, eh?
IMO it can look nice if it's done subtly. I definitely don't want fast animated LEDs on my computer, I think that would just make it harder to concentrate.
I had the same problem when I went to upgrade my server chassis. Fortunately the side panels on the chassis I settled for were interchangeable so I could swap the glass around to the rear facing side and hide it.
Great space-saving design as well.
IMO the ads have all the colors cycling etc as a way to communicate that the device can turn any color you want.
https://old.reddit.com/r/battlestations/ works thankfully.
And I'm not being facetious - I made the mistake of buying a board with a bunch of useless red LED lights on board (an ASUS Z170 Pro Gaming). I should have known better I guess...
https://www.youtube.com/watch?v=WeF8GcjtiCQ
(facepalm)
This program allows me to turn the LEDs off, so if you like me have lots of shiny LEDs you wish never were there, this is probably exactly what you’re looking for ;)
I read through some of the docs and saw how the devs bricked their devices multiple times sending incorrect lighting commands, while reverse engineering the communication protocols. I decided that it was not worth the risk to consolidate down to one program if it meant I might brick my system.