LED meaning of Radxa Zero

I previously had a V1.4 hardware, and I remember i observe the following behavior:

  1. when it is in “recovery” mode, e.g. access eMMC like mass storage, the LED is always on
  2. when the device boots up normally, it blinks regularly
  3. when it is turned off, the LED goes off

However, when i receive a V1.51 board now, seems the LED is always on no matter the three cases. It become much less informative.

May I know if this is a purposeful change, or did I miss setting anything?

https://wiki.radxa.com/Zero/hardware/revisions

1.5 Minor adjustment
Switched to a different USB Configuration Channel controller due to part shortage
The Power LED now can be controlled by GPIO_AO10

Dunno but guessing its down to you to set the LED state

I see! So on version v1.4 it is GPIO_AO8, and v1.5 it becomes AO10. Still don’t quite understand the reason for this change. A solid LED light is not that helpful for headless operations.

Really would like to have radxa zero to turn off the light when it is fully shutdown.

image

1 Like

install device-tree-compiler:
sudo apt update; sudo apt install device-tree-compiler -y

backup original:
mv meson-g12a-radxa-zero.dtb meson-g12a-radxa-zero.dtb.orig

decompile:
dtc -I dtb -O dts meson-g12a-radxa-zero.dtb.orig -o meson-g12a-radxa-zero.dts

edit the dts file, scroll down to led section and change the following.

from: gpios = <0x4f 0x08 0x00>;
to : gpios = <0x4f 0x0a 0x00>;

compile and reboot
dtc -I dts -O dtb meson-g12a-radxa-zero.dts -o meson-g12a-radxa-zero.dtb

There are other options as well, but this is probs the most simple method.

3 Likes

I think they realised the uart might be handy and AO10 is PWMAO_D being PWM and maybe lesser to taking the uart pin.

1 Like

exactly what @stuartiannaylor explains .

How do I keep the light on when system is run. I want to stop the heartbeat

You can link the LED to the following:

cat /sys/class/leds/radxa-zero:green/trigger
none usb-gadget usb-host rc-feedback rfkill-any rfkill-none kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot disk-activity disk-read disk-write ide-disk mtd nand-disk heartbeat backlight gpio cpu cpu0 cpu1 cpu2 cpu3 activity default-on transient flash torch panic netdev mmc0 mmc2 [mmc1] bluetooth-power hci0-power rfkill0 rfkill1

Now set the trigger:
echo "default-on" | sudo tee /sys/class/leds/radxa-zero:green/trigger default-on

I personally link my LEDs to the mmc activity using a script and service.

#!/bin/bash
# Bind root device activity to LED trigger

LED="/sys/class/leds/radxa-zero:green/trigger"
if [ -e $LED ]; then
	ROOT_DEVICE=`findmnt -v -n -o SOURCE /`
	ROOT_DEVICE=${ROOT_DEVICE/\/dev\//}
	ROOT_DEVICE=${ROOT_DEVICE/mmcblk/mmc}
	ROOT_DEVICE=${ROOT_DEVICE/p[0-9]/}
	echo -n "$ROOT_DEVICE" > $LED
fi

NOTE:
As an aside, you can also just adjust the LED brightness
off: echo "0" | sudo tee /sys/class/leds/radxa-zero:green/brightness
on: echo "1" | sudo tee /sys/class/leds/radxa-zero:green/brightness

How does ‘/sys/class/leds/radxa-zero:green/’ or ‘/sys/class/leds/board-led/’ reference resolve the difference between the board revisions? To know to use the correct GPIO pin? Is it just slamming GPIOAO_8 and _10 at the same time? Or is there some check for the board revision? I ask this because I have been searching for a while to figure out board revision information on my Zero 3E from a programmatically visible method. Just trying to make my code smarter if you will. Really wish RADXA had something comparable to the Pi device ‘revision’ code value.