RPi 4B 8GB rev. 1.5 idle power consumption - can it go lower?

So I ran into DietPi as I started a project to create a Kubernetes cluster for my home lab. Less installed means more resources available, less attack surface, and less configuration to manage. Granted, electricity costs money (~$0.286/kwH where I live) and creates heat and noise, so I always look to drive idle power consumption into the ground where possible.

So the numbers of interest are as follows:

  • 1.30W - WiFi, TX Power of 5dBm, USB-C powered


  • 1.45W - Ethernet, 100Mbps, USB-C powered


  • 1.68W - Ethernet, 1000Mbps, USB-C powered


  • 1.70W - Ethernet, 100Mbps, PoE powered


  • 1.99W - Ethernet, 1000Mbps, PoE powered

I’m using the original (revised) Raspberry Pi PoE Hats as they’re known to sip power. The PoE numbers were obtained by pulling the voltage and amperage draw over SSH via my Ubiqitui UniFi switches using the swctrl poe show id command. Similar to the USB-C power supply, the voltage supplied by the PoE switch is about 4-5% higher than the required voltage.

To put this in perspective, on another port I have my old RPi 4B 4GB rev. 1.2 with a fairly normal /boot/config.txt. That’s consuming 2.90W – with half the memory – compared to 1.99W of the RPi 4B 8GB rev. 1.5. Some of this is absolutely due to hardware changes across board revisions. Of course, the rest is from config changes to reduce as much power consumption as possible to have as much overhead as possible.
So here’s the general config changes I’ve made:

max_framebuffers=0

disable_camera_led=1

dtparam=audio=off

dtparam=i2c_arm=off

dtparam=spi=off

enable_uart=0

dtparam=sd_poll_once

Don’t automatically load overlays for detected cameras

camera_auto_detect=0

Don’t automatically load overlays for detected DSI displays

display_auto_detect=0

#-------Overclock-------
temp_limit=75
#initial_turbo=20

arm_64bit=1

We can’t boost to 1.8GHz with aggressive undervolting

arm_boost=0

CPU related frequencies

arm_freq=1500
arm_freq_min=200
core_freq_min=200

CPU related voltages

over_voltage=-3
over_voltage_min=-6

Memory related voltages

over_voltage_sdram=-2

GPU related frequencies

gpu_freq_min=100
h264_freq_min=100
isp_freq_min=100
v3d_freq_min=100
hevc_freq_min=100

\

Disable Bluetooth

dtoverlay=disable-bt

Disable Wi-Fi

dtoverlay=disable-wifi

Disable the Power LED

dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off

Disable the Activity LED

dtparam=act_led_trigger=none
dtparam=act_led_activelow=off

Disable Ethernet Port Link LED

dtparam=eth_led1=4

Set POE Hat Fan Speeds

dtparam=poe_fan_temp0=50000
dtparam=poe_fan_temp1=60000
dtparam=poe_fan_temp2=70000
dtparam=poe_fan_temp3=80000
So, fairly minimal, with some undervolting and idle clock reduction – don’t worry, it’s been extensively tested for stability! The question is, can we go lower without adversely affecting performance?

To be fair, for normal use I do intend on maintaining 1000Mbps Ethernet, as actual work will be done. These are just intended to be headless servers that I want to sip power when they aren’t busy, and be silent – at idle, the CPU is ~37C (no heatsink) with the PoE fan off. I’m just curious if folks are aware of what else might be possible to eke out any more power savings.

As an aside, very happy to have found DietPi. It brings me back closer to the days of playing with Linux in the late 90s – when Debian was brand new, and I used to install Slackware from 3.5" floppies onto dumpster-dived 386s.

Cheers!

1 Like

It might be a good idea to post this question on RPI forum. Probably there you will find more people who are familiar with this topic on how to reduce power consumption at best.

gpu_mem=16 to minimise assigned GPU memory. You could also disable the framebuffer competely via device tree overlay (no video output then), I can provide the required overlay steps for that after Easter weekend. I think I forgot to forward SSH port on router to my RPi home server to check back remotely :smiley:.