<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Raspberry Pi on foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/today/category/raspberry-pi/</link><description>Recent content in Raspberry Pi on foojay.io - Friends Of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 01 Jul 2026 11:32:34 +0000</lastBuildDate><atom:link href="https://foojay.io/today/category/raspberry-pi/index.xml" rel="self" type="application/rss+xml"/><item><title>Using the Raspberry Pi Sense HAT with Pi4J Drivers</title><link>https://foojay.io/today/using-the-raspberry-pi-sense-hat-with-pi4j-drivers/</link><pubDate>Wed, 01 Jul 2026 08:38:00 +0000</pubDate><guid>https://foojay.io/today/using-the-raspberry-pi-sense-hat-with-pi4j-drivers/</guid><description>&lt;figure class="alignleft is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/using-the-raspberry-pi-sense-hat-with-pi4j-drivers/duke_sensehat-819x1024.jpg" alt="" style="width:250px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;One of the biggest advantages of the Pi4J Drivers project is the ability to interact with complex hardware through simple and intuitive Java APIs. A great example of this is the Raspberry Pi Sense HAT, one of the most popular Raspberry Pi add-on boards and the hardware platform used in the Astro Pi program aboard the International Space Station.&lt;/p&gt;&#10;&lt;p&gt;Instead of manually implementing communication with multiple sensors and devices, Pi4J Drivers provides a ready-to-use driver that makes accessing the Sense HAT straightforward and enjoyable.&lt;/p&gt;</description></item><item><title>Pi4J Drivers: Simplifying Sensor and Hardware Integration in Java</title><link>https://foojay.io/today/pi4j-drivers-simplifying-sensor-and-hardware-integration-in-java/</link><pubDate>Thu, 25 Jun 2026 07:07:08 +0000</pubDate><guid>https://foojay.io/today/pi4j-drivers-simplifying-sensor-and-hardware-integration-in-java/</guid><description>&lt;figure class="alignleft is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/pi4j-drivers-simplifying-sensor-and-hardware-integration-in-java/duke_driver01-819x1024.jpg" alt="" style="width:300px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;When developing Java applications for Raspberry Pi, &lt;a href="https://www.pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt; is one of the most popular libraries for accessing GPIO, I2C, SPI, PWM, and other hardware interfaces. However, interacting directly with these protocols often requires a significant amount of code and a deep understanding of the underlying hardware.&lt;/p&gt;&#10;&lt;p&gt;This is where the &lt;strong&gt;Pi4J Drivers library&lt;/strong&gt; become extremely valuable.&lt;/p&gt;&#10;&lt;h3 id="what-is-pi4j-drivers"&gt;What is Pi4J Drivers?&lt;/h3&gt;&#10;&lt;p&gt;Pi4J Drivers is a companion project to Pi4J that provides ready-to-use drivers for a wide range of electronic components, including sensors, displays, I/O expanders, and actuators. Instead of implementing low-level communication from scratch, developers can leverage tested and reusable APIs to interact with hardware devices.&lt;/p&gt;</description></item><item><title>Bringing Raspberry Pi Development to Quarkus with the Quarkus Pi4J Extension</title><link>https://foojay.io/today/bringing-raspberry-pi-development-to-quarkus-with-the-quarkus-pi4j-extension/</link><pubDate>Tue, 23 Jun 2026 07:30:00 +0000</pubDate><guid>https://foojay.io/today/bringing-raspberry-pi-development-to-quarkus-with-the-quarkus-pi4j-extension/</guid><description>&lt;p&gt;Java developers building applications for Raspberry Pi often face a common challenge: combining hardware access with modern application frameworks.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt; has become the standard way to access GPIO, I2C, SPI, UART, and other Raspberry Pi interfaces from Java applications. On the other hand, Quarkus has established itself as one of the most innovative Java frameworks, offering fast startup times, low memory consumption, and a developer-friendly experience.&lt;/p&gt;&#10;&lt;p&gt;The Quarkus Pi4J Extension brings these two worlds together, making it easier than ever to build hardware-enabled applications using the Quarkus ecosystem.&#10;&lt;img src="https://foojay.io/today/bringing-raspberry-pi-development-to-quarkus-with-the-quarkus-pi4j-extension/quarkus_pi4j01-1024x819.jpg" alt="" width="1024" height="819" loading="lazy" decoding="async"&gt;&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://foojay.io/today/java-benchmarks-on-single-board-computers/</link><pubDate>Wed, 04 Mar 2026 06:52:00 +0000</pubDate><guid>https://foojay.io/today/java-benchmarks-on-single-board-computers/</guid><description>&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;&#10;&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;&#10;&#9;&#9;&#9;&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;&#10;&#9;&#9;&lt;/div&gt;&#10;&#10;&lt;p&gt;Already published in this series:&lt;/p&gt;</description></item><item><title>From “Crypto AI” to general AI: Do AI agents dream of electric langoustines?</title><link>https://foojay.io/today/from-crypto-ai-to-general-ai-do-ai-agents-dream-of-electric-langoustines/</link><pubDate>Mon, 23 Feb 2026 18:11:54 +0000</pubDate><guid>https://foojay.io/today/from-crypto-ai-to-general-ai-do-ai-agents-dream-of-electric-langoustines/</guid><description>&lt;p&gt;&lt;img src="https://foojay.io/today/from-crypto-ai-to-general-ai-do-ai-agents-dream-of-electric-langoustines/daydreams-2-scaled.jpg" alt="" width="1600" height="686" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;h2 id="x402-erc-8004-a2a-and-the-next-wave-of-ai-commerce-do-ai-agents-dream-of-electric-langoustines"&gt;&lt;strong&gt;x402, ERC-8004, A2A, and The Next Wave of AI Commerce: Do AI Agents Dream of Electric Langoustines?&lt;/strong&gt;&lt;/h2&gt;&#10;&lt;p&gt;&lt;em&gt;&lt;strong&gt;A Blade Runner riff for a world where the lobster ships paid endpoints while humans still argue about the roadmap.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;h2 id="the-shift-that-matters-for-agent-commerce---from-crypto-ai-to-general-ai"&gt;The shift that matters for agent commerce - From &amp;ldquo;Crypto AI&amp;rdquo; to general AI&lt;/h2&gt;&#10;&lt;p&gt;Today, you can search the web all day and never see an invoice.&lt;/p&gt;&#10;&lt;p&gt;That happens because you are not the paying client.&lt;/p&gt;</description></item><item><title>First Test of Java on the Orange Pi (ARM and RISC-V)</title><link>https://foojay.io/today/first-test-of-java-on-the-orange-pi-arm-and-risc-v/</link><pubDate>Wed, 28 Jan 2026 06:52:00 +0000</pubDate><guid>https://foojay.io/today/first-test-of-java-on-the-orange-pi-arm-and-risc-v/</guid><description>&lt;p&gt;As part of my 2026 learning goals around Java on Single Board Computers and 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 been asking various suppliers to send me evaluation boards. After testing the &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&lt;/a&gt;, I received two boards from OrangePi to evaluate: the OrangePi 5 Ultra (ARM) and the OrangePi RV2 (RISC-V).&lt;/p&gt;&#10;&lt;p&gt;I got both boards for free, but what I write here and show in the video is not controlled by OrangePi or any other supplier.&lt;/p&gt;</description></item><item><title>Java on Single Board Computers: x86 vs ARM vs RISC-V</title><link>https://foojay.io/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://foojay.io/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>Foojay Podcast #85: Code, Community, and Opportunity: Making Tech Accessible for Everyone</title><link>https://foojay.io/today/foojay-podcast-85/</link><pubDate>Mon, 08 Dec 2025 06:07:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-85/</guid><description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;What if the future of Java depends on who we invite to learn it today?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;In this Foojay Podcast, we&amp;rsquo;re diving into something that affects all of us in the Java community: How can we inspire the next generation of developers, and how do we make the developer world more inclusive?&lt;/p&gt;&#10;&lt;p&gt;In this episode, you&amp;rsquo;ll hear four incredible guests who are actively working to make tech more accessible and inclusive. First, Daniel De Luca talks about Devoxx for Kids and how they support underprivileged students in IT education. Then Kenny Schwegler shares his insights on how we can actively promote diversity and inclusion in tech. Cassandra Chin, the youngest Java Champion and author, talks about inspiring young coders through hands-on projects and making technology fun. And finally, Igor De Souza discusses his mission to bring Java into Raspberry Pi education and bring more Java into coding clubs worldwide.&lt;/p&gt;</description></item><item><title>Java 21+ on Raspberry Pi Zero 2 is Back In Business</title><link>https://foojay.io/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://foojay.io/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://foojay.io/today/java-21-not-working-on-the-raspberry-pi-zero-2/</link><pubDate>Wed, 02 Jul 2025 07:46:09 +0000</pubDate><guid>https://foojay.io/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;&#10;&lt;h2 id="problem-on-raspberry-pi-zero-2"&gt;Problem on Raspberry Pi Zero 2&lt;/h2&gt;&#10;&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>Demo Application with CRaC and Loading Data in Memory</title><link>https://foojay.io/today/demo-application-with-crac-and-loading-data-in-memory/</link><pubDate>Thu, 13 Mar 2025 08:11:19 +0000</pubDate><guid>https://foojay.io/today/demo-application-with-crac-and-loading-data-in-memory/</guid><description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://docs.azul.com/core/crac/crac-introduction" target="_blank" rel="noopener noreferrer"&gt;Coordinated Restore at Checkpoint (CRaC)&lt;/a&gt; is a JDK project initiated by Azul. With CRaC, you can start Java programs with a shorter time to the first transaction and less time and resources to achieve full code speed. This is achieved by taking a snapshot (checkpoint) of a fully warmed-up Java process and launching one or more new JVMs from that snapshot.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;I have been experimenting with CRaC on a Raspberry Pi in 2023 and blogged about it, &lt;a href="https://webtechie.be/post/2023-06-15-crac-on-raspberry-pi/" target="_blank" rel="noopener noreferrer"&gt;first when it didn&amp;rsquo;t work yet&lt;/a&gt;, and a &lt;a href="https://webtechie.be/post/2023-10-16-crac-on-raspberry-pi-update/" target="_blank" rel="noopener noreferrer"&gt;second time when it did work perfectly&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Pi4J Welcomes Java 21 on the Raspberry Pi</title><link>https://foojay.io/today/pi4j-welcomes-java-21-on-the-raspberry-pi/</link><pubDate>Thu, 20 Feb 2025 10:49:07 +0000</pubDate><guid>https://foojay.io/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;&#10;&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.&#10;&lt;img src="https://foojay.io/today/pi4j-welcomes-java-21-on-the-raspberry-pi/pi4j-overview-1024x427.jpg" alt="" width="1024" height="427" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&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>Crafting Your Own Railway Display with Java!</title><link>https://foojay.io/today/crafting-your-own-railway-display-with-java/</link><pubDate>Mon, 18 Nov 2024 08:46:31 +0000</pubDate><guid>https://foojay.io/today/crafting-your-own-railway-display-with-java/</guid><description>&lt;p&gt;&lt;strong&gt;Have you fancied to have your own railway display at home? If you love traveling by public transport and always jump on the train just before the door closes like us, it&amp;rsquo;s really cool and highly efficient to have your own personalized display.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://foojay.io/today/crafting-your-own-railway-display-with-java/NS_display_2-scaled.jpg" alt="custom railway display showing the train timings" width="2560" height="1355" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;h3 id="background"&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/h3&gt;&#10;&lt;p&gt;Without live data, this project could not work. Luckily, all the data we needed was publicly and freely available with Nederlandse Spoorwegen (NS) APIs. To access them, you only need to create an account in the &lt;a href="https://apiportal.ns.nl/" target="_blank" rel="noopener noreferrer"&gt;NS API Portal and subscribe to the APIs&lt;/a&gt; you want to use.&lt;/p&gt;</description></item><item><title>A Fresh Look at Embedded Java</title><link>https://foojay.io/today/a-fresh-look-at-embedded-java/</link><pubDate>Wed, 11 Sep 2024 07:37:10 +0000</pubDate><guid>https://foojay.io/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;&#10;&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;&#10;&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!&#10;&lt;img src="https://foojay.io/today/a-fresh-look-at-embedded-java/fresh-look-embedded-java-1024x400.jpg" alt="" width="1024" height="400" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item><item><title>Foojay Podcast #55: Embedded Java, Part 2</title><link>https://foojay.io/today/foojay-podcast-55/</link><pubDate>Mon, 01 Jul 2024 08:21:42 +0000</pubDate><guid>https://foojay.io/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://foojay.io/today/foojay-podcast-2/"&gt;Foojay Podcast #2 with James Gosling, Johan Vos, Erik Costlow, and Frank Delporte&lt;/a&gt;.&lt;/p&gt;&#10;&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://foojay.io/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://foojay.io/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;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="#i2c-improvements"&gt;Ongoing I2C Improvements&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#hardware-pwm"&gt;PWM Hardware Support on Raspberry Pi 5&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#board-info"&gt;New Class to Get Board Info&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#interview-robert"&gt;Interview with Robert von Burg&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#interview-tom"&gt;Interview with Tom Aarts&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="#conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="ongoing-i2c-improvements"&gt;Ongoing I2C Improvements&lt;/h2&gt;&#10;&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>Building a Simple Home Assistant using Langchain4j and Raspberry Pi</title><link>https://foojay.io/today/building-simple-home-assistant-langchain4j-raspberry-pi/</link><pubDate>Sun, 12 May 2024 05:31:16 +0000</pubDate><guid>https://foojay.io/today/building-simple-home-assistant-langchain4j-raspberry-pi/</guid><description>&lt;p&gt;&lt;strong&gt;Many believe that the future of IoT is AI. Building a Smart Home Assistant is less complex today than ever before. AI has become so accessible that you only need an internet connection and a computer to connect to an API.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;While training specialized deep learning models or using commercial APIs to harness machine learning for specific deterministic use cases is still an option, it is now more common and accessible to use LLMs. Today, you can effortlessly utilize numerous LLMs from various providers through an LLM orchestration framework like &lt;a href="https://github.com/langchain4j/langchain4j" target="_blank" rel="noopener noreferrer"&gt;Langchain4j&lt;/a&gt;. This framework not only allows the use of LLMs but also provides components that simplify the creation of AI applications such as chatbots and question-answering systems. With these tools, anyone can assemble a Generative AI-powered app in minutes.&lt;/p&gt;</description></item><item><title>Using my new Raspberry Pi to run an existing GitHub Action</title><link>https://foojay.io/today/using-my-new-raspberry-pi-to-run-an-existing-github-action/</link><pubDate>Tue, 23 Apr 2024 18:45:04 +0000</pubDate><guid>https://foojay.io/today/using-my-new-raspberry-pi-to-run-an-existing-github-action/</guid><description>&lt;p&gt;Recently, I mentioned &lt;a href="https://blog.frankel.ch/kotlin-scripting-to-python/" target="_blank" rel="noopener noreferrer"&gt;how I refactored&lt;/a&gt; &lt;a href="https://github.com/nfrankel/nfrankel-update/" target="_blank" rel="noopener noreferrer"&gt;the script&lt;/a&gt; that kept &lt;a href="https://github.com/nfrankel/" target="_blank" rel="noopener noreferrer"&gt;my GitHub profile&lt;/a&gt; up-to-date. Since Geecon Prague, I&amp;rsquo;m also a happy owner of a Raspberry Pi:&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://twitter.com/nicolas_frankel/status/1715313240568197233" target="_blank" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;[&lt;/p&gt;&#10;&lt;figure class="aligncenter size-medium"&gt;&#10; &lt;img src="https://foojay.io/today/using-my-new-raspberry-pi-to-run-an-existing-github-action/Screenshot-2024-03-10-at-17.20.56-557x510.jpg" alt="" width="557" height="510" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;](&lt;a href="https://twitter.com/nicolas_frankel/status/1715313240568197233" target="_blank" rel="noopener noreferrer"&gt;https://twitter.com/nicolas_frankel/status/1715313240568197233&lt;/a&gt;)&lt;/p&gt;&#10;&lt;p&gt;Though the current setup works flawlessly - and is free, I wanted to experiment with self-hosted runners. Here are my findings.&lt;/p&gt;&#10;&lt;h2 id="context"&gt;Context&lt;/h2&gt;&#10;&lt;p&gt;GitHub offers a large free usage of GitHub Actions:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;GitHub Actions usage is free for standard GitHub-hosted runners in public repositories, and for self-hosted runners. For private repositories, each GitHub account receives a certain amount of free minutes and storage for use with GitHub-hosted runners, depending on the account&amp;rsquo;s plan. Any usage beyond the included amounts is controlled by spending limits.&lt;/p&gt;</description></item><item><title>Java on Raspberry Pi 5 with Pi4J</title><link>https://foojay.io/today/java-on-raspberry-pi-5-with-pi4j/</link><pubDate>Sat, 06 Apr 2024 11:08:20 +0000</pubDate><guid>https://foojay.io/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;&#10;&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;&#10;&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,… 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://foojay.io/today/controlling-led-strips-with-java-and-jbang/</link><pubDate>Mon, 22 Jan 2024 18:08:51 +0000</pubDate><guid>https://foojay.io/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;&#10;&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;&#10;&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://foojay.io/today/pi4j-operating-system-for-java-development-on-raspberry-pi/</link><pubDate>Fri, 11 Aug 2023 10:19:50 +0000</pubDate><guid>https://foojay.io/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;&#10;&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://foojay.io/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://foojay.io/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;&#10;&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;&#10;&lt;h2 id="what-is-used"&gt;What Is Used?&lt;/h2&gt;&#10;&lt;p&gt;As explained on the websites of each project:&lt;/p&gt;&#10;&lt;h3 id="pi4j"&gt;Pi4J&lt;/h3&gt;&#10;&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>Running a CRaC Java application on Raspberry Pi</title><link>https://foojay.io/today/running-a-crac-java-application-on-raspberry-pi/</link><pubDate>Wed, 05 Jul 2023 12:23:19 +0000</pubDate><guid>https://foojay.io/today/running-a-crac-java-application-on-raspberry-pi/</guid><description>&lt;p&gt;With the April release of the Zulu Build of OpenJDK, Azul announced &lt;a href="https://www.azul.com/blog/reduce-java-application-startup-and-warmup-times-with-crac/" target="_blank" rel="noopener noreferrer"&gt;the integration of CRaC in its version 17 of Java for Linux&lt;/a&gt;. &lt;a href="https://www.azul.com/products/components/crac/" target="_blank" rel="noopener noreferrer"&gt;Coordinated Restore at Checkpoint (CRaC)&lt;/a&gt; is a feature introduced in OpenJDK to improve Java&amp;rsquo;s application startup and warmup times to milliseconds from seconds or even minutes, by allowing a running application to pause, snapshot its state, and restart later, even on a different machine.&lt;/p&gt;&#10;&lt;p&gt;CRaC is the final step after previous projects by Azul in multiple client projects in the automotive and IoT industry. Infotainment systems for car, gateways in electronic systems, and other use-cases require high-speed startup of their applications running on embedded ARM32 and ARM64 systems.&lt;/p&gt;</description></item><item><title>Foojay Podcast #22: When Profession and Fun Overlap</title><link>https://foojay.io/today/foojay-podcast-22/</link><pubDate>Mon, 15 May 2023 07:47:29 +0000</pubDate><guid>https://foojay.io/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;&#10;&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;&#10;&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;&#10;&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>FEPCOS-J (1) – Description, Impression of Usage, Current State</title><link>https://foojay.io/today/fuchs-2023-fepcos-j-01/</link><pubDate>Wed, 26 Apr 2023 06:09:41 +0000</pubDate><guid>https://foojay.io/today/fuchs-2023-fepcos-j-01/</guid><description>&lt;p&gt;&lt;strong&gt;Abstract: FEPCOS-J has arisen in the context of my work in the field of robot sensor networks. It implements a Java-language extension that frees a Java developer from network programming and supports cross-system concurrency. This article gives you an impression of using FEPCOS-J based on a simple example.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;So far, FEPCOS-J is a prototype with 1629 lines of Java-code. I develop and test it on my own within a toy robot-based &lt;em&gt;amd64 / x64&lt;/em&gt; &lt;em&gt;Linux&lt;/em&gt; &lt;em&gt;OpenJDK 17&lt;/em&gt; environment, which communicates via a private and secured IPv4-network.&lt;/p&gt;</description></item><item><title>Coroutines on the RaspberryPi (Pi4J-Kotlin)</title><link>https://foojay.io/today/coroutines-on-the-raspberrypi-pi4j-kotlin/</link><pubDate>Sat, 01 Apr 2023 09:05:29 +0000</pubDate><guid>https://foojay.io/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;&#10;&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://foojay.io/today/kotlin-on-the-raspberrypi-pi4j-kotlin/"&gt;first release&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="1-coroutines"&gt;1. Coroutines&lt;/h2&gt;&#10;&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—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>Control your Arduino with Spring</title><link>https://foojay.io/today/control-your-arduino-with-spring/</link><pubDate>Sat, 25 Mar 2023 07:21:04 +0000</pubDate><guid>https://foojay.io/today/control-your-arduino-with-spring/</guid><description>&lt;p&gt;Have you ever wanted to control your Arduino board from a Raspberry Pi, or your computer, using only Java and not the Arduino language?&lt;/p&gt;&#10;&lt;p&gt;In this article, I show how I created a web app to control my Arduino with a Raspberry PI using Spring. And so this is another article about Java on Raspberry PI or perhaps this time I can say Java and Arduino.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://foojay.io/today/control-your-arduino-with-spring/Arduino_spring01.jpg" alt="" width="844" height="203" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;h3 id="idea"&gt;Idea&lt;/h3&gt;&#10;&lt;p&gt;A simple Spring app where I can create a REST interface to control one of the Arduino GPIOs. I can plug a LED and build a simple blink LED example.&lt;/p&gt;</description></item><item><title>Controlling a LED Strip with Pi4J and JBang</title><link>https://foojay.io/today/controlling-a-led-strip-with-pi4j-and-jbang/</link><pubDate>Mon, 28 Nov 2022 13:07:06 +0000</pubDate><guid>https://foojay.io/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://foojay.io/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;&#10;&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;&#10;&lt;p&gt;This is the result, notice the Foojay.io startup artwork 😉&lt;/p&gt;&#10;&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;&#10; &lt;div class="wp-block-embed__wrapper"&gt;&#10; &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;&#10; &lt;/div&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="wiring"&gt;Wiring&lt;/h2&gt;&#10;&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://foojay.io/today/kotlin-on-the-raspberrypi-pi4j-kotlin/</link><pubDate>Thu, 17 Nov 2022 13:37:18 +0000</pubDate><guid>https://foojay.io/today/kotlin-on-the-raspberrypi-pi4j-kotlin/</guid><description>&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;&#10;&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;&#10;&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;&#10;&lt;p&gt;And we&amp;rsquo;re glad to make it even more simpler and powerful!&lt;/p&gt;&#10;&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;&#10;&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://foojay.io/today/pi4j-v2-2-0-released/</link><pubDate>Wed, 31 Aug 2022 17:09:19 +0000</pubDate><guid>https://foojay.io/today/pi4j-v2-2-0-released/</guid><description>&lt;p&gt;One year after &lt;a href="https://foojay.io/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;&#10;&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></channel></rss>