<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Embedded on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/category/embedded/</link><description>Recent content in Embedded on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 20 Jul 2026 06:03:00 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/category/embedded/index.xml" rel="self" type="application/rss+xml"/><item><title>First Test of Java on Banana Pi (ARM and RISC-V), Plus a Blinking LED with Pi4J</title><link>https://foojayio.github.io/website/today/first-test-of-java-on-banana-pi-arm-and-risc-v-plus-a-blinking-led-with-pi4j/</link><pubDate>Mon, 20 Jul 2026 06:03:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/first-test-of-java-on-banana-pi-arm-and-risc-v-plus-a-blinking-led-with-pi4j/</guid><description>&lt;hr&gt;
&lt;p&gt;As part of my 2026 learning goals around Java on RISC-V (see &lt;a href="https://webtechie.be/post/2026-01-07-x86-arm-riscv/" target="_blank" rel="noopener noreferrer"&gt;this post about x86 versus ARM versus RISC-V&lt;/a&gt;
), I&amp;rsquo;ve asked various suppliers to send me evaluation boards. I already published these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/first-experiments-with-java-on-the-lattepanda-iota-an-alternative-to-raspberry-pi/" target="_blank" rel="noopener noreferrer"&gt;LattePanda IOTA (x86)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/first-test-of-java-on-the-orange-pi-arm-and-risc-v/" target="_blank" rel="noopener noreferrer"&gt;OrangePi 5 Ultra (ARM) and OrangePi RV2 (RISC-V)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/first-test-of-java-on-the-starfive-visionfive-2-lite-risc-v/" target="_blank" rel="noopener noreferrer"&gt;VisionFive 2 Lite (RISC-V)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/first-test-of-java-on-beagleboards-arm-and-risc-v/" target="_blank" rel="noopener noreferrer"&gt;BeagleBoards (ARM and RISC-V)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/i-got-java-25-running-on-the-risc-v-beagleboard-beaglev-fire/" target="_blank" rel="noopener noreferrer"&gt;Java 25 on BeagleV-First&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;In this post: Banana Pi&amp;rsquo;s&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I got all these boards for free, but what I write here and show in the video is not controlled by the suppliers.&lt;/p&gt;</description></item><item><title>I Benchmarked Java on Single-Board Computers: Orange Pi 5 Ultra and Raspberry Pi 5 Lead the Pack</title><link>https://foojayio.github.io/website/today/java-benchmarks-on-single-board-computers/</link><pubDate>Wed, 04 Mar 2026 06:52:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/java-benchmarks-on-single-board-computers/</guid><description>&lt;hr&gt;
&lt;p&gt;In my &amp;ldquo;Java on Single Board Computers&amp;rdquo; series, I already published several posts and videos in which I unpack the board, connect it for the first time, and try to install and run some simple Java code. In this post, I want to share some benchmarks of Java on these boards to get a better idea of the performance we can expect from Java on these platforms.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/efLS8pBtqZ0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;p&gt;Already published in this series:&lt;/p&gt;</description></item><item><title>I Got Java 25 Running on the RISC-V BeagleBoard BeagleV-Fire</title><link>https://foojayio.github.io/website/today/i-got-java-25-running-on-the-risc-v-beagleboard-beaglev-fire/</link><pubDate>Wed, 25 Feb 2026 06:04:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/i-got-java-25-running-on-the-risc-v-beagleboard-beaglev-fire/</guid><description>&lt;p&gt;After my initial struggles with the BeagleV-Fire in a &lt;a href="https://webtechie.be/post/2026-02-10-first-test-beagleboard-java/" target="_blank" rel="noopener noreferrer"&gt;previous video&lt;/a&gt;
, I succeeded in getting Java 25 running on RISC-V-powered BeagleV-Fire! Let me walk you through the journey and the steps I took to make it work.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/p08u_g7hFwE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;h2 id="h2-0-the-challenge"&gt;The Challenge&lt;/h2&gt;
&lt;p&gt;In my earlier &lt;a href="https://webtechie.be/post/2026-02-10-first-test-beagleboard-java/" target="_blank" rel="noopener noreferrer"&gt;blog post and video about several BeagleBoards&lt;/a&gt;
, I demonstrated that Java, JavaFX, and even Pi4J worked perfectly. That&amp;rsquo;s expected, since ARM processors, like those in Raspberry Pi boards, have run Java reliably for years.&lt;/p&gt;</description></item><item><title>First Test of Java on BeagleBoards (ARM and RISC-V)</title><link>https://foojayio.github.io/website/today/first-test-of-java-on-beagleboards-arm-and-risc-v/</link><pubDate>Wed, 18 Feb 2026 07:10:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/first-test-of-java-on-beagleboards-arm-and-risc-v/</guid><description>&lt;p&gt;As part of my 2026 learning goals around Java on RISC-V (see &lt;a href="https://webtechie.be/post/2026-01-07-x86-arm-riscv/" target="_blank" rel="noopener noreferrer"&gt;this post about x86 versus ARM versus RISC-V&lt;/a&gt;
), I&amp;rsquo;ve asked various suppliers to send me evaluation boards. I already published these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/2025-11-25-first-test-lattepanda-iota-with-ubuntu-and-java/" target="_blank" rel="noopener noreferrer"&gt;LattePanda IOTA (x86)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/2026-01-12-first-test-orangepi-java/" target="_blank" rel="noopener noreferrer"&gt;OrangePi 5 Ultra (ARM) and OrangePi RV2 (RISC-V)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://webtechie.be/post/2026-01-16-first-test-visionfive-java/" target="_blank" rel="noopener noreferrer"&gt;VisionFive 2 Lite (RISC-V)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;In this post: BeagleBoards (ARM and RISC-V)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I got all these boards for free, but what I write here and show in the video is not controlled by BeagleBoard or one of the other suppliers.&lt;/p&gt;</description></item><item><title>First Test of Java on the VisionFive 2 Lite (RISC-V</title><link>https://foojayio.github.io/website/today/first-test-of-java-on-the-visionfive-2-lite-risc-v/</link><pubDate>Wed, 04 Feb 2026 07:59:16 +0000</pubDate><guid>https://foojayio.github.io/website/today/first-test-of-java-on-the-visionfive-2-lite-risc-v/</guid><description>&lt;p&gt;As part of my 2026 learning goals around Java on RISC-V (see &lt;a href="https://foojayio.github.io/website/today/java-on-single-board-computers-x86-vs-arm-vs-risc-v/"&gt;this post about x86 versus ARM versus RISC-V&lt;/a&gt;
), I&amp;rsquo;ve asking various suppliers to send me evaluation boards. I already published about two and adding a third one now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/first-experiments-with-java-on-the-lattepanda-iota/"&gt;LattePanda IOTA&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/first-test-of-java-on-the-orange-pi-arm-and-risc-v/"&gt;OrangePi 5 Ultra and OrangePi RV2&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;In this post: StarFive VisionFive 2 Lite&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I got all these boards for free, but what I write here and show in the video is not controlled by StarFive or one of the other suppliers.&lt;/p&gt;</description></item><item><title>Java on Single Board Computers: x86 vs ARM vs RISC-V</title><link>https://foojayio.github.io/website/today/java-on-single-board-computers-x86-vs-arm-vs-risc-v/</link><pubDate>Fri, 23 Jan 2026 06:17:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/java-on-single-board-computers-x86-vs-arm-vs-risc-v/</guid><description>&lt;p&gt;Ever since I started my #JavaOnRaspberryPi journey in 2019, which resulted in my book &amp;ldquo;&lt;a href="https://webtechie.be/books/" target="_blank" rel="noopener noreferrer"&gt;Getting Started with Java on the Raspberry Pi&lt;/a&gt;
&amp;rdquo;, I&amp;rsquo;ve been fascinated with these tiny, inexpensive computers. For 2026, I&amp;rsquo;ve set one of my goals to experiment with Java on various Single-Board Computers (SBC), going beyond my &amp;ldquo;Raspberry Pi comfort zone.&amp;rdquo; The market is flooded with SBCs ranging from budget boards (tens of euros) to powerhouses (hundreds of euros). One of the reasons of this price range is the difference between the processors they use. Raspberry Pi uses an ARM processor, but RISC-V is gaining momentum, while Intel maintains its presence. So before I start experimenting, now is the perfect time to compare these three processor families and understand their differences.&lt;/p&gt;</description></item><item><title>Not a Lucid Web3 Dream Anymore: x402, ERC-8004, A2A, and The Next Wave of AI Commerce</title><link>https://foojayio.github.io/website/today/not-a-lucid-web3-dream-anymore-x402-erc-8004-a2a-and-the-next-wave-of-ai-commerce/</link><pubDate>Fri, 09 Jan 2026 16:05:58 +0000</pubDate><guid>https://foojayio.github.io/website/today/not-a-lucid-web3-dream-anymore-x402-erc-8004-a2a-and-the-next-wave-of-ai-commerce/</guid><description>&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/not-a-lucid-web3-dream-anymore-x402-erc-8004-a2a-and-the-next-wave-of-ai-commerce/daydreams-scaled.jpg" alt="DayDreams" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This article is for technically savvy readers, especially developers, protocol designers, and product teams working with AI agents, APIs, or crypto rails, who want a clear view of how these areas connect.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;It explains how x402, ERC-8004, and agent discovery layers turn APIs and agents into small usage-based businesses, and what that means for real systems over the next 1&amp;ndash;3 years.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3 id="h3-0-vocabulary-for-this-article"&gt;Vocabulary for this article&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;In this article, I use the term &lt;em&gt;micro business&lt;/em&gt; for a very small overall business, and &lt;em&gt;nano business&lt;/em&gt; for a single x402-priced endpoint or agent that earns on its own from per-call payments in stablecoins.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AP2 (Agent Payment Protocol):&lt;/strong&gt; AP2 defines how agents pay each other. It standardizes how a service quotes a price, how payment is confirmed, and how both sides record what was bought, so payments fit directly into automated agent workflows. In practice, it is a protocol that lets one machine pay another machine for work, without a human in the loop.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A2A (Agent-to-Agent communication):&lt;/strong&gt; A2A covers how agents talk, pass context, and coordinate work. It lets agents call each other, exchange structured messages, and chain tasks instead of acting as isolated scripts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;x402:&lt;/strong&gt; x402 is an HTTP-based payment protocol for APIs. A server responds with status &lt;code&gt;402 Payment Required&lt;/code&gt;, the price, and a payment route, and the client pays by using stablecoins on-chain and then retries the request to get the result.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ERC-8004 (8004):&lt;/strong&gt; ERC-8004 standard is an on-chain registry for agents. It gives each agent an identity and a place to store reputation data, so other agents and tools can decide whom to trust and which services to call.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="h2-1-foreword"&gt;Foreword&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;x402&lt;/strong&gt; and &lt;strong&gt;ERC-8004&lt;/strong&gt; .&lt;/p&gt;</description></item><item><title>First Experiments with Java on the LattePanda IOTA: An Alternative to Raspberry Pi?</title><link>https://foojayio.github.io/website/today/first-experiments-with-java-on-the-lattepanda-iota/</link><pubDate>Thu, 11 Dec 2025 09:13:14 +0000</pubDate><guid>https://foojayio.github.io/website/today/first-experiments-with-java-on-the-lattepanda-iota/</guid><description>&lt;p&gt;After years of experimenting with Raspberry Pi boards, Java, JavaFX, and &lt;a href="https://www.pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt;
 to control electronics, I wanted to explore whether my knowledge and experience could be applied to similar boards from other providers. There are many alternatives available these days, based on ARM, Intel processors, and RISC-V architectures.&lt;/p&gt;
&lt;p&gt;I reached out to several suppliers to see if I could get evaluation copies, and I&amp;rsquo;m happy to share that I received my first box from DFRobot containing the &lt;a href="https://www.dfrobot.com/product-2989.html" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;LattePanda IOTA&lt;/strong&gt;&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>foojay – a place for friends of OpenJDKJava 21+ on Raspberry Pi Zero 2 is Back In Business</title><link>https://foojayio.github.io/website/today/java-21-on-raspberry-pi-zero-2-is-back-in-business/</link><pubDate>Thu, 04 Dec 2025 08:46:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/java-21-on-raspberry-pi-zero-2-is-back-in-business/</guid><description>&lt;p&gt;As described before on &lt;a href="https://webtechie.be/post/2025-06-25-java-21-not-working-on-zero-2/" target="_blank" rel="noopener noreferrer"&gt;Java 21+ Not Working on Raspberry Pi Zero 2&lt;/a&gt;
, a problem appeared to execute Java code on the Raspberry Pi Zero 2 with OpenJDK 21 or higher. Reason: in OpenJDK 21 the Just-In-Time (JIT) compiler has been improved, but this change doesn&amp;rsquo;t work correctly on the ARM Cortex-A53 processor as used in the Zero 2. It&amp;rsquo;s another type of processor compared to, for instance, the Raspberry Pi 4 (Cortex-A72) and 5 (Cortex-A76).&lt;/p&gt;</description></item><item><title>Java 21+ Not Working on the Raspberry Pi Zero 2</title><link>https://foojayio.github.io/website/today/java-21-not-working-on-the-raspberry-pi-zero-2/</link><pubDate>Wed, 02 Jul 2025 07:46:09 +0000</pubDate><guid>https://foojayio.github.io/website/today/java-21-not-working-on-the-raspberry-pi-zero-2/</guid><description>&lt;p&gt;This story is about how &amp;ldquo;Write Once, Run Anywhere&amp;rdquo; got broken in a specific use case. It reveals the complexity of maintaining this &amp;ldquo;Run Anywhere&amp;rdquo; principle. At the same time, it shows how the OpenJDK community already detected this issue and has a fix available for the next update.&lt;/p&gt;
&lt;h2 id="h2-0-problem-on-raspberry-pi-zero-2"&gt;Problem on Raspberry Pi Zero 2&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.pi4j.com/about/team/" target="_blank" rel="noopener noreferrer"&gt;Dieter Holz&lt;/a&gt;
&lt;/strong&gt; was experimenting with Pi4J V3 on a Raspberry Pi Zero 2. Because this version requires Java 21 or newer, he upgraded his OS to a newer Java version and found out that no Java code could be executed. He tried with Java 21 and 24, and neither worked correctly, although Java 17 runs without problems.&lt;/p&gt;</description></item><item><title>Pi4J Welcomes Java 21 on the Raspberry Pi</title><link>https://foojayio.github.io/website/today/pi4j-welcomes-java-21-on-the-raspberry-pi/</link><pubDate>Thu, 20 Feb 2025 10:49:07 +0000</pubDate><guid>https://foojayio.github.io/website/today/pi4j-welcomes-java-21-on-the-raspberry-pi/</guid><description>&lt;p&gt;&lt;strong&gt;Pi4J provides 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.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The project &amp;ldquo;hides&amp;rdquo; the complexity to interact with electronic components through different ways of communication (SPI, I2C, PWM,&amp;hellip;) by providing Java interfaces on top of native libraries that can interact with the GPIO (General Purpose Input/Output) pins on the Raspberry Pi.
&lt;img src="https://foojayio.github.io/website/today/pi4j-welcomes-java-21-on-the-raspberry-pi/pi4j-overview-1024x427.jpg" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;Recently, the development of the Pi4J library faced a decision point: &amp;ldquo;&lt;em&gt;Should we stick to Java 11 for existing projects and old Raspberry Pi&amp;rsquo;s (&lt;a href="https://www.pi4j.com/documentation/java-for-arm/" target="_blank" rel="noopener noreferrer"&gt;with ARMv6&lt;/a&gt;
), versus moving on and making use of better and more performant Java code with the latest Long Term Support (LTS) version?&lt;/em&gt;&amp;rdquo;&lt;/p&gt;</description></item><item><title>Azul Brings Java from Edge to Cloud</title><link>https://foojayio.github.io/website/today/azul-brings-java-from-edge-to-cloud/</link><pubDate>Fri, 27 Sep 2024 11:30:22 +0000</pubDate><guid>https://foojayio.github.io/website/today/azul-brings-java-from-edge-to-cloud/</guid><description>&lt;p&gt;In Part 1 of this series, &amp;ldquo;&lt;a href="https://foojayio.github.io/website/today/a-fresh-look-at-embedded-java/"&gt;A Fresh Look at Embedded Java&lt;/a&gt;
,&amp;rdquo; we explored the use of Java for embedded use cases.&lt;/p&gt;
&lt;p&gt;Azul and its Zulu Build of OpenJDK (Zulu) are the ideal partners in this part of the software world.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s expand and look at the cloud part of a typical end-to-end solution with sensors, edge devices, client applications, and cloud services.
&lt;img src="https://foojayio.github.io/website/today/azul-brings-java-from-edge-to-cloud/edge-diagram.png" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;h2 id="Azul-Platform-Core-for-Edge-Devices-and-Client-Applications"&gt;Azul Platform Core for edge devices and client applications&lt;/h2&gt;
&lt;p&gt;Because Java delivers fast development speed thanks to its amazing methods and tools and its impressive performance in handling massive amounts of data, it&amp;rsquo;s the ideal programming language for building applications for edge devices that collect data from various sensors.&lt;/p&gt;</description></item><item><title>A Fresh Look at Embedded Java</title><link>https://foojayio.github.io/website/today/a-fresh-look-at-embedded-java/</link><pubDate>Wed, 11 Sep 2024 07:37:10 +0000</pubDate><guid>https://foojayio.github.io/website/today/a-fresh-look-at-embedded-java/</guid><description>&lt;p&gt;&lt;strong&gt;Since its inception, Java has promised to &amp;ldquo;Write Once, Run Anywhere.&amp;rdquo; In its early days, the main focus of Java was embedded devices, such as set-top boxes and televisions.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But soon, it became one of the leading programming languages powering high-scale business applications that can handle massive amounts of transactions with high throughput.&lt;/p&gt;
&lt;p&gt;Because those use cases are very visible and there are a lot of job opportunities within that area, we tend to forget that Java on embedded is also still very much alive and kicking!
&lt;img src="https://foojayio.github.io/website/today/a-fresh-look-at-embedded-java/fresh-look-embedded-java-1024x400.png" alt="" loading="lazy"&gt;
&lt;/p&gt;</description></item><item><title>Foojay Podcast #55: Embedded Java, Part 2</title><link>https://foojayio.github.io/website/today/foojay-podcast-55/</link><pubDate>Mon, 01 Jul 2024 08:21:42 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-55/</guid><description>&lt;p&gt;As a backend developer, you may not realize that Java was initially born on embedded devices like set-top boxes and gateways. We discussed this topic for the first time almost three years ago in &lt;a href="https://foojayio.github.io/website/today/foojay-podcast-2/"&gt;Foojay Podcast #2 with James Gosling, Johan Vos, Erik Costlow, and Frank Delporte&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;In this episode #55, we look into the history of the Java Micro Edition and how things evolved. Nowadays, with processors becoming increasingly powerful, we can run the exact same Java runtime on any Linux system, from the biggest cloud servers to the smallest Raspberry Pi Zero.&lt;/p&gt;</description></item><item><title>Evolutions in the Pi4J library by Tom Aarts and Robert von Burg</title><link>https://foojayio.github.io/website/today/evolutions-in-the-pi4j-library-by-tom-aarts-and-robert-von-burg/</link><pubDate>Fri, 24 May 2024 12:16:02 +0000</pubDate><guid>https://foojayio.github.io/website/today/evolutions-in-the-pi4j-library-by-tom-aarts-and-robert-von-burg/</guid><description>&lt;p&gt;Multiple improvements have been implemented in the new release, V2.6.0 (2024-04-29) of Pi4J, 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 blog post will give you a quick overview and an interview with Tom Aarts and Robert von Burg, two of the main contributors.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#i2c-improvements"&gt;Ongoing I2C Improvements&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#hardware-pwm"&gt;PWM Hardware Support on Raspberry Pi 5&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#board-info"&gt;New Class to Get Board Info&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#interview-robert"&gt;Interview with Robert von Burg&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#interview-tom"&gt;Interview with Tom Aarts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="i2c-improvements"&gt;Ongoing I2C Improvements&lt;/h2&gt;
&lt;p&gt;Robert von Burg worked on improvements to the I2C implementation in Pi4J. The changes are in &lt;a href="https://github.com/Pi4J/pi4j-v2/pull/351/files" target="_blank" rel="noopener noreferrer"&gt;pull request #351&lt;/a&gt;
 and allow atomically executing multiple I2C calls in a thread safely, plus other improvements. See &lt;a href="https://pi4j.com/blog/2024/20240418_i2c_improvements/" target="_blank" rel="noopener noreferrer"&gt;this blog post for more details&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Java on Raspberry Pi 5 with Pi4J</title><link>https://foojayio.github.io/website/today/java-on-raspberry-pi-5-with-pi4j/</link><pubDate>Sat, 06 Apr 2024 11:08:20 +0000</pubDate><guid>https://foojayio.github.io/website/today/java-on-raspberry-pi-5-with-pi4j/</guid><description>&lt;p&gt;In October 2023, &lt;a href="https://www.raspberrypi.com/news/introducing-raspberry-pi-5/" target="_blank" rel="noopener noreferrer"&gt;Raspberry Pi announced version 5&lt;/a&gt;
 of its affordable single-board computer with 4GB (60$) or 8GB (80$) of memory.&lt;/p&gt;
