Pi4J Version 1.4 - RELEASED!
Wednesday, March 3, 2021 at 11:57AM
Robert Savage in Embedded Computing, Java, JavaFX, Pi4J, Raspberry Pi, Raspberry Pi, Utilities, java, pi, pi4j, raspberry, raspi, wiringpi
Pi4J Version 1.4 Release
Version 1.4 of the Pi4J Library is now released!
Pi4J version 1.4 is now available. Pi4J v1.4 now supports Java JDK/JRE 11 and 64-bit ARM platforms. This release is the final release for the Pi4J Version 1.x codebase.
Starting with the Pi4J 1.4 builds, the Pi4J project is prioritizing focus on providing Java programs access, control and communication with the core I/O capabilities of the Raspberry Pi platform. Earlier versions of Pi4J were perhaps too ambitious in scope and that led to significant project bloat to the point that the project was becoming unsustainable. The goal moving forward is to limit scope to that of the raw I/O capabilities of the Raspberry Pi platform and provide timely updates and releases for bug fixed and new RaspberryPi model introductions. Reducing the scope of the project should better serve the Java community for basic I/O access by reducing complexity.
The following features have been removed from the Pi4J library:
- IO Expanders: IO expansion is still supported but concrete implementations should be provided outside the core Pi4J core project such that they can be maintained and extended independently.
- Other Platforms: Other platforms such as Odroid, BananaPi, NanoPi, OrangePi, etc. have been removed and will no longer be supported. The challenge with supporting these additional platforms is that Pi4J depends on the underlying WiringPi project and WiringPi ports for these other platforms is not well supported by the various SoC vendors or community. The various WiringPi ports for these other platforms are also inconsistent causing inconsistent features and functionality of Pi4J. Additionally, regression testing of bug fixes and new features in Pi4J is compounded with each additional supported platform.
- Components & Devices: Pi4J originally provided higher level interfaces for components and devices that provided an abstraction layer between real world devices (things) and lower-level I/O interfaces. While a noble goal, unfortunately this part of the project never received the attention and time that it deserved and never gained much adoption by the community. We are removing these to allow Pi4J to focus solely on the raw I/O supported by the Raspberry Pi platform.
Pi4J Version 1.4 is available in Maven Central. <<View in Maven Central>>
Version 1.4 Changes:
- Changed project to Apache License, Version 2.0
- Added support for ARM 64-bit architecture.
- Removed pi4j-device library.
- Removed pi4j-gpio-extension library.
- Removed platform support for Odroid.
- Removed platform support for BananaPi.
- Removed platform support for BPi.
- Removed platform support for NanoPi.
- Removed platform support for OrangePi.
- Bug Fixes
Special Thanks:
Thank You to all the Pi4J users, contributors, testers, and tinkerers for all your help and support to continue making Pi4J the go-to library for Java access to the Raspberry Pi's hardware interfaces.
Pi4J Related Links:
Article originally appeared on SHA (http://www.savagehomeautomation.com/).
See website for complete article licensing information.