Python, asyncio, libgpiod, and Pointless Blinking

Jörg Faschingbauer

Playlists: 'glt24' videos starting here / audio

Python's lovely [asyncio]( library allows me to write event-driven programs in a style that looks much like multithreaded code but isn't. Combining [asyncio]( with the equally lovely [Linux GPIO subsystem]( is just another logical step. In this talk I show what [asyncio]( is, how [libgpiod]( works, and how both are used to do pointless projects.

Continuing the [story of pointlessly blinking lights]( from my last year's talk, I show

* How GPIO interrupts are configured to get notified of hardware button presses, and how this can look like in Python (hint: *generators*, and *iteration*).
* How button-events can be used in an ``async`` programming style (hint: *asyncronous generators*, and ``async for``).
* How this fits into the pointless project of blinking lights.

Additionally, I give an overview of async libraries that are more to the point, like

* [Textual](, a terminal UI framework
* [python-sdbus](, the Python binding for the systemd D-Bus client implementation

"Slide" material available on [my homepage](