/pi4j-v2

Pi4J Version 2.0 - Experimental

Primary LanguageJavaApache License 2.0Apache-2.0

Pi4J :: Java I/O Library for Raspberry Pi

Build Status Maven Central


DISCLAIMER:: EXPERIMENTAL VERSION

This repository is an experimental and incomplete work-in-progress for the next major version of Pi4J. Do not try using this project, it will not work at this time.

!! NOT READY FOR PRODUCTION USE !!


PROJECT INFORMATION

Project website: https://pi4j.com/
Pi4J Community Forum (new): https://forum.pi4j.com/
Version 2.0 Project Discussions (new): https://forum.pi4j.com/category/6/version-2-0
Project issues list: https://github.com/Pi4J/pi4j/issues

Release builds are available from:

Snapshot builds are available from:

Copyright (C) 2012-2019 Pi4J

LICENSE

Pi4J Version 2.0 and later is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

PROJECT OVERVIEW

Starting with the Pi4J 2.0 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.

IN DEVELOPMENT

2019-02-27 :: 2.0-SNAPSHOT

  • Changed project to Apache License, Version 2.0
  • Removed pi4j-device library. (See comments above)
  • Removed pi4j-gpio-extension library. (See comments above)
  • Removed platform support for Odroid. (See comments above)
  • Removed platform support for BananaPi. (See comments above)
  • Removed platform support for BPi. (See comments above)
  • Removed platform support for NanoPi. (See comments above)
  • Removed platform support for OrangePi. (See comments above)

PREVIOUS RELEASES

For previous 1.x release notes and source code, please see the 1.x branch or release tags in the source repository: