This is how to turn on and off backlight on Raspberry Pi for the official 7-inch touchscreen display and HDMI displays using command-line interface (CLI).
I checked it with Raspberry Pi 3 B+ running Raspbian Stretch (September 2017 version) + official 7″ display / GeChic 1002 10.1″ HDMI Display.
The official 7-inch touchscreen display [1]
OFF:
echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power
ON:
echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power
OFF:
vcgencmd display_power 0
ON:
vcgencmd display_power 1
You may get the error below if you are using older software.
-bash: /sys/class/backlight/rpi_backlight/brightness: No such file or directory
In that case, run rpi-update. [5]
sudo rpi-update
Summary [6]
Since I use both the official 7″ display and the HDMI display, I wrote a script which works for both displays.
Note: It’s working on my environments but I don’t think how it detects HDMI connection (i.e. line 10) is robust enough. You should test with “tvservice -s” command on your environment.
rpi-backlight:
#!/bin/bash if [ $# -eq 0 ] || [[ $1 != "on" && $1 != "off" ]]; then echo "Usage: rpi-backlight [on/off]" exit 1 fi output=$(tvservice -s) if [[ $output =~ "0x400000 [LCD]" ]]; then # Official 7" display if [ $1 = "on" ]; then echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power elif [ $1 = "off" ]; then echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power fi else # HDMI display if [ $1 = "on" ]; then vcgencmd display_power 1 elif [ $1 = "off" ]; then vcgencmd display_power 0 fi fi
References
[1] Official 7” Raspberry Pi Touch Screen FAQ
[2] Programmatically turn screen off
[3] Turning ‘tvservice’ on and off leaves screen blank
[5] RPi Touchscreen – How to turn it off?