I have a problem with the Penta SATA Hat Top Board, per post title. I’d suppose this combination to be a standard configuration - I even have the Radxa NAS case and power-supply to support this!
I’m experienced with setting this up on other Radxa/Armbian combos. I have a Top Board working as expected on a Rock Pi 4c with Armbian current, functioning with pwmset, etc.
Host: Radxa ROCK 5A
OS: Armbian 25.11.2 trixie aarch64
Kernel: Linux 6.12.0-current-rockchip-rk3588
Memory: 15.60 GiB
/boot/armbianENV.txt :
verbosity=1
bootlogo=false
console=both
extraargs=cma=256M
overlay_prefix=rockchip-rk3588
fdtfile=rockchip/rk3588s-rock-5a.dtb
rootdev=UUID=8e68c744-b592-4a9b-b425-5e6b52b6aabe
rootfstype=btrfs
overlays= rk3588-i2c8-m2 rockchip-rk3588-pwm0-m0.dtbo rk3588-pwm14-m1
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
/etc/rockpi-penta.env :
SDA=I2C8_SDA_M4
SCL=I2C8_SCL_M4
OLED_RESET=GPIO1_A5
PWMCHIP=14
BUTTON_CHIP=4
BUTTON_LINE=11
HARDWARE_PWM=1
It SEEMS like I’m missing a necessary overlay. The two relevant overlays loaded are rk3588-pwm0-m0.dtbo` and `rk3588-pwm14-m1 The rockpi-penta.env for Rock 5A sets PWMCHIP value at 14. — but /sys/class/pwm/pwmchip14/ doesn’t exist.
The Rock 5A fails consistently, regardless of PWMCHIP values, 0, 1, or 14, in /etc/rockpi-penta.env.
In troubleshooting I have installed and purged both v0.2.2 and v0.2.3 releases of rockpi-penta .deb, and pulled the development branch from git - all to same effect.
The failure is with a system device path, calling fan.py from main.py. This happens when called from a systemd unit file, and when run directly.
The path is ‘/sys/class/pwm/pwmchip0/pwm0/period’. This doesn’t exist on my installation.
$ sudo systemctl status rockpi-penta.service
○ rockpi-penta.service - Rockpi SATA Hat
Loaded: loaded (/usr/lib/systemd/system/rockpi-penta.service; enabled; preset: enabled)
Active: inactive (dead) since Tue 2026-01-06 12:09:55 PST; 9s ago
Duration: 268ms
Invocation: c5fc79e90511457786e4baa682276102
Process: 3872 ExecStart=/usr/bin/python3 /usr/bin/rockpi-penta/main.py (code=exited, status=0/SUCCESS)
Main PID: 3872 (code=exited, status=0/SUCCESS)
Mem peak: 13.4M
CPU: 238ms
Jan 06 12:09:55 nocloud python3[3872]: ~~~~~~~~~~~~~^^^^
Jan 06 12:09:55 nocloud python3[3872]: File "/usr/bin/rockpi-penta/fan.py", line 36, in period_us
Jan 06 12:09:55 nocloud python3[3872]: self.period(us * 1000)
Jan 06 12:09:55 nocloud python3[3872]: ~~~~~~~~~~~^^^^^^^^^^^
Jan 06 12:09:55 nocloud python3[3872]: File "/usr/bin/rockpi-penta/fan.py", line 32, in period
Jan 06 12:09:55 nocloud python3[3872]: with open(os.path.join(self.filepath, 'period'), 'w') as f:
Jan 06 12:09:55 nocloud python3[3872]: ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 06 12:09:55 nocloud python3[3872]: FileNotFoundError: [Errno 2] No such file or directory: '/sys/class/pwm/pwmchip0/pwm0/period'
Jan 06 12:09:55 nocloud python3[3872]: Waring: init pwm error
Jan 06 12:09:55 nocloud systemd[1]: rockpi-penta.service: Deactivated successfully.
My /sys/class/pwm/pwmchip0/ contains the following, with no ‘pwm0’ node:
$ tree /sys/class/pwm/pwmchip0/
/sys/class/pwm/pwmchip0/
├── device -> ../../../fd8b0030.pwm
├── export
├── npwm
├── power
│ ├── autosuspend_delay_ms
│ ├── control
│ ├── runtime_active_time
│ ├── runtime_status
│ └── runtime_suspended_time
├── subsystem -> ../../../../../class/pwm
├── uevent
└── unexport
Many thanks in assistance and guidance.