Skip to content

Implement LampArray HID and hook up to crosecbus driver#1

Merged
JohnAZoidberg merged 9 commits into
mainfrom
lamparray
Aug 2, 2025
Merged

Implement LampArray HID and hook up to crosecbus driver#1
JohnAZoidberg merged 9 commits into
mainfrom
lamparray

Conversation

@JohnAZoidberg
Copy link
Copy Markdown
Member

HID code from: windows-driver-samples\hid\vhidmini2\driver\umdf2

Also transformed KdPrint to Trace* functions.
Can load PDB into TraceView and see logs.

Shows up in device manager and by qmk_hid if I modify it:

32ac:0033
  Manufacturer: "Framework"
  Product:      "Desktop UMDF ARGB Driver"
  FW Version:   1.0.1
  Serial No:    "FRAMPBCP00"
  VID/PID:      32ac:0033
  Interface:    -1
  Path:         "\\\\?\\HID#HIDCLASS#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
  Usage Page:   0x0059

HID code from: windows-driver-samples\hid\vhidmini2\driver\umdf2

Also transformed KdPrint to Trace* functions.
Can load PDB into TraceView and see logs.

Shows up in device manager and by qmk_hid if I modify it:

```
32ac:0033
  Manufacturer: "Framework"
  Product:      "Desktop UMDF ARGB Driver"
  FW Version:   1.0.1
  Serial No:    "FRAMPBCP00"
  VID/PID:      32ac:0033
  Interface:    -1
  Path:         "\\\\?\\HID#HIDCLASS#1&2d595ca7&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
  Usage Page:   0x0059
```

Signed-off-by: Daniel Schaefer <dhs@frame.work>
Hardcoded 8 LEDs in a circle like in our chassis fan.
Can think about how to customize that in the future for a 16 LED fan or
other ARGB modules.

Can now properly show up in Windows settings
and Windows-universal-samples\Samples\LampArray

Signed-off-by: Daniel Schaefer <dhs@frame.work>
Signed-off-by: Daniel Schaefer <dhs@frame.work>
TraceView already tells us which driver a log is from. Don't need to
print that.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
Works on Framework Desktop to control the ARGB fan with Windows Settings
and compatible applications.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
@JohnAZoidberg JohnAZoidberg changed the title Turn driver into valid HID device Implement LampArray HID and hook up to crosecbus driver Aug 1, 2025
@JohnAZoidberg
Copy link
Copy Markdown
Member Author

Works
image

image image

If disabling the device twice (first time windows wants me to reboot and
if I don't reboot, I can click disable again). The DeviceContext is NULL
in FrameworkArgbEvtDriverContextCleanup so it crashes.

Signed-off-by: Daniel Schaefer <dhs@frame.work>
Fix error that occurs sometimes:
DriverVer set to a date in the future (postdated DriverVer not allowed)

Signed-off-by: Daniel Schaefer <dhs@frame.work>
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Signed-off-by: Daniel Schaefer <dhs@frame.work>
@JohnAZoidberg JohnAZoidberg merged commit f30f73e into main Aug 2, 2025
2 checks passed
@JohnAZoidberg JohnAZoidberg deleted the lamparray branch August 3, 2025 03:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant