A Python module for controlling power and brightness of the official Raspberry Pi 7" touch display.
Project description
rpi-backlight
A Python module for controlling power and brightness of the official Raspberry Pi 7" touch display.
Note: This GIF was created using the old v1 API, so please don't use it as API reference 🙂
Features
- Set the display brightness smoothly or abrupt
- Set the display power on or off
- Get the current brightness
- Get the display power state (on/off)
- Command line interface
- Graphical user interface
Requirements
- A Raspberry Pi or ASUS Tinker Board including a correctly assembled 7" touch display v1.1 or higher (look on the display's circuit board to see its version), or a Surface RT running a Linux-based OS
- Python 3.6+
- Optional: Raspberry Pi:
pygobject
for the GUI, already installed on a recent Raspbian - Optional: Tinker Board:
gir1.2-gtk-3.0
for the GUI install
Installation
Install from PyPI:
$ pip3 install rpi-backlight
Note: Create this udev rule to update permissions, otherwise you'll have to run Python code, the GUI and CLI as root when changing the power or brightness:
$ echo 'SUBSYSTEM=="backlight",RUN+="/bin/chmod 666 /sys/class/backlight/%k/brightness /sys/class/backlight/%k/bl_power"' | sudo tee -a /etc/udev/rules.d/backlight-permissions.rules
Emulator
For testing without a physical display (e.g. on your main Linux/macOS/Windows machine)
you can use linusg/rpi-backlight-emulator
.
Usage
API
Example in a Python shell:
>>> from rpi_backlight import Backlight
>>>
>>> backlight = Backlight()
>>> backlight.brightness
100
>>> backlight.brightness = 50
>>> backlight.brightness
50
>>>
>>> with backlight.fade(duration=1):
... backlight.brightness = 0
...
>>> backlight.fade_duration = 0.5
>>> # subsequent `backlight.brightness = x` will fade 500ms
>>>
>>> backlight.power
True
>>> backlight.power = False
>>> backlight.power
False
>>>
For more details see docs.
CLI
Open a terminal and run rpi-backlight
.
$ rpi-backlight -b 100
$ rpi-backlight --set-brightness 20 --duration 1.5
$ rpi-backlight --get-brightness
20
$ rpi-backlight --get-power
on
$ rpi-backlight -p off
$ rpi-backlight --get-power
off
$ rpi-backlight --set-power off :emulator:
$ rpi-backlight -p toggle
$ rpi-backlight -p toggle -d 1.5
$
For all available options see docs.
GUI
Open a terminal and run rpi-backlight-gui
.
Adding a shortcut to the LXDE panel
See docs.
Tests
Tests use pytest
, install with pip3 install pytest
.
Now, run from the repository root directory:
$ python3 -m pytest
Contributing
Please free to open an issue for bug reports and to discuss new features - pull requests for new features or bug fixes are welcome as well!
License
The source code and all other files in this repository are licensed under the MIT
license, so you can easily use it in your own projects. See LICENSE
for
more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rpi-backlight-2.6.0.tar.gz
.
File metadata
- Download URL: rpi-backlight-2.6.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b57871020e3067026fcd1f00a0f67265e269af18b7ef53f7725580c3d08e219 |
|
MD5 | 9aab969e38fd0df1bec99ff7d0b5fc8d |
|
BLAKE2b-256 | fb777593fea7fc165c4b710ea6177c9c946398f57ff4803a9218c00f545523a5 |
File details
Details for the file rpi_backlight-2.6.0-py3-none-any.whl
.
File metadata
- Download URL: rpi_backlight-2.6.0-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5fe0a7b85dbe95adf3114983a63841d09e359b7c3a8d38b4a4f2e81d09d73fd |
|
MD5 | e799e8bfa7804321c97c39b4d8c18127 |
|
BLAKE2b-256 | 3f85cdc0ee00d04c54f5fad00746ea90a4d125b0e2fea483a2d20bc2d4da49a2 |