exc-624928a400ae1b2dff654ca0

One of the latest enhancements to my network-based booting Raspberry Pi cluster involved disabling some of the extra hardware and LED lights to save a bit of power, as well as enhance visual indications during restarts, crashes, etc. I’ve shared snippets of my /boot/config.txt file and have annotated my reasoning for the settings changes.

# Enable audio (loads snd_bcm2835)
#dtparam=audio=on

##turn on/ off bluetooth
dtoverlay=disable-bt

##turn on/off wifi
dtoverlay=disable-wifi

##disable PWR LED
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off

##turn off ethernet port LEDs
dtparam=eth_led0=4
dtparam=eth_led1=4

##enable heartbeat activity LED pattern
dtparam=act_led_trigger=heartbeat

If you are using your Raspberry Pi for Kubernetes or as a general purpose server and are using network-based booting, there is rarely a need to have audio, Bluetooth, or WiFI enabled, so why not save a bit of power multiplied by each Raspberry Pi.

The LED-related sections disable the always-on power indicator and Ethernet-related LEDs to also save a little bit more energy, but it also has a secondary purpose. In this configuration, the power and Ethernet LEDs only come on until the Raspberry PI loads the kernel parameters to disable them. The power light will only come back on after the kernel crashed or the system has been shutdown. This creates a helpful “red stop light” and only runs the difficult to see Ethernet-related LEDs for the boot sequence when they are imperative.


Discover more from Warmest Robot + Warmest Human

Subscribe to get the latest posts sent to your email.

0 thoughts on “Raspberry Pi Power Savings and LED Configuration”
  1. Hi John,

    On a Pi 4, you can also:

    ‘# Disable uart0 and uart1
    dtparam=uart0=off
    dtparam=uart1=off

    ‘# Disable ACT LED. Default is default-on (or mmc0??).
    dtparam=act_led_trigger=none

    and to disable the power LED all you need is:
    dtparam=pwr_led_trigger=none

    In /etc/rc.local
    ‘# Disable HDMI
    /usr/bin/tvservice -o

    Plus, if you want to set your Ethernet speed to 100Mbps (to save power):
    ‘# Disable auto-negotiation and set the eth0 speed to 100baseT/Full duplex
    sleep 5
    ethtool -s eth0 speed 100 duplex full autoneg off
    systemctl restart networking

    As well as saving power, turning of the LEDs stops a cluster looking like a Christmas tree!

    Note: ‘# necessary to stop comments being printed in bold, without the #.

  2. Hi John,

    On my Raspberry Pi 4B cluster I’ve also done:

    ‘# Disable uart0 and uart1
    dtparam=uart0=off
    dtparam=uart1=off

    ‘# Disable PWR LED. Default is default-on.
    dtparam=pwr_led_trigger=none

    ‘# Disable ACT LED. Default is mmc0??.
    dtparam=act_led_trigger=none
    Note: dtparam=pwr_led_activelow=off is not actually required to disable the ACT LED

    Disable the Configure Bluetooth Modems connected by UART service:
    sudo systemctl disable hciuart.service

    Disable the Bluetooth service:
    sudo systemctl disable bluetooth.service

    Plus in /etc/rc.local
    ‘# Disable HDMI
    /usr/bin/tvservice -o

    ‘# Disable auto-negotiation and set the eth0 speed to 100baseT/Full duplex
    sleep 5
    ethtool -s eth0 speed 100 duplex full autoneg off
    systemctl restart networking

    Gigabit networks used a lot more power, compare to Megabit networks. Remember it is processing and sending data 10 times faster.

    Turning off the LEDs stops a cluster looking like a Christmas tree, as well as saving power.

    ‘# was necessary to stop the comment character (#) causing the line to have very large text

Leave a Reply

Your email address will not be published. Required fields are marked *