No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.4KB

AutoBrightness

Simple solution to measure ambient room lighting conditions with an AtTiny85 based USB lux sensor and set external display backlight intensity accordingly via DDC/CI.

See this blog post for details.

Sensor

Uses a Digispark Rev. 3 clone with a GY-302 BH1750 breakout board connected to the I2C bus.

Front of PCB Back of PCB

Quick Start

Check out the repo and required submodules.

git clone https://git.xythobuz.de/thomas/AutoBrightness.git
cd AutoBrightness
git submodule update --init

Build the firmware and upload it.

make -C sensor upload

Prepare udev rules for our new device.

sudo cp sensor/49-autobrightness.rules /etc/udev/rules.d/49-autobrightness.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Client

Uses KWin scripting to get the active window from the KDE window manager. This is used to pause adjustments while a fullscreen window is focused (eg. while gaming). Also sends status updates to a local InfluxDB.

Quick Start

Install dependency and run the client.

yay -S python-pyusb
./client/brightness.py

License

The firmware of this project is licensed as GPLv3. A copy of the license can be found in COPYING.

It uses V-USB and is based on their example code.

Also includes the I2C Master implementation from the Atmel AVR310 AppNote.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

See <http://www.gnu.org/licenses/>.