Skip to content

jcorporation/myGPIOd

Repository files navigation

myGPIOd

myGPIOd is a lightweight GPIO controlling framework. It is written in C and depends on libgpiod version 2.x.x.

It consists of a daemon, a client library and a command line tool. It is designed to run on Raspberry PIs and similar devices.

I wrote this tool primarily for myMPDos and myMPD.

myGPIOd can communicate natively with MPD and also integrates nicely with all HTTP APIs.

Since version 2.0.0 myGPIOd can also read events from generic input devices (/dev/input/..).

Features

  • mygpiod - the daemon component
    • Call actions on GPIO events
      • rising
      • falling
      • long press (with optional interval)
      • long press release
    • Call actions on input events (/dev/input/..)
    • Integrated actions
      • GPIO settings
      • HTTP requests
      • Lua scripting
      • MPD client
      • myMPD client
      • System commands
    • Set various GPIO attributes (bias, debounce, ...)
    • Set the output value of GPIOs
    • Get info from Raspberry PI Video Core (/dev/vcio)
    • Provides a Unix socket with a simple line-based text protocol
      • List GPIO configuration
      • Set and get GPIO values
      • Get notifications of GPIO events
    • Provides a REST-API endpoint
      • List GPIO configuration
      • Set and get GPIO values
    • Provides a long poll endpoint to receive GPIO and input events
  • libmygpio - the client library
    • Simple C client library
    • High level API
    • Integration in poll based event loops
  • mygpioc - the command line client
    • Connects to the mygpiod socket to control the various functions.

Documentation

For information on installation and configuration, see the myGPIOd documentation.

Support

Please read the documentation before asking for help. Bugs should be reported through issues. For all other question and general feedback use the discussions.

You can follow me at mastodon to get news about myGPIOd.

Contribution

myGPIOd is in active development. If you like it, you can help to improve it (no programming skills are required).

Copyright

2020-2026 Juergen Mang mail@jcgames.de

About

myGPIOd is a lightweight GPIO controlling framework based on libgpiod2.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors