Skip to content
This repository has been archived by the owner on Jan 11, 2024. It is now read-only.

Release v1.2

Compare
Choose a tag to compare
@savageautomate savageautomate released this 28 Feb 15:14
· 224 commits to master since this release

RELEASE NOTES

Version 1.2 (2019-02-27 )

  • Removed support for statically compiled wiringPi library (for Raspberry Pi).
  • Added support for Raspberry Pi 3B+
  • Added support for Raspberry Pi Zero W
  • Added support for Raspberry Pi Compute Module 3
  • Updated to Java 8 (enhancement #203)
  • Updated build dependencies/plugins to latest versions.
  • Removed unsupported sub-projects (pi4j-temp, pi4j-service).
  • Added SPI mode support for Odroid, BananaPi, BananaPro, and OrangePi platforms.
  • Added experimental support for OrangePi platform.
  • Added experimental support for Synovoip BPI (BananaPi) platform.
  • Added experimental support for NanoPi platform.
  • Fixed #438: ArrayIndex Out of Bounds when pin address address is >= 100
  • Fixed #278: wiringPiSetup*: You must only call this once per program run.
  • Fixed #294; added java runtime and compiler check to pi4j helper script
  • Fixed #291; W1Device name contains "\n"
  • Fixed #275; LCDExample.java doesn't work in release
  • Fixed #276; RaspiBcmPin pins not firing pin state change events
  • Fixed #198; Problems with data from HMC5883L class
  • Fixed #351; Pi4J packages excluded in OSGI manifest ImportPackage declaration
  • Fixed #360; Serial.setBreak(TRUE|FALSE) is printing debug lines to stdout
  • Fixed #355; ButtonBase Executor Service should be closed on GpioController.shutdown()
  • Fixed #356; SystemInfoProvider CPU temperature was divided by 1000 on OrangePi
  • Fixed #272; SerialDataEvent should not fire when event.length() == 0
  • Fixed #361; SerialFactory isShutdown() state not getting updated on new instance

KNOWN ISSUES

As of 2018-04-23, We have removed support for the Pi4J native library statically compiled against WiringPi. for the Raspberry Pi platform. You must now have WiringPi installed on your target Raspberry Pi system separately from Pi4J. WiringPi is now included be default in the latest Raspbian builds. We made this change in part because the WiringPi project now requests no static linking and because it would cause Pi4J to fail on newer platforms when we were not able to get a new build released in a reasonable and timely manner. This change should be of a minimal negative impact now that WiringPi is included with the OS and users will benefit from being able to take advantage of newer WiringPi builds without depending on a new Pi4J build.

On the Raspberry Pi Model 3B the hardware-based serial/UART device /dev/ttyAMA0 has been re-purposed to communicate with the the built-in Bluetooth modem and is no longer mapped to the serial RX/TX pins on the GPIO header. Instead, a new serial port "/dev/ttyS0" has been provided which is implemented with a software-based UART (miniUART). This software-based UART ("/dev/ttyS0") does not support PARITY and some have experienced some stability issues using this port at higher speeds. If you don't need the Bluetooth modem functionality, you can disable the BT modem and configure the RPi to use a device-tree overlay to re-map the hardware-based serial UART ("/dev/ttyAMA0") back to the GPIO header pins for TX/RX. See the instructions on this page for details on how to configure the device-tree overlay and disable the bluetooth modem/service: https://openenergymonitor.org/emon/node/12311

The Odroid C1/C1+/C2 only permits up to four GPIO pins to be configured with edge detection for both "rising" and "falling" edges (a.k.a., "both"). Thus, you can only use a maximum of four GPIO input pins with listener events. You can, however, implement a polling strategy to read a pin state if you need more than 4 input pins. (see: #229 & http://odroid.com/dokuwiki/doku.php?id=en:c1_hardware_irq)

PWM is not supported in the Hardkernel Odroid WiringPi port. Thus PWM is not currently supported by Pi4J for the Odroid boards (C1/C1+/C2). There is no PWM function on the 30pin GPIO header on the XU3/XU4.
(see: #229)

Support for OrangePi and Synovoip BPI platforms is considered experimental and has had limited testing. Not all Pi4J features may be supported and/or working properly.