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.
Please note that with this release the project has changed licensing from the Apache Software License, Version 2 to the GNU LGPL license, Version 3.0. This change was necessary because the Pi4J release binaries are embedding the WiringPi project (Pi4J now statically compiles against the WiringPi library) which is under GNU LGPL licensing. Per the terms of Apache licensing, the licensed project cannot include components under LGPL licensing. (http://www.apache.org/legal/resolved.html)
New development and bug fixes will now be provided via the 1.1-SNAPSHOT builds and the latest development codebase is now maintained in the 'develop' branch.
In addtition to maintenance and bug fixes, the 1.1-SNAPSHOT build also includes a completely overhauled Serial communication API and implementation. Please note that to add these serial API enhancements some APIs required breaking changes where they may no longer be backwards compatible with prior versions.
Please note that this project is continually under development but has been very stable for well over a year. The functionality is very stable but improvements and bug fixes are continually committed into the 'develop' branch in the Pi4J GitHub repository and SNAPSHOT builds are published in the Sonatype OSS repository.
You are welcome to start using and integrating this library in your project. Please provide any feedback good, bad or ugly. (Well maybe keep the ugly feedback to a minimum.)
Visit the Downloads page to download the latest Pi4J library builds.
The simplest method to install Pi4J on your RaspberryPi is to execute the following command directly on your RaspberryPi.
curl -s get.pi4j.com | sudo bash
To get started using the Pi4J library, please see the following pages: