Putting Raspberry Pi Monitor to Sleep (DPMS)

Fix for a longstanding Raspberry Pi annoyance:   Getting the monitor into powersave mode after a period of idle time - turning off the backlight.

Here's a quick tweak that seems to work fine on native HDMI and VGA (via adapter*) monitors.  Hopefully helpful to others.

Background:  I've played with Linux Power Management commands, utilities, screen savers and such in attempts to get Pi's to turn off (standby) monitors when idle.  I recently hit upon a couple of Raspberry Pi config option that seems to do the trick - not really sure when/where it appeared, but it does switch off the HDMI when Display Power Management (DPMS) is triggered, as opposed to simply blanking the screen.  Works on Raspbian Stretch & Buster and recently on RaspOS

------

April 2024 Update:   I STILL had to fiddle around to get my RPI5 to turn off the display!   
Wayland appears to be the default display manager under RaspOS Bookworm with no screensaver (that I could find).   I fell back to X11  (for other reasons too) but STILL had to install xscreensaver and Power Manager for GUI and add consoleblank to cmdline.txt (now in /boot/firmware) as outlined in original 2018 Step-by-Step below.

Jan 2022 Update:  It looks like this is finally fixed/documented on Bullseye - that is, hdmi_blanking seems to be set by default and adjustable via raspi-config (Display->Screen Blanking) .   RPi step by step is HERE.   In a nutshell:  Screensaver or Power Manger are still required to set monitor DPMS sleep/off/standby for Pi's that boot into GUI.  Adding "consoleblank=<time>" to /boot/cmdline.txt will take care of blanking in console mode.  Tested on RPi 3B+ and RPi4.   There may still be some work to do according to https://github.com/RPi-Distro/repo/issues/283, but it seems to work fine for me (famous techie line!)

Fall 2021 Update:  Rescued from http://ventures.tpedersen.net/projects/puttingraspberrypimonitortosleepdpms.  

In spite of a recent Buster Update ... I STILL manually adjust /boot/config.txt & /boot/cmdline.txt to get HDMI into standby mode.  Works on RPI 4 too!

------

Oct 2018 Step-by-step (Original Post)

The fix involves editing a couple of key configuration files - as always remember to make a backup copies before type-o'ing in these files!  Use sudo to edit files in boot partition *and* be careful!

hdmi_blanking=1

I added this line below hdmi_mode in config.txt, but it probably doesn't matter.  See complete details in https://www.raspberrypi.org/documentation/configuration/config-txt/video.md.  There are  notes/considerations.

For Console Mode (no Desktop UI) set console blanking ...
Check current setting of consoleblank kernel parameter, it sets the inactivity time.  It defaults to zero (returns 0)

$ cat /sys/module/kernel/parameters/consoleblank
0

Edit (sudo) /boot/cmdline.txt to set time in seconds to turn off monitor when Pi is in console mode.
Carefully add the string "consoleblank=<numsec>" to /boot/cmdline.txt - MUST be a single line text file like this:
// Note:  Bookworm release moved cmdline.txt to /boot/firmware directory //

$ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 consoleblank=300 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

For Desktop GUI set Display Power Management (DPMS) via screensaver or power manager applications - you may need to install these.   

Screensaver:

sudo apt-get install xscreensaver

Power Manager:

sudo apt-get install xfce4-power-manager

See RPI Screensaver doc @ https://www.raspberrypi.org/documentation/configuration/screensaver.md for complete details. 

-------

As they say in IT - Works for me!  Hope it works for others too.  

------

Couple of random notes: