unam— parent: Single Board Computers nav_order: 7 permalink: /boards/rock4cplus.html —
Rock 4C+
System Information
$ java -cp diozero-sampleapps-1.4.1.jar com.diozero.sampleapps.SystemInformation
Local System Info
diozero version: 1.4.1
Operating System: debian 11 (bullseye) - aarch64
CPU Temperature: -1.00
Detected Board Info
Device Factory: DefaultDeviceFactory
Board: Radxa Radxa ROCK Pi 4C+ (RAM: 3,956,248 bytes, O/S: debian 11 (bullseye))
I2C Bus Numbers: 0, 1, 9
Header: Default
+-----+----------+--------+----------+--------+----------+-----+
+ GP# + Name + gpiod + Physical + gpiod + Name + GP# +
+-----+----------+--------+----------+--------+----------+-----+
| | 3v3 | | 1 || 2 | | 5v | |
| 71 | I2C7_SDA | 2:7 | 3 || 4 | | 5v | |
| 72 | I2C7_SCL | 2:8 | 5 || 6 | | GND | |
| 75 | GPIO2_B3 | 2:11 | 7 || 8 | 4:20 | TXD2 | 148 |
| | GND | | 9 || 10 | 4:19 | RXD2 | 147 |
| 146 | PWM0 | 4:18 | 11 || 12 | 4:3 | GPIO4_A3 | 131 |
| 150 | PWM1 | 4:22 | 13 || 14 | | GND | |
| 149 | GPIO4_C5 | 4:21 | 15 || 16 | 4:26 | GPIO4_D2 | 154 |
| | 3v3 | | 17 || 18 | 4:28 | GPIO4_D4 | 156 |
| 40 | SPI1_TX | 1:8 | 19 || 20 | | GND | |
| 39 | SPI1_RX | 1:7 | 21 || 22 | 4:29 | GPIO4_D5 | 157 |
| 41 | SPI1_CLK | 1:9 | 23 || 24 | 1:10 | SPI1_CS0 | 42 |
| | GND | | 25 || 26 | | ADC_IN0 | 0 |
| 64 | GPIO2_A0 | 2:0 | 27 || 28 | 2:1 | GPIO2_A1 | 65 |
| 74 | GPIO2_B2 | 2:10 | 29 || 30 | | GND | |
| 73 | GPIO2_B1 | 2:9 | 31 || 32 | 3:0 | GPIO3_C0 | 112 |
| 76 | GPIO2_B4 | 2:12 | 33 || 34 | | GND | |
| 133 | GPIO4_A5 | 4:5 | 35 || 36 | 4:4 | GPIO4_A4 | 132 |
| 158 | GPIO4_D6 | 4:30 | 37 || 38 | 4:6 | GPIO4_A6 | 134 |
| | GND | | 39 || 40 | 4:7 | GPIO4_A7 | 135 |
+-----+----------+--------+----------+--------+----------+-----+
GPIO Read All
$ sudo java -cp diozero-sampleapps-1.4.1.jar com.diozero.sampleapps.GpioReadAll
Header: Default
+-----+----------+------+---+--------+----------+--------+---+------+----------+-----+
+ GP# + Name + Mode + V + gpiod + Physical + gpiod + V + Mode + Name + GP# +
+-----+----------+------+---+--------+----------+--------+---+------+----------+-----+
| | 3v3 | | | | 1 || 2 | | | | 5v | |
| 71 | I2C7_SDA | In | 1 | 2:7 | 3 || 4 | | | | 5v | |
| 72 | I2C7_SCL | In | 1 | 2:8 | 5 || 6 | | | | GND | |
| 75 | GPIO2_B3 | In | 1 | 2:11 | 7 || 8 | 4:20 | 1 | UART | TXD2 | 148 |
| | GND | | | | 9 || 10 | 4:19 | 1 | UART | RXD2 | 147 |
| 146 | PWM0 | In | 0 | 4:18 | 11 || 12 | 4:3 | 1 | In | GPIO4_A3 | 131 |
| 150 | PWM1 | In | 0 | 4:22 | 13 || 14 | | | | GND | |
| 149 | GPIO4_C5 | In | 0 | 4:21 | 15 || 16 | 4:26 | 0 | In | GPIO4_D2 | 154 |
| | 3v3 | | | | 17 || 18 | 4:28 | 0 | In | GPIO4_D4 | 156 |
| 40 | SPI1_TX | SPI | 0 | 1:8 | 19 || 20 | | | | GND | |
| 39 | SPI1_RX | SPI | 1 | 1:7 | 21 || 22 | 4:29 | 0 | In | GPIO4_D5 | 157 |
| 41 | SPI1_CLK | SPI | 0 | 1:9 | 23 || 24 | 1:10 | 1 | SPI | SPI1_CS0 | 42 |
| | GND | | | | 25 || 26 | | | In | ADC_IN0 | 0 |
| 64 | GPIO2_A0 | In | 1 | 2:0 | 27 || 28 | 2:1 | 1 | In | GPIO2_A1 | 65 |
| 74 | GPIO2_B2 | In | 1 | 2:10 | 29 || 30 | | | | GND | |
| 73 | GPIO2_B1 | In | 1 | 2:9 | 31 || 32 | 3:0 | 1 | In | GPIO3_C0 | 112 |
| 76 | GPIO2_B4 | In | 1 | 2:12 | 33 || 34 | | | | GND | |
| 133 | GPIO4_A5 | In | 1 | 4:5 | 35 || 36 | 4:4 | 1 | In | GPIO4_A4 | 132 |
| 158 | GPIO4_D6 | Out | 0 | 4:30 | 37 || 38 | 4:6 | 1 | In | GPIO4_A6 | 134 |
| | GND | | | | 39 || 40 | 4:7 | 1 | In | GPIO4_A7 | 135 |
+-----+----------+------+---+--------+----------+--------+---+------+----------+-----+
Setup
export DISTRO=bullseye-stable curl http://apt.radxa.com/$DISTRO/public.key | sudo apt-key add -
Onboard Thermal Zones
Create file rockchip-rk3399-thermals.dtsi
:
/dts-v1/;
/plugin/;
/ {
compatible = "radxa,rockpi4c-plus", "radxa,rockpi4", "rockchip,rk3399";
fragment@0 {
target=<&tsadc>;
__overlay__ {
status = "okay";
/* tshut mode 0:CRU 1:GPIO */
rockchip,hw-tshut-mode = <1>;
/* tshut polarity 0:LOW 1:HIGH */
rockchip,hw-tshut-polarity = <1>;
};
};
};
Compile and copy over:
dtc -@ -O dtb -o rockchip-rk3399-thermals.dtbo rockchip-rk3399-thermals.dtsi
chmod +x rockchip-rk3399-thermals.dtbo
sudo cp rockchip-rk3399-thermals.dtbo /boot/dtb/rockchip/overlay/.
Install either via armbian-config
(System / Hardware) or by directly adding rk3399-thermals
to the overlays
list in /boot/armbianEnv.txt
; reboot.
https://github.com/TheRemote/PiBenchmarks
GPIO File Permissions
File /etc/udev/rules.d/70-gpio.rules
:
# Allow group gpio to access gpiochip files
SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660"
# To allow additional features like edge detection
SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c '\
chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio;\
chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/virtual/gpio;\
chown -R root:gpio /sys$devpath && chmod -R 770 /sys$devpath\
'"