&lt;p&gt;Soon after the first boards were delivered, it turned out the Pi4J library wasn&amp;rsquo;t compatible with this new board. Pi4J is a library to create Java applications for the Raspberry Pi that can interact with electronic components through the GPIO pins.&lt;/p&gt;
&lt;p&gt;But because the Raspberry Pi 5 uses a new approach, with the &lt;a href="https://www.raspberrypi.com/documentation/microcontrollers/rp1.html" target="_blank" rel="noopener noreferrer"&gt;new RP1 chip&lt;/a&gt;
, to connect the SoC with these pins. Thanks to the RP1, it was possible to seperate GPIO, SPI, I2C, USB, ethernet,&amp;hellip; from the SoC to make it easier to develop newer boards. However, this new approach wasn&amp;rsquo;t supported by the PiGpio library used in Pi4J V2.&lt;/p&gt;</description></item><item><title>Controlling LED Strips with Java and JBang</title><link>https://foojayio.github.io/website/today/controlling-led-strips-with-java-and-jbang/</link><pubDate>Mon, 22 Jan 2024 18:08:51 +0000</pubDate><guid>https://foojayio.github.io/website/today/controlling-led-strips-with-java-and-jbang/</guid><description>&lt;p&gt;One of the most &amp;ldquo;fancy&amp;rdquo; electronic components is definitely&amp;hellip; a LED strip. It&amp;rsquo;s really cool to control a long strip of lights with only a few lines of code.&lt;/p&gt;
&lt;p&gt;But, there is a problem. The timing of the signals is crucial to reliably control these strips. Both Python and Java on a Raspberry Pi can struggle with these timings as they are running on Linux, a non-real-time operating system.&lt;/p&gt;
&lt;p&gt;So, for instance, pauses in the garbage collection of the Java virtual machine, or any glitch in the operating system can cause unexpected effects on the LED strips. That&amp;rsquo;s why in most projects, a microcontroller (Arduino, Raspberry Pi Pico, ESP32,&amp;hellip;) is used to drive the LED strip.&lt;/p&gt;</description></item><item><title>Pi4J Operating System for Java development on Raspberry Pi</title><link>https://foojayio.github.io/website/today/pi4j-operating-system-for-java-development-on-raspberry-pi/</link><pubDate>Fri, 11 Aug 2023 10:19:50 +0000</pubDate><guid>https://foojayio.github.io/website/today/pi4j-operating-system-for-java-development-on-raspberry-pi/</guid><description>&lt;p&gt;&lt;strong&gt;Yes, the Raspberry Pi Operating System is awesome! But the Pi4J project made it even more awesome by adding &amp;ldquo;goodies&amp;rdquo; for Java developers! Pi4J OS is not yet another OS, but the official Raspberry Pi OS, with additional tools and preconfigurations to make it the ideal OS for any Java and JavaFX developer who wants to use a Raspberry Pi.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The project is shared on &lt;a href="https://github.com/Pi4J/pi4j-os" target="_blank" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
 and documented on &lt;a href="https://pi4j.com/pi4j-os/" target="_blank" rel="noopener noreferrer"&gt;the Pi4J website&lt;/a&gt;
. The zip-compressed archives of released versions can be downloaded from &lt;a href="https://pi4j-download.com" target="_blank" rel="noopener noreferrer"&gt;pi4j-download.com&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Temperature, humidity, and pressure in BME280 Sensors with Java</title><link>https://foojayio.github.io/website/today/reading-the-temperature-humidity-and-pressure-from-a-bme280-sensor-with-java-pi4j-i2c-spi-and-jbang/</link><pubDate>Thu, 03 Aug 2023 07:16:36 +0000</pubDate><guid>https://foojayio.github.io/website/today/reading-the-temperature-humidity-and-pressure-from-a-bme280-sensor-with-java-pi4j-i2c-spi-and-jbang/</guid><description>&lt;p&gt;To make it as easy as possible to get started with Java on the Raspberry Pi to interact with electronic components, I started a &lt;a href="https://pi4j.com/examples/jbang/" target="_blank" rel="noopener noreferrer"&gt;new section on the Pi4J website with JBang examples&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In this tutorial, I want to show you how you can read the temperature, humidity, and pressure from a BME280 Sensor.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="h2-0-what-is-used"&gt;What Is Used?&lt;/h2&gt;
&lt;p&gt;As explained on the websites of each project:&lt;/p&gt;
&lt;h3 id="h3-1-pi4j"&gt;Pi4J&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Foojay Podcast #22: When Profession and Fun Overlap</title><link>https://foojayio.github.io/website/today/foojay-podcast-22/</link><pubDate>Mon, 15 May 2023 07:47:29 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-22/</guid><description>&lt;p&gt;Let&amp;rsquo;s talk about programming for fun. Grab your Lego and robots, and let&amp;rsquo;s talk about STEM and STEAM!&lt;/p&gt;
&lt;p&gt;As a developer, we all get frustrated occasionally when a bug messes up our schedule, and we have to dive deep into the code to find a solution.&lt;/p&gt;
&lt;p&gt;But still, many of us keep coding in our free time as we love to do it and want to create amazing stuff.&lt;/p&gt;
&lt;p&gt;In this episode of the Foojay Podcast, we talk to volunteers from different organizations where coding is used to inspire children to become engineers or at least learn to make good use of computers and the tools around them.&lt;/p&gt;</description></item><item><title>Coroutines on the RaspberryPi (Pi4J-Kotlin)</title><link>https://foojayio.github.io/website/today/coroutines-on-the-raspberrypi-pi4j-kotlin/</link><pubDate>Sat, 01 Apr 2023 09:05:29 +0000</pubDate><guid>https://foojayio.github.io/website/today/coroutines-on-the-raspberrypi-pi4j-kotlin/</guid><description>&lt;p&gt;If you didn&amp;rsquo;t know already, &lt;a href="https://pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt;
 has had a &lt;a href="https://pi4j.com/kotlin/" target="_blank" rel="noopener noreferrer"&gt;Kotlin DSL&lt;/a&gt;
 for quite some time now.&lt;/p&gt;
&lt;p&gt;And I&amp;rsquo;m here to announce the &lt;a href="https://github.com/Pi4J/pi4j-kotlin/releases/tag/2.4.0" target="_blank" rel="noopener noreferrer"&gt;latest release &lt;code&gt;v2.4.0&lt;/code&gt;&lt;/a&gt;
 with a sack of additions and to tell you about all the good stuff that&amp;rsquo;s been added since the &lt;a href="https://foojayio.github.io/website/today/kotlin-on-the-raspberrypi-pi4j-kotlin/"&gt;first release&lt;/a&gt;
.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Coroutines {#h2-0-1-coroutines}&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;If the &lt;code&gt;pi4j { ... }&lt;/code&gt; wasn&amp;rsquo;t good enough for ya, and you want to use coroutines instead of weaving fat threads on your precious precious Pi, you can now use the new &lt;code&gt;pi4jAsync { ... }&lt;/code&gt; block&amp;mdash;It can do everything &lt;code&gt;pi4j { ... }&lt;/code&gt; does + you can run &lt;code&gt;suspend&lt;/code&gt;ed functions within.&lt;/p&gt;</description></item><item><title>Controlling a LED Strip with Pi4J and JBang</title><link>https://foojayio.github.io/website/today/controlling-a-led-strip-with-pi4j-and-jbang/</link><pubDate>Mon, 28 Nov 2022 13:07:06 +0000</pubDate><guid>https://foojayio.github.io/website/today/controlling-a-led-strip-with-pi4j-and-jbang/</guid><description>&lt;p&gt;In an earlier post here on Foojay.io, &lt;a href="https://foojayio.github.io/website/today/controlling-electronics-with-jbang-on-the-raspberry-pi/"&gt;JBang and Pi4J were used to control a LED and button connected to a Raspberry Pi&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;This week Robert von Burg, one of the main contributors of the Pi4J project, &lt;a href="https://mstdn.gsi.li/@eitch/109324090007015888" target="_blank" rel="noopener noreferrer"&gt;shared on Mastodon&lt;/a&gt;
 another project where a LED strip is controlled via I2C.&lt;/p&gt;
&lt;p&gt;This is the result, notice the Foojay.io startup artwork 😉&lt;/p&gt;
&lt;figure class="wp-block-embed is-type-video is-provider-vimeo wp-block-embed-vimeo wp-embed-aspect-16-9 wp-has-aspect-ratio"&gt;
 &lt;div class="wp-block-embed__wrapper"&gt;
 &lt;iframe title="Controlling a LED strip with Pi4J and JBang" src="https://player.vimeo.com/video/771087170?dnt=1&amp;amp;app_id=122963" width="500" height="281" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="h2-0-wiring"&gt;Wiring&lt;/h2&gt;
&lt;p&gt;The Raspberry Pi in the video is attached to a custom PCB used by &lt;a href="https://pi4j.com/featured-projects/soft-real-time-plc-written-in-strolch/" target="_blank" rel="noopener noreferrer"&gt;Robert in medical cabinets&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Kotlin on the RaspberryPi (Pi4J-Kotlin)</title><link>https://foojayio.github.io/website/today/kotlin-on-the-raspberrypi-pi4j-kotlin/</link><pubDate>Thu, 17 Nov 2022 13:37:18 +0000</pubDate><guid>https://foojayio.github.io/website/today/kotlin-on-the-raspberrypi-pi4j-kotlin/</guid><description>&lt;p&gt;&lt;a href="https://pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt;
 is considered the project that brought the JVM to the RaspberryPi.&lt;/p&gt;
&lt;p&gt;It has been up for more than a decade allowing developers to write sophisticated, high-level, yet simple software on the RaspberryPi.&lt;/p&gt;
&lt;p&gt;And we&amp;rsquo;re glad to make it even more simpler and powerful!&lt;/p&gt;
&lt;p&gt;For quite some years now Kotlin has been a most welcome language in the JVM ecosystem and the modern development toolchain.&lt;/p&gt;
&lt;p&gt;Many factors led to this great reality, most notable to me is Kotlin&amp;rsquo;s non-disruptive integration and seamless developer experience.&lt;/p&gt;</description></item><item><title>Pi4J V2.2.0 Released</title><link>https://foojayio.github.io/website/today/pi4j-v2-2-0-released/</link><pubDate>Wed, 31 Aug 2022 17:09:19 +0000</pubDate><guid>https://foojayio.github.io/website/today/pi4j-v2-2-0-released/</guid><description>&lt;p&gt;One year after &lt;a href="https://foojayio.github.io/website/today/pi4j-v-2-released/"&gt;the first release of V.2 of Pi4J&lt;/a&gt;
, a new release was published. Pi4J provides&lt;strong&gt;friendly object-oriented I/O API and implementation libraries for Java Programmers&lt;/strong&gt; to access the &lt;strong&gt;full I/O capabilities of the Raspberry Pi platform&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And what an amazing achievement with this new release! No major issues were found in the previous release, but several &lt;strong&gt;small fixes were added by more people than ever before in the Pi4J-history&lt;/strong&gt;. This is a real confirmation of the openness of this project and how a community can work together to further improve a project.&lt;/p&gt;</description></item><item><title>Blink a LED on Raspberry Pi with Vaadin</title><link>https://foojayio.github.io/website/today/blink-a-led-on-raspberry-pi-with-vaadin/</link><pubDate>Fri, 25 Mar 2022 14:44:02 +0000</pubDate><guid>https://foojayio.github.io/website/today/blink-a-led-on-raspberry-pi-with-vaadin/</guid><description>&lt;p&gt;As I&amp;rsquo;m becoming a senior developer, at least in terms of age, I&amp;rsquo;ve transitioned from one language to another.&lt;/p&gt;
&lt;p&gt;One of my main interests has always been clean, easy-to-understand UIs (User Interfaces). That journey started for me with &lt;strong&gt;Director&lt;/strong&gt; (to create multimedia CD-ROMs), &lt;strong&gt;Flash&lt;/strong&gt; website animation, and &lt;strong&gt;Flex&lt;/strong&gt; Rich Internet Applications (= &amp;ldquo;Flash on steroids&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;When I started developing with &lt;strong&gt;Java&lt;/strong&gt; over 10 years ago, we had some projects with the early versions of &lt;strong&gt;Vaadin&lt;/strong&gt; and &lt;strong&gt;JavaFX&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Controlling Electronics with JBang on the Raspberry Pi</title><link>https://foojayio.github.io/website/today/controlling-electronics-with-jbang-on-the-raspberry-pi/</link><pubDate>Mon, 21 Feb 2022 10:08:06 +0000</pubDate><guid>https://foojayio.github.io/website/today/controlling-electronics-with-jbang-on-the-raspberry-pi/</guid><description>&lt;p&gt;Want to get started with Java programming on the Raspberry Pi?&lt;/p&gt;
&lt;p&gt;JBang is a great way to create your first program to control electronic components connected to the GPIO pins.&lt;/p&gt;
&lt;h2 id="h2-0-what-is-jbang"&gt;What is JBang?&lt;/h2&gt;
&lt;p&gt;As described on their &lt;a href="https://www.jbang.dev/" target="_blank" rel="noopener noreferrer"&gt;website&lt;/a&gt;
:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;JBang lets Students, Educators and Professional Developers create, edit and run self-contained source-only Java programs with unprecedented ease.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Want to learn, explore or use Java instantly without setup?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Do you like Java but use python, groovy, kotlin or similar languages for scripts, experimentation and exploration?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Ever wanted to just be able to run Java from anywhere without any or very minimal setup?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Ever tried out Java 11+ support for running .java files directly in your shell but felt it was a bit too cumbersome?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;JBang lets you do all this!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Installing Java with SDKMAN on Raspberry Pi</title><link>https://foojayio.github.io/website/today/installing-java-with-sdkman-on-raspberry-pi/</link><pubDate>Mon, 07 Feb 2022 12:23:15 +0000</pubDate><guid>https://foojayio.github.io/website/today/installing-java-with-sdkman-on-raspberry-pi/</guid><description>&lt;p&gt;If you create a new SD card for a Raspberry Pi with the operating system, you can choose the &amp;ldquo;Raspberry Pi OS Full (32-bit)&amp;rdquo; edition, which includes Java 11. But a lot of the other available OS-versions don&amp;rsquo;t have Java included.&lt;/p&gt;
&lt;p&gt;There are many ways to install Java but, personally, I find &lt;a href="https://sdkman.io/" title="SDKMAN" target="_blank" rel="noopener noreferrer"&gt;SDKMAN&lt;/a&gt;
 the easiest one to use.&lt;/p&gt;
&lt;p&gt;It allows you to easily install a JDK, but also to switch between different versions.&lt;/p&gt;</description></item><item><title>Template to Get Started with Pi4J and JavaFX on Raspberry Pi</title><link>https://foojayio.github.io/website/today/template-to-get-started-with-pi4j-and-javafx-on-raspberry-pi/</link><pubDate>Thu, 13 Jan 2022 12:07:26 +0000</pubDate><guid>https://foojayio.github.io/website/today/template-to-get-started-with-pi4j-and-javafx-on-raspberry-pi/</guid><description>&lt;p&gt;The Pi4J project wants to be the starting point for everyone who wants to use Java on the Raspberry Pi, being it a headless, JavaFX-user interface and/or GPIO-controller project.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pi4J is intended to provide &lt;strong&gt;a friendly object-oriented I/O API and implementation libraries for Java Programmers&lt;/strong&gt; to access the &lt;strong&gt;full I/O capabilities of the Raspberry Pi platform&lt;/strong&gt; . This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to &lt;strong&gt;focus on implementing their application business logic&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Sending sensor data from Raspberry Pi Pico to HiveMQ Cloud</title><link>https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-3-sending-sensor-data-from-raspberry-pi-pico-to-hivemq-cloud/</link><pubDate>Wed, 05 Jan 2022 11:42:42 +0000</pubDate><guid>https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-3-sending-sensor-data-from-raspberry-pi-pico-to-hivemq-cloud/</guid><description>&lt;p&gt;In the previous two posts in this series, we used Java on the Raspberry Pi mini-computer to send sensor data to HiveMQ Cloud, and visualize it on a dashboard.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-1-send-sensor-data-to-hivemq-cloud-with-java-and-pi4j/"&gt;&amp;ldquo;Part 1: MQTT on Raspberry Pi, Send Sensor Data to HiveMQ Cloud with Java and Pi4J&amp;rdquo;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-2-using-mqtt-and-raspberry-pi-to-visualize-sensor-data-on-a-tilesfx-dashboard/"&gt;&amp;ldquo;Part 2: Using MQTT and Raspberry Pi to Visualize Sensor Data on a TilesFX Dashboard&amp;rdquo;&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now we are going to add some more data to our messaging system with another member of the Raspberry Pi family: the Pico, and add this new data to the JavaFX dashboard from part 2.&lt;/p&gt;</description></item><item><title>Java Modules in the Pi4J Project?</title><link>https://foojayio.github.io/website/today/java-modules-in-the-pi4j-project/</link><pubDate>Thu, 23 Dec 2021 15:28:39 +0000</pubDate><guid>https://foojayio.github.io/website/today/java-modules-in-the-pi4j-project/</guid><description>&lt;p&gt;Java modules have been a big discussion point before in many places.&lt;/p&gt;
&lt;p&gt;And this is now also causing some headaches in the Pi4J project&amp;hellip;&lt;/p&gt;
&lt;h2 id="h2-0-about-pi4j-v2"&gt;About Pi4J V2&lt;/h2&gt;
&lt;p&gt;The Pi4J project (started in 2012) aims to unite Java programming with electronics. By using the Pi4J dependency in a project, electronic components connected to the GPIO-pins (General Purpose Input/Output) of the Raspberry Pi can be controlled as objects in the Java code. Pi4J uses native libraries to control the GPIOs so you - as a programmer - donʼt need to be fully aware of all the &amp;ldquo;magic&amp;rdquo; that relates to hardware communication.&lt;/p&gt;</description></item><item><title>MQTT on Raspberry Pi (Part 2)</title><link>https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-2-using-mqtt-and-raspberry-pi-to-visualize-sensor-data-on-a-tilesfx-dashboard/</link><pubDate>Wed, 22 Dec 2021 14:58:21 +0000</pubDate><guid>https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-2-using-mqtt-and-raspberry-pi-to-visualize-sensor-data-on-a-tilesfx-dashboard/</guid><description>&lt;p&gt;In &lt;a href="https://webtechie.be/post/2021-12-10-mqtt-on-raspberry-pi-send-sensor-data-to-hivemq-cloud-with-java-and-pi4j/" target="_blank" rel="noopener noreferrer"&gt;the previous post&lt;/a&gt;
 we started our discovery of HiveMQ Cloud with Java on the Raspberry Pi. We created an application to send measurements of various sensors to the HiveMQ Cloud MQTT broker. Using an online websocket client we verified the transition of the messages, and could see the data being published to this online message queue.&lt;/p&gt;
&lt;p&gt;Now we will take the next step and subscribe to these topics to receive the data in a dashboard, created with JavaFX.&lt;/p&gt;</description></item><item><title>MQTT on Raspberry Pi: Sensor Data to HiveMQ Cloud with Java and Pi4J</title><link>https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-1-send-sensor-data-to-hivemq-cloud-with-java-and-pi4j/</link><pubDate>Wed, 15 Dec 2021 09:54:37 +0000</pubDate><guid>https://foojayio.github.io/website/today/mqtt-on-raspberry-pi-part-1-send-sensor-data-to-hivemq-cloud-with-java-and-pi4j/</guid><description>&lt;p&gt;A few years ago I did my first experiments with an MQTT server (Mosquitto) running on a Raspberry Pi to connect an Arduino and Raspberry Pi for &lt;a href="https://webtechie.be/post/2020-03-30-drumbooth-controller-with-java-javafx-raspberrypi-arduino/" target="_blank" rel="noopener noreferrer"&gt;the drumbooth of my son&lt;/a&gt;
. The full process is described in my book &lt;a href="https://webtechie.be/books/" target="_blank" rel="noopener noreferrer"&gt;&amp;ldquo;Getting Started with Java on the Raspberry Pi&amp;rdquo;&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;In this series of articles we are going to take a different approach with an online MQTT-compatible service: &lt;a href="https://www.hivemq.com/mqtt-cloud-broker/" target="_blank" rel="noopener noreferrer"&gt;HiveMQ Cloud&lt;/a&gt;
. The biggest advantage: no need for an always-on server we must manage ourselves. Yes, Mosquitto runs on a inexpensive Raspberry Pi, but still we require to keep it up-and-running if we use it as the &amp;ldquo;central hub&amp;rdquo; to distribute data.&lt;/p&gt;</description></item><item><title>Announcement: Pi4J V.2 Released!</title><link>https://foojayio.github.io/website/today/pi4j-v-2-released/</link><pubDate>Mon, 30 Aug 2021 12:13:54 +0000</pubDate><guid>https://foojayio.github.io/website/today/pi4j-v-2-released/</guid><description>&lt;p&gt;After long rework, the Pi4J library (&lt;strong&gt;a friendly object-oriented I/O API and implementation libraries for Java Programmers&lt;/strong&gt; to access the &lt;strong&gt;full I/O capabilities of the Raspberry Pi platform&lt;/strong&gt;) has taken a big step with the first release of the V.2.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Pi4J Project&lt;/strong&gt; was started in &lt;strong&gt;2012&lt;/strong&gt; by &lt;strong&gt;&lt;a href="https://twitter.com/savageautomate" target="_blank" rel="noopener noreferrer"&gt;Robert Savage&lt;/a&gt;
&lt;/strong&gt; , the same year the Raspberry Pi was introduced as a tool to provide Java developers a simple and familiar object-oriented interface library to access the low-level I/O capabilities of the Raspberry Pi including &lt;strong&gt;GPIO&lt;/strong&gt; , &lt;strong&gt;I2C&lt;/strong&gt; , &lt;strong&gt;SPI&lt;/strong&gt; , &lt;strong&gt;PWM&lt;/strong&gt; , and &lt;strong&gt;Serial&lt;/strong&gt; communications.
&lt;img src="https://foojayio.github.io/website/today/pi4j-v-2-released/pi4j-overview-1024x427.jpg" alt="" loading="lazy"&gt;
 Pi4j program structure&lt;/p&gt;</description></item><item><title>Gluon Update, Dual Screen Raspberry Pi , IntelliJ JavaFX Project Wizard</title><link>https://foojayio.github.io/website/today/javafx-gluon-status-update-dual-screen-on-raspberry-pi-sample-intellij-new-javafx-project-wizard/</link><pubDate>Fri, 04 Jun 2021 07:27:41 +0000</pubDate><guid>https://foojayio.github.io/website/today/javafx-gluon-status-update-dual-screen-on-raspberry-pi-sample-intellij-new-javafx-project-wizard/</guid><description>&lt;p&gt;Last week, Johan Vos of Gluon, released a video with a status update of JavaFX. In this post we are going to take a deeper look into one of the announcements: dual screen support on Raspberry Pi.&lt;/p&gt;
&lt;h2 id="h2-0-announcements-by-gluon"&gt;Announcements by Gluon&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;</description></item><item><title>JavaFX Running in Kiosk Mode on the Raspberry Pi</title><link>https://foojayio.github.io/website/today/javafx-running-in-kiosk-mode-on-the-raspberry-pi/</link><pubDate>Tue, 27 Apr 2021 14:39:50 +0000</pubDate><guid>https://foojayio.github.io/website/today/javafx-running-in-kiosk-mode-on-the-raspberry-pi/</guid><description>&lt;p&gt;Combined with an inexpensive touch screen, the Raspberry Pi makes for a perfect controller for a machine or game console. Let&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;We have done something before already in the post &lt;a href="https://foojayio.github.io/website/today/light-up-your-christmas-tree-with-java-and-raspberry-pi/"&gt;&amp;ldquo;Light Up your Christmas Tree with Java and Raspberry Pi&amp;rdquo;&lt;/a&gt;
, so what&amp;rsquo;s new here?&lt;/p&gt;</description></item><item><title>Safe Writing to Files in IoT and Industrial Systems</title><link>https://foojayio.github.io/website/today/safe-writing-to-files-in-iot-and-industrial-systems/</link><pubDate>Thu, 11 Feb 2021 09:12:23 +0000</pubDate><guid>https://foojayio.github.io/website/today/safe-writing-to-files-in-iot-and-industrial-systems/</guid><description>&lt;p&gt;Especially on IoT devices, file corruption on shutdown is a common concern. This article discusses how to write to disk safely in Java, combining disk sync, shutdown hooks, and atomic renaming of files.&lt;/p&gt;
&lt;h3 id="h3-0-files-on-disk-can-still-easily-become-corrupted"&gt;Files On Disk Can Still Easily Become Corrupted&lt;/h3&gt;
&lt;p&gt;For performance optimization, file systems write to disks asynchronously resulting in potential corruption when a hard system shutdowns occurs through power off or crashes.&lt;/p&gt;
&lt;p&gt;As this has become a rare experience for desktop and server users, it comes as a surprise to many developers working on IoT devices and industrial computers that hard power cuts are a common operational scenario and storage is far less robust than expected.&lt;/p&gt;</description></item><item><title>Light Up your Christmas Tree with Java and Raspberry Pi</title><link>https://foojayio.github.io/website/today/light-up-your-christmas-tree-with-java-and-raspberry-pi/</link><pubDate>Wed, 23 Dec 2020 09:38:17 +0000</pubDate><guid>https://foojayio.github.io/website/today/light-up-your-christmas-tree-with-java-and-raspberry-pi/</guid><description>&lt;p&gt;Are you a serious Java-developer looking for a fun project?&lt;/p&gt;
&lt;p&gt;Or want to learn something completely new and use your Java-knowledge to control electronic components?&lt;/p&gt;
&lt;p&gt;Here we go with this small project to get you introduced to the world of electronics programming!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This post was originally published on &amp;ldquo;&lt;a href="https://www.javaadvent.com/" target="_blank" rel="noopener noreferrer"&gt;JVM &lt;strong&gt;Advent&lt;/strong&gt; - The JVM Programming &lt;strong&gt;Advent&lt;/strong&gt; Calendar&lt;/a&gt;
&amp;rdquo;, a month-long reading list of diverse Java-related articles. A nice addition to your daily read of Foojay!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>JavaFX 3D: A Look Back Through History &amp; Some Experiments</title><link>https://foojayio.github.io/website/today/javafx-3d-a-look-back-in-history-and-some-experiments/</link><pubDate>Tue, 27 Oct 2020 09:11:30 +0000</pubDate><guid>https://foojayio.github.io/website/today/javafx-3d-a-look-back-in-history-and-some-experiments/</guid><description>&lt;p&gt;After my virtual conference talk &lt;a href="https://webtechie.be/post/2020-10-21-apacouc-java-and-javafx-on-raspberry-pi/" target="_blank" rel="noopener noreferrer"&gt;&amp;ldquo;Java and JavaFX on the Raspberry Pi&amp;rdquo; at the &amp;ldquo;Oracle Groundbreakers APAC Virtual Tour 2020&amp;rdquo;&lt;/a&gt;
, I got in touch with some people who were working on JavaFX 3D in the past, and were curious how that would behave on the Raspberry Pi.&lt;/p&gt;
&lt;p&gt;Only one way to find out! Let&amp;rsquo;s experiment!&lt;/p&gt;
&lt;h2 id="h2-0-history-of-javafx-3d"&gt;History of JavaFX 3D&lt;/h2&gt;
&lt;p&gt;JavaFX is an open-source, next-generation Java library for rich client applications. JavaFX started with a focus on 2D UI elements.&lt;/p&gt;</description></item><item><title>64-bit Raspbian OS on Raspberry Pi 4 with USB Boot</title><link>https://foojayio.github.io/website/today/64-bit-raspbian-os-on-raspberry-pi-4-with-usb-boot/</link><pubDate>Mon, 12 Oct 2020 11:14:26 +0000</pubDate><guid>https://foojayio.github.io/website/today/64-bit-raspbian-os-on-raspberry-pi-4-with-usb-boot/</guid><description>&lt;blockquote&gt;
&lt;p&gt;In a future post, we will be building OpenJDK on a Raspberry Pi.&lt;/p&gt;
&lt;p&gt;This post is not really Java-related but a preparation for things to come&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A micro SD card is the default way to add an operating system to the Raspberry Pi. But there is an alternative approach that you need to consider if you want to make your system more reliable. SD cards are not super fast and can get quickly corrupted when you are writing a lot to disc.&lt;/p&gt;</description></item><item><title>Electronics &amp; Micronaut Velocity with Raspberry Pi</title><link>https://foojayio.github.io/website/today/electronics-micronaut-velocity-with-raspberry-pi/</link><pubDate>Tue, 06 Oct 2020 08:35:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/electronics-micronaut-velocity-with-raspberry-pi/</guid><description>&lt;p&gt;In a previous post, we looked at the project &amp;ldquo;&lt;a href="https://foojayio.github.io/website/blog/electronics-quarkus-qute-on-raspberry-pi/"&gt;Electronics &amp;amp; Quarkus Qute on Raspberry Pi&lt;/a&gt;
&amp;rdquo; by &lt;a href="https://twitter.com/Igfasouza" target="_blank" rel="noopener noreferrer"&gt;Igor De Souza&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;In this article, we present you another great example of Java on Raspberry Pi created by Igor. It shows how to create a Micronaut Velocity demo using an 8x8 LED matrix display.
&lt;img src="https://foojayio.github.io/website/today/electronics-micronaut-velocity-with-raspberry-pi/raspberry_micronaut.jpg" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;h2 id="h2-0-micronaut"&gt;Micronaut&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://micronaut.io/" target="_blank" rel="noopener noreferrer"&gt;Micronaut&lt;/a&gt;
 is a JVM-based framework for building lightweight, modular applications. Developed by &lt;a href="https://objectcomputing.com/" target="_blank" rel="noopener noreferrer"&gt;OCI&lt;/a&gt;
, the same company that created &lt;a href="https://objectcomputing.com/products/grails" target="_blank" rel="noopener noreferrer"&gt;Grails&lt;/a&gt;
, Micronaut is the latest framework designed to make creating microservices quick and easy.&lt;/p&gt;</description></item></channel></rss>