Utility Applications
The diozero-sampleapps project includes some useful command-line utilities. Some of these are reimplementations of standard Linux command-line tools to illustrate the capabilities of diozero.
System Information
Displays information about the automatically detected local board, including the device factory in use, local host’s name, memory and O/S, as well as pin information for all detected pins for all headers. Uses colourised console output.
> java -cp diozero-sampleapps-1.4.1.jar com.diozero.sampleapps.SystemInformation
Local System Info
Operating System: debian "10 (buster)" "10"
I2C buses: [1]
CPU Temperature: 40.41
Native Device Factory: DefaultDeviceFactory
Board: Raspberry Pi 4B (RAM: 2,048,000 bytes)
Header: J8
+-----+-----------+--------+----------+--------+-----------+-----+
+ GP# + Name + gpiod + Physical + gpiod + Name + GP# +
+-----+-----------+--------+----------+--------+-----------+-----+
| | 3v3 | | 1 || 2 | | 5v | |
| 2 | SDA1 | 0:2 | 3 || 4 | | 5v | |
| 3 | SCL1 | 0:3 | 5 || 6 | | GND | |
| 4 | GPIO_GCLK | 0:4 | 7 || 8 | 0:14 | TXD1 | 14 |
| | GND | | 9 || 10 | 0:15 | RXD1 | 15 |
| 17 | GPIO17 | 0:17 | 11 || 12 | 0:18 | GPIO18 | 18 |
| 27 | GPIO27 | 0:27 | 13 || 14 | | GND | |
| 22 | GPIO22 | 0:22 | 15 || 16 | 0:23 | GPIO23 | 23 |
| | 3v3 | | 17 || 18 | 0:24 | GPIO24 | 24 |
| 10 | SPI_MOSI | 0:10 | 19 || 20 | | GND | |
| 9 | SPI_MISO | 0:9 | 21 || 22 | 0:25 | GPIO25 | 25 |
| 11 | SPI_SCLK | 0:11 | 23 || 24 | 0:8 | SPI_CE0_N | 8 |
| | GND | | 25 || 26 | 0:7 | SPI_CE1_N | 7 |
| 0 | ID_SDA | 0:0 | 27 || 28 | 0:1 | ID_SCL | 1 |
| 5 | GPIO5 | 0:5 | 29 || 30 | | GND | |
| 6 | GPIO6 | 0:6 | 31 || 32 | 0:12 | GPIO12 | 12 |
| 13 | GPIO13 | 0:13 | 33 || 34 | | GND | |
| 19 | GPIO19 | 0:19 | 35 || 36 | 0:16 | GPIO16 | 16 |
| 26 | GPIO26 | 0:26 | 37 || 38 | 0:20 | GPIO20 | 20 |
| | GND | | 39 || 40 | 0:21 | GPIO21 | 21 |
+-----+-----------+--------+----------+--------+-----------+-----+
Header: P5
+-----+---------------+--------+----------+--------+---------------+-----+
+ GP# + Name + gpiod + Physical + gpiod + Name + GP# +
+-----+---------------+--------+----------+--------+---------------+-----+
| 54 | BT_ON | 1:0 | 0 || 1 | 1:1 | WL_ON | 55 |
| 56 | PWR_LED_OFF | 1:2 | 2 || 3 | 1:3 | GLOBAL_RESET | 57 |
| 58 | VDD_SD_IO_SEL | 1:4 | 4 || 5 | 1:5 | CAM_GPIO | 59 |
| 60 | SD_PWR_ON | 1:6 | 6 || 7 | 1:7 | SD_OC_N | 61 |
+-----+---------------+--------+----------+--------+---------------+-----+
GpioDetect
Reimplementation of the gpiodetect
application that is bundled in the gpiod tools package to list all GPIO chips, print their labels and number of GPIO lines.
> gpiodetect
gpiochip0 [pinctrl-bcm2711] (58 lines)
gpiochip1 [raspberrypi-exp-gpio] (8 lines)
> java -cp diozero-sampleapps-1.4.1.jar com.diozero.sampleapps.GpioDetect
gpiochip0 [pinctrl-bcm2711] (58 lines)
gpiochip1 [raspberrypi-exp-gpio] (8 lines)
GpioReadAll
Reimplementation of the gpio readall
command from the now deprecated wiringpi library. Displays information about all detected physical pins for all headers, including GPIO number, name, mode, value, GPIO character device chip and line number as well as physical pin number. Uses colourised console output.
> java -cp diozero-sampleapps-1.4.1.jar com.diozero.sampleapps.GpioReadAll
Header: J8
+-----+-----------+------+---+--------+----------+--------+---+------+-----------+-----+
+ GP# + Name + Mode + V + gpiod + Physical + gpiod + V + Mode + Name + GP# +
+-----+-----------+------+---+--------+----------+--------+---+------+-----------+-----+
| | 3v3 | | | | 1 || 2 | | | | 5v | |
| 2 | SDA1 | Unkn | 1 | 0:2 | 3 || 4 | | | | 5v | |
| 3 | SCL1 | Unkn | 1 | 0:3 | 5 || 6 | | | | GND | |
| 4 | GPIO_GCLK | In | 1 | 0:4 | 7 || 8 | 0:14 | 1 | In | TXD1 | 14 |
| | GND | | | | 9 || 10 | 0:15 | 1 | In | RXD1 | 15 |
| 17 | GPIO17 | In | 0 | 0:17 | 11 || 12 | 0:18 | 0 | In | GPIO18 | 18 |
| 27 | GPIO27 | In | 0 | 0:27 | 13 || 14 | | | | GND | |
| 22 | GPIO22 | In | 0 | 0:22 | 15 || 16 | 0:23 | 0 | In | GPIO23 | 23 |
| | 3v3 | | | | 17 || 18 | 0:24 | 0 | In | GPIO24 | 24 |
| 10 | SPI_MOSI | Unkn | 0 | 0:10 | 19 || 20 | | | | GND | |
| 9 | SPI_MISO | Unkn | 0 | 0:9 | 21 || 22 | 0:25 | 0 | In | GPIO25 | 25 |
| 11 | SPI_SCLK | Unkn | 0 | 0:11 | 23 || 24 | 0:8 | 1 | Out | SPI_CE0_N | 8 |
| | GND | | | | 25 || 26 | 0:7 | 1 | Out | SPI_CE1_N | 7 |
| 0 | ID_SDA | In | 1 | 0:0 | 27 || 28 | 0:1 | 1 | In | ID_SCL | 1 |
| 5 | GPIO5 | In | 1 | 0:5 | 29 || 30 | | | | GND | |
| 6 | GPIO6 | In | 1 | 0:6 | 31 || 32 | 0:12 | 0 | In | GPIO12 | 12 |
| 13 | GPIO13 | In | 0 | 0:13 | 33 || 34 | | | | GND | |
| 19 | GPIO19 | In | 0 | 0:19 | 35 || 36 | 0:16 | 0 | In | GPIO16 | 16 |
| 26 | GPIO26 | In | 0 | 0:26 | 37 || 38 | 0:20 | 0 | In | GPIO20 | 20 |
| | GND | | | | 39 || 40 | 0:21 | 0 | In | GPIO21 | 21 |
+-----+-----------+------+---+--------+----------+--------+---+------+-----------+-----+
Header: P5
+-----+---------------+------+---+--------+----------+--------+---+------+---------------+-----+
+ GP# + Name + Mode + V + gpiod + Physical + gpiod + V + Mode + Name + GP# +
+-----+---------------+------+---+--------+----------+--------+---+------+---------------+-----+
| 54 | BT_ON | In | | 1:0 | 0 || 1 | 1:1 | | In | WL_ON | 55 |
| 56 | PWR_LED_OFF | In | | 1:2 | 2 || 3 | 1:3 | | In | GLOBAL_RESET | 57 |
| 58 | VDD_SD_IO_SEL | In | | 1:4 | 4 || 5 | 1:5 | | In | CAM_GPIO | 59 |
| 60 | SD_PWR_ON | In | | 1:6 | 6 || 7 | 1:7 | | In | SD_OC_N | 61 |
+-----+---------------+------+---+--------+----------+--------+---+------+---------------+-----+
I2CDetect
Reimplementation of the i2cdetect
application from the i2c-tools
package.
> i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
> java -cp diozero-sampleapps-1.4.1.jar com.diozero.sampleapps.I2CDetect 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --