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 a bench and a crossing
Created 2 benches and a crossing; Updated 5 cushions, a post_box, and a crossing
Created a crossing; Updated a cushion
If you were wondering whether the www.php.net & downloads.php.net services weren't responding very well in the last 6 hours — thousands of requests/sec to https://www.php.net/ 's root.
The server's load was 720, didn't die, but CDN connections to it timed out.
Now there is a caching strategy in place for a selected set of resources.
Updated a bench
Created 3 benches; Updated 10 benches
Updated a bench
Updated a bus_stop
Created a bench and a waste_basket; Updated 6 bus_stops and a crossing
Created 2 waste_baskets and a recycling; Updated 2 bicycle_parkings and a recycling
Updated a fast_food, a funeral_directors shop, and 2 other objects; Confirmed a fast_food and a hairdresser shop
Created an information; Updated 3 benches and 2 waste_baskets
Updated 2 benches and a waste_basket
Updated a bench
Created a waste_basket and an information
Created a waste_basket
I hiked 18.0km in 4h1m52s
I walked 1.4km in 17m19s
I walked 4.5km in 1h21m49s
I just made and ate, a bowl full of bacon fried Brussels Sprouts. Not under duress, and out of my own free will.
Added new residential building
Created a hairdresser shop; Confirmed a convenience shop and a dry_cleaning shop
Created a building_materials shop, a vacant shop, and 4 other objects; Confirmed a hairdresser shop, a cafe, and 2 other objects
I walked 8.3km in 1h33m44s



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