You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/_index.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,10 +5,10 @@ title: Welcome to Pi4J
5
5
## Welcome to Pi4J
6
6
7
7
{{% notice warning %}}
8
-
**Pi4J is moving to Java version 21!** Please [read this blog post for more info](/blog/2025/20250211-welcome-java-21/). 3.0.0-SNAPSHOT of Pi4J is already available for testing from the Maven Repository if you enable snapshots in your pom-file.
8
+
**Pi4J moved to Java version 21!** Please [read this blog post for more info](/blog/2025/20250211-welcome-java-21/). 3.0.1 is the first release that requires Java 21 or newer.
9
9
{{% /notice %}}
10
10
11
-
**Latest release: V2.8.0 (2025-01-28, see [Release Notes](/about/release-notes/)).**
11
+
**Latest release: V3.0.1 (2025-03-??, see [Release Notes](/about/release-notes/)).**
12
12
13
13
This project is intended to provide **a friendly object-oriented I/O API and implementation libraries for Java Programmers** to access the **full I/O capabilities of the Raspberry Pi platform**. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to **focus on implementing their application business logic**.
14
14
@@ -44,5 +44,5 @@ This resulted in the following main versions:
44
44
45
45
*[V1.X](/about/info-v1): Deprecated, based on Java 8, later Java 11.
46
46
*[V2.X.X](/about/info-v2): Completely reworked code base, based on Java 11.
47
-
*[V3.X.X](/about/info-v3): Based on latest V2 and Java 21.
47
+
*[V3.X.X](/about/info-v3): Based on Pi4J 2.8.0 and Java 21.
Copy file name to clipboardExpand all lines: content/about/info-v3.md
+5-21Lines changed: 5 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,11 +3,13 @@ title: 'What''s New in V3'
3
3
weight: 22
4
4
---
5
5
6
-
Versions 3.0.0 is based on 2.8.0 (released in January 2025), but bumps the **Java version to 21** or newer! We [asked our users](https://github.com/Pi4J/pi4j/discussions/409) which minimal Java version we should use, but there was no one clear answer, as expected ;-)
6
+
Versions 3.0.1 is based on 2.8.0 (released in January 2025), but bumps the **Java version to 21**!
7
7
8
-
The current/latest Long Term Support (LTS) version of Java is version 21. So it makes sense to jump forward from 11 to 21. This will also prepare us for a the next LTS, which will be Java 25 in September 2025. Bumping to the latest LTS makes it possible to make use of many newer Java language and runtime improvements, simplify some of the code, etc.
8
+
We [asked our users](https://github.com/Pi4J/pi4j/discussions/409) which minimal Java version we should use, but there was no one clear answer, as expected ;-)
9
9
10
-
We would like to move to Java 22 as this would allow us to easier call C code to interact with the GPIOs, thanks to [JEP 454: Foreign Function & Memory API](https://openjdk.org/jeps/454). Unfortanelty, 22 is not a LTS, so it would force us to bump the version every six months with each new release, up till 25.
10
+
The current/latest Long Term Support (LTS) version of Java is version 21. So it makes sense to jump forward from 11 to 21. This will also prepare us for the next LTS, which will be Java 25 in September 2025. Bumping to the latest LTS makes it possible to make use of many newer Java language and runtime improvements, simplify parts of the code, etc.
11
+
12
+
We would like to move to Java 22 as this would allow us to easier call C code to interact with the GPIOs, thanks to [JEP 454: Foreign Function & Memory API](https://openjdk.org/jeps/454). Unfortunately, 22, is not a LTS, so it would force us to bump the version every six months with each new release, up till 25.
11
13
12
14
[The sources of V3 can be found in the GitHub repository `pi4j/pi4j`](https://github.com/Pi4J/pi4j).
13
15
@@ -22,21 +24,3 @@ The Pi4J V3 source code is available in this GitHub repository: [`pi4j/pi4j` Git
22
24
```shell
23
25
git clone https://github.com/Pi4J/pi4j
24
26
```
25
-
26
-
Pi4J V3 is not yet released, but you can already use version `3.0.0-SNAPSHOT` for testing if you add the snapshot Maven repository to your pom-file.
Copy file name to clipboardExpand all lines: content/about/release-notes.md
+46-17Lines changed: 46 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,36 @@ weight: 40
5
5
6
6
All releases of Pi4J V2+ are listed on [github.com/Pi4J/pi4j/releases](https://github.com/Pi4J/pi4j/releases).
7
7
8
-
## 2025-01-28 - V2.8.0
8
+
## V3
9
+
10
+
Requires Java 21, see [What's New in V3](/about/info-v3/) for more info.
11
+
12
+
### 2025-03-24 - V3.0.1
13
+
14
+
This is the first release of Pi4J that requires the Java runtime 21 or higher. Check the blog post [Pi4J welcomes Java 21](/blog/2025/20250211-welcome-java-21/) to understand why we needed this change to make the project ready for the future...
15
+
16
+
Because of a last-minute change to improve the detection of Raspberry Pi 5, 500 and Compute 5, **release 3.0.0 has been skipped**.
17
+
18
+
* Bump Java version to 21, and update many dependencies, Maven plugin, etc.
19
+
* Added JNA dependency (needed for Java 21).
20
+
* Added Maven wrapper.
21
+
* Improved lifecycle shutdown handling for registry elements: Updated the `Lifecycle` interface to clarify shutdown behavior and added tests to ensure proper element recreation after shutdown. These enhancements make the shutdown process more robust and intuitive.
22
+
* Issue [#308](https://github.com/Pi4J/pi4j/discussions/308): Remove serial support from Pi4J. All serial methods are marked as `@Deprecated(forRemoval = true)`. We advise to use [jSerialComm](https://fazecast.github.io/jSerialComm/) for all serial communication.
23
+
* Pull request [#438](https://github.com/Pi4J/pi4j/pull/438): Extra unit test for shutdown and re-creation of a DigitalInput.
24
+
* Issue [#439](https://github.com/Pi4J/pi4j/issues/439): Allow Specifying GPIO Chip for GpioDContext. For more info on how to use, see [Specifying the GPIO Chip](/documentation/providers/gpiod/).
25
+
* Pull request [#449](https://github.com/Pi4J/pi4j/pull/449): Fixes a minor bug in DigitalOutput where pulseAsync ignored the given state and always pulsed high.
26
+
* Pull request [#452](https://github.com/Pi4J/pi4j/pull/452): PWM linuxfs failed if the first interface call was off().
27
+
* Pull request [#453](https://github.com/Pi4J/pi4j/pull/453) for issue [#296](https://github.com/Pi4J/pi4j/discussions/296): Generic BoardModels (with and without RP1) have been added, with a new method `BoardInfoHelper.current().setBoardModel(BoardModel.GENERIC);` to make it possible to **use Pi4J on other types of boards**. The goal of the Pi4J project is still to focus on the Raspberry Pi. However, this should allow testing the compatibility of the library with other boards with a similar architecture. We are looking forward to feedback from the community and possible improvements to this approach.
28
+
29
+
Thanks to contributions by [@stefanhaustein](https://github.com/stefanhaustein), [@Haruka0522](https://github.com/Haruka0522), [@mpilone](https://github.com/mpilone), [@dariuszzbyrad](https://github.com/dariuszzbyrad), [@taartspi](https://github.com/taartspi), [@eitch](https://github.com/eitch), [@fdelporte](https://github.com/fdelporte).
30
+
31
+
All changes: https://github.com/Pi4J/pi4j/compare/2.8.0...3.0.1
32
+
33
+
## V2
34
+
35
+
Requires Java 11, see [What's New in V2](/about/info-v2/) for more info.
36
+
37
+
### 2025-01-28 - V2.8.0
9
38
10
39
* Several code and JavaDoc improvements by adding the checkstyle plugin.
11
40
* Improvements in loading the Mock providers to build and test Pi4J on a Raspberry Pi.
@@ -27,7 +56,7 @@ Special thanks to [Dariusz Zbyrad](https://github.com/dariuszzbyrad) for joining
27
56
28
57
All changes: https://github.com/Pi4J/pi4j/compare/2.7.0...2.8.0
29
58
30
-
## 2025-01-28 - V2.8.0
59
+
###2025-01-28 - V2.8.0
31
60
32
61
* Several code and JavaDoc improvements by adding the checkstyle plugin.
33
62
* Improvements in loading the Mock providers to build and test Pi4J on a Raspberry Pi.
@@ -49,7 +78,7 @@ Special thanks to [Dariusz Zbyrad](https://github.com/dariuszzbyrad) for joining
49
78
50
79
All changes: https://github.com/Pi4J/pi4j/compare/2.7.0...2.8.0
51
80
52
-
## 2024-10-03 - V2.7.0
81
+
###2024-10-03 - V2.7.0
53
82
54
83
* Libraries are loaded depending on the platform, by calling `BoardInfoHelper.runningOnRaspberryPi()`.
55
84
*`BoardModel` has been extended with 2Gb Raspberry Pi 5, Raspberry Pi Pico 2, and extra board codes for the Compute Module 4.
@@ -72,7 +101,7 @@ Thanks to contributions by [@ylexus](https://github.com/ylexus), [@mores](https:
72
101
73
102
All changes: https://github.com/Pi4J/pi4j/compare/2.6.1...2.7.0
74
103
75
-
## 2024-07-29 - V2.6.1
104
+
###2024-07-29 - V2.6.1
76
105
77
106
This is a minor bug fix release to allow a smoother integration in a Spring Boot Starter by allowing to run on PC for testing without initialization errors and with reduced logging of the I2C Mock plugin.
78
107
@@ -81,7 +110,7 @@ This is a minor bug fix release to allow a smoother integration in a Spring Boot
81
110
82
111
All changes: https://github.com/Pi4J/pi4j/compare/2.6.0...2.6.1
83
112
84
-
## 2024-04-29 - V2.6.0
113
+
###2024-04-29 - V2.6.0
85
114
86
115
* New hardware PWM provider added to the GpioD plugin, see:
87
116
*[Blog: PWM Hardware Support on RPi5](https://pi4j.com/blog/2024/20240423_pwm_rpi5/).
@@ -103,13 +132,13 @@ Make sure to also read the interviews with [Robert von Burg](https://pi4j.com/bl
103
132
104
133
All changes: https://github.com/Pi4J/pi4j/compare/2.5.1...2.6.0
105
134
106
-
## 2024-03-18 - V2.5.1
135
+
###2024-03-18 - V2.5.1
107
136
108
137
Sorry! Because of a configuration error, the wrong native code is included in 2.5.0 for the new GpioD Provider. But [thanks to the lightning fast action](https://github.com/Pi4J/pi4j/commit/6ac458ec2d9b38a20b2195f4ecc03a65fbdebff7) of [Robert von Burg](https://github.com/eitch) we have a fixed version for you to enjoy :-)
109
138
110
139
All changes: https://github.com/Pi4J/pi4j/compare/2.5.0...2.5.1
111
140
112
-
## 2024-03-18 - V2.5.0
141
+
###2024-03-18 - V2.5.0
113
142
114
143
With over 100 commits from multiple branches, this is a major release with many improvements! With many thanks to the core team ([Robert von Burg](https://github.com/eitch), [Tom Aarts](https://github.com/taartspi)), and a major addition of [Alexander Liggesmeyer](https://github.com/alex9849), Pi4J is again lifted to a higher level!
115
144
@@ -119,7 +148,7 @@ You can find out [more about Alexander in this blog post](/blog/2024/20240318_in
119
148
The new GpioD Provider needs the latest Raspberry Pi OS version (`Debian GNU/Linux 12 (bookworm)`).
120
149
{{% /notice %}}
121
150
122
-
### Changes in 2.5.0
151
+
####Changes in 2.5.0
123
152
124
153
* A new GpioD Provider adds **support for the Raspberry Pi 5**.
@@ -138,11 +167,11 @@ The new GpioD Provider needs the latest Raspberry Pi OS version (`Debian GNU/Lin
138
167
139
168
All changes: https://github.com/Pi4J/pi4j/compare/2.4.0...2.5.0
140
169
141
-
### Known Issue
170
+
####Known Issue
142
171
143
172
*_java.io.IOException: Remote I/O error java.base/java.io.RandomAccessFile.writeBytes(Native Method). Using linuxfs-i2c, dependent upon i2c operations this exception can occur_: If the program initially uses read or write, and later uses readRegister or writeRegister there is no exception. However, if the program initially uses readRegister or writeRegister subsequent write or read may encounter this exception. For more info and the temporary fix, check [#335](https://github.com/Pi4J/pi4j/issues/335).
144
173
145
-
## 2023-10-24 - V2.4.0
174
+
###2023-10-24 - V2.4.0
146
175
147
176
* Extended LinuxFS plugin
148
177
* PWM provider
@@ -167,7 +196,7 @@ Thanks to [@GeVanCo](https://github.com/GeVanCo), [@MMMMMNG](https://github.com/
167
196
168
197
All changes: https://github.com/Pi4J/pi4j/compare/2.3.0...2.4.0
169
198
170
-
## 2023-02-06 - V2.3.0
199
+
###2023-02-06 - V2.3.0
171
200
172
201
* Improvements for PIGPIO.gpioCfgInterfaces by [@bwaldvogel](https://github.com/bwaldvogel).
173
202
* New i2c interface to support multibyte register address by [@taartspi](https://github.com/taartspi).
@@ -176,7 +205,7 @@ All changes: https://github.com/Pi4J/pi4j/compare/2.3.0...2.4.0
176
205
177
206
All changes: https://github.com/Pi4J/pi4j/compare/2.2.1...2.3.0
178
207
179
-
## 2022-10-17 - V2.2.1
208
+
###2022-10-17 - V2.2.1
180
209
181
210
Multiple fixes by [@taartspi](https://github.com/taartspi):
182
211
@@ -187,17 +216,17 @@ Multiple fixes by [@taartspi](https://github.com/taartspi):
187
216
188
217
All changes: https://github.com/Pi4J/pi4j/compare/2.2.0...2.2.1
189
218
190
-
## 2022-08-30 - V2.2.0
219
+
###2022-08-30 - V2.2.0
191
220
192
221
What an amazing achievement! No major issues were found in the previous release, but several small fixes were added by more people than ever before in the Pi4J-history. This is a real confirmation of the openness of this project and how a community can work together to further improve a project.
193
222
194
223
A big thank you to everyone who experimented with Pi4J, took part in the discussions, filed an issue, created a merge request, added examples,...!
195
224
196
-
### New example implementations
225
+
####New example implementations
197
226
198
227
Thanks to the work of FHNW students and @taartspi, the list of available example implementations has become larger and larger. We even moved them to their own section of this documentation website! Take a look at [Example implementations](/examples/) if you need a quick-start to use a buzzer, camera, LED strip, TCA9548, MCP4725,... or any of the other examples.
199
228
200
-
### Changes in V2.2.0
229
+
####Changes in V2.2.0
201
230
202
231
Multiple improvements were added in this release (and others are already in progress for the next one!):
203
232
@@ -213,6 +242,6 @@ Multiple improvements were added in this release (and others are already in prog
213
242
214
243
All the differences can be checked by comparing with the previous release 2.1.1 via [this link](https://github.com/Pi4J/pi4j/compare/2.1.1...2.2.0).
215
244
216
-
## Earlier release notes
245
+
## V1
217
246
218
-
Release notes of the previous releases of Pi4J V2+ are available on [github.com/Pi4J/pi4j/releases](https://github.com/Pi4J/pi4j/releases).
247
+
Up till version 1.3.0 requires Java 8, while version 1.4.0 requires Java 11. See [Info about V1](/about/info-v1/) for more info.
0 commit comments