[Feature Bounty] Generic LED and LCD Controller Subsystem
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 113
- Forks
- 22
- Avg merge
- 10h 40m
- Merged PRs (30d)
- 13
Description
This RFC proposes the creation of a standardised, generic subsystem within Unraid to control hardware LEDs and LCD panels found on various server chassis and add on devices (e.g., Lincstation, UGreen. and custom LCD panels etc). This would create a single API that hardware vendors and plugin developers could hook into.
Description of Feature:
Overview Currently, controlling hardware indicators like LEDs or status LCDs is vendor specific. Each manufacturer uses their own proprietary methods, making it difficult to provide consistent support in Unraid. This results in a fragmented experience where some hardware works and others don't work at all.
Proposed Solution: A Standardised Controller API
• Develop a core subsystem in Unraid that provides a standardized way to interact with LEDs and LCDs.
• This subsystem would act as a middleware layer. Unraid would send status information (e.g., "System Booting," "CPU Usage: 50%", "Disk 3 Error") to the API.
• Hardware specific drivers (which could be built in or added via plugins) would then translate these standard API calls into the specific commands needed for their device.
Feature Details
Unified Hardware Status Display
• Current Issue: Lack of a standard way to display system status on physical hardware.
• Proposed Solution:
◦ The API should support both simple LEDs (changing color, blinking) and multi line character LCDs.
◦ During system boot, the subsystem could display boot progress on an LCD screen ?
◦ Once the system is running, the GUI would allow users to customise what is displayed.
◦ A new settings page would let users configure their hardware and choose what metrics to show (e.g., CPU/memory usage, network throughput, disk status, array health).
◦ It would also allow users to control aesthetic elements, such as turning off overly bright LEDs.
How This Feature Will Benefit Unraid Users
• Provides at a glance system status without needing to log into the web GUI.
• Creates a consistent experience across different hardware brands.
• Enables a rich ecosystem for developers to easily add support for new hardware enclosures and display devices.
Where This Feature Will Exist in the Web GUI
• A new settings page, likely under Settings -> System Settings, called "LED/LCD Display" or similar.
• On this page, users would select their hardware type from a dropdown and configure the information they want to be displayed.
Why This Feature Should Be Added to Unraid
• It makes Unraid more integrated with the hardware it runs on.
• It encourages hardware vendors to support Unraid by giving them a simple, standard API to target.
• It replaces insecure, bloated, and vendor specific solutions with a secure and unified native implementation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by surveying the TypeScript API monorepo and clarifying the subsystem boundary, device-driver or plugin contract, supported LED and LCD capabilities, and GUI settings scope. Done means an agreed design and implementation plan for the standard API, hardware integrations, status display, and configuration page.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend-api-design, embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100