Skip to content

msi-ec: add Cyborg 15 B2RW and MS-1606 backlight support - #779

Merged
glpnk merged 4 commits into
BeardOverflow:mainfrom
ItsVaidas:agent/add-cyborg-15q3-firmware
Jul 31, 2026
Merged

msi-ec: add Cyborg 15 B2RW and MS-1606 backlight support#779
glpnk merged 4 commits into
BeardOverflow:mainfrom
ItsVaidas:agent/add-cyborg-15q3-firmware

Conversation

@ItsVaidas

@ItsVaidas ItsVaidas commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

close #647
close #726
close #762

Note:
There are 3 models:
RGB:
https://www.msi.com/Laptop/Cyborg-15-B13WX
https://www.msi.com/Laptop/Cyborg-15-B2RWX
White keyboard:
https://www.msi.com/Business-Productivity/VenturePro-15-A2RWX

They probably have different EC revision. In this case - single color controller is enabled in EC and banned in whitelist.


What changed

  • add 15Q3EMS1.108 firmware support for Cyborg 15 B2RWEKG/B2RWGKG
  • add a HID driver for the laptop's 0db0:1606 MSI MysticLight MS-1606 controller
  • expose the controller as msi::kbd_backlight with levels 0 through 4
  • suppress the non-functional EC keyboard-backlight interface on this firmware
  • include the HID module in regular and DKMS installation paths

Why

On this generation, EC register 0xd3 is only a status mirror. Writes update
the register but do not change the physical keyboard. The keyboard lighting is
controlled by a dedicated USB HID device.

The MS-1606 does not provide a separate brightness command or useful RGB
readback. The driver therefore scales a configurable fixed RGB color in the
steady-effect packet. The default 255:50:0 color can be changed with the
color_red, color_green, and color_blue module parameters.

Validation

  • tested all five brightness states on MSI Cyborg 15 B2RWGKG
  • verified the MS-1606 HID report sequence against MSI Center's four-zone implementation
  • built against 7.1.5-1-cachyos with Clang
  • checkpatch.pl --strict: zero errors, warnings, or checks
  • installed and exercised through DKMS and the Linux LED sysfs interface

@ItsVaidas
ItsVaidas marked this pull request as ready for review July 22, 2026 13:15
@ItsVaidas ItsVaidas changed the title msi-ec: add firmware 15Q3EMS1.108 for Cyborg 15 B2RW msi-ec: add Cyborg 15 B2RW and MS-1606 backlight support Jul 29, 2026
@glpnk

glpnk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

AI?

@glpnk

glpnk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Where you got Mystic Light code? You should remove it, because it's not related to project. Keep only EC version you want to add

@glpnk
glpnk marked this pull request as draft July 31, 2026 03:03
@ItsVaidas

ItsVaidas commented Jul 31, 2026

Copy link
Copy Markdown
Contributor Author

Well, on my laptop trying to control the backlight via current msi-ec method fails miserably. So I thought maybe a fix is needed specifically for my type of laptops? With this fix Linux correctly recognizes the 5 stage backlight and I can control it. Without it neither Linux, nor MControlPanel is capable to control the backlight.

@glpnk

glpnk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

G2_1 is wrong config, right one is G2_5

I'll wipe your code and fix to correct config.

You should use https://openrgb.org/ for your RGB keyboard. I have no idea if your model is supported

@glpnk

glpnk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

what is MS-1606?

There are 3 models:
RGB:
https://www.msi.com/Laptop/Cyborg-15-B13WX
https://www.msi.com/Laptop/Cyborg-15-B2RWX
White keyboard:
https://www.msi.com/Business-Productivity/VenturePro-15-A2RWX

Cyborgs have same EC revision, but VenturePro probably have different - no data to prove. In this case - single color controller is enabled in EC and banned in whitelist.
@glpnk
glpnk force-pushed the agent/add-cyborg-15q3-firmware branch from e54afae to 65211e3 Compare July 31, 2026 03:35
@ItsVaidas

Copy link
Copy Markdown
Contributor Author

Yea, I got it from the USB ID that controls the lighting: 0db0:1606
1606 seamed significant, wrote it into the description, AI fixing the description could have written it as MS-1606

@glpnk

glpnk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Where you got code for backlight control? If it's yours - you can release it as new project, but it can't be bundled with msi-ec

@glpnk
glpnk marked this pull request as ready for review July 31, 2026 03:39
@glpnk
glpnk merged commit 6a7d691 into BeardOverflow:main Jul 31, 2026
@glpnk

glpnk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Added, thank you

@ItsVaidas

Copy link
Copy Markdown
Contributor Author

I checked multiple projects, including the windows version of MSI Control center. After determining where it controls the backlight, wrote the code to change the backlight and with the help of AI to fix any problems it sees in the code (as it's been a long time since I touched c).
I have also made changes to the OpenRGB, but haven't yet opened a pr.

@glpnk

glpnk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Okay, good luck with PRing the OpenRGB.

In my opinion keyboard RGB controller which connected via USB shouldn't be a kernel module, but userspace app/service. And OpenRGB seems to be good balance.

For some reason, MSI choose such weird way of control, in comparison to other, where is worth to use kernel modules

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants