About

Project Status/Summary

Version 2.0 of Pi4J is finally starting to come together and is almost ready for some real-world BETA testing. Significant progress has been made on the general architecture and primary user-facing interfaces. Pi4J V.2 is a complete re-write and does not maintain API compatibility with previous versions. It is not intended to be a drop-in replacement for previous versions of Pi4J. Pi4J V.2 is a completely new design bringing modern conventions, development practices, extensibility support and simplified integration experience for Pi4J users.

Pi4J Version 2.0 is still considered EXPERIMENTAL at this point. While many parts of the project are working, there are still a number of areas that require further development and certain APIs are subject to change without notice. A significant portion of the code is presently undocumented and hardware integration testing is incomplete.

It is not recommended to use Pi4J V.2 in any production workload at this time.


Feature/Component Status

The following tables outlines some of the current (high-level) features planned for V.2 release. Please note that some of these features may get deferred and not incuded in the first release.

ARCHTECTURAL COMPONENTSSTATUSPRIORITY
Runtime ContextIn TestingHIGH
I/O RegistryIn TestingHIGH
PlatformsIncompleteHIGH
ProvidersIn TestingHIGH
Dependency InjectionIn ResearchHIGH

CORE FEATURESSTATUSPRIORITY
Remote I/O (via TCP)InTestingHIGH
Executor ServiceIncompleteHIGH
GPIO PulseIncompleteHIGH
GPIO BlinkIncompleteHIGH

I/O PLUGINSSTATUSPRIORITY
PiGpio GPIO Provider PluginIn TestingHIGH
PiGpio SPI Provider PluginIn TestingHIGH
PiGpio SERIAL Provider PluginIn TestingHIGH
PiGpio I2C Provider PluginIn TestingHIGH
PiGpio PWM Provider PluginIn TestingHIGH
LinuxFX GPIO Provider PluginIncompleteLOW
LinuxFX SPI Provider PluginIncompleteLOW
LinuxFX SERIAL Provider PluginIncompleteLOW
LinuxFX I2C Provider PluginIncompleteLOW
WiringPi GPIO Provider PluginNot StartedLOW
WiringPi SPI Provider PluginNot StartedLOW
WiringPi I2C Provider PluginNot StartedLOW
WiringPi PWM Provider PluginNot StartedLOW
PiGpio Bitbang SerialNot StartedLOW
PiGpio Bitbang I2CNot StartedLOW
PiGpio Bitbang SPINot StartedLOW

Hardware Testing Status

The table below illustrates the testing progress on the various supported platforms/models.

As standard OpenJDK versions are not available for the ARMv6 these are considered to be low priority.

PLATFORM/MODELARMSTATUSPRIORITY
RaspberryPi - 4BARMv8In Testing; Preliminary Tests PASSEDHIGH
RaspberryPi - 3A+ARMv8Not StartedHIGH
RaspberryPi - 3B+ARMv8In Testing; Preliminary Tests PASSEDHIGH
RaspberryPi - 3BARMv8In Testing; Preliminary Tests PASSEDHIGH
RaspberryPi - ZeroWARMv6Not SupportedLOW
RaspberryPi - ZeroARMv6Not SupportedLOW
RaspberryPi - 2B (v1.2)ARMv8Not StartedMEDIUM
RaspberryPi - 2BARMv7Not StartedMEDIUM
RaspberryPi - 1B+ARMv6Not SupportedLOW
RaspberryPi - 1A+ARMv6Not SupportedLOW
RaspberryPi - 1B (Rev 2)ARMv8Not StartedMEDIUM
RaspberryPi - 1B (Rev 1)ARMv7Not StartedMEDIUM
RaspberryPi - 1AARMv6Not SupportedLOW
RaspberryPi - CM3+ (Compute Module)ARMv8Not StartedHIGH
RaspberryPi - CM3 (Compute Module)ARMv8Not StartedHIGH
RaspberryPi - CM1 (Compute Module)ARMv6Not Supported<i class=“fa fa-arrow-circle-down /] LOW