-
Notifications
You must be signed in to change notification settings - Fork 21
DRAFT: Release notes V4 and interview Nick #85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
2f9b7a2
d15495b
14998ce
5eba1a3
b3171e8
85606cf
16a29cb
abc5baf
efad347
315deb7
42b1c08
933395b
456bee5
45067ba
92d626d
7182614
845351a
c7a7c53
c6eb6d2
c7cb653
ff79915
16976bf
0ddf246
e996f2e
a7f654c
a20bf0c
d5dea89
9863e23
7d1b0a1
02d5173
cb8377c
4444a31
0f54978
e427648
31c1b03
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,21 @@ | ||||||
| --- | ||||||
| title: 'What''s New in V4' | ||||||
| weight: 23 | ||||||
| tags: ["FFM API"] | ||||||
| --- | ||||||
|
|
||||||
| Versions 4.0.0 is based on 3.0.3 (released on 2025-09-23), but bumps the **Java version to 25** and has a new plugin that uses the Foreign Function & Memory (FFM) API. See the [release notes](/about/release-notes/). | ||||||
|
|
||||||
| ## FFM Plugin | ||||||
|
|
||||||
| The goal of this bump to V4 is to enable the use of the Foreign Function & Memory (FFM) API in Pi4J. This FFM API has been introduced in OpenJDK 22 and simplifies the use of native libraries in Java. And native libraries are "the heart" of the Pi4J project as they provide the connection between your Java code and the hardware. | ||||||
|
|
||||||
| Thanks to the contributions by [Nick Gritsenko (aka DigitalSmile)](https://github.com/DigitalSmile) in [pull request #458](https://github.com/Pi4J/pi4j/pull/458), a complete new plugin got added to Pi4J. Read more about the work by Nick in this [interview](/blog/2025/2025????-interview-nick-ffm/). | ||||||
|
||||||
| Thanks to the contributions by [Nick Gritsenko (aka DigitalSmile)](https://github.com/DigitalSmile) in [pull request #458](https://github.com/Pi4J/pi4j/pull/458), a complete new plugin got added to Pi4J. Read more about the work by Nick in this [interview](/blog/2025/2025????-interview-nick-ffm/). | |
| Thanks to the contributions by [Nick Gritsenko (aka DigitalSmile)](https://github.com/DigitalSmile) in [pull request #458](https://github.com/Pi4J/pi4j/pull/458), a complete new plugin got added to Pi4J. Read more about the work by Nick in this [interview](/blog/2026/2026-02-20-interview-nick-ffm/). |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -5,6 +5,33 @@ weight: 40 | |||||
|
|
||||||
| All releases of Pi4J V2+ are listed on [github.com/Pi4J/pi4j/releases](https://github.com/Pi4J/pi4j/releases). | ||||||
|
|
||||||
| ## V4 | ||||||
|
|
||||||
| Requires Java 25, see [What's New in V4](/about/info-v4/) for more info. | ||||||
|
|
||||||
| ### 2025-02-20 - V4.0.0 | ||||||
|
||||||
|
|
||||||
| This is a big release with almost 400 commits and 300+ files added/changed...! **Pi4J V4 introduces the new [FFM plugin](/documentation/provider/ffm) and bumps the Java version to 25**. The FFM plugin makes use of the now Foreign Function & Memory API (FFM) to access the GPIOs. The FFM API got introduced in Java 22 with [JEP 454](https://openjdk.org/jeps/454). | ||||||
|
||||||
| This is a big release with almost 400 commits and 300+ files added/changed...! **Pi4J V4 introduces the new [FFM plugin](/documentation/provider/ffm) and bumps the Java version to 25**. The FFM plugin makes use of the now Foreign Function & Memory API (FFM) to access the GPIOs. The FFM API got introduced in Java 22 with [JEP 454](https://openjdk.org/jeps/454). | |
| This is a big release with almost 400 commits and 300+ files added/changed...! **Pi4J V4 introduces the new [FFM plugin](/documentation/providers/ffm) and bumps the Java version to 25**. The FFM plugin makes use of the now Foreign Function & Memory API (FFM) to access the GPIOs. The FFM API got introduced in Java 22 with [JEP 454](https://openjdk.org/jeps/454). |
Copilot
AI
Feb 20, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incorrect reference to GitHub compare URL. The text "Detailed list of all the changes: Pi4J/pi4j@3.0.3...4.0.0" should use the correct tag format. Based on the pattern, it should likely be "v3.0.3...v4.0.0" with the 'v' prefix for version tags.
| Detailed list of all the changes: https://github.com/Pi4J/pi4j/compare/3.0.3...4.0.0 | |
| Detailed list of all the changes: https://github.com/Pi4J/pi4j/compare/v3.0.3...v4.0.0 |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,18 +1,18 @@ | ||||||
| --- | ||||||
| title: Download/Install | ||||||
| title: Download the Sources | ||||||
| weight: 20 | ||||||
| --- | ||||||
|
|
||||||
| You can build the project from sources available on [GitHub](https://github.com/Pi4J/pi4j). | ||||||
|
|
||||||
| * Checkout the project [pi4j](https://github.com/Pi4J/pi4j) | ||||||
| * Use a JDK version 21 or newer, e.g. `sdk use java 21.0.6-zulu` | ||||||
| * In the root of pi4j run `mvn clean install` | ||||||
| * Checkout the `develop` branch of the [pi4j repository](https://github.com/Pi4J/pi4j). | ||||||
| * Use a JDK version 25 or newer, e.g. `sdk use java 25.0.1-zulu`. | ||||||
| * In the root of the `pi4j directory, run `mvn clean install`. | ||||||
|
||||||
| * In the root of the `pi4j directory, run `mvn clean install`. | |
| * In the root of the `pi4j` directory, run `mvn clean install`. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,28 +1,6 @@ | ||
| --- | ||
| title: Hardware testing | ||
| title: Hardware Testing | ||
| weight: 50 | ||
| --- | ||
|
|
||
| {{% notice warning %}}This is an experimental project which will need a lot of love... The new Raspberry | ||
| Pi Pico with a lot of GPIOs for a very low price, seems even to be a better fit for this project compared to the | ||
| Arduino Due... To be further investigated!{{% /notice %}} | ||
|
|
||
| To minimize the required time and efforts to test a new release, V2+ aims to include an automated test which performs | ||
| I/O testing on each I/O interface on each model of RPi. Ideally this would happen as part of the unit testing sequence | ||
| for each code commit or at least as part of the release cycle. | ||
|
|
||
| To achieve this, an Arduino Due board with lots of on board I/O capability is being used. The | ||
| [firmware that gets loaded onto the Arduino board](https://github.com/Pi4J/pi4j/tree/master/pi4j-test-harness/src/main/arduino) | ||
| listens on the serial port for instructions on which pins to use and what type of test to perform. The | ||
| "Test Harness" project also includes a [Java library that is used to communicate with the Arduino and instrument tests](https://github.com/Pi4J/pi4j/tree/master/pi4j-test-harness/src/main/java). | ||
|
|
||
| Next, a given [I/O provider plugin](https://github.com/Pi4J/pi4j/tree/master/plugins/pi4j-plugin-pigpio/src/test/java/com/pi4j/plugin/pigpio/test) | ||
| includes test classes that instrument the test harness and perform live I/O testing between the SBC (or other hardware) | ||
| and the Arduino Test Harness. | ||
|
|
||
| To be able to fully test all board types, a custom PCB needs to be created to perform all the interconnects between | ||
| the Raspberry Pi 26-pin/40-pin headers, and the Arduino board. This way enough test harnesses could be build for each | ||
| Raspberry Pi model and have a permanent setup for on-demand testing. This of course is a huge effort just by itself, | ||
| and perhaps too ambitious -- but seeking a means to reach automated testing is really needed for the long term. | ||
|
|
||
|  | ||
| {{< github-readme "https://github.com/Pi4J/pi4j/blob/develop/pi4j-test/README.md" >}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| --- | ||
| title: Ideas For The Future | ||
| weight: 999 | ||
| --- | ||
|
|
||
| You can find more info on these pages about some of ideas for the future: | ||
|
|
||
| {{% children %}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,6 @@ | ||
| --- | ||
| title: The Pi4J Logo | ||
| weight: 999 | ||
| weight: 998 | ||
| --- | ||
|
|
||
| {{% notice tip %}} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The blog post link appears incomplete with "2025????" in the URL. This should be replaced with the actual date to match the blog post file name "2026-interview-nick-ffm.md" (which is dated 2026-02-20).