This post is not going to have wide appeal. I get that. I’m posting it because I was unable to find the solution online myself, and I hope it will help someone else spend far less time than I did getting to the solution.
Here’s the problem: The Udoo X86 that I am using in my new SoC cluster has a “Buttons / LED header” compliant with the “Intel® Front Panel I/O connectivity Design Guide, Switch/LED Front Panel”. It includes pins for a 2-pole dual-color LED to indicate when the system is on, off, or sleeping. To cite the user manual: “Connect it [pin 2 and pin 4] to an extremity of a dual-color power LED for power ON/OF, sleep and message waiting signaling.” So, I ordered some of the appropriate LEDs and followed the directions. Depending on which pole of the LED I connected to either pin 2 or pin 4 on the Udoo X86, I could produce red or green but never red or green based on the state of the system (which was the entire point of the exercise). My multimeter confirmed that one of the pins was coming close to +5V_A when the system was running but nothing when the system was off. To confound things further, there is a dual-color LED on the Udoo X86 board immediately next to the Buttons / LED header that operates exactly how I expected the dual-color LED attached to the header would (i.e., green when the system is running; amber when the system was off but connected to power). In fact, I read some documentation that implied the on board LED is connected to the same fashion.
I’m not the first person to run into this problem. There is an Udoo forum thread on the topic that talks around the issue without ever actually clarifying the specific issue with connecting a dual-color 2-pole LED to the header.
Here’s the solution: The Buttons / LED header signaling is different from the on board LED signaling. Also, there are more states than just on or off for the SoC. The missing piece of information is that the “sleep” state is the secondary state for the signaling on pins 2 and 4 of the header. In CentOS 7, you can issue the command “systemctl suspend” to put the SoC into a hibernation state (which results in the “sleep” signaling). The three states I’ve been able to reproduce are off [LED unlit], on [LED lit green], and sleep [LED lit red].