# wiringpi/wiringpi

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/wiringpi-wiringpi).**

3,270 stars · 1,282 forks · C · lgpl-3.0

## Links

- GitHub: https://github.com/WiringPi/WiringPi
- awesome-repositories: https://awesome-repositories.com/repository/wiringpi-wiringpi.md

## Description

WiringPi is a GPIO hardware control library and embedded hardware interface designed for managing General Purpose Input Output pins on single board computers. It provides a standardized software layer for interacting with hardware registers, facilitating low-latency pin manipulation.

The project includes a GPIO command line interface that allows users to inspect pin states and manage hardware input and output levels directly from the terminal.

It supports embedded hardware prototyping and hardware state monitoring, specifically targeting Raspberry Pi boards to interact with external electronic components. This is achieved through a C-based hardware abstraction that utilizes memory-mapped I/O access to control sensors and actuators within a Linux environment.

## Tags

### Hardware & IoT

- [GPIO Pin Controllers](https://awesome-repositories.com/f/hardware-iot/gpio-pin-controllers.md) — Provides a comprehensive interface for reading and writing digital signals and managing GPIO pin modes. ([source](https://cdn.jsdelivr.net/gh/wiringpi/wiringpi@master/README.md))
- [Low Latency Controllers](https://awesome-repositories.com/f/hardware-iot/gpio-pin-controllers/low-latency-controllers.md) — Ensures faster response times than standard system calls by controlling GPIO pins through direct memory access.
- [Hardware Prototyping Frameworks](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-prototyping-frameworks.md) — Facilitates the development of physical computing projects by controlling sensors and actuators in a Linux environment.

### Part of an Awesome List

- [Hardware Interfacing](https://awesome-repositories.com/f/awesome-lists/devtools/hardware-interfacing.md) — Acts as a software layer that provides a standardized interface for interacting with physical hardware registers.

### Operating Systems & Systems Programming

- [Direct Memory Access](https://awesome-repositories.com/f/operating-systems-systems-programming/direct-memory-access.md) — Implements direct memory access to read and write hardware states, bypassing operating system file descriptors for minimal latency.
- [Memory-Mapped I/O](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-mapped-i-o.md) — Utilizes memory-mapped I/O to map physical hardware registers into the process memory space for direct pin control.
- [Raspberry Pi Systems Programming](https://awesome-repositories.com/f/operating-systems-systems-programming/raspberry-pi-systems-programming.md) — Implements low-level driver functionality and systems programming specifically for Raspberry Pi GPIO hardware.

### Software Engineering & Architecture

- [Hardware Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/hardware-abstraction-layers.md) — Provides a standardized hardware abstraction layer to simplify peripheral control via function calls instead of raw register manipulation.
- [Register Configuration Managers](https://awesome-repositories.com/f/software-engineering-architecture/state-management/hardware-register-state-managers/register-configuration-managers.md) — Controls hardware behavior by writing specific bit patterns to memory addresses corresponding to pin configurations.

### Development Tools & Productivity

- [Command Line Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces.md) — Ships a ready-to-run terminal application for inspecting pin states and managing input/output levels.

### Programming Languages & Runtimes

- [Memory Map Generators](https://awesome-repositories.com/f/programming-languages-runtimes/compilation-target-specifications/architecture-specific-generators/memory-map-generators.md) — Adjusts physical memory offsets based on the processor architecture to ensure correct hardware register targeting.

### System Administration & Monitoring

- [Device State Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/device-state-monitoring.md) — Provides real-time tracking of hardware pin modes and electrical status through a terminal interface.
