Tuning the RaspberryPi Zero2W for Minimum Power Consumption

From Lo-tech Wiki
Jump to navigation Jump to search

This guide summarises simple, effective steps to reduce power usage on a Raspberry Pi Zero 2 W. The focus is on headless and always-on use-cases.

Baseline Assumptions:

  • Headless system (no HDMI display)
  • Raspberry Pi OS Lite
  • SSH access available

Disabling Unused Hardware

HDMI

Disable HDMI output to save ~20–30 mA.

Add to /boot/firmware/config.txt:

hdmi_blanking=2
hdmi_force_hotplug=0
hdmi_ignore_hotplug=1

LEDs

Disable the activity and power LEDs if not required.

Add to /boot/firmware/config.txt:

dtparam=act_led_trigger=none
dtparam=act_led_activelow=on

Reducing CPU Power

Limit CPU Frequency

Lower the maximum CPU clock to reduce both idle and load power.

Add to /boot/firmware/config.txt (minimum is 600MHz):

arm_freq=600

Limiting Active CPU Cores

All Raspberry Pi boards except the Zero(W) and original Raspberry Pi have quad-core CPUs. For many low-power workloads, the system can be limited to two or even one core, so reducing the peak power demand especially during boot.

Edit /boot/firmware/cmdline.txt (keep everything on a single line):

maxcores=2

Reducing Bluetooth and WiFi Power Consumption

Wi-Fi

To disable at boot, add to /boot/firmware/config.txt:

dtoverlay=disable-wifi

Bluetooth

To disable at boot, add to /boot/firmware/config.txt:

dtoverlay=disable-bt

Tuning the Pi for autostream

Lo-tech autostream is a locally installed service that connects HiFi separates to AirPlay and AirPlay 2 speakers, as is designed around the Pi Zero 2W. To minimise peak and average power consumption in this application:

/boot/firmware/cmdline.txt

Append (keep everything on a single line):

maxcores=2

/boot/firmware/config.txt

Replace the whole file with this:

# Disable on-board audio 
dtparam=audio=off

# Disable camera and DSI display autodetection
camera_auto_detect=0
display_auto_detect=0

# Automatically load initramfs files, if found
auto_initramfs=1

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

# Enable system watchdog
dtparam=watchdog=on

# Disable bluetooth and UART
dtoverlay=disable-bt
enable_uart=0

# Fully power down HDMI
hdmi_blanking=2
hdmi_force_hotplug=0
hdmi_ignore_hotplug=1

# Underclock CPU
arm_freq=700
arm_boost=0
force_turbo=0

# Minimum GPU RAM for headless
gpu_mem=16

# Slight undervolt (safe range is -2 to -4)
over_voltage=-2

Notes

  • Changes to configuration files require a reboot to take affect
  • Test stability if lowering CPU voltage
  • If the Pi cannot boot after editing config.txt or cmdline.txt, those files on the SD card can be accessed directly using a Windows PC (or Mac) by connecting the micro-SD card via a USB adapter.

See Also