# WiringPi Library
+
Welcome to the WiringPi Library, the highly performant GPIO access library for Raspberry Pi boards. This library is written in C and is designed to provide fast and efficient control of the GPIO pins by directly accessing the hardware registers using DMA.
-**Key Features:**
+**Key Features:**
+
- **Support:** WiringPi supports all Raspberry Pi Boards including Pi 5 ( :construction: On the Pi 5, only the GCLK functionality is currently not supported due to missing documentation of the RP1 chip).
- **High Performance:** By directly accessing the hardware registers, WiringPi ensures minimal latency and maximum performance for your GPIO operations.
- **Wide Adoption:** WiringPi is widely used in numerous projects, making it a reliable choice for your Raspberry Pi GPIO needs.
make <example-name | really-all>
```
-The tool `gpio` can be used to set single pins as well as get the state of everything at once:
+To use WiringPi in a project with CMake, the following snippet is all that is required provided that WiringPi is installed.
+
+```CMake
+add_executable(example
+ # project sources...
+)
+target_link_libraries(
+ example
+
+ PRIVATE wiringPi
+)
```
+
+The tool `gpio` can be used to set single pins as well as get the state of everything at once:
+
+```none
pi@wiringdemo:~ $ gpio readall
+-----+-----+---------+------+---+---Pi 3B--+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+---Pi 3B--+---+------+---------+-----+-----+
```
-
## Documentation
-[German](https://github.com/WiringPi/WiringPi/blob/master/documentation/deutsch/functions.md)
-[English](https://github.com/WiringPi/WiringPi/blob/master/documentation/english/functions.md)
-
+[German](./documentation/deutsch/functions.md)
+[English](./documentation/english/functions.md)
## Installing
sudo apt install ./wiringpi-3.0-1.deb
```
-
### Prebuilt Binaries
Grab the latest release from [here](https://github.com/WiringPi/WiringPi/releases).
-
Unzip/use the portable prebuilt verison:
```sh
sudo apt install ./wiringpi-3.0-1.deb
```
-
## Ports
wiringPi has been wrapped for multiple languages:
-* Node - https://github.com/WiringPi/WiringPi-Node
-* Perl - https://github.com/WiringPi/WiringPi-Perl
-* PHP - https://github.com/WiringPi/WiringPi-PHP
-* Python - https://github.com/WiringPi/WiringPi-Python
-* Ruby - https://github.com/WiringPi/WiringPi-Ruby
+- Node - [https://github.com/WiringPi/WiringPi-Node](https://github.com/WiringPi/WiringPi-Node)
+- Perl - [https://github.com/WiringPi/WiringPi-Perl](https://github.com/WiringPi/WiringPi-Perl)
+- PHP - [https://github.com/WiringPi/WiringPi-PHP](https://github.com/WiringPi/WiringPi-PHP)
+- Python - [https://github.com/WiringPi/WiringPi-Python](https://github.com/WiringPi/WiringPi-Python)
+- Ruby - [https://github.com/WiringPi/WiringPi-Ruby](https://github.com/WiringPi/WiringPi-Ruby)
## Support
This repository is the continuation of 'Gordon's wiringPi 2.5' which has been [deprecated](https://web.archive.org/web/20220405225008/http://wiringpi.com/wiringpi-deprecated/), a while ago.
-* The last "old wiringPi" source of Gordon's release can be found at the
+- The last "old wiringPi" source of Gordon's release can be found at the
[`final_source_2.50`](https://github.com/WiringPi/WiringPi/tree/final_official_2.50) tag.
-* The default `master` branch contains code that has been written since version 2.5
+- The default `master` branch contains code that has been written since version 2.5
to provide support for newer hardware as well as new features.
:information_source:️ Since 2024, [GC2](https://github.com/GrazerComputerClub) has taken over maintenance of the project, supporting new OS versions as well as current hardware generations. We are dedicated to keeping the arguably best-performing GPIO Library for Raspberry Pi running smoothly. We strive to do our best, but please note that this is a community effort, and we cannot provide any guarantees or take responsibility for implementing specific features you may need.