Frank Delporte (@frankdelporte) is a Java developer, blogger, author of "Getting started with Java on Raspberry Pi", and contributor to Pi4J. Frank blogs about his experiments with Java, sometimes combined with electronic components, on the Raspberry Pi.
As part of the Foojay Virtual OpenJDK 17+ JUG Tour, I was asked to present the state of Java and JavaFX 17 on the Raspberry Pi.
So, a perfect opportunity to freshen up my #JavaOnRaspberryPi presentation with some hot-off-the-press versions.
The Pi4J Project was started in 2012 by Robert Savage, the same year the Raspberry Pi was introduced.
After long rework, the Pi4J library (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) has taken a big step with the first release of the V.2.
Although a lot of universities and high schools focus on Python and C# in their program, there are luckily a lot of others who go “full Java”.
Don’t get me wrong, I definitely don’t want to start a “programming-languages-war”, but Java is the language I used myself more than any other for the last 10 years.
Setting up a new project or building a proof-of-concept for a new idea, is a matter of hours. And there is always a solution for the problem I need to solve.
This is probably true for each developer who has enough experience in the language used the most. But having used and experimented with many other languages, I still keep returning to my “one true love”, being Java, as it always delivers the result I’m aiming for, with the right amount of code to be readable, understandable, and testable!
Since Java switched to a 6-month release cycle, JavaFX has done the same, so next version will be number 17.
Keep in mind, although Java and JavaFX are on the same version-number, you can still use Java 11 and combine it with the JavaFX 17 runtime if you want to benefit from its improvements. Up till now, there were no breaking changes in either of the frameworks which force you to use a Java-version higher than 11.
Here on Foojay.io, you can find already a long list of articles about Java on the Raspberry Pi.
As you may know, already I’m a big fan of this combination. The Raspberry Pi on one side is a very cheap computer that allows you to experiment with electronic components thanks to the Pi4J library.
And on the other hand, JavaFX is the ideal framework to build user interfaces that can directly control these components, all in one application!
But maybe you don’t have / want to believe me? So let’s ask two experts what they think is the future of #JavaOnRaspberryPi.
- Raspberry Pi
Igor De Souza shares on his blog a lot fun and inspirational experiments with Java on Raspberry Pi. Some of those were already shared here on Foojay.io.
This time we want to highlight his work which combines a web app made with Spring and Thymeleaf, to control an LCD display connected to a Raspberry PI.
Combined with an inexpensive touch screen, the Raspberry Pi makes for a perfect controller for a machine or game console.
Let’s see how we can use Java and JavaFX to build a test application that also communicates with the pins of the Raspberry Pi to control a LED.
- Raspberry Pi
- VS Code
Recently we published a full getting started guide for Java with VS Code together with a list of tips and plugins for Java development with Visual Studio Code.
But… did you know you can also use it on the ARM-processor-powered Raspberry Pi?
Until recently this was not available in an official version for the Raspberry Pi, but luckily Microsoft decided to release new versions with installers for both 32-bit and 64-bit Raspberry Pis.
Let’s install and test them!
- Raspberry Pi
The Raspberry Pi allows us to do a lot of electronic projects without having to wait for ordered components… or even buy them at all… by using virtual components.
Today, I want to show a way to play with a potentiometer. A potentiometer is a three-terminal resistor with a sliding or rotating contact that forms an adjustable voltage divider. If only two terminals are used, one end and the wiper, it acts as a variable resistor or rheostat.
In a previous post, Getting Started with FXGL Game Development, we already have taken a look at the FXGL game development framework developed by Almas Baimagambetov.
But, this game engine can also be used for other use cases. In this post, we will be building a system monitoring dashboard, which can run on a Raspberry Pi.
The dashboard can be used to keep an eye on any device that can report its state to a queue. And, for me personally, it finally solves the problem of finding the IP addresses of all my Raspberry Pi’s when my router decided to shuffle them.
- Raspberry Pi
Are you a serious Java-developer looking for a fun project?
Or want to learn something completely new and use your Java-knowledge to control electronic components?
Here we go with this small project to get you introduced to the world of electronics programming!