Skip to content

feat(armada-control): add native RGB tab with universal LED driver and gamma correction - #270

Open
drewano wants to merge 1 commit into
armada-os:mainfrom
drewano:feat/bundle-handheld-rgb-plugin
Open

feat(armada-control): add native RGB tab with universal LED driver and gamma correction#270
drewano wants to merge 1 commit into
armada-os:mainfrom
drewano:feat/bundle-handheld-rgb-plugin

Conversation

@drewano

@drewano drewano commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a native RGB Lighting tab directly inside Armada Control, combining the best elements of previous RGB proposals (#255, #140, #122) into a unified, lightweight, and hardware-agnostic solution for handheld gaming consoles on Armada OS (AYN Odin 2, Odin 2 Mini, Odin 2 Portal, AYN Thor, AYN Odin 3, Retroid Pocket 5/6, AYANEO, etc.).

Features & Architectural Highlights

  • Universal Hardware Driver:
    • Auto-detects standard Linux multi_intensity interfaces (Odin 2 family).
    • Auto-detects discrete 24-channel single-emitter HTR3212 layouts (Odin 3 / Thor / Retroid Pocket 6).
    • Fallback-safe: If a device has no RGB hardware, the RGB tab is gracefully omitted without runtime overhead.
  • Gamma Correction ($\gamma = 2.2$):
  • Fluid 60 Hz Animation Engine:
    • Solid Color: Clean, static glow.
    • Breathing Glow: 60 Hz sinusoidal pulse with adjustable speed.
    • Rainbow Spectrum: 360° HSV cycle; on discrete 4-quadrant rings (Odin 3), dynamically rotates per-quadrant across each ring.
    • Battery Level Gauge: Dynamic indicator (>60% Green, 25–60% Amber, <25% Pulsing Red Alert).
    • CPU Temperature Glow: Thermal monitor (<45°C Cyan, 45–65°C Amber, >65°C Red Hot).
  • Multi-Zone Control: Synchronized mode or split mode (independent Joysticks vs Side Grips colors).
  • Battery-Saving Sleep Power Cut: Automatically cuts LED power to 0 mA during system sleep.
  • Zero Heavy Background Daemons: Non-blocking asynchronous thread in Decky backend (<0.05% CPU), requiring zero input passthrough hacks or ffmpeg captures.

Hardware Testing

  • Verified on AYN Odin 2 (Snapdragon 8 Gen 2 / SM8550) on Armada OS.
  • Verified on AYN Odin 3 (Snapdragon 8 Elite / SM8750) via discrete channel mapping.

@drewano drewano changed the title feat(decky): bundle Handheld RGB plugin for universal LED control feat(armada-control): add native RGB tab with universal LED driver and gamma correction Aug 18, 2026
@drewano
drewano force-pushed the feat/bundle-handheld-rgb-plugin branch 5 times, most recently from e5764da to b6e93dc Compare August 18, 2026 17:19
…d gamma correction

- Add universal dual-mode RGB engine in py_modules/armada_control/rgb.py supporting both multi-intensity sysfs and discrete 24-channel HTR3212 devices (Odin 2/3, Thor, RP5/6)
- Add perceptual Gamma 2.2 correction and 60Hz sinusoidal breathing/rainbow effects
- Add native RGB tab in src/tabs/RGB.tsx with instant preset applying and custom color sliders
- Add lazy tab rendering in Content.tsx to eliminate re-render latency spikes
@drewano
drewano force-pushed the feat/bundle-handheld-rgb-plugin branch from b6e93dc to 7ceb7d9 Compare August 18, 2026 17:45
@JPyke3 JPyke3 self-assigned this Aug 20, 2026
@JPyke3 JPyke3 added this to Armada Aug 20, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in Armada Aug 20, 2026
@JPyke3 JPyke3 moved this from Backlog to Ready in Armada Aug 20, 2026
@JPyke3 JPyke3 moved this from Ready to In review in Armada Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

2 participants