Latest release: V4.0.0 (2026-02-20, see Release Notes).
This project is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to focus on implementing their application business logic.
If you immediately want to “dive” into Pi4J development, check these resources:
The Pi4J Project was started in 2012, the same year the Raspberry Pi was introduced as a tool to provide Java developers a simple and familiar object-oriented interface library to access the low-level I/O capabilities of the Raspberry Pi including GPIO, I2C, SPI, PWM and Serial communications.
The Pi4j project has evolved in all these years as the whole Java eco-system and Raspberry Pi systems have been evolving. This resulted in the following main versions:
In February 2026, Pi4J was accepted into the Commonhaus Foundation to ensure the continuity of the project. Read more about it in this blog post.
The Pi4J Project’s mission is to provide a rich and powerful, yet simple to use, Java-friendly API library enabling programmatic access to the low-level hardware I/O capabilities of embedded platforms such as the Raspberry Pi.
