Luminous Logitech Litra on Linux
I have been working on developing a course for Xdebug, PHP's Debugger. I am now close to start making the first recordings, so I thought it would be good to invest in some lighting and a green screen.
The light that I bought is a Logitech Litra Glow, but once it arrived I quickly found out that if you want to control its brightness and light temperature, you need a Windows or macOS app. I have neither, bummer. It was not a total disaster as there are buttons on the light to do the same.
When I have had "Windows/macOS" only tech in the past, there was usually already somebody who has reverse engineered it. For my old TomTom smart watch, there was ryanbinns/ttwatch, which I ended up contributing to.
It turned out that the Logitech Litra was no exception. I found a Python implementation of a command line and UI tool, which does the job after messing around with some UDEV rules to allow non-root users make use of it:
sudo su -
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c900", MODE:="0666", GROUP="plugdev"' > /etc/udev/rules.d/82-litra-glow.rules
udevadm control --reload-rules && udevadm trigger
After I plugged in the light again, I could now control it through the Python UI and command line tools.
However, a separate tool is not really what I was after. I rather would like to control it from my Elgato Stream Deck through a Go application that I have written for it. Although I could configure it to use a command line tool invocation, I thought it would be nicer if I could control it directly from that Go applications. Which meant that I had to write a Go driver for it.
Building on top of the work on the Python driver, I extracted the specific bytes to send to the USB device, and wrapped that with the derickr/go-litra-driver. After some research into how to talk directly with a USB device, that turned out to be not too hard. I could now control the Litra from Go!
The next step was to integrate the driver into my Stream Deck control app. I added a configuration with 2 different colour temperatures, and each with three light levels. Combined with a state to turn the light off, that makes seven configurations that the button can cycle through.
Success! I can now control the Logitech Litra Glow from my Stream Deck.
Life Line
Created 6 benches, a main entrance, and a bicycle_parking; Updated 2 main entrances
Created 4 trees, a balancebeam, and 3 other objects; Updated 5 benches and 2 waste_baskets
Merge branch 'xdebug_3_5'
Merged pull request #1092
Use actual PID here, as we use that to be able to connect
Created 2 main entrances; Updated a vacant shop, a furniture shop, and a cafe; Confirmed an estate_agent office, a laundry shop, and 4 other objects
Merged pull request #1091
PHP 8.6: Fixed test expectation for 'debugInfo' name in error
Add 'strace' to run-xdebug-tests.php command
Oystercatcher Parent and Chick
Standing on the edge of a lake in the Arundel Wetlands.
#birds #birdPhotography #Birdsoffediverse #Photography #Nature #Wildlife
Updated 2 main entrances
Fixed tagging and bollard location
I hiked 8.7km in 4h4m28s
Updated a restaurant
Updated a restaurant
Updated a restaurant
I walked 5.5km in 56m26s
Created an entrance
I walked 5.7km in 1h20m50s
Updated a fitness_centre; Confirmed a charging_station
I walked 4.0km in 47m13s
I walked 1.1km in 9m32s
Also, whatnowβ½
`GET /icons/blank.gif HTTP/1.1" 200 398 "https://downloads.php.net/~windows/pecl/releases/?utm_source=chatgpt.com`
WTF does that need an `utm_source` for?
I sometimes wish cache expiries could be fuzzy, like 900Β±15 seconds. Y'know, to prevent the thundering herd effect.
Created a chemist shop


Shortlink
This article has a short URL available: https://drck.me/linuxlitra-h50