I spent some time last night on an LED system design.
Firstly, some principles:
- The power indicator should be on the power button LED.
- The power button LED and one other on the front should be duplicated on the back. That means that there are 3 RGB LEDS available, with two duplicated.
- Blue keeps people up at night and is relatively distracting, so red and, to a lesser extent, green should be favoured for "chronic" signals -- those likely to be active for long periods (and especially when the human sleeps -- this applies less to the non-duplicated LED).
- Combination of red and green (yellow) is particularly difficult for colour-blind people to distinguish from either red or green (green, in my case).
- There should be only one blinker per LED. More would likely be confusing, as it may be difficult to distinguish one from another.
- LEDs conveying system information should be accessible only to root. This includes the power indicator.
- At least one LED should be accessible to non-root users, and that should be duplicated on the back.
- Phone-related information should, generally, be on a non-root LED as some Pyras will have no LTE-modem and because people may wish to change the phone software they use.
- The back LEDs should be off when the lid is open, and the front LEDS off when the lid is closed.
- Colours used must be as mutually different as possible (to aid the colour-blind, particularly).
- From 10, there is a limit to the number of simultaneous indicators allowed, as otherwise there would be too many similar colours, confusing those with colour vision troubles (about 10% of males, 5% of general population, so more like 9% of the Pyra's likely owners).
The principles are most important, as they do not rely on minutiae of the hardware (particularly: is it possible to have a cell phone connection without GPS and vice versa? is it possible to have Bluetooth connection without WiFi and vice versa?). I am particularly interested in any disagreement with, or additions to, the principles.
My scheme (assuming that GNSS(GPS/GLONASS), GSM, WiFi and Bluetooth are all orthogonal/independent) includes the following:
- power on/off/standby indicator
- low power alert
- GSM on/off indicator
- WiFi on/off indicator
- data access ((micro-)SD and NAND) indicator
- low RAM/virtual-memory(RAM+SWAP) alert (I think all computers should have this, but the Pyra is relatively RAM-constrained, even at 4GiBs)
- Bluetooth on/off
- GNSS on/off
- phone call alert (may also alert for SMS and email and for other alarms)
- unread SMS indicator
- unread email indicator (perhaps pointless, as it is likely to be always on, if most people are like me)
Data transfer indicators for GSM/WiFi/Bluetooth would need to be on the desktop -- the most important thing is the on/off indication, for energy conservation purposes and/or privacy.
Here are the notional LEDs, the main colours the user should see are red, green, blue and white:
Power button LED: accessible only by
root, duplicated on the back, bright when on, dim when on standby and (obviously) off when off (I am not sure how to give an indication on the LED of charging when the OS is not running, but doing so would not necessarily mess up the rest of the scheme). Is used for system info that should be visible from a distance (and so is duplicated on the back).
Blinker: Blink slowly when 5% battery is reached, then faster when 2% battery is reached. Do not blink if the battery is charging (regardless of current fullness). Constant on indicates that the power situation is "OK".
Red: Both WiFi and GSM are
off.
Green: GSM
on (if used, is likely to be on all the time and also on when on standby, so should not be blue).
Blue: WiFi
on (is there any point in having WiFi on while on standby? It would likely be a niche use, so it is fine for this to be blue).
White: GSM
on and WiFi
on (no need for purple-- it gives me problems anyway, as, for me, both green and blue overpower red).
Off: Power off.
Root LED: accessible only by
root,
NOT duplicated on the back. This one should spend a lot of time completely
off.
Blinker: blink when there is data transfer to or from any of the SD cards, micro-SD card or NAND. If no other colour is in use, blink as a
dim red.
Red:
Bright red if free virtual memory (RAM+SWAP) is low (as opposed to the dim blinker default). A constant red is a giveaway that memory is low.
Green: Bluetooth
on (presumed infrequent -- I have never really used Bluetooth).
Blue: GNSS/GPS/GLONASS
on (OK to be blue as it is presumably only to be used outdoors).
Yellow: Low memory plus Bluetooth
on (expected to be unusual, so the complex colour is OK).
Purple: Low memory plus GNSS
on (expected to be unusual, so the complex colour is OK).
Cyan: Bluetooth
on plus GNSS
on (expected to be somewhat unusual, so the complex colour is OK).
White: Low memory plus Bluetooth
on plus GNSS
on (hardly ever, surely? so the complex colour is OK).
Off: All is good. Idle.
Application LED: accessible by
any user or program, duplicated on the back. This is really a suggested default scheme, the real behaviour would be dictated by what ever programs the user runs, at any given moment.
Blinker: blink when any generic alert is received, like a wake-up alarm, a phone call alert (blink until call received or abandoned) and SMS alert etc..
Red: unread emails (most people have a backlog, but red is not very disturbing to sleep nor distracting).
Green: if phone call or other alarm and there is nothing unread, then blink green. Note that if receiving an SMS, the alert is always blue or white, while for an email it is red or white. Green is otherwise free for some other user application.
Blue: unread SMS or other phone message (image, video) (OK to be blue as these things are generally considered urgent and looked at immediately).
White: unread SMS + email (could be purple if green must be used for some independent function).
Off: You have cleared all your correspondence, well done! You have defeated the modern world!
Any thoughts on this scheme? Particularly, are there any aspects of the hardware that I have misunderstood so much as to demand a change to the scheme? What unmissable indicator do I miss?