Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mattjlewis/diozero

Java Device I/O library that is portable across Single Board Computers and microcontrollers. Tested with Raspberry Pi, Odroid C2, BeagleBone Black, Next Thing CHIP, Asus Tinker Board and Arduinos / Pico. Supports GPIO, I2C, SPI as well as Serial communication. Also known to work with Udoo Quad.
https://github.com/mattjlewis/diozero

analog-devices arduino asus-tinker-board beaglebone-black firmata gpio gpiod hacktoberfest i2c java libgpiod odroid-c2 pico raspberry-pi serial serial-communication serial-port spi spi-device spi-devices

Last synced: about 3 hours ago
JSON representation

Java Device I/O library that is portable across Single Board Computers and microcontrollers. Tested with Raspberry Pi, Odroid C2, BeagleBone Black, Next Thing CHIP, Asus Tinker Board and Arduinos / Pico. Supports GPIO, I2C, SPI as well as Serial communication. Also known to work with Udoo Quad.

Awesome Lists containing this project

README

        

---
author: "Matthew Lewis"
---
# diozero - a Java Device I/O wrapper for GPIO / I2C / SPI control

[![Maven CI Build](https://github.com/mattjlewis/diozero/actions/workflows/build.yml/badge.svg)](https://github.com/mattjlewis/diozero/actions/workflows/build.yml)
[![Maven Central Status](https://img.shields.io/maven-central/v/com.diozero/diozero.svg)](https://search.maven.org/search?q=g:com.diozero)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Javadoc](https://www.javadoc.io/badge/com.diozero/diozero-core.svg)](https://www.javadoc.io/doc/com.diozero/diozero-core)

A Device I/O library written in Java that provides an object-orientated interface for a range of
GPIO / I2C / SPI devices (LEDs, buttons, sensors, motors, displays, etc) connected to Single
Board Computers like the Raspberry Pi. Actual GPIO / I2C / SPI device communication is delegated
to pluggable service providers for maximum compatibility across different boards. This library is
known to work on the following boards: all models of the Raspberry Pi, Odroid C2, BeagleBone
(Green and Black), C.H.I.P and ASUS Tinker Board. It should be portable to any Single Board computer that
runs Linux and Java 11+.

This library makes use of modern Java features such as
[automatic resource management](https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html),
[Lambda Expressions](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html) and
[Method References](https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html)
where they simplify development and improve code readability.

Created by [Matt Lewis](https://github.com/mattjlewis) (email [[email protected]](mailto:[email protected])) ([blog](https://diozero.blogspot.co.uk/)),
inspired by [GPIO Zero](https://gpiozero.readthedocs.org/) and [Johnny Five](http://johnny-five.io/).
If you have any issues please use the [GitHub issues page](https://github.com/mattjlewis/diozero/issues).
For any other comments or suggestions, please use the [GitHub discussions page](https://github.com/mattjlewis/diozero/discussions).

Please refer to the [GitHub Pages site](https://www.diozero.com/) for further documentation.