Time for a code release:
I just posted the ledsupport branch of the lcdproc package source code on github:https://github.com/fmertz/sdeclcd/tree/ledsupport
Basically, this code adds driver support for known Firebox LED arrangements, from X-Core to X-Core-e to X-Peak and finally XTM. The code identifies the particular Intel Southbridge/ICH, and matches it up with specific GPIO pins as posted on this forum. It deals with ICH and SuperIO GPIO. As I only own an X-Core-e, it is not all completely tested.
There is a binary here: https://github.com/downloads/fmertz/sdeclcd/sdeclcd.so
If you can assist in the testing, replace your copy of the driver with this one, and give it a try:
telnet localhost 13666
connect LCDproc 0.5.5 protocol 0.3 lcd wid 20 hgt 2 cellwid 5 cellhgt 8
output 1 <—Should start blinking red, rare short blink
output 2 <—Should start blinking green, rare short blink
The output logic is this: we have 32 bit to work with, and we need 3 states (Red, Green and off). This is 2 bits. So, in 32 bits, we have 16 time slots to work with. So, basically, code in the sequence of colors you want to see (Red, Green or off) and keep shifting to fill in the bits.
XXXX XXXX XXXX XXXX
X is 1, 2 or 0
0000 0000 0000 0001 is slow quick blink red
0101 0101 0101 0101 is fast quick blink red
0011 0011 0011 0011 is medium medium blink red
0000 1111 0000 1111 is slow long blink red
0000 2222 0000 1111 is slow blink alternating between red and green
etc... The binary needs to be made decimal for the “output” command. Sequence lasts about 4 seconds.
As we know, there is no client yet that exercises this driver "output" feature. If this works with various models, I'll submit a pull request with the pfSense team so that new package installations will get this binary.
Anyone wants to add LED support to the PHP client? Something like controlling the LED based on availability of internet access, or the ISP's DNS server would be nice...