Tuning the RaspberryPi Zero2W for Minimum Power Consumption
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.