Skip to content

Conversation

@gemenerik
Copy link
Member

@gemenerik gemenerik commented Dec 11, 2025

The previous approach used datasheet luminance values to normalize LED brightness. However, this did not produce visually balanced colors in practice.

Replace with empirically-derived perceptual balance factors from user survey:

  • White: 0.84
  • Red: 0.692
  • Green: 0.421
  • Blue: 1.0 (reference)

The significantly brightens all colors apart from blue.

Changes:

  • Rename ledLuminance_t to ledPerceptualScale_t with float scaling factors
  • Replace normalizeLuminance() with applyPerceptualScaling()
  • Update LED_LUMINANCE constant to LED_PERCEPTUAL_SCALE with survey values

The previous approach used datasheet luminance values and circuit current
calculations to normalize LED brightness. However, this did not produce
visually balanced colors in practice.

Replace with empirically-derived perceptual balance factors from user survey:
- White: 0.84
- Red: 0.692
- Green: 0.421
- Blue: 1.0 (reference)

This significantly reduces green output (to 42%) which was previously too
bright, and provides better perceptual color balance across all channels.

Changes:
- Rename ledLuminance_t to ledPerceptualScale_t with float scaling factors
- Replace normalizeLuminance() with applyPerceptualScaling()
- Update LED_LUMINANCE constant to LED_PERCEPTUAL_SCALE with survey values
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.

3 participants