Skip to content

Add the rim white LED as a dedicated LED channel #83

Description

@kelchm

0x02 addresses a single white LED on the rim, separate from the rev LEDs. Today we send it as a side effect of LED writes under the mistaken name "global enable" — #82 removes that. Once it's no longer being written by accident, it can be offered deliberately as something users control.

Depends on #82. This must not land first: a real channel would be fighting a phantom writer for the same LED.

Shape

There's already a precedent for a non-colour channel — buttonAuxIntensity (col03 subcmd 0x03) is an intensity-only slot with no colour. This is the same idea, one step simpler: a single LED with only on and off.

  • New LedChannel value. rimWhite rather than something generic like auxMono — it's one specific fixture, not a spare slot, and naming it accurately keeps profiles honest.
  • On/off derived the same way legacyRevOnOff already reduces a colour: ColorToIntensity(color) > 0.
  • LegacyLedEncoder.SetRimWhiteLed(bool) emitting F8 09 02 <on>, with its own dirty latch so it doesn't re-send every frame.
  • Schema enum entry, declared only in profiles for rims that actually have the LED.

Open questions

Which rims have one. No capability information exists for this anywhere we can see — official software just sends it and lets rims without one ignore it. So the profile declaration has to come from testing rather than from a lookup. Reports welcome: if your wheel has a small white LED that isn't part of the rev strip, say which wheel and where the LED sits.

What the default should be. Official software turns it on, runs a test, turns it off again, which suggests the wheel owns the resting state. Whether the channel should default to on, off, or leave it alone is a judgement call, not something the protocol answers.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions