diff --git a/404.html b/404.html index b928a29b7..474c4c5b6 100644 --- a/404.html +++ b/404.html @@ -1,2 +1,2 @@ 404 Page not found -

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file +

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file diff --git a/about/download/index.html b/about/download/index.html index 78eb204fa..9d61acd0f 100644 --- a/about/download/index.html +++ b/about/download/index.html @@ -1,7 +1,7 @@ Pi4J Downloads - Pi4J -

Pi4J Downloads

All downloads provided by the project can be found on pi4j.com/download.

The compiled artifacts (releases and snapshots) are available in the -Sonatype Maven repository.

\ No newline at end of file +Sonatype Maven repository.

\ No newline at end of file diff --git a/about/index.html b/about/index.html index a4c4b01d3..c95c136fb 100644 --- a/about/index.html +++ b/about/index.html @@ -1,5 +1,5 @@ About - Pi4J -
\ No newline at end of file +Any idea, documentation improvement, bug fix… is greatly welcomed through the normal GitHub flow!

\ No newline at end of file diff --git a/about/license/index.html b/about/license/index.html index 8760f61bc..f8cbdcfa4 100644 --- a/about/license/index.html +++ b/about/license/index.html @@ -1,5 +1,5 @@ License (Open Source) - Pi4J -
\ No newline at end of file +limitations under the License.

\ No newline at end of file diff --git a/about/new-in-v2/index.html b/about/new-in-v2/index.html index 361d8ac24..bb05b7125 100644 --- a/about/new-in-v2/index.html +++ b/about/new-in-v2/index.html @@ -1,5 +1,5 @@ What's New (V.2) - Pi4J -
\ No newline at end of file +are welcome as either bug reports or discussions in the GitHub repository.

\ No newline at end of file diff --git a/about/previous-version-v1/index.html b/about/previous-version-v1/index.html index 9716118c1..27df79e52 100644 --- a/about/previous-version-v1/index.html +++ b/about/previous-version-v1/index.html @@ -1,6 +1,6 @@ Previous versions (V.1) - Pi4J -

Previous versions (V.1)

Documentation of the 1.X versions

Pi4J Version 1.4

  • Released 2021-03-03
  • Support for JDK/JRE 11 and 64-bit ARM platforms
  • This release is the final release for the Pi4J Version 1.x codebase
  • The Pi4J project is now prioritizing focus on providing Java programs access, control and communication with the core I/O capabilities of the Raspberry Pi platform
  • Changed project to Apache License, Version 2.0
  • Removed pi4j-device and pi4j-gpio-extension library
  • Removed platform support for Odroid, BananaPi, BPi, NanoPi, OrangePi
  • Various improvements and bug fixes listed here: GitHub Issues (v1.4)
  • Not using Java-modules yet, this will be part of the V.2
  • Documentation website V1.4

Pi4J Version 1.3

Pi4J Version 1.2

Pi4J Version 1.1

Pi4J Version 1.0

\ No newline at end of file +Welcome to Pi4J > About > Previous versions (V.1)

Previous versions (V.1)

Documentation of the 1.X versions

Pi4J Version 1.4

Pi4J Version 1.3

Pi4J Version 1.2

Pi4J Version 1.1

Pi4J Version 1.0

\ No newline at end of file diff --git a/about/release-notes/index.html b/about/release-notes/index.html index 897c9058f..92509c846 100644 --- a/about/release-notes/index.html +++ b/about/release-notes/index.html @@ -1,6 +1,6 @@ Release Notes - Pi4J -

Release Notes

All releases of Pi4J V.2 are listed on github.com/Pi4J/pi4j-v2/releases.

2024-07-29 - V2.6.1

This is a minor bug fix release to allow a smoother integration in a Spring Boot Starter by allowing to run on PC for testing without initialization errors and with reduced logging of the I2C Mock plugin.

  • Issue #354: Gracefully handle UnsatisfiedLinkError on newAutoContext when not running on a Raspberry Pi, for instance, when testing on Windows or macOS.
  • Clean up of logs in MockI2C.java.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.6.0...2.6.1

2024-04-29 - V2.6.0

Thanks to contributions by @fusetim, @taartspi, @eitch, @fdelporte.

Make sure to also read the interviews with Robert von Burg and Tom Aarts.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.5.1...2.6.0

2024-03-18 - V2.5.1

Sorry! Because of a configuration error, the wrong native code is included in 2.5.0 for the new GpioD Provider. But thanks to the lightning fast action of Robert von Burg we have a fixed version for you to enjoy :-)

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.5.0...2.5.1

2024-03-18 - V2.5.0

With over 100 commits from multiple branches, this is a major release with many improvements! With many thanks to the core team (Robert von Burg, Tom Aarts), and a major addition of Alexander Liggesmeyer, Pi4J is again lifted to a higher level!

You can find out more about Alexander in this blog post.

The new GpioD Provider needs the latest Raspberry Pi OS version (Debian GNU/Linux 12 (bookworm)).

Changes in 2.5.0

  • A new GpioD Provider adds support for the Raspberry Pi 5.
    • Issues #321, #320, #317
    • This new GpioD provider interfaces directly with the Raspberry Pi’s gpiochip device, located at /dev/gpiochip.... It leverages the native libgpiod library, which is developed as a part of the Linux kernel. Libgpiod is currently the recommended way to control GPIO pins. Therefore, using this provider is also recommended.
    • This new provider can be used without the need to start a Pi4J application with sudo, so also fixes #212 when you only need DigitalInput and/or DigitalOutput.
  • Better handling of mock Plugins: Plugins can now define if they are mocks, and these are not auto-detected anymore. The default target for the Pi4J library is the Raspberry Pi, and thus auto-detecting mocks on the Pi, which are only for tests is counterintuitive.
  • Extended Providers with a priority: this priority helps to determine which Provider should be loaded, when multiple Providers with the same IOType are being loaded by different plugins. This change enforces that a given IOType can only have one Provider loaded at runtime preventing errors when, for instance, two I2C providers are loaded at the same time, concurrently writing to the I2C bus.
  • Fix for: LinuxFile reused scratch buffers ensuring size was usable. But the limit value cannot be modified so later usage failed as an intended overwrite. Pull request #331, commit ed208f2.
  • Fix for: I2C interface should use a restart between the write and read operation. Pull request #333.
  • Fix for: Shutting down pool executor too early. Commit 7909a2d.
  • ProviderProxyHandler got removed, simplifying provider loading, thus no more reflection on the instances.
  • You can now add and remove IO instances at runtime.
  • You can now easily switch a GPIO from output to an input and vice versa, see issue #26, extending on the work by @MEBoo, in pull request #1.
  • A race condition got fixed in the default runtime registry.
  • Proper life cycle management got added for of all threads in Pi4J.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.4.0...2.5.0

Known Issue

  • java.io.IOException: Remote I/O error java.base/java.io.RandomAccessFile.writeBytes(Native Method). Using linuxfs-i2c, dependent upon i2c operations this exception can occur: If the program initially uses read or write, and later uses readRegister or writeRegister there is no exception. However, if the program initially uses readRegister or writeRegister subsequent write or read may encounter this exception. For more info and the temporary fix, check #335.

2023-10-24 - V2.4.0

Thanks to @GeVanCo, @MMMMMNG, @IAmNickNack, @savageautomate, @eitch, @taartspi, @FDelporte.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.3.0...2.4.0

2023-02-06 - V2.3.0

  • Improvements for PIGPIO.gpioCfgInterfaces by @bwaldvogel.
  • New i2c interface to support multibyte register address by @taartspi.
  • Fix in LinuxFsI2C byte array offset by @harlanhu.
  • Remove unused JNA references by @taartspi.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.2.1...2.3.0

2022-10-17 - V2.2.1

Multiple fixes by @taartspi:

  • Better error message when mixing 32- and 64-bit artifacts
  • SPI improvements:
    • Add missing initialization in constructor
    • Track weather the user set the mode or bus config values to improve the use of SPI flags

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.2.0...2.2.1

2022-08-30 - V2.2.0

What an amazing achievement! No major issues were found in the previous release, but several small fixes were added by more people than ever before in the Pi4J-history. This is a real confirmation of the openness of this project and how a community can work together to further improve a project.

A big thank you to everyone who experimented with Pi4J, took part in the discussions, filed an issue, created a merge request, added examples,…!

New example implementations

Thanks to the work of FHNW students and @taartspi, the list of available example implementations has become larger and larger. We even moved them to their own section of this documentation website! Take a look at Example implementations if you need a quick-start to use a buzzer, camera, LED strip, TCA9548, MCP4725,… or any of the other examples.

Changes in V2.2.0

Multiple improvements were added in this release (and others are already in progress for the next one!):

  • by @taartspi to improve SPI initialization, see #229
  • by @haumacher regarding the use of ByteBuffers, see #185
  • by @savageautomate regarding the polarity of digital output, see #93
  • by @gugrim to ensure positive values are returned from reading unless at end of file, see #164
  • by @eitch to also export LinuxFS I2C in module-info.java
  • by @eitch to also copy native libs to distribution zip
  • by @hagen to be able to configure sample rate and peripheral in PiGpio
  • by Saskia Bikle to add an implementation of deregistration/shutdown for IO’s
  • by @savageautomate to add a new value “flags” too SPI implementation

All the differences can be checked by comparing with the previous release 2.1.1 via this link.

Earlier release notes

Release notes of the previous releases of Pi4J V.2 are available on github.com/Pi4J/pi4j-v2/releases.

\ No newline at end of file +Welcome to Pi4J > About > Release Notes

Release Notes

All releases of Pi4J V.2 are listed on github.com/Pi4J/pi4j-v2/releases.

2024-07-29 - V2.6.1

This is a minor bug fix release to allow a smoother integration in a Spring Boot Starter by allowing to run on PC for testing without initialization errors and with reduced logging of the I2C Mock plugin.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.6.0...2.6.1

2024-04-29 - V2.6.0

Thanks to contributions by @fusetim, @taartspi, @eitch, @fdelporte.

Make sure to also read the interviews with Robert von Burg and Tom Aarts.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.5.1...2.6.0

2024-03-18 - V2.5.1

Sorry! Because of a configuration error, the wrong native code is included in 2.5.0 for the new GpioD Provider. But thanks to the lightning fast action of Robert von Burg we have a fixed version for you to enjoy :-)

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.5.0...2.5.1

2024-03-18 - V2.5.0

With over 100 commits from multiple branches, this is a major release with many improvements! With many thanks to the core team (Robert von Burg, Tom Aarts), and a major addition of Alexander Liggesmeyer, Pi4J is again lifted to a higher level!

You can find out more about Alexander in this blog post.

The new GpioD Provider needs the latest Raspberry Pi OS version (Debian GNU/Linux 12 (bookworm)).

Changes in 2.5.0

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.4.0...2.5.0

Known Issue

2023-10-24 - V2.4.0

Thanks to @GeVanCo, @MMMMMNG, @IAmNickNack, @savageautomate, @eitch, @taartspi, @FDelporte.

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.3.0...2.4.0

2023-02-06 - V2.3.0

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.2.1...2.3.0

2022-10-17 - V2.2.1

Multiple fixes by @taartspi:

All changes: https://github.com/Pi4J/pi4j-v2/compare/2.2.0...2.2.1

2022-08-30 - V2.2.0

What an amazing achievement! No major issues were found in the previous release, but several small fixes were added by more people than ever before in the Pi4J-history. This is a real confirmation of the openness of this project and how a community can work together to further improve a project.

A big thank you to everyone who experimented with Pi4J, took part in the discussions, filed an issue, created a merge request, added examples,…!

New example implementations

Thanks to the work of FHNW students and @taartspi, the list of available example implementations has become larger and larger. We even moved them to their own section of this documentation website! Take a look at Example implementations if you need a quick-start to use a buzzer, camera, LED strip, TCA9548, MCP4725,… or any of the other examples.

Changes in V2.2.0

Multiple improvements were added in this release (and others are already in progress for the next one!):

All the differences can be checked by comparing with the previous release 2.1.1 via this link.

Earlier release notes

Release notes of the previous releases of Pi4J V.2 are available on github.com/Pi4J/pi4j-v2/releases.

\ No newline at end of file diff --git a/about/team/index.html b/about/team/index.html index 6a7950fa4..881d3e25b 100644 --- a/about/team/index.html +++ b/about/team/index.html @@ -1,6 +1,6 @@ The Team - Pi4J -

The Team

Robert Savage, Project Founder, Architect, Lead Developer.

Principal Software Architect/Engineer. Consultant, technology enthusiast, entrepreneur, open source contributor, technology blogger. Founder at shadeBlue, LLC and SavageSoftware, LLC. Robert has a more than 20 year career working in the professional audio visual and home/commercial automation industry and an extensive background in developing technology solutions with a special focus on home automation and hardware/firmware/software integration. In 2012, Robert created the Pi4J project which provides Java developers an easy to use Java library enabling access to low-level I/O functionality (GPIO, I2C, SPI, Serial, etc.) of embedded systems like the Raspberry Pi. I created Pi4J to empower Java programmers to get involved with embedded platforms such as the Raspberry Pi and provide an easy to use and accessible Java-centric object-oriented library enabling control of real world (physical) “things”. Pi4J V.2 brings an entirely new and modern approach to Java I/O programming for embedded systems. I’m excited to get V.2 released and see what additional creative projects emerge.

Read more about Robert Savage in this interview on Foojay.io.
Frank Delporte, Project organization, Documenter, Developer.

Java and Raspberry Pi-enthousiast, blogger on webtechie.be and author of the book “Getting Started with Java on Raspberry Pi”. Technical writer at Azul. Lead coach CoderDojo in Ieper, Belgium. Software developer with more than 25 years of experience in video, multimedia, technical project management, digital signage and (web) programming. I’m a strong believer in the power and fun of Java on the Raspberry Pi. My goal is to make it as easy as possible to get started for new and experienced Java developers who want to start there first hardware experiment. That was the reason I wrote a book about this subject and share my experiments on my blog and GitHub. Pi4J V.2 brings a lot of improvements to an already great project, and - just one example - the use of the BCM pin numbers will make it even a lot easier to use the GPIO’s. That’s why I join this great team to assist in delivering this V.2 and extend it further so we can bring even more Java to the Raspberry Pi.

Read more about Frank Delporte in this interview on Foojay.io.
Robert von Burg aka “Eitch”, Developer, Releaser.

As lead developer for strolch.li we use Raspberry Pi as our platform to connect with products, and to implement a PLC in Java. The Pi4J project allows us to encapsulate the low level aspects of communicating with the hardware, and stay in our preferred choice. The strolch.li/plc.html project allows us to also stay in the same DSL for writing server applications, as well as communicating with low level devices. Since I love open source projects, it felt natural to me to start investing time in the Pi4J projects to assist in the further development.
Dr. Dieter Holz, Lecturer, Software Developer.

Dr. Dieter Holz is lecturer and a software developer with more than 40 years of experience. He co-founded Canoo, a Software-Boutique based in Basel, Switzerland (now known as Karakun) and worked in several large scale Java projects. For over 10 years, he teaches at FHNW Java / JavaFX in the context of real-world business applications, and Kotlin and Jetpack Compose for native Android-Apps and desktop applications.

Together with his students, Dieter created the CrowPi example implementations, the Pi4J Operating System, and other examples and documentation here on the Pi4J website.

Read more about Dieter Holz in this interview on Foojay.io.
Thomas Aarts (aka Tom), Developer, Creating IC examples.

My previous work entailed a decade in Alaska involving HF through Microwave communication and airport Instrument Landing Systems (ILS) DME NDB VASI. The next decade was centered around telephony. Working for ‘ROLM’ I was a software engineer working on the CBX series of switches. Most years in assembler using the DG instruction set. Later years on the larger CBX that used a company designed compiler much like ‘C’ on a much different instruction set. The last two decades I worked within an IBM lab. At the start I worked the AS400, a mid to large size server. Initially development of software at the user interface, above the MI. After a few years I moved in the firmware stack at the time all the servers, mid-mainframe, changed to using the IBM RISC processor. After some years in the firmware stack I moved to a newly formed simulation team. This entailed developing a simulation of the entire central processor complex (CPC) or Central Electronic Complex (CEC) to enable the firmware stack to boot and the partitions to boot on top and run. So after a long time working just above the hardware or simulating the hardware I found the Pi4j project of interest. After its’ use for some sensors and displays I am spending more time learning its capability and if possible offer something to the project. After that by decade history rundown I should add I retired.

Read more about Tom Aarts in this interview.
Muhammad Hashim aka “mhashim6”, Developer, Focus on Kotlin.

I’m a Software Engineer at Instabug, Writer & Blogger at The Upside-Down Trees & The Unhappy Folk. I go by “Timeless, Placeless” As it better reflects the crafts I do; my art and interests; and my life. I’ve joined the team to bring Kotlin to Pi4J; The project that brought the JVM to the Raspberry Pi.
Alexander Liggesmeyer, Student Worker at Max Planck Institute for Informatics, personal website.

Alexander created the GpioD Provider for release 2.5.0 to make Pi4J compatible with the Raspberry Pi 5. He also loves drinking cocktails with the CocktailPi as a result.

Read more about Alexander Liggesmeyer in this interview on Pi4J.com.
\ No newline at end of file +Welcome to Pi4J > About > The Team

The Team

Robert Savage, Project Founder, Architect, Lead Developer.

Principal Software Architect/Engineer. Consultant, technology enthusiast, entrepreneur, open source contributor, technology blogger. Founder at shadeBlue, LLC and SavageSoftware, LLC. Robert has a more than 20 year career working in the professional audio visual and home/commercial automation industry and an extensive background in developing technology solutions with a special focus on home automation and hardware/firmware/software integration. In 2012, Robert created the Pi4J project which provides Java developers an easy to use Java library enabling access to low-level I/O functionality (GPIO, I2C, SPI, Serial, etc.) of embedded systems like the Raspberry Pi. I created Pi4J to empower Java programmers to get involved with embedded platforms such as the Raspberry Pi and provide an easy to use and accessible Java-centric object-oriented library enabling control of real world (physical) “things”. Pi4J V.2 brings an entirely new and modern approach to Java I/O programming for embedded systems. I’m excited to get V.2 released and see what additional creative projects emerge.

Read more about Robert Savage in this interview on Foojay.io.
Frank Delporte, Project organization, Documenter, Developer.

Java and Raspberry Pi-enthousiast, blogger on webtechie.be and author of the book “Getting Started with Java on Raspberry Pi”. Technical writer at Azul. Lead coach CoderDojo in Ieper, Belgium. Software developer with more than 25 years of experience in video, multimedia, technical project management, digital signage and (web) programming. I’m a strong believer in the power and fun of Java on the Raspberry Pi. My goal is to make it as easy as possible to get started for new and experienced Java developers who want to start there first hardware experiment. That was the reason I wrote a book about this subject and share my experiments on my blog and GitHub. Pi4J V.2 brings a lot of improvements to an already great project, and - just one example - the use of the BCM pin numbers will make it even a lot easier to use the GPIO’s. That’s why I join this great team to assist in delivering this V.2 and extend it further so we can bring even more Java to the Raspberry Pi.

Read more about Frank Delporte in this interview on Foojay.io.
Robert von Burg aka “Eitch”, Developer, Releaser.

As lead developer for strolch.li we use Raspberry Pi as our platform to connect with products, and to implement a PLC in Java. The Pi4J project allows us to encapsulate the low level aspects of communicating with the hardware, and stay in our preferred choice. The strolch.li/plc.html project allows us to also stay in the same DSL for writing server applications, as well as communicating with low level devices. Since I love open source projects, it felt natural to me to start investing time in the Pi4J projects to assist in the further development.
Dr. Dieter Holz, Lecturer, Software Developer.

Dr. Dieter Holz is lecturer and a software developer with more than 40 years of experience. He co-founded Canoo, a Software-Boutique based in Basel, Switzerland (now known as Karakun) and worked in several large scale Java projects. For over 10 years, he teaches at FHNW Java / JavaFX in the context of real-world business applications, and Kotlin and Jetpack Compose for native Android-Apps and desktop applications.

Together with his students, Dieter created the CrowPi example implementations, the Pi4J Operating System, and other examples and documentation here on the Pi4J website.

Read more about Dieter Holz in this interview on Foojay.io.
Thomas Aarts (aka Tom), Developer, Creating IC examples.

My previous work entailed a decade in Alaska involving HF through Microwave communication and airport Instrument Landing Systems (ILS) DME NDB VASI. The next decade was centered around telephony. Working for ‘ROLM’ I was a software engineer working on the CBX series of switches. Most years in assembler using the DG instruction set. Later years on the larger CBX that used a company designed compiler much like ‘C’ on a much different instruction set. The last two decades I worked within an IBM lab. At the start I worked the AS400, a mid to large size server. Initially development of software at the user interface, above the MI. After a few years I moved in the firmware stack at the time all the servers, mid-mainframe, changed to using the IBM RISC processor. After some years in the firmware stack I moved to a newly formed simulation team. This entailed developing a simulation of the entire central processor complex (CPC) or Central Electronic Complex (CEC) to enable the firmware stack to boot and the partitions to boot on top and run. So after a long time working just above the hardware or simulating the hardware I found the Pi4j project of interest. After its’ use for some sensors and displays I am spending more time learning its capability and if possible offer something to the project. After that by decade history rundown I should add I retired.

Read more about Tom Aarts in this interview.
Muhammad Hashim aka “mhashim6”, Developer, Focus on Kotlin.

I’m a Software Engineer at Instabug, Writer & Blogger at The Upside-Down Trees & The Unhappy Folk. I go by “Timeless, Placeless” As it better reflects the crafts I do; my art and interests; and my life. I’ve joined the team to bring Kotlin to Pi4J; The project that brought the JVM to the Raspberry Pi.
Alexander Liggesmeyer, Student Worker at Max Planck Institute for Informatics, personal website.

Alexander created the GpioD Provider for release 2.5.0 to make Pi4J compatible with the Raspberry Pi 5. He also loves drinking cocktails with the CocktailPi as a result.

Read more about Alexander Liggesmeyer in this interview on Pi4J.com.
\ No newline at end of file diff --git a/architecture/about-the-code/build-instructions/index.html b/architecture/about-the-code/build-instructions/index.html index 292284a51..bec551cf8 100644 --- a/architecture/about-the-code/build-instructions/index.html +++ b/architecture/about-the-code/build-instructions/index.html @@ -1,5 +1,5 @@ Build Instructions - Pi4J -

Additional information about Docker Builds vs Cross-Compiler builds can be found here: https://github.com/Pi4J/pi4j-v2/issues/21#issuecomment-651976487


Custom Build Profiles

The Pi4J Maven build includes a number of custom profiles that can be activated to perform various build steps.

ProfileDescriptionNotes
sourcesPackage raw sources for each JAROnly needed when performing a snapshot or release build.
javadocCompile and package JavaDoc for each JAROnly needed when performing a snapshot or release build.
nativeCompile any native libraries included in the buildOnly needed when modifying native code or performing a snapshot or release build.
dockerUse docker builder containers to compile native library artifactsOnly used when incuding the native profile or performing a snapshot or release build.
cross-compileUse cross-compilers on host to compile native library artifactsOnly used when incuding the native profile or performing a snapshot or release build.
test-hardwarePerform hardware integration testingEXPERIMENTAL
macUse docker builder containers to compile native library artifacts (Same as docker profile)Automatically activated when running build from a MacOS host system.
windowsUse docker builder containers to compile native library artifacts (Same as docker profile)Automatically activated when running build from a Windows host system.
transferPerform SSH/SCP file transfers for each JAR to a remote Raspberry PiUsed for parallel development and testing.

You can activate a build profile using the -P{profile-name} argument in the Maven command:

mvn clean install -Pjavadoc
 

Release/Snapshot Builds

Pi4J release and snapshot builds are reserved for the Pi4J Development Team. A release build ensures all JARs, resources, source-bundles, native libraries, and javadoc artifacts are compiled and deployed to the public Maven repositories. You can use the following command to perform all the build steps that would be performed during a release or snapshot build.

mvn clean install -Drelease-build
-
\ No newline at end of file +
\ No newline at end of file diff --git a/architecture/about-the-code/code-styling/index.html b/architecture/about-the-code/code-styling/index.html index d8c42130b..bfb538a59 100644 --- a/architecture/about-the-code/code-styling/index.html +++ b/architecture/about-the-code/code-styling/index.html @@ -1,7 +1,7 @@ Code styling - Pi4J -

Code styling

To prevent unnecessary code (tabs versus spaces, number of characters per line…) we have defined an editorconfig for IntelliJ IDEA. You can find more info here about its use.

Some tips to keep the code clean and readable:

  • Short methods with a clear name
  • Use SonarLint to get improvement tips while code
  • Use shortcuts
    • CTRL+ALT+L: Reformat code
    • CTRL+ALT+O: Optimize imports
\ No newline at end of file +Welcome to Pi4J > Architecture/Design > Project source structure > Code styling

Code styling

To prevent unnecessary code (tabs versus spaces, number of characters per line…) we have defined an editorconfig for IntelliJ IDEA. You can find more info here about its use.

Some tips to keep the code clean and readable:

\ No newline at end of file diff --git a/architecture/about-the-code/download-sources/index.html b/architecture/about-the-code/download-sources/index.html index 3882b7270..63ff82d98 100644 --- a/architecture/about-the-code/download-sources/index.html +++ b/architecture/about-the-code/download-sources/index.html @@ -1,5 +1,5 @@ Download/Install - Pi4J -
\ No newline at end of file +

Running on the Raspberry Pi

\ No newline at end of file diff --git a/architecture/about-the-code/hardware-testing/index.html b/architecture/about-the-code/hardware-testing/index.html index 607cf5377..19f9e03d9 100644 --- a/architecture/about-the-code/hardware-testing/index.html +++ b/architecture/about-the-code/hardware-testing/index.html @@ -1,5 +1,5 @@ Hardware testing - Pi4J -
\ No newline at end of file +and perhaps too ambitious – but seeking a means to reach automated testing is really needed for the long term.

\ No newline at end of file diff --git a/architecture/about-the-code/index.html b/architecture/about-the-code/index.html index 0f3c269d0..c2fb2e383 100644 --- a/architecture/about-the-code/index.html +++ b/architecture/about-the-code/index.html @@ -1,5 +1,5 @@ Project source structure - Pi4J -
\ No newline at end of file +** TO BE DISCUSSED: Perhaps this should be separated into two plugins? Or moved to a separate “remote connectivity project”?

Pi4J RaspberryPi Platform & Provider

Pi4J WiringPi Provider

Stand-alone projects

Pi4J Test Harness

Pi4J Example projects

Pi4J Minimal example

Pi4J Examples

Pi4J Telegraph example

\ No newline at end of file diff --git a/architecture/about-the-code/maven-settings/index.html b/architecture/about-the-code/maven-settings/index.html index ab26e4c67..befc2a497 100644 --- a/architecture/about-the-code/maven-settings/index.html +++ b/architecture/about-the-code/maven-settings/index.html @@ -1,5 +1,5 @@ Maven settings - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/architecture/advanced/annotated-provisioning/index.html b/architecture/advanced/annotated-provisioning/index.html index a2c8b3ab5..6bcecb898 100644 --- a/architecture/advanced/annotated-provisioning/index.html +++ b/architecture/advanced/annotated-provisioning/index.html @@ -1,5 +1,5 @@ Annotated provisioning - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/architecture/advanced/dependency-injection/index.html b/architecture/advanced/dependency-injection/index.html index 98e2fbff2..c64258aa6 100644 --- a/architecture/advanced/dependency-injection/index.html +++ b/architecture/advanced/dependency-injection/index.html @@ -1,5 +1,5 @@ Dependency injection - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/architecture/advanced/index.html b/architecture/advanced/index.html index 07d161cc7..44321f02c 100644 --- a/architecture/advanced/index.html +++ b/architecture/advanced/index.html @@ -1,7 +1,7 @@ Advanced - Pi4J -

Advanced

Pi4J V.2 tries to focus on its core functionality (the GPIO I/O) but at the same time wants to provide the possibility to extend and adapt to other hardware, underlying framework etc.

You can find more info on these pages about some of the current functionalities to achieve this:

\ No newline at end of file +Welcome to Pi4J > Architecture/Design > Advanced

Advanced

Pi4J V.2 tries to focus on its core functionality (the GPIO I/O) but at the same time wants to provide the possibility to extend and adapt to other hardware, underlying framework etc.

You can find more info on these pages about some of the current functionalities to achieve this:

\ No newline at end of file diff --git a/architecture/advanced/library-path/index.html b/architecture/advanced/library-path/index.html index 024fdacbc..88e82a4ae 100644 --- a/architecture/advanced/library-path/index.html +++ b/architecture/advanced/library-path/index.html @@ -1,5 +1,5 @@ Native Library Path - Pi4J -

Where To Get The Native Libraries

The Pi4J native libraries can be obtained by extracting the architecture specific libpi4j-xxx.so file from the plugin JAR file’s resources.

Additionally, the Pi4J native libraries are published as independant artifacts in the Maven Repository: -https://oss.sonatype.org/#nexus-search;quick~pi4j-library-pigpio

\ No newline at end of file +https://oss.sonatype.org/#nexus-search;quick~pi4j-library-pigpio

\ No newline at end of file diff --git a/architecture/advanced/plugins/index.html b/architecture/advanced/plugins/index.html index 7ea36fc84..6e2cdf7b0 100644 --- a/architecture/advanced/plugins/index.html +++ b/architecture/advanced/plugins/index.html @@ -1,5 +1,5 @@ Plug-ins - Pi4J -
\ No newline at end of file +

ServiceLoader overview by Piotr Mińkowski.

Pi4J V.2 architecture

\ No newline at end of file diff --git a/architecture/advanced/remote-support/index.html b/architecture/advanced/remote-support/index.html index 6d91ec58d..7b3ebe372 100644 --- a/architecture/advanced/remote-support/index.html +++ b/architecture/advanced/remote-support/index.html @@ -1,5 +1,5 @@ Remote support - Pi4J -
\ No newline at end of file +is being used.

\ No newline at end of file diff --git a/architecture/index.html b/architecture/index.html index e89c046f2..2404ff1ba 100644 --- a/architecture/index.html +++ b/architecture/index.html @@ -1,6 +1,6 @@ Architecture/Design - Pi4J -

Architecture/Design

The code of Pi4J is based on a layered approach, visualized in the picture below.

Since Pi4J is a low-level library, it tries to avoid inheriting third-party libraries at all costs. More complex dependency chains make it more difficult for users, especially novice users. Therefor, the only dependency Pi4J V.2 has is SLF4J to provide a standardized and extensible logging framework.

The dark grey blocks “Annotation Engine”, “@Register” and “@Inject” are here as a future idea but are not included in the current V2.

Pi4J V.2 architecture

\ No newline at end of file +Welcome to Pi4J > Architecture/Design

Architecture/Design

The code of Pi4J is based on a layered approach, visualized in the picture below.

Since Pi4J is a low-level library, it tries to avoid inheriting third-party libraries at all costs. More complex dependency chains make it more difficult for users, especially novice users. Therefor, the only dependency Pi4J V.2 has is SLF4J to provide a standardized and extensible logging framework.

The dark grey blocks “Annotation Engine”, “@Register” and “@Inject” are here as a future idea but are not included in the current V2.

Pi4J V.2 architecture

\ No newline at end of file diff --git a/architecture/pi4j-logo/index.html b/architecture/pi4j-logo/index.html index 312bd2301..6c0d8ba72 100644 --- a/architecture/pi4j-logo/index.html +++ b/architecture/pi4j-logo/index.html @@ -1,7 +1,7 @@ The Pi4J Logo - Pi4J -

The Pi4J Logo

The Pi4J logo has been designed by Gerrit Grunwald and is nicely combines a raspberry pie -with Duke, the Java Masqot.

\ No newline at end of file +with Duke, the Java Masqot.

\ No newline at end of file diff --git a/blog/2022/20220113_javafx_pi4j_template/index.html b/blog/2022/20220113_javafx_pi4j_template/index.html index 00fbf04b5..fb1491373 100644 --- a/blog/2022/20220113_javafx_pi4j_template/index.html +++ b/blog/2022/20220113_javafx_pi4j_template/index.html @@ -1,9 +1,9 @@ Getting Started Template - Pi4J -

Getting Started Template

2022-01-13, by Frank Delporte

Intro

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.

Pi4J is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to focus on implementing their application business logic.

Dieter Holz (FHNW University) and Robert von Burg (strolch.li) created a template project which is now part of the Pi4J example repositories. This project makes it even easier to get started and aims to:

  • Provide a clear step-by-step how to prepare your Raspberry Pi
  • Provide multiple test and start applications
  • Explain the use of a MVC-model (Model-View-Controller) to clearly split data, actions and user interface
  • Explain the use of JUnit test

Sources and info

Please check the README of the sources of the project for a full description of the setup process of the Raspberry Pi and to fully understand the example applications and the MVC-model. This page is only intended to give you a quick overview.

Example applications

HelloFX

A simple application to test if the JavaFX libraries are installed correctly. Should not be used as a template for one’s own JavaFX applications.

Wiring

The two other example applications use an LED and a button. These must be wired as is shown in the following diagram:

MinimalPi4J

The MinimalPi4j application is a Pi4j only application without a GUI. This application is also only used to test the setup and can be deleted after testing.

Pressing the button should generate a message in the console.

Once the Pi4J setup has been tested, MinimalPi4J can be deleted.

TemplateApp

This application shows the interaction between a JavaFX based Graphical User Interface (GUI) and the Raspberry Pi connected sensors and actuators, the Physical User Interface (PUI).

This application is to be used as a template for one’s own applications. This includes the existing test cases.

GUI application started from IntelliJ IDEA

You should first get to know and understand the example. For your own applications you should then copy the TemplateApp and modify it for your project, however without violating the rules of the MVC concept.

TemplatePUIApp

The MVC concept should also be used for applications without a GUI.

When developing PUI only applications, or when adding the GUI later, then one should use the TemplatePUIApp as template.

The MVC concept

The classic Model-View-Controller concept contains in addition to the starter class at least 3 more classes. -The interaction is clearly defined:

This way the GUI and PUI are completely separated from each other, i.e a GUI button to turn an LED on has no direct access to the LED component of the PUI. Instead the GUI button triggers a corresponding action in the controller which then sets the on state property in the model. The PUI listening on this state then turns the actual LED on or off.

GUI and PUI work with the same identical controller and thus also the same identical model.

In the MVC concept, every user interaction traverses the exact same cycle:

MVC Concept

Conclusion

You can use the same architecture (MVC) to implement a JavaFX-based GUI, a PUI attached to a Raspberry Pi, and integrate both in a clean, modular way.

\ No newline at end of file +The interaction is clearly defined:

This way the GUI and PUI are completely separated from each other, i.e a GUI button to turn an LED on has no direct access to the LED component of the PUI. Instead the GUI button triggers a corresponding action in the controller which then sets the on state property in the model. The PUI listening on this state then turns the actual LED on or off.

GUI and PUI work with the same identical controller and thus also the same identical model.

In the MVC concept, every user interaction traverses the exact same cycle:

MVC Concept

Conclusion

You can use the same architecture (MVC) to implement a JavaFX-based GUI, a PUI attached to a Raspberry Pi, and integrate both in a clean, modular way.

\ No newline at end of file diff --git a/blog/2022/20221117_kotlin_on_raspberrypi/index.html b/blog/2022/20221117_kotlin_on_raspberrypi/index.html index ffc7b2b1a..d8cece31c 100644 --- a/blog/2022/20221117_kotlin_on_raspberrypi/index.html +++ b/blog/2022/20221117_kotlin_on_raspberrypi/index.html @@ -1,5 +1,5 @@ Kotlin on the Raspberry Pi - Pi4J -

And of course we would take full advantage of the intuitive & inlined lambdas of Kotlin to create APIs like these:

  • listen { … }
  • onLow { … }
  • onHigh { … }

Be it Digital or Analog IO you’ll find a little API that makes life even more convenient for you (as if what you had wasn’t already enough). -Confused as you are, you might want to check the full documentation on these new APIs and lots more.

The story doesn’t end

There are still more DSLs on their way for communication protocols and standards like SPI, I²C and more!

Tell us what you think

Try it out! Tell us what you think and give us some ideas! Here is the GitHub Repository.

\ No newline at end of file +Confused as you are, you might want to check the full documentation on these new APIs and lots more.

The story doesn’t end

There are still more DSLs on their way for communication protocols and standards like SPI, I²C and more!

Tell us what you think

Try it out! Tell us what you think and give us some ideas! Here is the GitHub Repository.

\ No newline at end of file diff --git a/blog/2022/20221128_led_strip_with_jbang/index.html b/blog/2022/20221128_led_strip_with_jbang/index.html index db251be01..b427fd64a 100644 --- a/blog/2022/20221128_led_strip_with_jbang/index.html +++ b/blog/2022/20221128_led_strip_with_jbang/index.html @@ -1,5 +1,5 @@ LED strip with Pi4J and JBang - Pi4J -

Conclusion

The Raspberry Pi, Pi4J and JBang are a perfect combination to experiment with electronics! -Give it a try!!!

\ No newline at end of file +Give it a try!!!

\ No newline at end of file diff --git a/blog/2023/20230731_pi4j_os/index.html b/blog/2023/20230731_pi4j_os/index.html index 936e9416b..7b3fa2d0a 100644 --- a/blog/2023/20230731_pi4j_os/index.html +++ b/blog/2023/20230731_pi4j_os/index.html @@ -1,5 +1,5 @@ Pi4J Operating System - Pi4J -
-

History of the project

This project was originally started by Pascal Mathis as a student at the FHNW University in Switzerland, while working on a project to control all the electronic components in an Elecrow CrowPi with Java code.

Dieter Holz, Lecturer for Object-Oriented-Programming and UI Engineering at FHNW, further expanded the Pi4J OS in the different “flavors” to offer the ideal setup for his students.

Our students (1st and 2nd semester) should be able to focus on learning programming, especially in Java). Without the Pi4J OS images, they would have to learn a lot about Linux configuration, installation utilities, remote deployment, Maven, etc before they could start with their projects. All of these topics they need to learn later during their studies, but it’s overwhelming if you need to know it from the very first day.

Setting up a complete image is really time consuming, even if you know the bits and pieces already. At FHNW we start with CrowPi. The SD-card with Pi4J-CrowPi-Image is already plugged in. Students can start with their Pi4J-experiments “immediately”, even without typical hardware problems like connecting a LED.

In a second phase, we use the Pi4J-Basic-OS, and the first hardware-connection experiments are added.

In the third phase, using our JavaFX-template-project, they start with their “real” project. If they want to build a FXGL game, the Picade-Image is used. The main advantage here is, that ENTER-, cursor-, and ESC-keys are mapped on OS-Level. This is necessary to get the default FXGL-behaviour for the main-menu.

Conclusion

Pi4J is an ideal way to introduce the Java language into experiments with electronic components. And Pi4J OS makes this even easier for students and everyone interested in #JavaOnRaspberryPi.

\ No newline at end of file +

History of the project

This project was originally started by Pascal Mathis as a student at the FHNW University in Switzerland, while working on a project to control all the electronic components in an Elecrow CrowPi with Java code.

Dieter Holz, Lecturer for Object-Oriented-Programming and UI Engineering at FHNW, further expanded the Pi4J OS in the different “flavors” to offer the ideal setup for his students.

Our students (1st and 2nd semester) should be able to focus on learning programming, especially in Java). Without the Pi4J OS images, they would have to learn a lot about Linux configuration, installation utilities, remote deployment, Maven, etc before they could start with their projects. All of these topics they need to learn later during their studies, but it’s overwhelming if you need to know it from the very first day.

Setting up a complete image is really time consuming, even if you know the bits and pieces already. At FHNW we start with CrowPi. The SD-card with Pi4J-CrowPi-Image is already plugged in. Students can start with their Pi4J-experiments “immediately”, even without typical hardware problems like connecting a LED.

In a second phase, we use the Pi4J-Basic-OS, and the first hardware-connection experiments are added.

In the third phase, using our JavaFX-template-project, they start with their “real” project. If they want to build a FXGL game, the Picade-Image is used. The main advantage here is, that ENTER-, cursor-, and ESC-keys are mapped on OS-Level. This is necessary to get the default FXGL-behaviour for the main-menu.

Conclusion

Pi4J is an ideal way to introduce the Java language into experiments with electronic components. And Pi4J OS makes this even easier for students and everyone interested in #JavaOnRaspberryPi.

\ No newline at end of file diff --git a/blog/2024/20240318_interview_alexander_liggesmeyer/index.html b/blog/2024/20240318_interview_alexander_liggesmeyer/index.html index 01c52adea..40be5ed1f 100644 --- a/blog/2024/20240318_interview_alexander_liggesmeyer/index.html +++ b/blog/2024/20240318_interview_alexander_liggesmeyer/index.html @@ -1,7 +1,7 @@ Alexander Liggesmeyer and RPi5 - Pi4J -

Alexander Liggesmeyer and RPi5

2024-03-18, by Frank Delporte

Interview with Alexander Liggesmeyer about Pi4J for Raspberry Pi 5

Today, version 2.5.0 of Pi4J got released with many changes, fixes and improvements. The most important one being support for the Raspberry Pi 5. Short after the release of this new board, several issues were raised on GitHub as Pi4J was not compatible. The Raspberry Pi 5 uses a completely new way to interact with the GPIOs: the RP1 chip. Thanks to this chip, GPIO, SPI, I2C, USB, ethernet,… are seperated from the SoC to make it easier to develop newer boards. But this new approach wasn’t supported by the PiGpio library used in Pi4J V2… Until Alexander Liggesmeyer took up the challenge to find a solution!

Thanks Alexander for your amazing work! Can you introduce yourself?

I’m Alexander, and I’m currently doing a PhD at Saarland University’s HCI Lab. The research chair is working in the area of human computer interaction, which also often involves prototyping hardware.

What is your interest in the Pi4J project and how are you using it?

I first used it to develop a Cocktail mixing machine, whose software is based on Spring Boot. Spring Boot is a well-known Java framework for developing APIs. Pi4J allows me to control the Raspberry Pi’s GPIO interfaces directly from Java.

When you discovered that Pi4J wasn’t compatible with this new chip, what made you decide to dive into the problem and add a new provider?

I got the new Raspberry Pi 5 and ran a few applications on it. I saw that the CocktailPi application which could take about 60 seconds to start on a Raspberry Pi 4, can now start in less than 15 seconds. So I wanted to use the new Raspberry. Unfortunately, Pi4J wasn’t yet compatible with the new platform. I also saw that nobody was actively working on changing this, so I thought, why shouldn’t I do that myself? I’m actively using this library and wanted a feature that it hasn’t got yet. The library is open source and one of the advantages of that is that everybody can contribute. So why not do that? In the end, everybody profits.

This new provider is backwards compatible with earlier Raspberry Pi boards, how did you achieve this?

The new provider interfaces with LibGpioD, the library directly interacting with Gpio devices. I didn’t dig into how it actually manipulates the gpiochip device files, but I don’t think that they differ significantly (if at all) between Raspberry Pi versions. This is more something on the operating system level. The only thing the provider needs to do is find the correct gpiochip device. On the Raspberry Pi, this device always contains the name pinctrl in its name, so finding it is straightforward.

An OOS-project can only improve thanks to contributions of the community. Was it easy to understand how to add functionality to the Pi4J project? How can the code or website be improved to attract more contributors?

I think Pi4J is very well documented. Adding a new provider was a bit tricky, since I needed some libraries that were not part of the builder Docker images initially. But this could be solved by cloning and updating the builders as well. The only thing that I see could be improved is making the link to Slack more prominent.

How do you see the future of Java on embedded devices like the Raspberry Pi?

It depends on what a person wants to achieve. I personally like to use Python to develop small prototypes. For larger projects, I prefer type-safe programming languages because they already prevent most type errors at compile time. Java requires the developer to add the type of a variable every time it is defined, which adds to readability. On the other hand, Python does not force the developer to add type hints, leading to many developers not adding them. This makes refactoring code harder and more prone to errors.

\ No newline at end of file +Pi4J

Alexander Liggesmeyer and RPi5

2024-03-18, by Frank Delporte

Interview with Alexander Liggesmeyer about Pi4J for Raspberry Pi 5

Today, version 2.5.0 of Pi4J got released with many changes, fixes and improvements. The most important one being support for the Raspberry Pi 5. Short after the release of this new board, several issues were raised on GitHub as Pi4J was not compatible. The Raspberry Pi 5 uses a completely new way to interact with the GPIOs: the RP1 chip. Thanks to this chip, GPIO, SPI, I2C, USB, ethernet,… are seperated from the SoC to make it easier to develop newer boards. But this new approach wasn’t supported by the PiGpio library used in Pi4J V2… Until Alexander Liggesmeyer took up the challenge to find a solution!

Thanks Alexander for your amazing work! Can you introduce yourself?

I’m Alexander, and I’m currently doing a PhD at Saarland University’s HCI Lab. The research chair is working in the area of human computer interaction, which also often involves prototyping hardware.

What is your interest in the Pi4J project and how are you using it?

I first used it to develop a Cocktail mixing machine, whose software is based on Spring Boot. Spring Boot is a well-known Java framework for developing APIs. Pi4J allows me to control the Raspberry Pi’s GPIO interfaces directly from Java.

When you discovered that Pi4J wasn’t compatible with this new chip, what made you decide to dive into the problem and add a new provider?

I got the new Raspberry Pi 5 and ran a few applications on it. I saw that the CocktailPi application which could take about 60 seconds to start on a Raspberry Pi 4, can now start in less than 15 seconds. So I wanted to use the new Raspberry. Unfortunately, Pi4J wasn’t yet compatible with the new platform. I also saw that nobody was actively working on changing this, so I thought, why shouldn’t I do that myself? I’m actively using this library and wanted a feature that it hasn’t got yet. The library is open source and one of the advantages of that is that everybody can contribute. So why not do that? In the end, everybody profits.

This new provider is backwards compatible with earlier Raspberry Pi boards, how did you achieve this?

The new provider interfaces with LibGpioD, the library directly interacting with Gpio devices. I didn’t dig into how it actually manipulates the gpiochip device files, but I don’t think that they differ significantly (if at all) between Raspberry Pi versions. This is more something on the operating system level. The only thing the provider needs to do is find the correct gpiochip device. On the Raspberry Pi, this device always contains the name pinctrl in its name, so finding it is straightforward.

An OOS-project can only improve thanks to contributions of the community. Was it easy to understand how to add functionality to the Pi4J project? How can the code or website be improved to attract more contributors?

I think Pi4J is very well documented. Adding a new provider was a bit tricky, since I needed some libraries that were not part of the builder Docker images initially. But this could be solved by cloning and updating the builders as well. The only thing that I see could be improved is making the link to Slack more prominent.

How do you see the future of Java on embedded devices like the Raspberry Pi?

It depends on what a person wants to achieve. I personally like to use Python to develop small prototypes. For larger projects, I prefer type-safe programming languages because they already prevent most type errors at compile time. Java requires the developer to add the type of a variable every time it is defined, which adds to readability. On the other hand, Python does not force the developer to add type hints, leading to many developers not adding them. This makes refactoring code harder and more prone to errors.

\ No newline at end of file diff --git a/blog/2024/20240417_led_matrix_max7219_spi_web/index.html b/blog/2024/20240417_led_matrix_max7219_spi_web/index.html index 5daf3f994..8b2834e06 100644 --- a/blog/2024/20240417_led_matrix_max7219_spi_web/index.html +++ b/blog/2024/20240417_led_matrix_max7219_spi_web/index.html @@ -1,5 +1,5 @@ LED Matrix with SPI MAX7219 - Pi4J -

While working on his project, Roberto contributed extra LED character definitions for the Pi4JLedMatrixSpi.java single-file application in the Pi4J V2 JBang project.

Demos

-

Wiring

This demo project uses:

Connections:

Project and Code

Check the README in the project sources of Roberto for more info.

\ No newline at end of file +

Wiring

This demo project uses:

Connections:

Project and Code

Check the README in the project sources of Roberto for more info.

\ No newline at end of file diff --git a/blog/2024/20240418_i2c_improvements/index.html b/blog/2024/20240418_i2c_improvements/index.html index c2b116090..7a41fa19f 100644 --- a/blog/2024/20240418_i2c_improvements/index.html +++ b/blog/2024/20240418_i2c_improvements/index.html @@ -1,8 +1,8 @@ Ongoing I2C Improvements - Pi4J -

Ongoing I2C Improvements

2024-04-17, by Frank Delporte

Robert von Burg is working on improvements of the I2C implementation in Pi4J in preparation for the next release. The changes are in pull request #351. It’s still work-in-progress but will bring these improvements:

  • New I2C.execute(Callable) method to allow to atomically execute multiple I2C calls in a thread in a safe way.
  • New I2C.writeRead(byte[], byte[]) method to atomically perform a write, immediately followed by a read on the I2C bus.
  • Fix an issue where the LinuxFsI2CBus was closed when closing an I2C device. This can lead to errors as another device might still be open on the same bus, and an operation on the underlying RandomAccessFile would lead to exceptions.
  • Fix a workaround that required an I2C.read() on a newly created LinuxFsI2C device, if the first call was an ioctl. The device was not selected prior to the ioctl call.
  • Additional code cleanup and more to come…

This kind of methods is hard to test in unit tests as they interact with real components and need to handle the data and I2C devices depending on the interaction. As a solution, Robert is using a test project that has an implementation for an OLED display over I2C, using these commands.

\ No newline at end of file +
\ No newline at end of file diff --git a/blog/2024/20240419_interview_robert_von_burg/index.html b/blog/2024/20240419_interview_robert_von_burg/index.html index 78b65233b..68f6cfce6 100644 --- a/blog/2024/20240419_interview_robert_von_burg/index.html +++ b/blog/2024/20240419_interview_robert_von_burg/index.html @@ -1,5 +1,5 @@ Interview Robert von Burg - Pi4J -
-

How did you get involved in the Pi4J development?

For our electronic cabinets we use Raspberry Pis as the embedded platform to communicate with our custom PCBs using I2C. As we want to use the same programming language and domain model on the server and the cabinets, we looked for a Java library giving us access to the Raspberry Pi’s I/Os. Thus, the Pi4J project was selected. During our use we detected a bug, and since the Pi4J maintainer was a little busy, I offered to send a merge request for the fix. Over time, this lead to more involvement with the core project.

What are you focusing on in the Pi4J project?

My focus is on code review and testing of GPIO and I2C interfaces, as these are the interfaces where I have a certain amount of understanding.

Do you use Pi4J in any personal projects?

Yes, I use it for a bit of LED and power outlet control.

Do you think Java on Raspberry Pi is a valid choice for business use?

Absolutely. Thanks to the community, of which Azul has done a lot, we have a robust JVM on the Raspberry Pi, and we can stay in our domain model on the server and the embedded systems, which makes developing the software easier.

How do you think the Pi4J project can evolve further?

We are focusing on making the API easier to understand and use, make it work on the different Raspberry Pi versions and then help the community create a standard suite of components to communicate with different hardware which people use in their projects. This makes it easier for newcomers to start using Java on the Raspberry Pi and thus strengthen the Java community as a whole.

What is the future of Java on embedded or small systems like the Raspberry Pi?

These devices, as they become more and more powerful with each generation, make it easier to implement more and more features at home. If we think how people use them to extend their home networks for security, media playback, or home automation, I see a bright future. Our goal with the Pi4J project is to make it as easy as possible to onboard newcomers.

\ No newline at end of file +

How did you get involved in the Pi4J development?

For our electronic cabinets we use Raspberry Pis as the embedded platform to communicate with our custom PCBs using I2C. As we want to use the same programming language and domain model on the server and the cabinets, we looked for a Java library giving us access to the Raspberry Pi’s I/Os. Thus, the Pi4J project was selected. During our use we detected a bug, and since the Pi4J maintainer was a little busy, I offered to send a merge request for the fix. Over time, this lead to more involvement with the core project.

What are you focusing on in the Pi4J project?

My focus is on code review and testing of GPIO and I2C interfaces, as these are the interfaces where I have a certain amount of understanding.

Do you use Pi4J in any personal projects?

Yes, I use it for a bit of LED and power outlet control.

Do you think Java on Raspberry Pi is a valid choice for business use?

Absolutely. Thanks to the community, of which Azul has done a lot, we have a robust JVM on the Raspberry Pi, and we can stay in our domain model on the server and the embedded systems, which makes developing the software easier.

How do you think the Pi4J project can evolve further?

We are focusing on making the API easier to understand and use, make it work on the different Raspberry Pi versions and then help the community create a standard suite of components to communicate with different hardware which people use in their projects. This makes it easier for newcomers to start using Java on the Raspberry Pi and thus strengthen the Java community as a whole.

What is the future of Java on embedded or small systems like the Raspberry Pi?

These devices, as they become more and more powerful with each generation, make it easier to implement more and more features at home. If we think how people use them to extend their home networks for security, media playback, or home automation, I see a bright future. Our goal with the Pi4J project is to make it as easy as possible to onboard newcomers.

\ No newline at end of file diff --git a/blog/2024/20240423_pwm_rpi5/index.html b/blog/2024/20240423_pwm_rpi5/index.html index e19a3bb95..8111a7948 100644 --- a/blog/2024/20240423_pwm_rpi5/index.html +++ b/blog/2024/20240423_pwm_rpi5/index.html @@ -1,5 +1,5 @@ PWM Hardware Support on RPi5 - Pi4J -

Connect LED

Use appropriate Resistor in LED Cathode path. Connect Cathode lead to ground, Anode lead to GPIO18.

LED Connection

To calculate the resistor size, you can use this LED Series Resistor Calculator by DigiKey.

Run sample program

The example program can be called passing the parameter -a for the address, for example, in this configuration -a 2. But the program defaults to address 2. This means no parameter is required with this example when using dtoverlay=pwm.

\ No newline at end of file +

Connect LED

Use appropriate Resistor in LED Cathode path. Connect Cathode lead to ground, Anode lead to GPIO18.

LED Connection

To calculate the resistor size, you can use this LED Series Resistor Calculator by DigiKey.

Run sample program

The example program can be called passing the parameter -a for the address, for example, in this configuration -a 2. But the program defaults to address 2. This means no parameter is required with this example when using dtoverlay=pwm.

\ No newline at end of file diff --git a/blog/2024/20240425_interview_tom_aarts/index.html b/blog/2024/20240425_interview_tom_aarts/index.html index 79e0ed8e1..556a185d8 100644 --- a/blog/2024/20240425_interview_tom_aarts/index.html +++ b/blog/2024/20240425_interview_tom_aarts/index.html @@ -1,5 +1,5 @@ Interview Tom Aarts - Pi4J -
-

Can you introduce yourself? What is your history in software (Java) development?

Hi I’m Tom. My degree and career started in hardware. In 1971, I was working on HF transmitters that used vacuum tubes the size of your fist. By the eighties, I transitioned to firmware and software engineering.

My first Java involvement was at IBM in the 90’s when Java was first implemented on the AS400 to support the SOM (SystemObjectModel) architecture. This was the initial Java compiler, JIT and Garbage collector for the AS400. So although I was doing Java implementations, I interacted with these teams learning from them.

Then next was WebSphere, implementing a distributed Java financial application. After this time, my work was in server firmware development and later hardware simulation. Although the languages being used were not Java, Java remained my preferred language to code any tools my work required.

How did you get involved in the Pi4J development?

As I neared retirement I looked for future activities of interest and selected Raspberry Pi to be one of those activities. At that time, Pi4J was V1 and I used it to use some I2C chips. When V2 was released, and I migrated my existing code to V2, I became more interested in the Pi4J implementation.

The direction in V2 was no longer to provide device specific implementations. I offered to make my existing device implementations public if they could assist new users to understand Pi4J. Ongoing, while assisting on the discussions, I used the chip in question to create an example to demonstrate a way to solve a question. Along the way, I supplied a couple Pi4J fixes and enhancements becoming more involved in maintenance of the Pi4J V2 code base.

What are you focusing on in the Pi4J project?

My focus remains device support and examples to assist in issues and discussions. Also, helping with the work brought on by the new Raspberry Pi 5 to support the RP1 chip and bug fix and enhancements that result from various questions.

How do you use Pi4J in your own personal or company projects?

I have a couple home projects for clocks and temperature, and a great number of prototype boards to support the various chips I implemented.

You answer a lot of questions in the Pi4J discussions and tickets. What is the most challenging part to be able to help users?

Users usually ask a specific question. The difficulty is determining what level of response they need. Based on some questions, the details that are given, and what is asked, I think this particular user is experienced and understands Pi4J and the Raspberry Pi so a technical response to just their question will be good.

Some questions include details that make me conclude this person is new to Pi4J. So I need to think about what ’newbie’ mistakes could be made and provide a larger list of recommended steps and references of where more detail is available.

It are the questions that fall between these two categories that are more difficult to rapidly help the user. If I think they have more understanding, than they actually feel my response is too short and the user tries to accomplish what I suggested, and they make little or no progress and likely get frustrated. On the other hand if I think they are not experienced and give a great deal of information, the user then views it as a waste of their time as they already correctly completed what I suggest, and that certainly frustrates that user.

How do you think the Pi4J project can evolve further?

By adding more demonstration cases of Pi4J we can increase the interest and users. Pi4J doesn’t intend to implement IOT devices or supply Machine Learning applications, but we need these as reference projects. These should be simple but fully functional projects to demonstrate the capability of a Raspberry Pi using Pi4J. I believe this will bring in more users wanting to implement Home or Work IOT and do the implementation themselves. In addition, it can encourage STEM learning centers to use the Raspberry Pi and Pi4J as the Raspberry Foundation originally intended: a learning tool.

What is the future of Java on embedded or small systems like the Raspberry Pi?

I think Java will remain a valuable choice for these cases. Currently, there is emphasis on languages that prevent memory leaks and provide security, Java does both these items. I think we can assume the Java Runtime Environments will continue to improve performance and memory usage of Java. Also, there are very useful IDEs available for development, and of course Java portability.

\ No newline at end of file +

Can you introduce yourself? What is your history in software (Java) development?

Hi I’m Tom. My degree and career started in hardware. In 1971, I was working on HF transmitters that used vacuum tubes the size of your fist. By the eighties, I transitioned to firmware and software engineering.

My first Java involvement was at IBM in the 90’s when Java was first implemented on the AS400 to support the SOM (SystemObjectModel) architecture. This was the initial Java compiler, JIT and Garbage collector for the AS400. So although I was doing Java implementations, I interacted with these teams learning from them.

Then next was WebSphere, implementing a distributed Java financial application. After this time, my work was in server firmware development and later hardware simulation. Although the languages being used were not Java, Java remained my preferred language to code any tools my work required.

How did you get involved in the Pi4J development?

As I neared retirement I looked for future activities of interest and selected Raspberry Pi to be one of those activities. At that time, Pi4J was V1 and I used it to use some I2C chips. When V2 was released, and I migrated my existing code to V2, I became more interested in the Pi4J implementation.

The direction in V2 was no longer to provide device specific implementations. I offered to make my existing device implementations public if they could assist new users to understand Pi4J. Ongoing, while assisting on the discussions, I used the chip in question to create an example to demonstrate a way to solve a question. Along the way, I supplied a couple Pi4J fixes and enhancements becoming more involved in maintenance of the Pi4J V2 code base.

What are you focusing on in the Pi4J project?

My focus remains device support and examples to assist in issues and discussions. Also, helping with the work brought on by the new Raspberry Pi 5 to support the RP1 chip and bug fix and enhancements that result from various questions.

How do you use Pi4J in your own personal or company projects?

I have a couple home projects for clocks and temperature, and a great number of prototype boards to support the various chips I implemented.

You answer a lot of questions in the Pi4J discussions and tickets. What is the most challenging part to be able to help users?

Users usually ask a specific question. The difficulty is determining what level of response they need. Based on some questions, the details that are given, and what is asked, I think this particular user is experienced and understands Pi4J and the Raspberry Pi so a technical response to just their question will be good.

Some questions include details that make me conclude this person is new to Pi4J. So I need to think about what ’newbie’ mistakes could be made and provide a larger list of recommended steps and references of where more detail is available.

It are the questions that fall between these two categories that are more difficult to rapidly help the user. If I think they have more understanding, than they actually feel my response is too short and the user tries to accomplish what I suggested, and they make little or no progress and likely get frustrated. On the other hand if I think they are not experienced and give a great deal of information, the user then views it as a waste of their time as they already correctly completed what I suggest, and that certainly frustrates that user.

How do you think the Pi4J project can evolve further?

By adding more demonstration cases of Pi4J we can increase the interest and users. Pi4J doesn’t intend to implement IOT devices or supply Machine Learning applications, but we need these as reference projects. These should be simple but fully functional projects to demonstrate the capability of a Raspberry Pi using Pi4J. I believe this will bring in more users wanting to implement Home or Work IOT and do the implementation themselves. In addition, it can encourage STEM learning centers to use the Raspberry Pi and Pi4J as the Raspberry Foundation originally intended: a learning tool.

What is the future of Java on embedded or small systems like the Raspberry Pi?

I think Java will remain a valuable choice for these cases. Currently, there is emphasis on languages that prevent memory leaks and provide security, Java does both these items. I think we can assume the Java Runtime Environments will continue to improve performance and memory usage of Java. Also, there are very useful IDEs available for development, and of course Java portability.

\ No newline at end of file diff --git a/blog/2024/20240517_bosch_sensor_gas_measurement/index.html b/blog/2024/20240517_bosch_sensor_gas_measurement/index.html index db1c53828..e81704239 100644 --- a/blog/2024/20240517_bosch_sensor_gas_measurement/index.html +++ b/blog/2024/20240517_bosch_sensor_gas_measurement/index.html @@ -1,5 +1,5 @@ Bosch sensor gas measurement - Pi4J -

Bosch sensor gas measurement

2024-05-17, by Frank Delporte

Bosch has several sensors which are extremely small to measure temperature, humidity, pressure, and gas. We also have several example implementations documented on the Pi4J website:

You can find easy-to-use boards with such a sensor, for instance, on:

Important Information Regarding Gas Measurements

On the Pi4J GitHub Discussion page, there is an interesting discussion going on about the BME688 gas sensor that I want to share here… crogialli shared the following info:

I’ve been using BME680 in my application for a year, and I am also implementing BME 688. -It is entirely possible to read Temp, Pressure, Humidity and gas resistances from plain Java code (I do it, and I can submit my code for that, albeit I have an abstraction layer between the BME68X management and Pi4J so that the code could be not immediately usable). Readings for temp, pressure and humidity from BME68X are astonishingly accurate and quick.

However, I want you to know that it is not possible to get sensible air-quality (gas) estimations in that way. You can get a gas sensor resistance reading, but it is entirely meaningless and random, as a matter of fact. It cannot be reconnected to any air quality measure without the Bosh Sensortec Libraries (see below).

Moreover, I’ve been reading a BME680 gas sensor “manually” every 5 seconds by setting arbitrary heating patterns for a couple of years now. I’m pretty sure I have damaged the BME 680 MEMS gas sensor since current resistance readings are now very low (1..3K), whilst at the beginning, they used to be relatively higher (15K …150K). The sensor has always been in the same protected ambient (a boiler room with some natural ventilation hosting a diesel-fueled burner).

To get a correct gas estimation and preserve the sensor’s life, the only way I know is to integrate BSEC 2.4.0.0 libraries from Bosch, which implement a few adaptive algorithms for sampling the gas estimates with specific (AI-Calibrated) sensor heating patterns and at specific instants, thus providing reliable indexes and safeguarding the MEMS device.

Integrating BSEC libraries poses a few challenges:

  1. The library, written in C, is Bosch proprietary
  2. The source is not available; BSEC 2.4.0.0 is provided as a C binary library, statically linked
  3. It is unclear at the moment if they provide a 64bit binary for Raspberry Pi4 (I want to run on Rasbian 64)
  4. A Python wrapper exists, but not a Java one.

I’m looking into developing a Java (or Groovy) wrapper for integrating BSEC 2.4.0.0 into my app. Should I be unable to wrap it in Java, I will likely implement a call to external C or Python code (disgusting but likely functional, provided that a solution to run on 64-bit Raspbian exists).

BME68X sensors give exceptional results for their price. I advise avoiding messing with air quality if you don’t need it; if you do, you shall find a way to integrate BSEC libraries.

Bosch software

\ No newline at end of file +It is entirely possible to read Temp, Pressure, Humidity and gas resistances from plain Java code (I do it, and I can submit my code for that, albeit I have an abstraction layer between the BME68X management and Pi4J so that the code could be not immediately usable). Readings for temp, pressure and humidity from BME68X are astonishingly accurate and quick.

However, I want you to know that it is not possible to get sensible air-quality (gas) estimations in that way. You can get a gas sensor resistance reading, but it is entirely meaningless and random, as a matter of fact. It cannot be reconnected to any air quality measure without the Bosh Sensortec Libraries (see below).

Moreover, I’ve been reading a BME680 gas sensor “manually” every 5 seconds by setting arbitrary heating patterns for a couple of years now. I’m pretty sure I have damaged the BME 680 MEMS gas sensor since current resistance readings are now very low (1..3K), whilst at the beginning, they used to be relatively higher (15K …150K). The sensor has always been in the same protected ambient (a boiler room with some natural ventilation hosting a diesel-fueled burner).

To get a correct gas estimation and preserve the sensor’s life, the only way I know is to integrate BSEC 2.4.0.0 libraries from Bosch, which implement a few adaptive algorithms for sampling the gas estimates with specific (AI-Calibrated) sensor heating patterns and at specific instants, thus providing reliable indexes and safeguarding the MEMS device.

Integrating BSEC libraries poses a few challenges:

  1. The library, written in C, is Bosch proprietary
  2. The source is not available; BSEC 2.4.0.0 is provided as a C binary library, statically linked
  3. It is unclear at the moment if they provide a 64bit binary for Raspberry Pi4 (I want to run on Rasbian 64)
  4. A Python wrapper exists, but not a Java one.

I’m looking into developing a Java (or Groovy) wrapper for integrating BSEC 2.4.0.0 into my app. Should I be unable to wrap it in Java, I will likely implement a call to external C or Python code (disgusting but likely functional, provided that a solution to run on 64-bit Raspbian exists).

BME68X sensors give exceptional results for their price. I advise avoiding messing with air quality if you don’t need it; if you do, you shall find a way to integrate BSEC libraries.

Bosch software

\ No newline at end of file diff --git a/blog/2024/20240927-bits-bytes-signed-unsigned/index.html b/blog/2024/20240927-bits-bytes-signed-unsigned/index.html index 2603444ea..b0aa0b4b6 100644 --- a/blog/2024/20240927-bits-bytes-signed-unsigned/index.html +++ b/blog/2024/20240927-bits-bytes-signed-unsigned/index.html @@ -1,5 +1,5 @@ Signed versus unsigned byte values - Pi4J -

This gets explained more in detail in this blog post and this video:

\ No newline at end of file +

This gets explained more in detail in this blog post and this video:

\ No newline at end of file diff --git a/blog/index.html b/blog/index.html index d9a0fdf14..6a89a3cc0 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,6 +1,6 @@ Blogs - Pi4J -
\ No newline at end of file +Welcome to Pi4J > Blogs

Blogs

Some tutorials, experiments, interviews, etc. don’t fit in the documentation part of this site. These are shared in this section as blog posts.

\ No newline at end of file diff --git a/blog/index.xml b/blog/index.xml index 7e659c2fd..afd75534b 100644 --- a/blog/index.xml +++ b/blog/index.xml @@ -6,7 +6,7 @@ </span></span><span style="display:flex;"><span> </span></span><span style="display:flex;"><span><span style="color:#75715e">// Output</span> </span></span><span style="display:flex;"><span>Byte value 10001111: <span style="color:#f92672">-</span>113 -</span></span></code></pre></div><p>You can use <code>Byte.toUnsignedInt(b)</code> to get the expected, unsigned value:</p>Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> +</span></span></code></pre></div><p>You can use <code>Byte.toUnsignedInt(b)</code> to get the expected, unsigned value:</p>Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> <p>Bosch has several sensors which are extremely small to measure temperature, humidity, pressure, and gas. We also have several example implementations documented on the Pi4J website:</p> <ul> <li><a href="https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/">BME280 Sensor (temp, humidity, pressure) via Pi4J, I2C, and JBang</a>.</li> diff --git a/categories/index.html b/categories/index.html index 80cfc35a3..1fece64e8 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,5 +1,5 @@ Categories - Pi4J -
\ No newline at end of file diff --git a/documentation/board-info/index.html b/documentation/board-info/index.html index 592748ccb..5bad9d215 100644 --- a/documentation/board-info/index.html +++ b/documentation/board-info/index.html @@ -1,5 +1,5 @@ Using Board Info - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/build-io/index.html b/documentation/build-io/index.html index 526c64f3c..6a13b435b 100644 --- a/documentation/build-io/index.html +++ b/documentation/build-io/index.html @@ -1,5 +1,5 @@ Building an I/O Instance - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/building/fat-jar/index.html b/documentation/building/fat-jar/index.html index 5605f4c73..bff340ff5 100644 --- a/documentation/building/fat-jar/index.html +++ b/documentation/building/fat-jar/index.html @@ -1,5 +1,5 @@ Build as a FAT JAR with Maven - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/building/index.html b/documentation/building/index.html index 0a022ba82..1e59810fa 100644 --- a/documentation/building/index.html +++ b/documentation/building/index.html @@ -1,9 +1,9 @@ Building and running - Pi4J -

Building and running

When you create your application with and IDE on the Raspberry Pi itself (e.g. with Visual Studio Code), you can simply run the application. But ofcourse, you want to build and package your project to easily deploy it on one or more Raspberry -Pi’s.

There are different possibilities:

\ No newline at end of file +Pi’s.

There are different possibilities:

\ No newline at end of file diff --git a/documentation/building/javac/index.html b/documentation/building/javac/index.html index e10e54d88..80f2f558f 100644 --- a/documentation/building/javac/index.html +++ b/documentation/building/javac/index.html @@ -1,5 +1,5 @@ Building with javac - Pi4J -
\ No newline at end of file +

Thanks to Manuel de Vega Barreiro for this contribution.

\ No newline at end of file diff --git a/documentation/building/jbang/index.html b/documentation/building/jbang/index.html index 84c07aef2..6949db167 100644 --- a/documentation/building/jbang/index.html +++ b/documentation/building/jbang/index.html @@ -1,7 +1,7 @@ Running Pi4J with JBang - Pi4J -

Running Pi4J with JBang

JBang allows you to execute Java code with dependencies as a single file without the need for a full Maven or Gradle project. You also don’t need to compile your code. So it’s a very easy way to get started with Java and Pi4J.

Multiple examples and more information is available in the section “Example Implementations > JBang Examples”.

\ No newline at end of file +Welcome to Pi4J > Documentation > Building and running > Running Pi4J with JBang

Running Pi4J with JBang

JBang allows you to execute Java code with dependencies as a single file without the need for a full Maven or Gradle project. You also don’t need to compile your code. So it’s a very easy way to get started with Java and Pi4J.

Multiple examples and more information is available in the section “Example Implementations > JBang Examples”.

\ No newline at end of file diff --git a/documentation/building/modules-gradle/index.html b/documentation/building/modules-gradle/index.html index 31d077a98..29e2d3b89 100644 --- a/documentation/building/modules-gradle/index.html +++ b/documentation/building/modules-gradle/index.html @@ -1,5 +1,5 @@ Build Java modules with Gradle - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/building/modules-maven/index.html b/documentation/building/modules-maven/index.html index 0323cb242..bb6d37432 100644 --- a/documentation/building/modules-maven/index.html +++ b/documentation/building/modules-maven/index.html @@ -1,5 +1,5 @@ Build Java modules with Maven - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/create-context/index.html b/documentation/create-context/index.html index 30c2edc41..dde9e1109 100644 --- a/documentation/create-context/index.html +++ b/documentation/create-context/index.html @@ -1,5 +1,5 @@ Creating a Pi4J Context - Pi4J -

Additional methods to access the registered I/O instances can be obtained through the Registry class.

pi4j.registry().*
-
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/index.html b/documentation/index.html index 418d8bc92..9f0fff1fc 100644 --- a/documentation/index.html +++ b/documentation/index.html @@ -1,8 +1,8 @@ Documentation - Pi4J -

Documentation

Pi4J wants to provide the best possible solution for Java development on the Raspberry Pi for two use-cases.

  1. Do you want to develop an application without the need to touch the internal code of Pi4J?

In that case you’re at the right place for all the documentation you need! In this section you can find multiple examples to get you started.

  1. Do you want to go a few steps further and contribute to Pi4J, extend it with additional plugins or -understand how it is build?
In that case you’ll find more information in the Architecture/Design section.

Table of contents of the “Documentation” section

\ No newline at end of file +understand how it is build?
In that case you’ll find more information in the Architecture/Design section.

Table of contents of the “Documentation” section

\ No newline at end of file diff --git a/documentation/io-examples/digital-input/index.html b/documentation/io-examples/digital-input/index.html index 619b80254..9de8388c7 100644 --- a/documentation/io-examples/digital-input/index.html +++ b/documentation/io-examples/digital-input/index.html @@ -1,5 +1,5 @@ Digital Input (GPIO) - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/io-examples/digital-output/index.html b/documentation/io-examples/digital-output/index.html index 805a56f23..9dc689f36 100644 --- a/documentation/io-examples/digital-output/index.html +++ b/documentation/io-examples/digital-output/index.html @@ -1,5 +1,5 @@ Digital Output (GPIO) - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/io-examples/i2c/clock-stretching/index.html b/documentation/io-examples/i2c/clock-stretching/index.html index 61cde5328..052365ade 100644 --- a/documentation/io-examples/i2c/clock-stretching/index.html +++ b/documentation/io-examples/i2c/clock-stretching/index.html @@ -1,5 +1,5 @@ I²C Clock Stretching - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/io-examples/i2c/index.html b/documentation/io-examples/i2c/index.html index 18005b1ea..6479b51d5 100644 --- a/documentation/io-examples/i2c/index.html +++ b/documentation/io-examples/i2c/index.html @@ -1,5 +1,5 @@ Inter-Integrated Circuit (I²C) - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/io-examples/index.html b/documentation/io-examples/index.html index cb133ba06..2a1d8efe0 100644 --- a/documentation/io-examples/index.html +++ b/documentation/io-examples/index.html @@ -1,5 +1,5 @@ I/O Examples - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/io-examples/pwm/index.html b/documentation/io-examples/pwm/index.html index ed4fcbeb5..facf5e107 100644 --- a/documentation/io-examples/pwm/index.html +++ b/documentation/io-examples/pwm/index.html @@ -1,5 +1,5 @@ Pulse Width Modulation (PWM) - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/io-examples/serial/index.html b/documentation/io-examples/serial/index.html index d9b9e184c..3ef11a0c5 100644 --- a/documentation/io-examples/serial/index.html +++ b/documentation/io-examples/serial/index.html @@ -1,5 +1,5 @@ Serial (UART/RS232) - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/io-examples/spi/index.html b/documentation/io-examples/spi/index.html index 404e479b4..1f8572842 100644 --- a/documentation/io-examples/spi/index.html +++ b/documentation/io-examples/spi/index.html @@ -1,5 +1,5 @@ Serial Peripheral Interface (SPI) - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/java-installation/index.html b/documentation/java-installation/index.html index 6bf7b2910..2aa9faba6 100644 --- a/documentation/java-installation/index.html +++ b/documentation/java-installation/index.html @@ -1,5 +1,5 @@ Java for ARMv6/7/8 - Pi4J -
\ No newline at end of file +

OK, ready to run Java 11 applications on the Raspberry Pi with ARMv6!

More info

If you want more info, or use JavaFX, check these blog posts:

\ No newline at end of file diff --git a/documentation/logging/index.html b/documentation/logging/index.html index 0c95f0c8b..db63a6afc 100644 --- a/documentation/logging/index.html +++ b/documentation/logging/index.html @@ -1,5 +1,5 @@ Logging with SLF4J - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/pin-numbering/index.html b/documentation/pin-numbering/index.html index e2d3ca0b0..a7f46a9c1 100644 --- a/documentation/pin-numbering/index.html +++ b/documentation/pin-numbering/index.html @@ -1,8 +1,8 @@ Pin numbering - Pi4J -

Pin numbering

Pi4J V.1 took a pretty opinionated approach to pin numbering as the scheme was based on the underlying WiringPi. This scheme was incompatibility with other pin diagrams and pin numbering used by other development platforms and libraries.

As Pi4J V.2 is build as a “pass thru library”, and uses PiGpio as the underlying framework, -the more well-known BCM numbering is being used now.

This drawing shows the different numbers for WiringPi and BCM in a 40-pins Raspberry Pi header:

40-pins header

\ No newline at end of file +the more well-known BCM numbering is being used now.

This drawing shows the different numbers for WiringPi and BCM in a 40-pins Raspberry Pi header:

40-pins header

\ No newline at end of file diff --git a/documentation/platforms/index.html b/documentation/platforms/index.html index e7a0bd221..c33088f01 100644 --- a/documentation/platforms/index.html +++ b/documentation/platforms/index.html @@ -1,5 +1,5 @@ Choosing a Platform - Pi4J -
\ No newline at end of file +jar’s which use the RaspberryPiPlatform.

Current supported platforms:

\ No newline at end of file diff --git a/documentation/platforms/raspberry-pi/index.html b/documentation/platforms/raspberry-pi/index.html index fed251600..075090abd 100644 --- a/documentation/platforms/raspberry-pi/index.html +++ b/documentation/platforms/raspberry-pi/index.html @@ -1,5 +1,5 @@ Raspberry Pi - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/providers/gpiod/index.html b/documentation/providers/gpiod/index.html index 8f72ff767..66ab22947 100644 --- a/documentation/providers/gpiod/index.html +++ b/documentation/providers/gpiod/index.html @@ -1,5 +1,5 @@ GpioD Provider - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/providers/index.html b/documentation/providers/index.html index 99e58f56e..091dcba7a 100644 --- a/documentation/providers/index.html +++ b/documentation/providers/index.html @@ -1,5 +1,5 @@ Choosing an I/O Provider - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/providers/linuxfs/index.html b/documentation/providers/linuxfs/index.html index 162b42b14..9b3a1096f 100644 --- a/documentation/providers/linuxfs/index.html +++ b/documentation/providers/linuxfs/index.html @@ -1,5 +1,5 @@ LinuxFS Provider - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/providers/pigpio/index.html b/documentation/providers/pigpio/index.html index 544813830..42e52cec6 100644 --- a/documentation/providers/pigpio/index.html +++ b/documentation/providers/pigpio/index.html @@ -1,5 +1,5 @@ PiGpio Provider - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/documentation/registry/index.html b/documentation/registry/index.html index f110c6271..1b882f5d9 100644 --- a/documentation/registry/index.html +++ b/documentation/registry/index.html @@ -1,6 +1,6 @@ I/O Registry - Pi4J -

I/O Registry

An additional V.2 feature is an I/O registry where all I/O instances that have been created can be maintained, managed, re-accessed, etc. As the library keeps track of all the created I/O instances, they become publicly accessible through a registry where users can interrogate, iterate, identify and access all created I/O instances that Pi4J is managing.

This is very useful for add-ons/plugins that want to provide runtime information about the state of all I/O, for example a web app illustrating the current state of I/O.

The registry is responsible for managing I/O instance lifecycles and provides a means for your program to easily access any I/O instance using its unique identifier.

\ No newline at end of file +Welcome to Pi4J > Documentation > I/O Registry

I/O Registry

An additional V.2 feature is an I/O registry where all I/O instances that have been created can be maintained, managed, re-accessed, etc. As the library keeps track of all the created I/O instances, they become publicly accessible through a registry where users can interrogate, iterate, identify and access all created I/O instances that Pi4J is managing.

This is very useful for add-ons/plugins that want to provide runtime information about the state of all I/O, for example a web app illustrating the current state of I/O.

The registry is responsible for managing I/O instance lifecycles and provides a means for your program to easily access any I/O instance using its unique identifier.

\ No newline at end of file diff --git a/documentation/shutdown/index.html b/documentation/shutdown/index.html index 1b7132ddf..b0a2cd86a 100644 --- a/documentation/shutdown/index.html +++ b/documentation/shutdown/index.html @@ -1,5 +1,5 @@ Shutting down the Pi4J Context - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/communityimplementation/bmp280/index.html b/examples/communityimplementation/bmp280/index.html index 762efa1e0..3067beb05 100644 --- a/examples/communityimplementation/bmp280/index.html +++ b/examples/communityimplementation/bmp280/index.html @@ -1,5 +1,5 @@ BMP280 Sensor - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/examples/communityimplementation/index.html b/examples/communityimplementation/index.html index c7353d0c5..f495e9650 100644 --- a/examples/communityimplementation/index.html +++ b/examples/communityimplementation/index.html @@ -1,5 +1,5 @@ Community Implementations - Pi4J -

Community Implementations

On this page we want to keep a list of projects which contain implementation code for specific devices using the Pi4J V.2 core library. Please let us know via Pi4J V.2 Discussions if you want to have your project added -to this list.

Current available device support projects

Device(s)Developed byLink
1602A LCD HD44780UThomas Aartsgithub.com/Pi4J/pi4j-example-devices
1602A_LCD_PCF8574A I2C ControllerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
1602A LCD MCP23017 I2C ControllerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
ADS1256 24bit A-to-DThomas Aartsgithub.com/Pi4J/pi4j-example-devices
AT24c512 SEEPROMThomas Aartsgithub.com/Pi4J/pi4j-example-devices
BME280 Sensor Temperature and PressureThomas Aartsgithub.com/Pi4J/pi4j-example-devices
BMP280 Temperature and Pressure SensorThomas Aartsgithub.com/Pi4J/pi4j-example-devices
DAC8552 16bit DAC SPI connectedThomas Aartsgithub.com/Pi4J/pi4j-example-devices
DHT22 Temp/Humidity sensorThomas Aartsgithub.com/Pi4J/pi4j-example-devices
IS31FL3731 matrix controllerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP23008 drive and read chip GPIOsThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP23008 and MCP23017 Pin monitoringThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP23017 drive and read chip GPIOsThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP3008 A/D 10bit converterThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP4725 12 bit DACThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MPL3115A2 AltitudeThomas Aartsgithub.com/Pi4J/pi4j-example-devices
NeoPixel LED stripThomas Aartsgithub.com/Pi4J/pi4j-example-devices
RotaryEncoder5880Thomas Aartsgithub.com/Pi4J/pi4j-example-devices
SN74HC595 8 Bit shift registerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
SSD1306 OLED DisplayThomas Aartsgithub.com/Pi4J/pi4j-example-devices
TCA9548 (1x8 I2C switch)Thomas Aartsgithub.com/Pi4J/pi4j-example-devices
VL53L0X TimeOfFlight deviceThomas Aartsgithub.com/Pi4J/pi4j-example-devices
\ No newline at end of file +to this list.

Current available device support projects

Device(s)Developed byLink
1602A LCD HD44780UThomas Aartsgithub.com/Pi4J/pi4j-example-devices
1602A_LCD_PCF8574A I2C ControllerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
1602A LCD MCP23017 I2C ControllerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
ADS1256 24bit A-to-DThomas Aartsgithub.com/Pi4J/pi4j-example-devices
AT24c512 SEEPROMThomas Aartsgithub.com/Pi4J/pi4j-example-devices
BME280 Sensor Temperature and PressureThomas Aartsgithub.com/Pi4J/pi4j-example-devices
BMP280 Temperature and Pressure SensorThomas Aartsgithub.com/Pi4J/pi4j-example-devices
DAC8552 16bit DAC SPI connectedThomas Aartsgithub.com/Pi4J/pi4j-example-devices
DHT22 Temp/Humidity sensorThomas Aartsgithub.com/Pi4J/pi4j-example-devices
IS31FL3731 matrix controllerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP23008 drive and read chip GPIOsThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP23008 and MCP23017 Pin monitoringThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP23017 drive and read chip GPIOsThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP3008 A/D 10bit converterThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MCP4725 12 bit DACThomas Aartsgithub.com/Pi4J/pi4j-example-devices
MPL3115A2 AltitudeThomas Aartsgithub.com/Pi4J/pi4j-example-devices
NeoPixel LED stripThomas Aartsgithub.com/Pi4J/pi4j-example-devices
RotaryEncoder5880Thomas Aartsgithub.com/Pi4J/pi4j-example-devices
SN74HC595 8 Bit shift registerThomas Aartsgithub.com/Pi4J/pi4j-example-devices
SSD1306 OLED DisplayThomas Aartsgithub.com/Pi4J/pi4j-example-devices
TCA9548 (1x8 I2C switch)Thomas Aartsgithub.com/Pi4J/pi4j-example-devices
VL53L0X TimeOfFlight deviceThomas Aartsgithub.com/Pi4J/pi4j-example-devices
\ No newline at end of file diff --git a/examples/communityimplementation/prototype-board/index.html b/examples/communityimplementation/prototype-board/index.html index cce7ce753..ba6a6c9f5 100644 --- a/examples/communityimplementation/prototype-board/index.html +++ b/examples/communityimplementation/prototype-board/index.html @@ -1,5 +1,5 @@ Prototype Board - Pi4J -
\ No newline at end of file +GPIOs on Gpio breadboard connector or 5v/3.3v and ground on the chip breadboard.

\ No newline at end of file diff --git a/examples/components/ads1115/index.html b/examples/components/ads1115/index.html index 2c1b9d0e3..ac1cac94f 100644 --- a/examples/components/ads1115/index.html +++ b/examples/components/ads1115/index.html @@ -1,5 +1,5 @@ AD Converter ADS1115 - Pi4J -

Further application

The class is implemented in the sample project Theremin.

Further project ideas

  • An application, which detects the deflection of an analog joystick.
  • An application, that determines the current position of a potentiometer.
\ No newline at end of file +

Further application

The class is implemented in the sample project Theremin.

Further project ideas

\ No newline at end of file diff --git a/examples/components/buzzer/index.html b/examples/components/buzzer/index.html index 6faf02de5..81a3fce10 100644 --- a/examples/components/buzzer/index.html +++ b/examples/components/buzzer/index.html @@ -1,5 +1,5 @@ Buzzer - Pi4J -

Further application

The class is implemented in the sample project Theremin.

Further project ideas

  • An application, which triggers if you walk by and starts beeping, like an alarm.
  • An application, where you use many of them to create a beautiful sounding melody.
\ No newline at end of file +

Further application

The class is implemented in the sample project Theremin.

Further project ideas

\ No newline at end of file diff --git a/examples/components/camera/index.html b/examples/components/camera/index.html index dc7c944ec..7b2cd9d6b 100644 --- a/examples/components/camera/index.html +++ b/examples/components/camera/index.html @@ -1,5 +1,5 @@ Camera - Pi4J -

Further application

The class is implemented in the sample project Photobooth.

Further project ideas

  • Use a camera and a motion-sensor to create a wildlife-camera
  • Use a camera to monitor the entrance of a building, by publishing the preview of the camera to a webserver
\ No newline at end of file +

Further application

The class is implemented in the sample project Photobooth.

Further project ideas

\ No newline at end of file diff --git a/examples/components/index.html b/examples/components/index.html index 6b4bd46b5..cba750e18 100644 --- a/examples/components/index.html +++ b/examples/components/index.html @@ -1,5 +1,5 @@ Component Examples - Pi4J -

Component Examples

The FHNW University contributed a full project with example implementations of the following devices.

Current available components

Device(s)Developed byLink
Simple ButtonReto Stutz, Mike SchoderExample Devices
Simple LEDReto Stutz, Mike SchoderExample Devices
AD Converter ADS1115Reto Stutz, Mike SchoderExample Devices
BuzzerReto Stutz, Mike SchoderExample Devices
CameraReto Stutz, Mike SchoderExample Devices
JoystickReto Stutz, Mike SchoderExample Devices
Joystick AnalogReto Stutz, Mike SchoderExample Devices
LCD DisplayReto Stutz, Mike SchoderExample Devices
LED ButtonReto Stutz, Mike SchoderExample Devices
LED MatrixReto Stutz, Mike SchoderExample Devices
LED StripReto Stutz, Mike SchoderExample Devices
PotentiometerReto Stutz, Mike SchoderExample Devices
Servo MotorReto Stutz, Mike SchoderExample Devices

Simple Implementation

For a Simple Implementation, the recommendation is to use the Launcher Class. -With this, a simple application can be started.

Electrical Engineering

General inputs and help on electrical engineering can be looked up on Getting started with PI4J / Electrical Engineering page.

\ No newline at end of file +With this, a simple application can be started.

Electrical Engineering

General inputs and help on electrical engineering can be looked up on Getting started with PI4J / Electrical Engineering page.

\ No newline at end of file diff --git a/examples/components/joystick/index.html b/examples/components/joystick/index.html index 60d8ed316..4cb99631e 100644 --- a/examples/components/joystick/index.html +++ b/examples/components/joystick/index.html @@ -1,5 +1,5 @@ Joystick - Pi4J -
\ No newline at end of file +

Further application

The class is not yet implemented in a project.

Further project ideas

  • Realize the popular arcade game Street Fighter on your own Raspberry Pi.
  • Create a claw crane game machine, the hit at every party.
\ No newline at end of file diff --git a/examples/components/joystickanalog/index.html b/examples/components/joystickanalog/index.html index d05a68207..b392420f7 100644 --- a/examples/components/joystickanalog/index.html +++ b/examples/components/joystickanalog/index.html @@ -1,5 +1,5 @@ Joystick Analog - Pi4J -

Further application

The class is implemented in the sample project Theremin.

Further project ideas

  • create your own PlayStation controller
  • use the joystick to control the position of servo motors steplessly
\ No newline at end of file +

Further application

The class is implemented in the sample project Theremin.

Further project ideas

\ No newline at end of file diff --git a/examples/components/lcddisplay/index.html b/examples/components/lcddisplay/index.html index e54d08c49..60eaf409f 100644 --- a/examples/components/lcddisplay/index.html +++ b/examples/components/lcddisplay/index.html @@ -1,5 +1,5 @@ LCD Display - Pi4J -

Further application

The class is implemented in the sample project Photobooth.

Further project ideas

  • A Temperature Sensor hooked to a display, where it constantly shows how warm it is
  • A microphone, which listens what is said, and writing on the display what is said
\ No newline at end of file +Create an own Symbol

Further application

The class is implemented in the sample project Photobooth.

Further project ideas

\ No newline at end of file diff --git a/examples/components/ledbutton/index.html b/examples/components/ledbutton/index.html index 229fa4523..da41ff67c 100644 --- a/examples/components/ledbutton/index.html +++ b/examples/components/ledbutton/index.html @@ -1,5 +1,5 @@ LED Button - Pi4J -

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

  • An application, which includes a button. if the button is pressed, the app will order you a crate of beer from your favorite store.
  • An application, where you can play “whack a mole”. If the LED is on and you hit the right button, you get points.
\ No newline at end of file +

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

\ No newline at end of file diff --git a/examples/components/ledmatrix/index.html b/examples/components/ledmatrix/index.html index ad45d4b49..dd443e0a1 100644 --- a/examples/components/ledmatrix/index.html +++ b/examples/components/ledmatrix/index.html @@ -1,5 +1,5 @@ LED Matrix - Pi4J -
\ No newline at end of file +

Further application

The class is not yet implemented in a project.

Further project ideas

  • A suit with a sewn-on LED matrix, which can be used to display images and animations.
  • A LED-strip which can be used as a backlight of a screen. The color and brightness can change to the volume and mood of the displayed images.
\ No newline at end of file diff --git a/examples/components/ledstrip/index.html b/examples/components/ledstrip/index.html index 82317463e..d2dcd3287 100644 --- a/examples/components/ledstrip/index.html +++ b/examples/components/ledstrip/index.html @@ -1,5 +1,5 @@ LED Strip - Pi4J -

Further application

The class is implemented in the sample project Photobooth.

Further project ideas

  • A suit with LED-Strips sewn on, on which different animations can run.
  • A LED-strip which can be used as a backlight of a screen. The color and brightness can change to the volume and mood of the displayed images.
\ No newline at end of file +

Further application

The class is implemented in the sample project Photobooth.

Further project ideas

\ No newline at end of file diff --git a/examples/components/potentiometer/index.html b/examples/components/potentiometer/index.html index 040dcda81..becf5bb75 100644 --- a/examples/components/potentiometer/index.html +++ b/examples/components/potentiometer/index.html @@ -1,5 +1,5 @@ Potentiometer - Pi4J -

Further application

The class is implemented in the sample project Theremin.

Further project ideas

  • An application, to control the brightness of some lights.
  • The speed and direction of a drone can be controlled with a potentiometer.
\ No newline at end of file +

Further application

The class is implemented in the sample project Theremin.

Further project ideas

\ No newline at end of file diff --git a/examples/components/servo/index.html b/examples/components/servo/index.html index 6f73d0504..883f5a7f7 100644 --- a/examples/components/servo/index.html +++ b/examples/components/servo/index.html @@ -1,5 +1,5 @@ ServoMotor - Pi4J -

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

  • As a Servo can cover up to 180 degrees, it could be used as a steering-wheel hooked to a potentiometer
  • As a pointer, to show how much time is left in a timer
\ No newline at end of file +

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

\ No newline at end of file diff --git a/examples/components/simplebutton/index.html b/examples/components/simplebutton/index.html index a68b4fa4e..b2f44d9c8 100644 --- a/examples/components/simplebutton/index.html +++ b/examples/components/simplebutton/index.html @@ -1,5 +1,5 @@ Simple Button - Pi4J -

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

  • An application, which includes a button. if the button is pressed, the app will order you a crate of beer from your favorite store.
  • An application, which includes a buzzer and a button. If the button is pressed, the buzzer beeps.
\ No newline at end of file +

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

\ No newline at end of file diff --git a/examples/components/simpleled/index.html b/examples/components/simpleled/index.html index e62460582..0dc35188f 100644 --- a/examples/components/simpleled/index.html +++ b/examples/components/simpleled/index.html @@ -1,5 +1,5 @@ Simple LED - Pi4J -

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

  • Use an infrared LED to establish communication with an infrared receiver.
  • Use several red LEDs to recreate the running lights of KITT, the car from Knight Rider.
\ No newline at end of file +

Further application

The class is implemented in the two sample projects Theremin and Photobooth.

Further project ideas

\ No newline at end of file diff --git a/examples/crowpi/crowpi-examples/index.html b/examples/crowpi/crowpi-examples/index.html index 40b163250..e580b7535 100644 --- a/examples/crowpi/crowpi-examples/index.html +++ b/examples/crowpi/crowpi-examples/index.html @@ -1,8 +1,8 @@ CrowPi examples - Pi4J -

CrowPi examples

The CrowPi example code contains examples for the following components. The links in this table will bring you to the German documentation written by the students who created these examples.

ComponentLink
7-Segment Displayseven-segment
Buttonbutton
Button Matrixbutton-matrix
Buzzerbuzzer
Infrared Receiverir-receiver
LCD Displaylcd-display
LED Matrixled-matrix
Light sensorlight-sensor
PIR Motion Sensorpir-motion-sensor
Relaisrelay
RFIDrfid
Step motorstep-motor
Servomotorservo-motor
Sound Sensorsound-sensor
Temperature and humidity sensorhumi-temp-sens
Tilt Sensortilt-sensor
Touch Sensortouch-sensor
Ultrasonic distance sensorultrasonic-sensor
Vibration motorvibration-motor
\ No newline at end of file +CrowPi

CrowPi examples

The CrowPi example code contains examples for the following components. The links in this table will bring you to the German documentation written by the students who created these examples.

ComponentLink
7-Segment Displayseven-segment
Buttonbutton
Button Matrixbutton-matrix
Buzzerbuzzer
Infrared Receiverir-receiver
LCD Displaylcd-display
LED Matrixled-matrix
Light sensorlight-sensor
PIR Motion Sensorpir-motion-sensor
Relaisrelay
RFIDrfid
Step motorstep-motor
Servomotorservo-motor
Sound Sensorsound-sensor
Temperature and humidity sensorhumi-temp-sens
Tilt Sensortilt-sensor
Touch Sensortouch-sensor
Ultrasonic distance sensorultrasonic-sensor
Vibration motorvibration-motor
\ No newline at end of file diff --git a/examples/crowpi/develop-crowpi-with-intellij/index.html b/examples/crowpi/develop-crowpi-with-intellij/index.html index a63a18c7d..fa965ae37 100644 --- a/examples/crowpi/develop-crowpi-with-intellij/index.html +++ b/examples/crowpi/develop-crowpi-with-intellij/index.html @@ -1,5 +1,5 @@ Develop with Intellij IDEA - Pi4J -
\ No newline at end of file +computer and the Raspberry Pi again.

\ No newline at end of file diff --git a/examples/crowpi/index.html b/examples/crowpi/index.html index 81a8e129f..76bd3c775 100644 --- a/examples/crowpi/index.html +++ b/examples/crowpi/index.html @@ -1,5 +1,5 @@ Electronics with CrowPi - Pi4J -

As the CrowPi contains a lot of components, its use is described on the following subpages:

The CrowPi sources and documentation are provided by the Swiss FHNW University based on a project in 2021 by Pascal Mathis and Tobias Siegrist under supervision of Barbara Scheuner and Dieter Holz. The original documentation (in German) is available on “CrowPi goes Java” -(with sources on GitHub).

\ No newline at end of file +(with sources on GitHub).

\ No newline at end of file diff --git a/examples/index.html b/examples/index.html index d6dcd3af1..2c2820a8c 100644 --- a/examples/index.html +++ b/examples/index.html @@ -1,9 +1,9 @@ Example Implementations - Pi4J -

Example Implementations

The core Pi4J V.2 library doesn’t contain any specific support for devices like buttons, motors, LCD… This was part of V.1 but made the project much more difficult to maintain and fully test the library.

In this section, we want to provide you example implementations of several devices that are maintained by the community.

Current code providers

ProviderLink
Pi4JJBang examples
FHNW UniversityComponents
FHNW UniversityElectronics with CrowPi
Community ImplementationCommunity Implementation

Simple Implementation

For a simple implementation of a project with one of the components, the recommendation is to use the Template-Project. The Readme.md describes how to get started with the project. -To get a better understanding, look at one of those finished template-projects: Theremin or Photobooth

Electrical Engineering

General inputs and help on electrical engineering can be looked up on the Getting started with PI4J / Electrical Engineering page.

Table of contents of the “Example Implementations” section

\ No newline at end of file +To get a better understanding, look at one of those finished template-projects: Theremin or Photobooth

Electrical Engineering

General inputs and help on electrical engineering can be looked up on the Getting started with PI4J / Electrical Engineering page.

Table of contents of the “Example Implementations” section

\ No newline at end of file diff --git a/examples/jbang/bme280_temperature_humidity_pressure/index.html b/examples/jbang/bme280_temperature_humidity_pressure/index.html index 958981a34..3d3455970 100644 --- a/examples/jbang/bme280_temperature_humidity_pressure/index.html +++ b/examples/jbang/bme280_temperature_humidity_pressure/index.html @@ -1,5 +1,5 @@ BME280 Sensor - Pi4J -
\ No newline at end of file +

Conclusion

Once again, JBang proves to be the perfect companion to experiment with Pi4J and an electronics component!

Read More

The following sources have been used for this example:

\ No newline at end of file diff --git a/examples/jbang/index.html b/examples/jbang/index.html index 17b4a445d..a0c20eb6f 100644 --- a/examples/jbang/index.html +++ b/examples/jbang/index.html @@ -1,5 +1,5 @@ JBang Examples - Pi4J -

Example scripts

The Pi4J JBang project on GitHub contains several examples to demonstrate both JBang and Pi4J. Each java-file is a full-containing runnable JBang application. This means you don’t need Maven, Gradle, or other Java build tool.

To tell JBang that it must handle the file as a Java application and do some upfront preparation work, the first line in each file is: ///usr/bin/env jbang "$0" "$@" ; exit $?.

When an application needs dependencies, they are defined inside the file itself in a line starting with //DEPS. For instance, to use the Pi4J Core library: //DEPS com.pi4j:pi4j-core:2.3.0.

Each of the provided examples contains more information about the wiring inside the file itself and are also explained here on the Pi4J website.

Get the Examples from GitHub

You can clone the project with the examples to your Raspberry Pi in the terminal with the following commands:

$ git clone https://github.com/Pi4J/pi4j-jbang
 $ cd pi4j-jbang
-

Detailed Info of Each Example

The examples in the GitHub project are explained on these pages:

Video Demo

This approach to demonstrate Pi4J with JBang has been explained and demonstrated on Voxxed Days Brussels on May 23th, 2023.

\ No newline at end of file +

Detailed Info of Each Example

The examples in the GitHub project are explained on these pages:

Video Demo

This approach to demonstrate Pi4J with JBang has been explained and demonstrated on Voxxed Days Brussels on May 23th, 2023.

\ No newline at end of file diff --git a/examples/jbang/jbang_minimal_example/index.html b/examples/jbang/jbang_minimal_example/index.html index 59e723dbb..2a145744b 100644 --- a/examples/jbang/jbang_minimal_example/index.html +++ b/examples/jbang/jbang_minimal_example/index.html @@ -1,5 +1,5 @@ Minimal Example - Pi4J -
\ No newline at end of file +

Conclusion

With JBang we can have a single-source Java file that can be executed without the need for a full Maven or Gradle project. And we don’t even need to compile anything!

JBang is a great way to simply run Java-files, helps you to quickly get started with Pi4J on the Raspberry Pi, and can be the ideal getting-started method to experiment with electronics and Java.

\ No newline at end of file diff --git a/examples/jbang/jbang_pi4j_spi_led_matrix/index.html b/examples/jbang/jbang_pi4j_spi_led_matrix/index.html index 8e55c1af6..9b5da25a3 100644 --- a/examples/jbang/jbang_pi4j_spi_led_matrix/index.html +++ b/examples/jbang/jbang_pi4j_spi_led_matrix/index.html @@ -1,5 +1,5 @@ 8x8 LED Matrix - Pi4J -
\ No newline at end of file +

Conclusion

The given example code is pretty long as it contains many helper methods and some enums. Normally in a “full Java application”, you would create separate files for these enums to keep the code easier to organize.

But for an example as this one, it’s nice that we can combine everything in one file and execute it with JBang.

\ No newline at end of file diff --git a/examples/jbang/pixelblaze_output_expander/index.html b/examples/jbang/pixelblaze_output_expander/index.html index 8807214cb..8fd6acc81 100644 --- a/examples/jbang/pixelblaze_output_expander/index.html +++ b/examples/jbang/pixelblaze_output_expander/index.html @@ -1,5 +1,5 @@ Pixelblaze Output Expander - Pi4J -
\ No newline at end of file +

Conclusion

I’m still curious to see the reliability of this serial control for LED strips in combination with other loads on the Raspberry Pi, but the Pixelblaze Output Expander is a great way to easily control such strips!

\ No newline at end of file diff --git a/examples/jbang/pixelblaze_output_expander_image/index.html b/examples/jbang/pixelblaze_output_expander_image/index.html index f23d2f1aa..86d006d05 100644 --- a/examples/jbang/pixelblaze_output_expander_image/index.html +++ b/examples/jbang/pixelblaze_output_expander_image/index.html @@ -1,5 +1,5 @@ Controlling a LED Matrix - Pi4J -
\ No newline at end of file +

Controlling an 8x8 matrix

Within the GitHub project, you can also find an example to send images to an 8x8 matrix.

Conclusion

By reusing the existing Pixelblaze Output Expander helper code, we are able to control a LED matrix and experiment with images.

\ No newline at end of file diff --git a/examples/jbang/pixelblaze_output_expander_javafx/index.html b/examples/jbang/pixelblaze_output_expander_javafx/index.html index 6248166ca..4064407d4 100644 --- a/examples/jbang/pixelblaze_output_expander_javafx/index.html +++ b/examples/jbang/pixelblaze_output_expander_javafx/index.html @@ -1,5 +1,5 @@ LED strip with a JavaFX UI - Pi4J -
\ No newline at end of file +

Conclusion

JavaFX is an easy way to create a user interface and thanks to the reuse of the existing Pixelblaze Output Expander helper code, this example provides a lot of functionality with minimal code.

\ No newline at end of file diff --git a/featured-projects/binary-clock/index.html b/featured-projects/binary-clock/index.html index 6740dcb07..2c514bf9d 100644 --- a/featured-projects/binary-clock/index.html +++ b/featured-projects/binary-clock/index.html @@ -1,5 +1,5 @@ Binary Clock - Pi4J -
-

\ No newline at end of file +

\ No newline at end of file diff --git a/featured-projects/cocktail-maker-by-alex9849/index.html b/featured-projects/cocktail-maker-by-alex9849/index.html index 1901b6801..08cb5e596 100644 --- a/featured-projects/cocktail-maker-by-alex9849/index.html +++ b/featured-projects/cocktail-maker-by-alex9849/index.html @@ -1,5 +1,5 @@ CocktailPi - Pi4J -
\ No newline at end of file +beginners that don’t have much experience to build their own machine.

\ No newline at end of file diff --git a/featured-projects/index.html b/featured-projects/index.html index 88ee1b4b3..ccad41c54 100644 --- a/featured-projects/index.html +++ b/featured-projects/index.html @@ -1,5 +1,5 @@ Featured Projects - Pi4J -
\ No newline at end of file +get ambient light intensity or measure voltage in your java Raspberry Pi projects.


\ No newline at end of file diff --git a/featured-projects/joystick-game/index.html b/featured-projects/joystick-game/index.html index 7083ebb88..9eda91d34 100644 --- a/featured-projects/joystick-game/index.html +++ b/featured-projects/joystick-game/index.html @@ -1,5 +1,5 @@ JMonkeyEngine with Joystick - Pi4J -

Testing with a jmonkeyengine vehicle

It’s very hard to give you a full overview of how to create a jmonkeyengine vehicle in this tutorial, so you could fairly refer to jme docs and examples for more :

Video of operation

More at sources

\ No newline at end of file +

Testing with a jmonkeyengine vehicle

It’s very hard to give you a full overview of how to create a jmonkeyengine vehicle in this tutorial, so you could fairly refer to jme docs and examples for more :

Video of operation

More at sources

\ No newline at end of file diff --git a/featured-projects/pijukebox-by-daniel-martensson/index.html b/featured-projects/pijukebox-by-daniel-martensson/index.html index 6e0261b73..cbedceaf0 100644 --- a/featured-projects/pijukebox-by-daniel-martensson/index.html +++ b/featured-projects/pijukebox-by-daniel-martensson/index.html @@ -1,5 +1,5 @@ PiJukeBox - Pi4J -
\ No newline at end of file +github.com/DanielMartensson/PiJukeBox

\ No newline at end of file diff --git a/featured-projects/sensor-drivers/index.html b/featured-projects/sensor-drivers/index.html index c1b3ac92c..936dc6654 100644 --- a/featured-projects/sensor-drivers/index.html +++ b/featured-projects/sensor-drivers/index.html @@ -1,5 +1,5 @@ Sensor drivers - Pi4J -
\ No newline at end of file +dependency into your Java Gradle or Maven project, and you are good to go!

\ No newline at end of file diff --git a/featured-projects/soft-real-time-plc-written-in-strolch/index.html b/featured-projects/soft-real-time-plc-written-in-strolch/index.html index e580614f9..58c730066 100644 --- a/featured-projects/soft-real-time-plc-written-in-strolch/index.html +++ b/featured-projects/soft-real-time-plc-written-in-strolch/index.html @@ -1,5 +1,5 @@ Soft real time PLC - Pi4J -

These are projects by the company atexxi.ch.

A soft real time PLC written in Java running on Strolch

This PLC project by Robert von Burg combines Pi4j, Strolch and the Raspberry Pi.

It is being used in a material flow controller which coordinates FromStock orders with a medical dispensing robot and dispenses the packets into containers. These containers are then moved by a Strolch based PLC. The containers travel on a 12m long conveyor with multiple segments and entry/exits to position the container at the dispensing robot’s exit.

Medical cabinet with pick-by-light

The most recent project are medical cabinets which use I2C to communicate with custom electronics to control the locks, -perform a pick-by-light from slots and uses infrared to detect access to a slot with products in it.

\ No newline at end of file +perform a pick-by-light from slots and uses infrared to detect access to a slot with products in it.

\ No newline at end of file diff --git a/featured-projects/street-artist-robot/index.html b/featured-projects/street-artist-robot/index.html index 83c2f799e..923181470 100644 --- a/featured-projects/street-artist-robot/index.html +++ b/featured-projects/street-artist-robot/index.html @@ -1,5 +1,5 @@ Didier the street artist robot - Pi4J -
-

\ No newline at end of file +

\ No newline at end of file diff --git a/getting-started/developing-on-a-remote-pc/index.html b/getting-started/developing-on-a-remote-pc/index.html index ce7e27882..4691f2abe 100644 --- a/getting-started/developing-on-a-remote-pc/index.html +++ b/getting-started/developing-on-a-remote-pc/index.html @@ -1,5 +1,5 @@ Developing on a remote PC - Pi4J -
\ No newline at end of file +open the platform/raspberry.properties file (or copy it to a new file) and edit it to describe how to connect to your RPi

Thanks to Adi and Luca Buraggi for this contribution.

\ No newline at end of file diff --git a/getting-started/electricalengeneering/index.html b/getting-started/electricalengeneering/index.html index ba3c97f2f..52b6c85b7 100644 --- a/getting-started/electricalengeneering/index.html +++ b/getting-started/electricalengeneering/index.html @@ -1,5 +1,5 @@ Electrical Engineering - Pi4J -
\ No newline at end of file +everything can be soldered. So the pin headers are mounted exactly in 90° angle to the breakout and can be mounted on the breadboard without any problem.

Automatic wire stripper

Here is a short video that explains how the automatic wire stripper works.

Crimping tutorial

Here is a short video that explains the basics of crimping wires.

If the crimp connection does not hold, the following measures can lead to a better connection:
- Strip wire to double length, lay on top of each other and twist (see picture below)
- The crimping tool is too short, crimp the sleeve twice in different places (see picture below)

Crimping ferrules tutorial

Here is a short video that explains the basics of crimping ferrules to wires.

\ No newline at end of file diff --git a/getting-started/fxgl/fxgl-to-picade/index.html b/getting-started/fxgl/fxgl-to-picade/index.html index 50d62c463..6270034e2 100644 --- a/getting-started/fxgl/fxgl-to-picade/index.html +++ b/getting-started/fxgl/fxgl-to-picade/index.html @@ -1,5 +1,5 @@ FXGl to Picade - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/getting-started/fxgl/index.html b/getting-started/fxgl/index.html index fc27f9ead..133c29f0c 100644 --- a/getting-started/fxgl/index.html +++ b/getting-started/fxgl/index.html @@ -1,5 +1,5 @@ Game development with FXGL - Pi4J -
\ No newline at end of file +More to kiosk mode here

\ No newline at end of file diff --git a/getting-started/fxgl/kiosk-mode/index.html b/getting-started/fxgl/kiosk-mode/index.html index c6c33264e..f461d989c 100644 --- a/getting-started/fxgl/kiosk-mode/index.html +++ b/getting-started/fxgl/kiosk-mode/index.html @@ -1,5 +1,5 @@ JavaFX kiosk mode - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/getting-started/index.html b/getting-started/index.html index 17f0bb9c3..44dfd9d4a 100644 --- a/getting-started/index.html +++ b/getting-started/index.html @@ -1,8 +1,8 @@ Getting started with Pi4J - Pi4J -

Getting started with Pi4J

You have a Raspberry Pi? And you want to use Java as your programming language to build performant, easy-to-maintain and powerful applications? This is the place to be!!!

The pages in this chapter explain you how to get started in different steps. The full documentation for the library, -with more in-depth and technical info, can be found in the “Documentation” chapter.

This part of the site takes you through the different steps to start “from scratch”:

  1. Setting up the Raspberry Pi with all the tools needed
  2. Understanding the GPIO pins
  3. Java development on the Raspberry Pi with Visual Studio Code
  4. Using a Linux/Windows/Mac separate computer as developing workstation
  5. Minimal example application with an LED and button
  6. Introduction to electronics with CrowPi
  7. Adding a user interface with JavaFX
  8. Game development with FXGL and an Arcade controller

And if you still want to learn more, we have a list of additional resources.

\ No newline at end of file +with more in-depth and technical info, can be found in the “Documentation” chapter.

This part of the site takes you through the different steps to start “from scratch”:

  1. Setting up the Raspberry Pi with all the tools needed
  2. Understanding the GPIO pins
  3. Java development on the Raspberry Pi with Visual Studio Code
  4. Using a Linux/Windows/Mac separate computer as developing workstation
  5. Minimal example application with an LED and button
  6. Introduction to electronics with CrowPi
  7. Adding a user interface with JavaFX
  8. Game development with FXGL and an Arcade controller

And if you still want to learn more, we have a list of additional resources.

\ No newline at end of file diff --git a/getting-started/java-development-on-the-raspberry-pi-with-vsc/index.html b/getting-started/java-development-on-the-raspberry-pi-with-vsc/index.html index afb296d9d..49524f20d 100644 --- a/getting-started/java-development-on-the-raspberry-pi-with-vsc/index.html +++ b/getting-started/java-development-on-the-raspberry-pi-with-vsc/index.html @@ -1,5 +1,5 @@ Java development with VSC - Pi4J -

Since 02/2021 there is even an easier way, as Visual Studio Code is now available as a Raspberry Pi OS apt package. Use the following commands:

$ sudo apt update
 $ sudo apt install code -y
-
\ No newline at end of file +
\ No newline at end of file diff --git a/getting-started/javafx-mvc-template/index.html b/getting-started/javafx-mvc-template/index.html index af6430008..b0ea97cc4 100644 --- a/getting-started/javafx-mvc-template/index.html +++ b/getting-started/javafx-mvc-template/index.html @@ -1,5 +1,5 @@ JavaFX GUI and MVC template - Pi4J -
\ No newline at end of file +and integrate both in a clean, modular way.

\ No newline at end of file diff --git a/getting-started/learn-more/index.html b/getting-started/learn-more/index.html index 80d3fba1f..890bbb874 100644 --- a/getting-started/learn-more/index.html +++ b/getting-started/learn-more/index.html @@ -1,5 +1,5 @@ Learn more... - Pi4J -
\ No newline at end of file +the paper book on Elektor.

Cover of the ebook and paper book

\ No newline at end of file diff --git a/getting-started/minimal-example-application-fatjar/index.html b/getting-started/minimal-example-application-fatjar/index.html index f03b9e027..f21334092 100644 --- a/getting-started/minimal-example-application-fatjar/index.html +++ b/getting-started/minimal-example-application-fatjar/index.html @@ -1,5 +1,5 @@ Minimal example as FAT JAR - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/getting-started/minimal-example-application/index.html b/getting-started/minimal-example-application/index.html index 713fb786b..a1fbe77a9 100644 --- a/getting-started/minimal-example-application/index.html +++ b/getting-started/minimal-example-application/index.html @@ -1,5 +1,5 @@ Minimal example application - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/getting-started/set-up-a-new-raspberry-pi/index.html b/getting-started/set-up-a-new-raspberry-pi/index.html index d605f8960..2d7149be2 100644 --- a/getting-started/set-up-a-new-raspberry-pi/index.html +++ b/getting-started/set-up-a-new-raspberry-pi/index.html @@ -1,5 +1,5 @@ Set up a new Raspberry Pi - Pi4J -

Raspberry Pi OS is based on Debian - one of the largest Linux distrubutions. When running these commands regularly, you will keep your installation up to date for the particular major Raspberry Pi OS release you are using (e.g. Debian V9, aka Stretch). It will not update from one major release to another, for example, -Stretch (V9) to Buster (V10).

\ No newline at end of file +Stretch (V9) to Buster (V10).

\ No newline at end of file diff --git a/getting-started/understanding-the-pins/index.html b/getting-started/understanding-the-pins/index.html index 9bd003034..5c147f9b8 100644 --- a/getting-started/understanding-the-pins/index.html +++ b/getting-started/understanding-the-pins/index.html @@ -1,5 +1,5 @@ Understanding the GPIO pins - Pi4J -
\ No newline at end of file +and more pins were added, the numbering in WiringPi was extended to be able to address the extra pins.

Pin header overview

\ No newline at end of file diff --git a/getting-started/user-interface-with-javafx/index.html b/getting-started/user-interface-with-javafx/index.html index 0a7e36a9c..0ec8cd4a3 100644 --- a/getting-started/user-interface-with-javafx/index.html +++ b/getting-started/user-interface-with-javafx/index.html @@ -1,5 +1,5 @@ User interface with JavaFX - Pi4J -
  1. Build the project
$ mvn package
 
  1. Move to the target > distribution directory
$ cd target/distribution
 
  1. Run the application with the provided run-script
$ sudo ./run.sh
-
\ No newline at end of file +
\ No newline at end of file diff --git a/index.html b/index.html index 88f4289e9..e48ad57d7 100644 --- a/index.html +++ b/index.html @@ -1,8 +1,8 @@ Welcome to Pi4J - Pi4J -
navigation

Welcome to Pi4J

Latest release: V2.6.1 (2024-07-29, see Release Notes).

This project is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to focus on implementing their application business logic.

Pi4J supports the new Raspberry Pi 5 as of version 2.5.0. Because of the new GPIO chip RP1, a new GPIO Provider was needed. See the release notes for more info.

If you immediately want to “dive” into Pi4J development, check these resources:

Brief History

The Pi4J Project was started in 2012, the same year the Raspberry Pi was introduced +

navigation

Welcome to Pi4J

Latest release: V2.6.1 (2024-07-29, see Release Notes).

This project is intended to provide a friendly object-oriented I/O API and implementation libraries for Java Programmers to access the full I/O capabilities of the Raspberry Pi platform. This project abstracts the low-level native integration and interrupt monitoring to enable Java programmers to focus on implementing their application business logic.

Pi4J supports the new Raspberry Pi 5 as of version 2.5.0. Because of the new GPIO chip RP1, a new GPIO Provider was needed. See the release notes for more info.

If you immediately want to “dive” into Pi4J development, check these resources:

Brief History

The Pi4J Project was started in 2012, 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 GPIO, I2C, SPI, PWM and Serial communications.

Project Mission/Goals

The Pi4J Project’s mission is to provide a rich and powerful, yet simple to use, Java-friendly API library enabling programmatic access to the low-level hardware I/O capabilities of embedded platforms such as the Raspberry Pi.

Project Status Summary

The Pi4j project has evolved in all these years as the whole Java eco-system and Raspberry Pi systems have been evolving.

This resulted in two main versions.

Version 1

The original library which started in 2012 and got a last release in 2021. Up till version 1.3 the library targets Java 8, while version 1.4 relies on Java 11.

More info is provided on “Previous versions (V.1)”.

Version 2

As of Version 2.0, Pi4J no longer includes support for peripheral devices and -add-on chipsets/boards as part of the core project. A new plugin model has been introduced in version 2.0 that helps to enable third-party development and support third-party add-ons which can be developed and maintained independently of the core Pi4J project.

More info is provided on “What’s New (V.2)”.

\ No newline at end of file +add-on chipsets/boards as part of the core project. A new plugin model has been introduced in version 2.0 that helps to enable third-party development and support third-party add-ons which can be developed and maintained independently of the core Pi4J project.

More info is provided on “What’s New (V.2)”.

\ No newline at end of file diff --git a/index.xml b/index.xml index 9cb51ff22..bbcfce6f7 100644 --- a/index.xml +++ b/index.xml @@ -1302,7 +1302,7 @@ with <a href="https://www.oracle.com/java/duke.html" target="_blank" rel="noo </span></span><span style="display:flex;"><span> </span></span><span style="display:flex;"><span><span style="color:#75715e">// Output</span> </span></span><span style="display:flex;"><span>Byte value 10001111: <span style="color:#f92672">-</span>113 -</span></span></code></pre></div><p>You can use <code>Byte.toUnsignedInt(b)</code> to get the expected, unsigned value:</p>
Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> +</span></span></code></pre></div><p>You can use <code>Byte.toUnsignedInt(b)</code> to get the expected, unsigned value:</p>Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> <p>Bosch has several sensors which are extremely small to measure temperature, humidity, pressure, and gas. We also have several example implementations documented on the Pi4J website:</p> <ul> <li><a href="https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/">BME280 Sensor (temp, humidity, pressure) via Pi4J, I2C, and JBang</a>.</li> diff --git a/kotlin/coroutines/index.html b/kotlin/coroutines/index.html index 8cb6c0144..dae0b147c 100644 --- a/kotlin/coroutines/index.html +++ b/kotlin/coroutines/index.html @@ -1,5 +1,5 @@ Coroutines Support - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/kotlin/i2c/index.html b/kotlin/i2c/index.html index 348735c27..05040ac41 100644 --- a/kotlin/i2c/index.html +++ b/kotlin/i2c/index.html @@ -1,5 +1,5 @@ I²C Kotlin DSL - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/kotlin/index.html b/kotlin/index.html index 0cb0d60e2..f29fbae59 100644 --- a/kotlin/index.html +++ b/kotlin/index.html @@ -1,5 +1,5 @@ Pi4J Kotlin DSL - Pi4J -

If you want to use the Console DSL to log with SLF4J, add the dependency:

implementation("org.slf4j:slf4j-api:1.7.32")
 implementation("org.slf4j:slf4j-simple:1.7.32")
-

GitHub projects:

  • Kotlin Interface & DSL for Pi4J V2: Pi4J-Kotlin
  • For Pi4J V1 Kotlin Bindings, check Pi4K
\ No newline at end of file +

GitHub projects:

\ No newline at end of file diff --git a/kotlin/kotlin-api-docs/index.html b/kotlin/kotlin-api-docs/index.html index a3101c18e..fc1be3941 100644 --- a/kotlin/kotlin-api-docs/index.html +++ b/kotlin/kotlin-api-docs/index.html @@ -1,5 +1,5 @@ Kotlin API & DSL Documentation - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/kotlin/minimal-kotlin-example/index.html b/kotlin/minimal-kotlin-example/index.html index 099187995..8b7818bbf 100644 --- a/kotlin/minimal-kotlin-example/index.html +++ b/kotlin/minimal-kotlin-example/index.html @@ -1,5 +1,5 @@ Minimal Kotlin Pi4J example - Pi4J -

Building & Running the application

You can simply run the example app using gradle on the target device (Raspberry Pi for example):

./gradlew :example:run
-
\ No newline at end of file +
\ No newline at end of file diff --git a/kotlin/serial/index.html b/kotlin/serial/index.html index 131eec393..f2fe75d31 100644 --- a/kotlin/serial/index.html +++ b/kotlin/serial/index.html @@ -1,5 +1,5 @@ Serial Kotlin DSL - Pi4J -
\ No newline at end of file +
\ No newline at end of file diff --git a/pi4j-os/index.html b/pi4j-os/index.html index 1a25bf8f4..c3fcdbd33 100644 --- a/pi4j-os/index.html +++ b/pi4j-os/index.html @@ -1,6 +1,6 @@ Pi4J Operating System - Pi4J -

Pi4J Operating System

Yes, Raspberry Pi OS is great! And we made if even more awesome by adding some “goodies” for Java developers! So, to be clear, Pi4J OS is not yet another OS. It’s the official Raspberry Pi OS, with additional tools and preconfigurations to make it the ideal OS for any Java developer who wants to use a Raspberry Pi.

Additional Feature on top of Raspberry Pi OS

This project provides pre-built versions of OS images with all you need to develop 100% pure Java applications for specific Raspberry Pi setups. They are based on the latest official Raspberry Pi OS and are automatically built using Packer.

By using these images, you will get:

  • Preconfigured locale (en_US), keyboard (US) and timezone (Europe/Zurich).
  • Preconfigured wireless country (Switzerland) by default.
  • Remote management via SSH and VNC enabled by default.
  • Preinstalled OpenJDK 17 with latest JavaFX 20.
  • Starter script to launch JavaFX-apps in DRM (aka kiosk-mode).
  • Preconfigured /boot/config.txt supporting all components out of the box.
  • Dynamic wallpaper showing Ethernet/WLAN address and hostname.
  • User account pi, password pi4j.
    • You have to set the corresponding preferences in Raspberry Pi Imager.
  • Default WLAN connection.
    • Setup a hotspot, for example on your smartphone, and you are ready to go.
      • SSID: Pi4J-Spot.
      • Password: MayTheSourceBeWithYou!.
    • Your laptop has to be in the same WLAN as the Rasperry Pi.

Available Flavors

Pi4J-Basic-OS

Download latest release of Pi4J-Basic-OS Image

Pi4J-CrowPi-OS

  • All of Pi4J-Basic-OS
  • Support for CrowPi
  • Comes with lirc preinstalled to run the IR receiver component
  • Use CrowPi template project to start your CrowPi experiments

Download latest release of Pi4J-CrowPi-OS

Pi4J-Picade-OS

Download latest release of Pi4J-Picade-OS

Table of content of the “Pi4J OS” section

\ No newline at end of file +Welcome to Pi4J > Pi4J Operating System

Pi4J Operating System

Yes, Raspberry Pi OS is great! And we made if even more awesome by adding some “goodies” for Java developers! So, to be clear, Pi4J OS is not yet another OS. It’s the official Raspberry Pi OS, with additional tools and preconfigurations to make it the ideal OS for any Java developer who wants to use a Raspberry Pi.

Additional Feature on top of Raspberry Pi OS

This project provides pre-built versions of OS images with all you need to develop 100% pure Java applications for specific Raspberry Pi setups. They are based on the latest official Raspberry Pi OS and are automatically built using Packer.

By using these images, you will get:

  • Preconfigured locale (en_US), keyboard (US) and timezone (Europe/Zurich).
  • Preconfigured wireless country (Switzerland) by default.
  • Remote management via SSH and VNC enabled by default.
  • Preinstalled OpenJDK 17 with latest JavaFX 20.
  • Starter script to launch JavaFX-apps in DRM (aka kiosk-mode).
  • Preconfigured /boot/config.txt supporting all components out of the box.
  • Dynamic wallpaper showing Ethernet/WLAN address and hostname.
  • User account pi, password pi4j.
    • You have to set the corresponding preferences in Raspberry Pi Imager.
  • Default WLAN connection.
    • Setup a hotspot, for example on your smartphone, and you are ready to go.
      • SSID: Pi4J-Spot.
      • Password: MayTheSourceBeWithYou!.
    • Your laptop has to be in the same WLAN as the Rasperry Pi.

Available Flavors

Pi4J-Basic-OS

Download latest release of Pi4J-Basic-OS Image

Pi4J-CrowPi-OS

  • All of Pi4J-Basic-OS
  • Support for CrowPi
  • Comes with lirc preinstalled to run the IR receiver component
  • Use CrowPi template project to start your CrowPi experiments

Download latest release of Pi4J-CrowPi-OS

Pi4J-Picade-OS

Download latest release of Pi4J-Picade-OS

Table of content of the “Pi4J OS” section

\ No newline at end of file diff --git a/pi4j-os/prepare-sd-with-pi4j-os/index.html b/pi4j-os/prepare-sd-with-pi4j-os/index.html index 0e7955eb9..2fb0adbcb 100644 --- a/pi4j-os/prepare-sd-with-pi4j-os/index.html +++ b/pi4j-os/prepare-sd-with-pi4j-os/index.html @@ -1,5 +1,5 @@ Prepare SD with Pi4J OS - Pi4J -
-

\ No newline at end of file +

\ No newline at end of file diff --git a/pi4j-os/test-pi4j-basic-os/index.html b/pi4j-os/test-pi4j-basic-os/index.html index 9e98a908f..4f7bfa630 100644 --- a/pi4j-os/test-pi4j-basic-os/index.html +++ b/pi4j-os/test-pi4j-basic-os/index.html @@ -1,5 +1,5 @@ Test Pi4J Basic OS - Pi4J -

java-kiosk is a command provided by our image. It assures to call java with the correct (and huge) set of parameters.

Pure Pi4J Application

Attach a button to pin 25.

  • On CrowPi that’s the left-button.
  • on Picade Console that’s the button-4-button.
  • Otherwise:

Button on Pin 25

Compile and start the Java application

cd /home/pi/java-examples/pure-pi4j
 javac -cp "/home/pi/deploy/*:." hellopi4j/MinimalPi4J.java
 sudo java -cp "/home/pi/deploy/*:." hellopi4j.MinimalPi4J
-
\ No newline at end of file +
\ No newline at end of file diff --git a/pi4j-os/test-pi4j-picade-os/index.html b/pi4j-os/test-pi4j-picade-os/index.html index a6d4fe953..218009cf1 100644 --- a/pi4j-os/test-pi4j-picade-os/index.html +++ b/pi4j-os/test-pi4j-picade-os/index.html @@ -1,5 +1,5 @@ Test Pi4J Picade OS - Pi4J -

To start HelloPicade in X11-Mode

DISPLAY=:0 XAUTHORITY=/home/pi/.Xauthority sudo -E java --module-path /opt/javafx-sdk/lib --add-modules javafx.controls,javafx.media -Dglass.platform=gtk hellopicade.HelloPicade
 

To start HelloPicade in DRM

sudo java-kiosk hellopicade.HelloPicade
-

Check the mapping of the Picade buttons to JavaFX KeyCodes:

PicadeKeyCode
Joystick upKeyCode.UP
Joystick downKeyCode.DOWN
Joystick leftKeyCode.LEFT
Joystick rightKeyCode.RIGHT
right side black buttonKeyCode.ENTER
left side black buttonKeyCode.ESCAPE
all other buttonsno mapping
\ No newline at end of file +

Check the mapping of the Picade buttons to JavaFX KeyCodes:

PicadeKeyCode
Joystick upKeyCode.UP
Joystick downKeyCode.DOWN
Joystick leftKeyCode.LEFT
Joystick rightKeyCode.RIGHT
right side black buttonKeyCode.ENTER
left side black buttonKeyCode.ESCAPE
all other buttonsno mapping
\ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 0163aad24..1cc6c33ee 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://pi4j.com/about/https://pi4j.com/pi4j-os/prepare-sd-with-pi4j-os/https://pi4j.com/architecture/about-the-code/https://pi4j.com/examples/crowpi/develop-crowpi-with-intellij/https://pi4j.com/architecture/about-the-code/download-sources/https://pi4j.com/getting-started/https://pi4j.com/about/previous-version-v1/https://pi4j.com/examples/jbang/https://pi4j.com/architecture/about-the-code/build-instructions/https://pi4j.com/examples/crowpi/crowpi-examples/https://pi4j.com/documentation/https://pi4j.com/getting-started/set-up-a-new-raspberry-pi/https://pi4j.com/pi4j-os/test-pi4j-basic-os/https://pi4j.com/about/new-in-v2/https://pi4j.com/examples/https://pi4j.com/getting-started/understanding-the-pins/https://pi4j.com/pi4j-os/https://pi4j.com/architecture/https://pi4j.com/getting-started/electricalengeneering/https://pi4j.com/getting-started/java-development-on-the-raspberry-pi-with-vsc/https://pi4j.com/architecture/about-the-code/maven-settings/https://pi4j.com/documentation/pin-numbering/https://pi4j.com/about/release-notes/https://pi4j.com/pi4j-os/test-pi4j-picade-os/https://pi4j.com/getting-started/developing-on-a-remote-pc/https://pi4j.com/about/download/https://pi4j.com/kotlin/https://pi4j.com/kotlin/minimal-kotlin-example/https://pi4j.com/blog/2024-09-27T00:00:00+00:00https://pi4j.com/kotlin/kotlin-api-docs/https://pi4j.com/kotlin/coroutines/https://pi4j.com/kotlin/i2c/https://pi4j.com/architecture/about-the-code/code-styling/https://pi4j.com/examples/components/https://pi4j.com/featured-projects/https://pi4j.com/architecture/about-the-code/hardware-testing/https://pi4j.com/documentation/java-installation/https://pi4j.com/about/license/https://pi4j.com/getting-started/minimal-example-application/https://pi4j.com/getting-started/minimal-example-application-fatjar/https://pi4j.com/kotlin/serial/https://pi4j.com/featured-projects/binary-clock/https://pi4j.com/featured-projects/soft-real-time-plc-written-in-strolch/https://pi4j.com/architecture/advanced/https://pi4j.com/examples/crowpi/https://pi4j.com/documentation/logging/https://pi4j.com/featured-projects/pijukebox-by-daniel-martensson/https://pi4j.com/about/team/https://pi4j.com/featured-projects/cocktail-maker-by-alex9849/https://pi4j.com/documentation/create-context/https://pi4j.com/featured-projects/street-artist-robot/https://pi4j.com/getting-started/user-interface-with-javafx/https://pi4j.com/featured-projects/joystick-game/https://pi4j.com/documentation/platforms/https://pi4j.com/getting-started/fxgl/https://pi4j.com/featured-projects/sensor-drivers/https://pi4j.com/getting-started/fxgl/fxgl-to-picade/https://pi4j.com/getting-started/fxgl/kiosk-mode/https://pi4j.com/documentation/providers/https://pi4j.com/getting-started/javafx-mvc-template/https://pi4j.com/documentation/providers/gpiod/https://pi4j.com/documentation/providers/linuxfs/https://pi4j.com/documentation/providers/pigpio/https://pi4j.com/documentation/board-info/https://pi4j.com/documentation/build-io/https://pi4j.com/examples/communityimplementation/https://pi4j.com/getting-started/learn-more/https://pi4j.com/examples/communityimplementation/prototype-board/https://pi4j.com/examples/communityimplementation/bmp280/https://pi4j.com/documentation/io-examples/https://pi4j.com/documentation/registry/https://pi4j.com/documentation/shutdown/https://pi4j.com/examples/jbang/jbang_minimal_example/https://pi4j.com/examples/jbang/jbang_pi4j_spi_led_matrix/https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/https://pi4j.com/documentation/building/https://pi4j.com/documentation/building/javac/https://pi4j.com/documentation/building/fat-jar/https://pi4j.com/documentation/building/modules-maven/https://pi4j.com/documentation/building/modules-gradle/https://pi4j.com/documentation/building/jbang/https://pi4j.com/examples/jbang/pixelblaze_output_expander/https://pi4j.com/examples/jbang/pixelblaze_output_expander_image/https://pi4j.com/examples/jbang/pixelblaze_output_expander_javafx/https://pi4j.com/documentation/io-examples/digital-output/https://pi4j.com/examples/components/simplebutton/https://pi4j.com/examples/components/simpleled/https://pi4j.com/examples/components/ads1115/https://pi4j.com/examples/components/buzzer/https://pi4j.com/examples/components/camera/https://pi4j.com/documentation/io-examples/digital-input/https://pi4j.com/examples/components/joystick/https://pi4j.com/examples/components/joystickanalog/https://pi4j.com/examples/components/lcddisplay/https://pi4j.com/examples/components/ledbutton/https://pi4j.com/examples/components/ledmatrix/https://pi4j.com/examples/components/ledstrip/https://pi4j.com/examples/components/potentiometer/https://pi4j.com/examples/components/servo/https://pi4j.com/documentation/io-examples/pwm/https://pi4j.com/documentation/io-examples/i2c/https://pi4j.com/documentation/io-examples/i2c/clock-stretching/https://pi4j.com/documentation/io-examples/spi/https://pi4j.com/documentation/io-examples/serial/https://pi4j.com/architecture/pi4j-logo/https://pi4j.com/tags/signed/2024-09-27T00:00:00+00:00https://pi4j.com/blog/2024/20240927-bits-bytes-signed-unsigned/2024-09-27T00:00:00+00:00https://pi4j.com/tags/2024-09-27T00:00:00+00:00https://pi4j.com/tags/unsigned/2024-09-27T00:00:00+00:00https://pi4j.com/2024-09-27T00:00:00+00:00https://pi4j.com/tags/bme280/2024-04-25T00:00:00+00:00https://pi4j.com/tags/bme680/2024-04-25T00:00:00+00:00https://pi4j.com/tags/bme688/2024-04-25T00:00:00+00:00https://pi4j.com/tags/bmp280/2024-04-25T00:00:00+00:00https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/2024-04-25T00:00:00+00:00https://pi4j.com/tags/interview/2024-04-25T00:00:00+00:00https://pi4j.com/blog/2024/20240425_interview_tom_aarts/2024-04-25T00:00:00+00:00https://pi4j.com/tags/pi4j/2024-04-25T00:00:00+00:00https://pi4j.com/tags/linuxfs/2024-04-23T00:00:00+00:00https://pi4j.com/tags/pwm/2024-04-23T00:00:00+00:00https://pi4j.com/blog/2024/20240423_pwm_rpi5/2024-04-23T00:00:00+00:00https://pi4j.com/blog/2024/20240419_interview_robert_von_burg/2024-04-19T00:00:00+00:00https://pi4j.com/tags/i2c/2024-04-18T00:00:00+00:00https://pi4j.com/blog/2024/20240418_i2c_improvements/2024-04-18T00:00:00+00:00https://pi4j.com/blog/2024/20240417_led_matrix_max7219_spi_web/2024-04-17T00:00:00+00:00https://pi4j.com/tags/max7219/2024-04-17T00:00:00+00:00https://pi4j.com/tags/spi/2024-04-17T00:00:00+00:00https://pi4j.com/blog/2024/20240318_interview_alexander_liggesmeyer/2024-03-18T00:00:00+00:00https://pi4j.com/tags/javafx/2023-07-31T00:00:00+00:00https://pi4j.com/blog/2023/20230731_pi4j_os/2023-07-31T00:00:00+00:00https://pi4j.com/tags/pi4j-os/2023-07-31T00:00:00+00:00https://pi4j.com/blog/2022/20221128_led_strip_with_jbang/2022-11-28T00:00:00+00:00https://pi4j.com/blog/2022/20221117_kotlin_on_raspberrypi/2022-11-17T00:00:00+00:00https://pi4j.com/blog/2022/20220113_javafx_pi4j_template/2022-01-13T00:00:00+00:00https://pi4j.com/tags/1602a/https://pi4j.com/tags/ads1115/https://pi4j.com/tags/ads1256/https://pi4j.com/architecture/advanced/annotated-provisioning/https://pi4j.com/tags/bh1750/https://pi4j.com/tags/bmp180/https://pi4j.com/tags/button/https://pi4j.com/tags/buzzer/https://pi4j.com/tags/camera/https://pi4j.com/categories/https://pi4j.com/tags/crowpi/https://pi4j.com/tags/dac8552/https://pi4j.com/architecture/advanced/dependency-injection/https://pi4j.com/tags/dht22/https://pi4j.com/tags/digital-input/https://pi4j.com/tags/digital-output/https://pi4j.com/tags/fatjar/https://pi4j.com/tags/gpiod/https://pi4j.com/tags/gradle/https://pi4j.com/tags/htu21d/https://pi4j.com/tags/intellij-idea/https://pi4j.com/tags/is31fl3731/https://pi4j.com/tags/javac/https://pi4j.com/tags/jbang/https://pi4j.com/tags/joystick/https://pi4j.com/tags/joystick-analog/https://pi4j.com/tags/lcd-display/https://pi4j.com/tags/led/https://pi4j.com/tags/led-button/https://pi4j.com/tags/led-matrix/https://pi4j.com/tags/led-strip/https://pi4j.com/tags/maven/https://pi4j.com/tags/mcp23008/https://pi4j.com/tags/mcp23017/https://pi4j.com/tags/mcp3008/https://pi4j.com/tags/mcp4725/https://pi4j.com/architecture/advanced/library-path/https://pi4j.com/tags/pcf8575/https://pi4j.com/tags/pcf8591/https://pi4j.com/tags/pigpio/https://pi4j.com/tags/pixelblaze/https://pi4j.com/architecture/advanced/plugins/https://pi4j.com/tags/potentiometer/https://pi4j.com/tags/prototype/https://pi4j.com/documentation/platforms/raspberry-pi/https://pi4j.com/architecture/advanced/remote-support/https://pi4j.com/tags/serial/https://pi4j.com/tags/servo-motor/https://pi4j.com/tags/simple-button/https://pi4j.com/tags/simple-led/https://pi4j.com/tags/sn74hc595/https://pi4j.com/tags/tca9548/https://pi4j.com/tags/visual-studio-code/https://pi4j.com/tags/vl53l0x/ \ No newline at end of file +https://pi4j.com/about/https://pi4j.com/pi4j-os/prepare-sd-with-pi4j-os/https://pi4j.com/architecture/about-the-code/https://pi4j.com/examples/crowpi/develop-crowpi-with-intellij/https://pi4j.com/architecture/about-the-code/download-sources/https://pi4j.com/getting-started/https://pi4j.com/about/previous-version-v1/https://pi4j.com/examples/jbang/https://pi4j.com/architecture/about-the-code/build-instructions/https://pi4j.com/examples/crowpi/crowpi-examples/https://pi4j.com/documentation/https://pi4j.com/getting-started/set-up-a-new-raspberry-pi/https://pi4j.com/pi4j-os/test-pi4j-basic-os/https://pi4j.com/about/new-in-v2/https://pi4j.com/examples/https://pi4j.com/getting-started/understanding-the-pins/https://pi4j.com/pi4j-os/https://pi4j.com/architecture/https://pi4j.com/getting-started/electricalengeneering/https://pi4j.com/getting-started/java-development-on-the-raspberry-pi-with-vsc/https://pi4j.com/architecture/about-the-code/maven-settings/https://pi4j.com/documentation/pin-numbering/https://pi4j.com/about/release-notes/https://pi4j.com/pi4j-os/test-pi4j-picade-os/https://pi4j.com/getting-started/developing-on-a-remote-pc/https://pi4j.com/about/download/https://pi4j.com/kotlin/https://pi4j.com/kotlin/minimal-kotlin-example/https://pi4j.com/blog/2024-09-27T00:00:00+00:00https://pi4j.com/kotlin/kotlin-api-docs/https://pi4j.com/kotlin/coroutines/https://pi4j.com/kotlin/i2c/https://pi4j.com/architecture/about-the-code/code-styling/https://pi4j.com/examples/components/https://pi4j.com/featured-projects/https://pi4j.com/architecture/about-the-code/hardware-testing/https://pi4j.com/documentation/java-installation/https://pi4j.com/about/license/https://pi4j.com/getting-started/minimal-example-application/https://pi4j.com/getting-started/minimal-example-application-fatjar/https://pi4j.com/kotlin/serial/https://pi4j.com/featured-projects/binary-clock/https://pi4j.com/featured-projects/soft-real-time-plc-written-in-strolch/https://pi4j.com/architecture/advanced/https://pi4j.com/examples/crowpi/https://pi4j.com/documentation/logging/https://pi4j.com/featured-projects/pijukebox-by-daniel-martensson/https://pi4j.com/about/team/https://pi4j.com/featured-projects/cocktail-maker-by-alex9849/https://pi4j.com/documentation/create-context/https://pi4j.com/featured-projects/street-artist-robot/https://pi4j.com/getting-started/user-interface-with-javafx/https://pi4j.com/featured-projects/joystick-game/https://pi4j.com/documentation/platforms/https://pi4j.com/getting-started/fxgl/https://pi4j.com/featured-projects/sensor-drivers/https://pi4j.com/getting-started/fxgl/fxgl-to-picade/https://pi4j.com/getting-started/fxgl/kiosk-mode/https://pi4j.com/documentation/providers/https://pi4j.com/getting-started/javafx-mvc-template/https://pi4j.com/documentation/providers/gpiod/https://pi4j.com/documentation/providers/linuxfs/https://pi4j.com/documentation/providers/pigpio/https://pi4j.com/documentation/board-info/https://pi4j.com/documentation/build-io/https://pi4j.com/examples/communityimplementation/https://pi4j.com/getting-started/learn-more/https://pi4j.com/examples/communityimplementation/prototype-board/https://pi4j.com/examples/communityimplementation/bmp280/https://pi4j.com/documentation/io-examples/https://pi4j.com/documentation/registry/https://pi4j.com/documentation/shutdown/https://pi4j.com/examples/jbang/jbang_minimal_example/https://pi4j.com/examples/jbang/jbang_pi4j_spi_led_matrix/https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/https://pi4j.com/documentation/building/https://pi4j.com/documentation/building/javac/https://pi4j.com/documentation/building/fat-jar/https://pi4j.com/documentation/building/modules-maven/https://pi4j.com/documentation/building/modules-gradle/https://pi4j.com/documentation/building/jbang/https://pi4j.com/examples/jbang/pixelblaze_output_expander/https://pi4j.com/examples/jbang/pixelblaze_output_expander_image/https://pi4j.com/examples/jbang/pixelblaze_output_expander_javafx/https://pi4j.com/documentation/io-examples/digital-output/https://pi4j.com/examples/components/simplebutton/https://pi4j.com/examples/components/simpleled/https://pi4j.com/examples/components/ads1115/https://pi4j.com/examples/components/buzzer/https://pi4j.com/examples/components/camera/https://pi4j.com/documentation/io-examples/digital-input/https://pi4j.com/examples/components/joystick/https://pi4j.com/examples/components/joystickanalog/https://pi4j.com/examples/components/lcddisplay/https://pi4j.com/examples/components/ledbutton/https://pi4j.com/examples/components/ledmatrix/https://pi4j.com/examples/components/ledstrip/https://pi4j.com/examples/components/potentiometer/https://pi4j.com/examples/components/servo/https://pi4j.com/documentation/io-examples/pwm/https://pi4j.com/documentation/io-examples/i2c/https://pi4j.com/documentation/io-examples/i2c/clock-stretching/https://pi4j.com/documentation/io-examples/spi/https://pi4j.com/documentation/io-examples/serial/https://pi4j.com/architecture/pi4j-logo/https://pi4j.com/tags/signed/2024-09-27T00:00:00+00:00https://pi4j.com/blog/2024/20240927-bits-bytes-signed-unsigned/2024-09-27T00:00:00+00:00https://pi4j.com/tags/2024-09-27T00:00:00+00:00https://pi4j.com/tags/unsigned/2024-09-27T00:00:00+00:00https://pi4j.com/2024-09-27T00:00:00+00:00https://pi4j.com/tags/bme280/2024-05-17T00:00:00+00:00https://pi4j.com/tags/bme680/2024-05-17T00:00:00+00:00https://pi4j.com/tags/bme688/2024-05-17T00:00:00+00:00https://pi4j.com/tags/bmp280/2024-05-17T00:00:00+00:00https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/2024-05-17T00:00:00+00:00https://pi4j.com/tags/interview/2024-04-25T00:00:00+00:00https://pi4j.com/blog/2024/20240425_interview_tom_aarts/2024-04-25T00:00:00+00:00https://pi4j.com/tags/pi4j/2024-04-25T00:00:00+00:00https://pi4j.com/tags/linuxfs/2024-04-23T00:00:00+00:00https://pi4j.com/tags/pwm/2024-04-23T00:00:00+00:00https://pi4j.com/blog/2024/20240423_pwm_rpi5/2024-04-23T00:00:00+00:00https://pi4j.com/blog/2024/20240419_interview_robert_von_burg/2024-04-19T00:00:00+00:00https://pi4j.com/tags/i2c/2024-04-18T00:00:00+00:00https://pi4j.com/blog/2024/20240418_i2c_improvements/2024-04-18T00:00:00+00:00https://pi4j.com/blog/2024/20240417_led_matrix_max7219_spi_web/2024-04-17T00:00:00+00:00https://pi4j.com/tags/max7219/2024-04-17T00:00:00+00:00https://pi4j.com/tags/spi/2024-04-17T00:00:00+00:00https://pi4j.com/blog/2024/20240318_interview_alexander_liggesmeyer/2024-03-18T00:00:00+00:00https://pi4j.com/tags/javafx/2023-07-31T00:00:00+00:00https://pi4j.com/blog/2023/20230731_pi4j_os/2023-07-31T00:00:00+00:00https://pi4j.com/tags/pi4j-os/2023-07-31T00:00:00+00:00https://pi4j.com/blog/2022/20221128_led_strip_with_jbang/2022-11-28T00:00:00+00:00https://pi4j.com/blog/2022/20221117_kotlin_on_raspberrypi/2022-11-17T00:00:00+00:00https://pi4j.com/blog/2022/20220113_javafx_pi4j_template/2022-01-13T00:00:00+00:00https://pi4j.com/tags/1602a/https://pi4j.com/tags/ads1115/https://pi4j.com/tags/ads1256/https://pi4j.com/architecture/advanced/annotated-provisioning/https://pi4j.com/tags/bh1750/https://pi4j.com/tags/bmp180/https://pi4j.com/tags/button/https://pi4j.com/tags/buzzer/https://pi4j.com/tags/camera/https://pi4j.com/categories/https://pi4j.com/tags/crowpi/https://pi4j.com/tags/dac8552/https://pi4j.com/architecture/advanced/dependency-injection/https://pi4j.com/tags/dht22/https://pi4j.com/tags/digital-input/https://pi4j.com/tags/digital-output/https://pi4j.com/tags/fatjar/https://pi4j.com/tags/gpiod/https://pi4j.com/tags/gradle/https://pi4j.com/tags/htu21d/https://pi4j.com/tags/intellij-idea/https://pi4j.com/tags/is31fl3731/https://pi4j.com/tags/javac/https://pi4j.com/tags/jbang/https://pi4j.com/tags/joystick/https://pi4j.com/tags/joystick-analog/https://pi4j.com/tags/lcd-display/https://pi4j.com/tags/led/https://pi4j.com/tags/led-button/https://pi4j.com/tags/led-matrix/https://pi4j.com/tags/led-strip/https://pi4j.com/tags/maven/https://pi4j.com/tags/mcp23008/https://pi4j.com/tags/mcp23017/https://pi4j.com/tags/mcp3008/https://pi4j.com/tags/mcp4725/https://pi4j.com/architecture/advanced/library-path/https://pi4j.com/tags/pcf8575/https://pi4j.com/tags/pcf8591/https://pi4j.com/tags/pigpio/https://pi4j.com/tags/pixelblaze/https://pi4j.com/architecture/advanced/plugins/https://pi4j.com/tags/potentiometer/https://pi4j.com/tags/prototype/https://pi4j.com/documentation/platforms/raspberry-pi/https://pi4j.com/architecture/advanced/remote-support/https://pi4j.com/tags/serial/https://pi4j.com/tags/servo-motor/https://pi4j.com/tags/simple-button/https://pi4j.com/tags/simple-led/https://pi4j.com/tags/sn74hc595/https://pi4j.com/tags/tca9548/https://pi4j.com/tags/visual-studio-code/https://pi4j.com/tags/vl53l0x/ \ No newline at end of file diff --git a/tags/1602a/index.html b/tags/1602a/index.html index e3068fad4..209a3ca36 100644 --- a/tags/1602a/index.html +++ b/tags/1602a/index.html @@ -1,5 +1,5 @@ 1602A - Pi4J -
\ No newline at end of file diff --git a/tags/ads1115/index.html b/tags/ads1115/index.html index 43437ec52..a38c345b6 100644 --- a/tags/ads1115/index.html +++ b/tags/ads1115/index.html @@ -1,5 +1,5 @@ ADS1115 - Pi4J -
\ No newline at end of file diff --git a/tags/ads1256/index.html b/tags/ads1256/index.html index fea67987a..3096771b7 100644 --- a/tags/ads1256/index.html +++ b/tags/ads1256/index.html @@ -1,5 +1,5 @@ ADS1256 - Pi4J -
\ No newline at end of file diff --git a/tags/bh1750/index.html b/tags/bh1750/index.html index 6ab10e903..2c14dfebd 100644 --- a/tags/bh1750/index.html +++ b/tags/bh1750/index.html @@ -1,5 +1,5 @@ BH1750 - Pi4J -
\ No newline at end of file diff --git a/tags/bme280/index.html b/tags/bme280/index.html index df0031099..b32828daf 100644 --- a/tags/bme280/index.html +++ b/tags/bme280/index.html @@ -1,5 +1,5 @@ BME280 - Pi4J -
\ No newline at end of file diff --git a/tags/bme280/index.xml b/tags/bme280/index.xml index b568fb9b2..f9e15f057 100644 --- a/tags/bme280/index.xml +++ b/tags/bme280/index.xml @@ -1,4 +1,4 @@ -BME280 on Pi4Jhttps://pi4j.com/tags/bme280/Recent content in BME280 on Pi4JHugoen-usThu, 25 Apr 2024 00:00:00 +0000Sensor drivershttps://pi4j.com/featured-projects/sensor-drivers/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/featured-projects/sensor-drivers/<p>In case you want to read the data from various I2C sensors connected to Raspberry Pi +BME280 on Pi4Jhttps://pi4j.com/tags/bme280/Recent content in BME280 on Pi4JHugoen-usFri, 17 May 2024 00:00:00 +0000Sensor drivershttps://pi4j.com/featured-projects/sensor-drivers/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/featured-projects/sensor-drivers/<p>In case you want to read the data from various I2C sensors connected to Raspberry Pi the difficult part is usually writing a piece of code which talks to the I2C sensor.</p> <p><a href="https://github.com/jveverka/rpi-projects/tree/pi4j-v2/rpi-drivers" target="_blank" rel="noopener">rpi-drivers</a> is a Java library implementing simple APIs and communication code for some @@ -9,7 +9,7 @@ get ambient light intensity or measure voltage in your java Raspberry Pi project </div> <h2 id="intro">Intro</h2> -<p>This is an example project to demonstrate how to read the temperature, humidity and pressure from a <a href="https://www.adafruit.com/product/2652" target="_blank" rel="noopener">BME280 sensor, installed on an Adafruit board</a> that can be controlled via I2C and SPI. Such a sensor itself is a very tiny component that can be integrated in phones and many other types of devices.</p>Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> +<p>This is an example project to demonstrate how to read the temperature, humidity and pressure from a <a href="https://www.adafruit.com/product/2652" target="_blank" rel="noopener">BME280 sensor, installed on an Adafruit board</a> that can be controlled via I2C and SPI. Such a sensor itself is a very tiny component that can be integrated in phones and many other types of devices.</p>Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> <p>Bosch has several sensors which are extremely small to measure temperature, humidity, pressure, and gas. We also have several example implementations documented on the Pi4J website:</p> <ul> <li><a href="https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/">BME280 Sensor (temp, humidity, pressure) via Pi4J, I2C, and JBang</a>.</li> diff --git a/tags/bme680/index.html b/tags/bme680/index.html index 8bd1c1fe4..84a86cc4d 100644 --- a/tags/bme680/index.html +++ b/tags/bme680/index.html @@ -1,5 +1,5 @@ BME680 - Pi4J -
\ No newline at end of file diff --git a/tags/bme680/index.xml b/tags/bme680/index.xml index e6bf196fb..ccfcdba71 100644 --- a/tags/bme680/index.xml +++ b/tags/bme680/index.xml @@ -1,4 +1,4 @@ -BME680 on Pi4Jhttps://pi4j.com/tags/bme680/Recent content in BME680 on Pi4JHugoen-usThu, 25 Apr 2024 00:00:00 +0000Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> +BME680 on Pi4Jhttps://pi4j.com/tags/bme680/Recent content in BME680 on Pi4JHugoen-usFri, 17 May 2024 00:00:00 +0000Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> <p>Bosch has several sensors which are extremely small to measure temperature, humidity, pressure, and gas. We also have several example implementations documented on the Pi4J website:</p> <ul> <li><a href="https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/">BME280 Sensor (temp, humidity, pressure) via Pi4J, I2C, and JBang</a>.</li> diff --git a/tags/bme688/index.html b/tags/bme688/index.html index e1534f541..f9bfb0734 100644 --- a/tags/bme688/index.html +++ b/tags/bme688/index.html @@ -1,5 +1,5 @@ BME688 - Pi4J -
\ No newline at end of file diff --git a/tags/bme688/index.xml b/tags/bme688/index.xml index b899650a3..08d05b5d9 100644 --- a/tags/bme688/index.xml +++ b/tags/bme688/index.xml @@ -1,4 +1,4 @@ -BME688 on Pi4Jhttps://pi4j.com/tags/bme688/Recent content in BME688 on Pi4JHugoen-usThu, 25 Apr 2024 00:00:00 +0000Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> +BME688 on Pi4Jhttps://pi4j.com/tags/bme688/Recent content in BME688 on Pi4JHugoen-usFri, 17 May 2024 00:00:00 +0000Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> <p>Bosch has several sensors which are extremely small to measure temperature, humidity, pressure, and gas. We also have several example implementations documented on the Pi4J website:</p> <ul> <li><a href="https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/">BME280 Sensor (temp, humidity, pressure) via Pi4J, I2C, and JBang</a>.</li> diff --git a/tags/bmp180/index.html b/tags/bmp180/index.html index 3d4cc309b..760bc0381 100644 --- a/tags/bmp180/index.html +++ b/tags/bmp180/index.html @@ -1,5 +1,5 @@ BMP180 - Pi4J -
\ No newline at end of file diff --git a/tags/bmp280/index.html b/tags/bmp280/index.html index efac4d965..544cb793a 100644 --- a/tags/bmp280/index.html +++ b/tags/bmp280/index.html @@ -1,5 +1,5 @@ BMP280 - Pi4J -
\ No newline at end of file diff --git a/tags/bmp280/index.xml b/tags/bmp280/index.xml index 4f09cc125..ab664b1fb 100644 --- a/tags/bmp280/index.xml +++ b/tags/bmp280/index.xml @@ -1,4 +1,4 @@ -BMP280 on Pi4Jhttps://pi4j.com/tags/bmp280/Recent content in BMP280 on Pi4JHugoen-usThu, 25 Apr 2024 00:00:00 +0000Community Implementationshttps://pi4j.com/examples/communityimplementation/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/examples/communityimplementation/<p>On this page we want to keep a list of projects which contain implementation code for specific devices using the Pi4J +BMP280 on Pi4Jhttps://pi4j.com/tags/bmp280/Recent content in BMP280 on Pi4JHugoen-usFri, 17 May 2024 00:00:00 +0000Community Implementationshttps://pi4j.com/examples/communityimplementation/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/examples/communityimplementation/<p>On this page we want to keep a list of projects which contain implementation code for specific devices using the Pi4J V.2 core library. Please let us know via <a href="https://github.com/Pi4J/pi4j-v2/discussions" target="_blank" rel="noopener">Pi4J V.2 Discussions</a> if you want to have your project added to this list.</p> <h3 id="current-available-device-support-projects">Current available device support projects</h3> @@ -134,7 +134,7 @@ also explain minimal coding required to allow greater flexibility.</p> <h2 id="intro">Intro</h2> -<p>This is an example project to demonstrate how to read the temperature, humidity and pressure from a <a href="https://www.adafruit.com/product/2652" target="_blank" rel="noopener">BME280 sensor, installed on an Adafruit board</a> that can be controlled via I2C and SPI. Such a sensor itself is a very tiny component that can be integrated in phones and many other types of devices.</p>Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> +<p>This is an example project to demonstrate how to read the temperature, humidity and pressure from a <a href="https://www.adafruit.com/product/2652" target="_blank" rel="noopener">BME280 sensor, installed on an Adafruit board</a> that can be controlled via I2C and SPI. Such a sensor itself is a very tiny component that can be integrated in phones and many other types of devices.</p>Bosch sensor gas measurementhttps://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/blog/2024/20240517_bosch_sensor_gas_measurement/<p>2024-05-17, by Frank Delporte</p> <p>Bosch has several sensors which are extremely small to measure temperature, humidity, pressure, and gas. We also have several example implementations documented on the Pi4J website:</p> <ul> <li><a href="https://pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/">BME280 Sensor (temp, humidity, pressure) via Pi4J, I2C, and JBang</a>.</li> diff --git a/tags/button/index.html b/tags/button/index.html index b35244d11..b50b470af 100644 --- a/tags/button/index.html +++ b/tags/button/index.html @@ -1,5 +1,5 @@ Button - Pi4J -
\ No newline at end of file diff --git a/tags/buzzer/index.html b/tags/buzzer/index.html index 8a5a1daf4..1abf1c4e4 100644 --- a/tags/buzzer/index.html +++ b/tags/buzzer/index.html @@ -1,5 +1,5 @@ Buzzer - Pi4J -
\ No newline at end of file diff --git a/tags/camera/index.html b/tags/camera/index.html index 746a5b6e7..d8a215870 100644 --- a/tags/camera/index.html +++ b/tags/camera/index.html @@ -1,5 +1,5 @@ Camera - Pi4J -
\ No newline at end of file diff --git a/tags/crowpi/index.html b/tags/crowpi/index.html index ddf5c9da3..109e7853a 100644 --- a/tags/crowpi/index.html +++ b/tags/crowpi/index.html @@ -1,5 +1,5 @@ CrowPi - Pi4J -
\ No newline at end of file diff --git a/tags/dac8552/index.html b/tags/dac8552/index.html index 3c9468980..9f312cde4 100644 --- a/tags/dac8552/index.html +++ b/tags/dac8552/index.html @@ -1,5 +1,5 @@ DAC8552 - Pi4J -
\ No newline at end of file diff --git a/tags/dht22/index.html b/tags/dht22/index.html index c0fca4009..cd08ac4aa 100644 --- a/tags/dht22/index.html +++ b/tags/dht22/index.html @@ -1,5 +1,5 @@ DHT22 - Pi4J -
\ No newline at end of file diff --git a/tags/digital-input/index.html b/tags/digital-input/index.html index dd704088a..a7a9dd6df 100644 --- a/tags/digital-input/index.html +++ b/tags/digital-input/index.html @@ -1,5 +1,5 @@ Digital Input - Pi4J -
\ No newline at end of file diff --git a/tags/digital-output/index.html b/tags/digital-output/index.html index 79814c07a..e1b226cb3 100644 --- a/tags/digital-output/index.html +++ b/tags/digital-output/index.html @@ -1,5 +1,5 @@ Digital Output - Pi4J -
\ No newline at end of file diff --git a/tags/fatjar/index.html b/tags/fatjar/index.html index 6b0992284..0dca80691 100644 --- a/tags/fatjar/index.html +++ b/tags/fatjar/index.html @@ -1,5 +1,5 @@ FatJAR - Pi4J -
\ No newline at end of file diff --git a/tags/gpiod/index.html b/tags/gpiod/index.html index 23f83f2d4..aeab36528 100644 --- a/tags/gpiod/index.html +++ b/tags/gpiod/index.html @@ -1,5 +1,5 @@ GpioD - Pi4J -
\ No newline at end of file diff --git a/tags/gradle/index.html b/tags/gradle/index.html index 7551ae8ef..0ffb196f4 100644 --- a/tags/gradle/index.html +++ b/tags/gradle/index.html @@ -1,5 +1,5 @@ Gradle - Pi4J -
\ No newline at end of file diff --git a/tags/htu21d/index.html b/tags/htu21d/index.html index d852c7d97..3d7f309fe 100644 --- a/tags/htu21d/index.html +++ b/tags/htu21d/index.html @@ -1,5 +1,5 @@ HTU21D - Pi4J -
\ No newline at end of file diff --git a/tags/i2c/index.html b/tags/i2c/index.html index 66b665388..5c8369bf2 100644 --- a/tags/i2c/index.html +++ b/tags/i2c/index.html @@ -1,5 +1,5 @@ I2C - Pi4J -
\ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 0ecad60db..48e82f693 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,5 +1,5 @@ Tags - Pi4J -
\ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml index 6fc2658b4..00817243b 100644 --- a/tags/index.xml +++ b/tags/index.xml @@ -1 +1 @@ -Tags on Pi4Jhttps://pi4j.com/tags/Recent content in Tags on Pi4JHugoen-usFri, 27 Sep 2024 00:00:00 +0000Signedhttps://pi4j.com/tags/signed/Fri, 27 Sep 2024 00:00:00 +0000https://pi4j.com/tags/signed/Unsignedhttps://pi4j.com/tags/unsigned/Fri, 27 Sep 2024 00:00:00 +0000https://pi4j.com/tags/unsigned/BME280https://pi4j.com/tags/bme280/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/bme280/BME680https://pi4j.com/tags/bme680/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/bme680/BME688https://pi4j.com/tags/bme688/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/bme688/BMP280https://pi4j.com/tags/bmp280/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/bmp280/Interviewhttps://pi4j.com/tags/interview/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/interview/Pi4Jhttps://pi4j.com/tags/pi4j/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/pi4j/LinuxFShttps://pi4j.com/tags/linuxfs/Tue, 23 Apr 2024 00:00:00 +0000https://pi4j.com/tags/linuxfs/PWMhttps://pi4j.com/tags/pwm/Tue, 23 Apr 2024 00:00:00 +0000https://pi4j.com/tags/pwm/I2Chttps://pi4j.com/tags/i2c/Thu, 18 Apr 2024 00:00:00 +0000https://pi4j.com/tags/i2c/MAX7219https://pi4j.com/tags/max7219/Wed, 17 Apr 2024 00:00:00 +0000https://pi4j.com/tags/max7219/SPIhttps://pi4j.com/tags/spi/Wed, 17 Apr 2024 00:00:00 +0000https://pi4j.com/tags/spi/JavaFXhttps://pi4j.com/tags/javafx/Mon, 31 Jul 2023 00:00:00 +0000https://pi4j.com/tags/javafx/Pi4J OShttps://pi4j.com/tags/pi4j-os/Mon, 31 Jul 2023 00:00:00 +0000https://pi4j.com/tags/pi4j-os/1602Ahttps://pi4j.com/tags/1602a/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/1602a/ADS1115https://pi4j.com/tags/ads1115/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/ads1115/ADS1256https://pi4j.com/tags/ads1256/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/ads1256/BH1750https://pi4j.com/tags/bh1750/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/bh1750/BMP180https://pi4j.com/tags/bmp180/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/bmp180/Buttonhttps://pi4j.com/tags/button/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/button/Buzzerhttps://pi4j.com/tags/buzzer/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/buzzer/Camerahttps://pi4j.com/tags/camera/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/camera/CrowPihttps://pi4j.com/tags/crowpi/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/crowpi/DAC8552https://pi4j.com/tags/dac8552/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/dac8552/DHT22https://pi4j.com/tags/dht22/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/dht22/Digital Inputhttps://pi4j.com/tags/digital-input/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/digital-input/Digital Outputhttps://pi4j.com/tags/digital-output/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/digital-output/FatJARhttps://pi4j.com/tags/fatjar/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/fatjar/GpioDhttps://pi4j.com/tags/gpiod/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/gpiod/Gradlehttps://pi4j.com/tags/gradle/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/gradle/HTU21Dhttps://pi4j.com/tags/htu21d/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/htu21d/IntelliJ IDEAhttps://pi4j.com/tags/intellij-idea/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/intellij-idea/IS31FL3731https://pi4j.com/tags/is31fl3731/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/is31fl3731/Javachttps://pi4j.com/tags/javac/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/javac/JBanghttps://pi4j.com/tags/jbang/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/jbang/Joystickhttps://pi4j.com/tags/joystick/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/joystick/Joystick Analoghttps://pi4j.com/tags/joystick-analog/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/joystick-analog/LCD Displayhttps://pi4j.com/tags/lcd-display/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/lcd-display/LEDhttps://pi4j.com/tags/led/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led/LED Buttonhttps://pi4j.com/tags/led-button/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led-button/LED Matrixhttps://pi4j.com/tags/led-matrix/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led-matrix/LED Striphttps://pi4j.com/tags/led-strip/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led-strip/Mavenhttps://pi4j.com/tags/maven/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/maven/MCP23008https://pi4j.com/tags/mcp23008/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp23008/MCP23017https://pi4j.com/tags/mcp23017/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp23017/MCP3008https://pi4j.com/tags/mcp3008/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp3008/MCP4725https://pi4j.com/tags/mcp4725/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp4725/PCF8575https://pi4j.com/tags/pcf8575/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pcf8575/PCF8591https://pi4j.com/tags/pcf8591/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pcf8591/PiGpiohttps://pi4j.com/tags/pigpio/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pigpio/Pixelblazehttps://pi4j.com/tags/pixelblaze/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pixelblaze/Potentiometerhttps://pi4j.com/tags/potentiometer/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/potentiometer/Prototypehttps://pi4j.com/tags/prototype/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/prototype/Serialhttps://pi4j.com/tags/serial/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/serial/Servo Motorhttps://pi4j.com/tags/servo-motor/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/servo-motor/Simple Buttonhttps://pi4j.com/tags/simple-button/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/simple-button/Simple LEDhttps://pi4j.com/tags/simple-led/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/simple-led/SN74HC595https://pi4j.com/tags/sn74hc595/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/sn74hc595/TCA9548https://pi4j.com/tags/tca9548/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/tca9548/Visual Studio Codehttps://pi4j.com/tags/visual-studio-code/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/visual-studio-code/VL53L0Xhttps://pi4j.com/tags/vl53l0x/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/vl53l0x/ \ No newline at end of file +Tags on Pi4Jhttps://pi4j.com/tags/Recent content in Tags on Pi4JHugoen-usFri, 27 Sep 2024 00:00:00 +0000Signedhttps://pi4j.com/tags/signed/Fri, 27 Sep 2024 00:00:00 +0000https://pi4j.com/tags/signed/Unsignedhttps://pi4j.com/tags/unsigned/Fri, 27 Sep 2024 00:00:00 +0000https://pi4j.com/tags/unsigned/BME280https://pi4j.com/tags/bme280/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/tags/bme280/BME680https://pi4j.com/tags/bme680/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/tags/bme680/BME688https://pi4j.com/tags/bme688/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/tags/bme688/BMP280https://pi4j.com/tags/bmp280/Fri, 17 May 2024 00:00:00 +0000https://pi4j.com/tags/bmp280/Interviewhttps://pi4j.com/tags/interview/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/interview/Pi4Jhttps://pi4j.com/tags/pi4j/Thu, 25 Apr 2024 00:00:00 +0000https://pi4j.com/tags/pi4j/LinuxFShttps://pi4j.com/tags/linuxfs/Tue, 23 Apr 2024 00:00:00 +0000https://pi4j.com/tags/linuxfs/PWMhttps://pi4j.com/tags/pwm/Tue, 23 Apr 2024 00:00:00 +0000https://pi4j.com/tags/pwm/I2Chttps://pi4j.com/tags/i2c/Thu, 18 Apr 2024 00:00:00 +0000https://pi4j.com/tags/i2c/MAX7219https://pi4j.com/tags/max7219/Wed, 17 Apr 2024 00:00:00 +0000https://pi4j.com/tags/max7219/SPIhttps://pi4j.com/tags/spi/Wed, 17 Apr 2024 00:00:00 +0000https://pi4j.com/tags/spi/JavaFXhttps://pi4j.com/tags/javafx/Mon, 31 Jul 2023 00:00:00 +0000https://pi4j.com/tags/javafx/Pi4J OShttps://pi4j.com/tags/pi4j-os/Mon, 31 Jul 2023 00:00:00 +0000https://pi4j.com/tags/pi4j-os/1602Ahttps://pi4j.com/tags/1602a/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/1602a/ADS1115https://pi4j.com/tags/ads1115/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/ads1115/ADS1256https://pi4j.com/tags/ads1256/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/ads1256/BH1750https://pi4j.com/tags/bh1750/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/bh1750/BMP180https://pi4j.com/tags/bmp180/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/bmp180/Buttonhttps://pi4j.com/tags/button/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/button/Buzzerhttps://pi4j.com/tags/buzzer/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/buzzer/Camerahttps://pi4j.com/tags/camera/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/camera/CrowPihttps://pi4j.com/tags/crowpi/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/crowpi/DAC8552https://pi4j.com/tags/dac8552/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/dac8552/DHT22https://pi4j.com/tags/dht22/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/dht22/Digital Inputhttps://pi4j.com/tags/digital-input/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/digital-input/Digital Outputhttps://pi4j.com/tags/digital-output/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/digital-output/FatJARhttps://pi4j.com/tags/fatjar/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/fatjar/GpioDhttps://pi4j.com/tags/gpiod/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/gpiod/Gradlehttps://pi4j.com/tags/gradle/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/gradle/HTU21Dhttps://pi4j.com/tags/htu21d/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/htu21d/IntelliJ IDEAhttps://pi4j.com/tags/intellij-idea/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/intellij-idea/IS31FL3731https://pi4j.com/tags/is31fl3731/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/is31fl3731/Javachttps://pi4j.com/tags/javac/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/javac/JBanghttps://pi4j.com/tags/jbang/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/jbang/Joystickhttps://pi4j.com/tags/joystick/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/joystick/Joystick Analoghttps://pi4j.com/tags/joystick-analog/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/joystick-analog/LCD Displayhttps://pi4j.com/tags/lcd-display/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/lcd-display/LEDhttps://pi4j.com/tags/led/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led/LED Buttonhttps://pi4j.com/tags/led-button/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led-button/LED Matrixhttps://pi4j.com/tags/led-matrix/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led-matrix/LED Striphttps://pi4j.com/tags/led-strip/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/led-strip/Mavenhttps://pi4j.com/tags/maven/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/maven/MCP23008https://pi4j.com/tags/mcp23008/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp23008/MCP23017https://pi4j.com/tags/mcp23017/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp23017/MCP3008https://pi4j.com/tags/mcp3008/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp3008/MCP4725https://pi4j.com/tags/mcp4725/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/mcp4725/PCF8575https://pi4j.com/tags/pcf8575/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pcf8575/PCF8591https://pi4j.com/tags/pcf8591/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pcf8591/PiGpiohttps://pi4j.com/tags/pigpio/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pigpio/Pixelblazehttps://pi4j.com/tags/pixelblaze/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/pixelblaze/Potentiometerhttps://pi4j.com/tags/potentiometer/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/potentiometer/Prototypehttps://pi4j.com/tags/prototype/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/prototype/Serialhttps://pi4j.com/tags/serial/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/serial/Servo Motorhttps://pi4j.com/tags/servo-motor/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/servo-motor/Simple Buttonhttps://pi4j.com/tags/simple-button/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/simple-button/Simple LEDhttps://pi4j.com/tags/simple-led/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/simple-led/SN74HC595https://pi4j.com/tags/sn74hc595/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/sn74hc595/TCA9548https://pi4j.com/tags/tca9548/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/tca9548/Visual Studio Codehttps://pi4j.com/tags/visual-studio-code/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/visual-studio-code/VL53L0Xhttps://pi4j.com/tags/vl53l0x/Mon, 01 Jan 0001 00:00:00 +0000https://pi4j.com/tags/vl53l0x/ \ No newline at end of file diff --git a/tags/intellij-idea/index.html b/tags/intellij-idea/index.html index ffbe72171..4eb572053 100644 --- a/tags/intellij-idea/index.html +++ b/tags/intellij-idea/index.html @@ -1,5 +1,5 @@ IntelliJ IDEA - Pi4J -
\ No newline at end of file diff --git a/tags/interview/index.html b/tags/interview/index.html index f874cf313..6d9df2f15 100644 --- a/tags/interview/index.html +++ b/tags/interview/index.html @@ -1,5 +1,5 @@ Interview - Pi4J -
\ No newline at end of file diff --git a/tags/is31fl3731/index.html b/tags/is31fl3731/index.html index 5ebf846b5..50df216f1 100644 --- a/tags/is31fl3731/index.html +++ b/tags/is31fl3731/index.html @@ -1,5 +1,5 @@ IS31FL3731 - Pi4J -
\ No newline at end of file diff --git a/tags/javac/index.html b/tags/javac/index.html index 6952dc65c..36ddef4ce 100644 --- a/tags/javac/index.html +++ b/tags/javac/index.html @@ -1,5 +1,5 @@ Javac - Pi4J -
\ No newline at end of file diff --git a/tags/javafx/index.html b/tags/javafx/index.html index 3fbba0ae6..32fdd19f2 100644 --- a/tags/javafx/index.html +++ b/tags/javafx/index.html @@ -1,5 +1,5 @@ JavaFX - Pi4J -
\ No newline at end of file diff --git a/tags/jbang/index.html b/tags/jbang/index.html index 1c4357c4d..d9455c561 100644 --- a/tags/jbang/index.html +++ b/tags/jbang/index.html @@ -1,5 +1,5 @@ JBang - Pi4J -
\ No newline at end of file diff --git a/tags/joystick-analog/index.html b/tags/joystick-analog/index.html index 03dbcd6af..f3a7dc833 100644 --- a/tags/joystick-analog/index.html +++ b/tags/joystick-analog/index.html @@ -1,5 +1,5 @@ Joystick Analog - Pi4J -
\ No newline at end of file diff --git a/tags/joystick/index.html b/tags/joystick/index.html index 9e9c5bd2a..55f6e128d 100644 --- a/tags/joystick/index.html +++ b/tags/joystick/index.html @@ -1,5 +1,5 @@ Joystick - Pi4J -
\ No newline at end of file diff --git a/tags/lcd-display/index.html b/tags/lcd-display/index.html index 9a5a56efe..51eba9bc0 100644 --- a/tags/lcd-display/index.html +++ b/tags/lcd-display/index.html @@ -1,5 +1,5 @@ LCD Display - Pi4J -
\ No newline at end of file diff --git a/tags/led-button/index.html b/tags/led-button/index.html index cbb4abb50..b999bbee7 100644 --- a/tags/led-button/index.html +++ b/tags/led-button/index.html @@ -1,5 +1,5 @@ LED Button - Pi4J -
\ No newline at end of file diff --git a/tags/led-matrix/index.html b/tags/led-matrix/index.html index 35a93a7cd..23275966d 100644 --- a/tags/led-matrix/index.html +++ b/tags/led-matrix/index.html @@ -1,5 +1,5 @@ LED Matrix - Pi4J -
\ No newline at end of file diff --git a/tags/led-strip/index.html b/tags/led-strip/index.html index 79c590a21..6ef9bd8d2 100644 --- a/tags/led-strip/index.html +++ b/tags/led-strip/index.html @@ -1,5 +1,5 @@ LED Strip - Pi4J -
\ No newline at end of file diff --git a/tags/led/index.html b/tags/led/index.html index 459563664..32b5559b3 100644 --- a/tags/led/index.html +++ b/tags/led/index.html @@ -1,5 +1,5 @@ LED - Pi4J -
\ No newline at end of file diff --git a/tags/linuxfs/index.html b/tags/linuxfs/index.html index 572f4a8e2..ddb955078 100644 --- a/tags/linuxfs/index.html +++ b/tags/linuxfs/index.html @@ -1,5 +1,5 @@ LinuxFS - Pi4J -
\ No newline at end of file diff --git a/tags/maven/index.html b/tags/maven/index.html index 166618554..c7ae98369 100644 --- a/tags/maven/index.html +++ b/tags/maven/index.html @@ -1,5 +1,5 @@ Maven - Pi4J -
\ No newline at end of file diff --git a/tags/max7219/index.html b/tags/max7219/index.html index 9f3709c3e..4dd0691b0 100644 --- a/tags/max7219/index.html +++ b/tags/max7219/index.html @@ -1,5 +1,5 @@ MAX7219 - Pi4J -
\ No newline at end of file diff --git a/tags/mcp23008/index.html b/tags/mcp23008/index.html index 5ac53a4c6..9cacbb8b2 100644 --- a/tags/mcp23008/index.html +++ b/tags/mcp23008/index.html @@ -1,5 +1,5 @@ MCP23008 - Pi4J -
\ No newline at end of file diff --git a/tags/mcp23017/index.html b/tags/mcp23017/index.html index 1eb30ca42..3907283c1 100644 --- a/tags/mcp23017/index.html +++ b/tags/mcp23017/index.html @@ -1,5 +1,5 @@ MCP23017 - Pi4J -
\ No newline at end of file diff --git a/tags/mcp3008/index.html b/tags/mcp3008/index.html index 7221974d8..75fd1603f 100644 --- a/tags/mcp3008/index.html +++ b/tags/mcp3008/index.html @@ -1,5 +1,5 @@ MCP3008 - Pi4J -
\ No newline at end of file diff --git a/tags/mcp4725/index.html b/tags/mcp4725/index.html index 9300dfaba..97a2d5603 100644 --- a/tags/mcp4725/index.html +++ b/tags/mcp4725/index.html @@ -1,5 +1,5 @@ MCP4725 - Pi4J -
\ No newline at end of file diff --git a/tags/pcf8575/index.html b/tags/pcf8575/index.html index fbe34431f..82f965829 100644 --- a/tags/pcf8575/index.html +++ b/tags/pcf8575/index.html @@ -1,5 +1,5 @@ PCF8575 - Pi4J -
\ No newline at end of file diff --git a/tags/pcf8591/index.html b/tags/pcf8591/index.html index 25656d2de..95a6d9ebc 100644 --- a/tags/pcf8591/index.html +++ b/tags/pcf8591/index.html @@ -1,5 +1,5 @@ PCF8591 - Pi4J -
\ No newline at end of file diff --git a/tags/pi4j-os/index.html b/tags/pi4j-os/index.html index 397175027..56129fcba 100644 --- a/tags/pi4j-os/index.html +++ b/tags/pi4j-os/index.html @@ -1,5 +1,5 @@ Pi4J OS - Pi4J -
\ No newline at end of file diff --git a/tags/pi4j/index.html b/tags/pi4j/index.html index 6e7c810b5..d4fda54fe 100644 --- a/tags/pi4j/index.html +++ b/tags/pi4j/index.html @@ -1,5 +1,5 @@ Pi4J - Pi4J -
\ No newline at end of file diff --git a/tags/pigpio/index.html b/tags/pigpio/index.html index 52b5a8ba2..1008df8fb 100644 --- a/tags/pigpio/index.html +++ b/tags/pigpio/index.html @@ -1,5 +1,5 @@ PiGpio - Pi4J -
\ No newline at end of file diff --git a/tags/pixelblaze/index.html b/tags/pixelblaze/index.html index ff794b9aa..174d75666 100644 --- a/tags/pixelblaze/index.html +++ b/tags/pixelblaze/index.html @@ -1,5 +1,5 @@ Pixelblaze - Pi4J -
\ No newline at end of file diff --git a/tags/potentiometer/index.html b/tags/potentiometer/index.html index 09163cdc8..90af250a3 100644 --- a/tags/potentiometer/index.html +++ b/tags/potentiometer/index.html @@ -1,5 +1,5 @@ Potentiometer - Pi4J -
\ No newline at end of file diff --git a/tags/prototype/index.html b/tags/prototype/index.html index 37ddcc4ca..e77112865 100644 --- a/tags/prototype/index.html +++ b/tags/prototype/index.html @@ -1,5 +1,5 @@ Prototype - Pi4J -
\ No newline at end of file diff --git a/tags/pwm/index.html b/tags/pwm/index.html index d9c192351..01fa11f03 100644 --- a/tags/pwm/index.html +++ b/tags/pwm/index.html @@ -1,5 +1,5 @@ PWM - Pi4J -
\ No newline at end of file diff --git a/tags/serial/index.html b/tags/serial/index.html index 57ec3acc2..bbfa91280 100644 --- a/tags/serial/index.html +++ b/tags/serial/index.html @@ -1,5 +1,5 @@ Serial - Pi4J -
\ No newline at end of file diff --git a/tags/servo-motor/index.html b/tags/servo-motor/index.html index a17e948da..d5a08d1e9 100644 --- a/tags/servo-motor/index.html +++ b/tags/servo-motor/index.html @@ -1,5 +1,5 @@ Servo Motor - Pi4J -
\ No newline at end of file diff --git a/tags/signed/index.html b/tags/signed/index.html index 9bf25065f..b9d91f1ec 100644 --- a/tags/signed/index.html +++ b/tags/signed/index.html @@ -1,5 +1,5 @@ Signed - Pi4J -
\ No newline at end of file diff --git a/tags/simple-button/index.html b/tags/simple-button/index.html index e9daff1b6..67f66d884 100644 --- a/tags/simple-button/index.html +++ b/tags/simple-button/index.html @@ -1,5 +1,5 @@ Simple Button - Pi4J -
\ No newline at end of file diff --git a/tags/simple-led/index.html b/tags/simple-led/index.html index b1264732c..96ea8e850 100644 --- a/tags/simple-led/index.html +++ b/tags/simple-led/index.html @@ -1,5 +1,5 @@ Simple LED - Pi4J -
\ No newline at end of file diff --git a/tags/sn74hc595/index.html b/tags/sn74hc595/index.html index 038afda07..bab087ba7 100644 --- a/tags/sn74hc595/index.html +++ b/tags/sn74hc595/index.html @@ -1,5 +1,5 @@ SN74HC595 - Pi4J -
\ No newline at end of file diff --git a/tags/spi/index.html b/tags/spi/index.html index c174e863e..a80ad6dd7 100644 --- a/tags/spi/index.html +++ b/tags/spi/index.html @@ -1,5 +1,5 @@ SPI - Pi4J -
\ No newline at end of file diff --git a/tags/tca9548/index.html b/tags/tca9548/index.html index 700248d72..a72dc471e 100644 --- a/tags/tca9548/index.html +++ b/tags/tca9548/index.html @@ -1,5 +1,5 @@ TCA9548 - Pi4J -
\ No newline at end of file diff --git a/tags/unsigned/index.html b/tags/unsigned/index.html index db4a3916d..118573c35 100644 --- a/tags/unsigned/index.html +++ b/tags/unsigned/index.html @@ -1,5 +1,5 @@ Unsigned - Pi4J -
\ No newline at end of file diff --git a/tags/visual-studio-code/index.html b/tags/visual-studio-code/index.html index 69832c4bb..e58cb8ab8 100644 --- a/tags/visual-studio-code/index.html +++ b/tags/visual-studio-code/index.html @@ -1,5 +1,5 @@ Visual Studio Code - Pi4J -
\ No newline at end of file diff --git a/tags/vl53l0x/index.html b/tags/vl53l0x/index.html index 1ab007fc4..e0efaa436 100644 --- a/tags/vl53l0x/index.html +++ b/tags/vl53l0x/index.html @@ -1,5 +1,5 @@ VL53L0X - Pi4J -
\ No newline at end of file