Advances in user-interface demands, easily seen in slot machines, show apparent demand for higher video performance. The OKDO Rock 5B can support up to three displays, making for a comfortable base for arcade projects. Furthermore, its high computing power makes it an attractive Raspberry Pi alternative.


A large board with high connectivity potential

Placing the OKDO Rock 5B next to the Raspberry Pi 4 leads to the results shown in the figure - obviously, the single-board computer is larger than its colleague. This, however, also has benefits - a careful look shows that the Rock 5B has two full-size HDMI outputs, whereas the Raspberry Pi 4 requires (often flimsy) HDMI adapters.

Furthermore, external storage can be added via multiple interfaces. In addition to the PCIe interface on the top, there is an eMMC module at the bottom. These two are interesting not only because of the potential for memory expansion but also due to their high vibrational robustness.

OKDO Rock 5B - large board with high connectivity potential
Figure. 1

high connectivity potential OKDO Rock 5B
Figure. 2

Another exciting aspect involves the presence of an RTC connector, as shown in the figure.

ROCK 5B OKDO RTC connector
Figure. 3

In a fashion similar to the BIOS battery found on motherboards, this connector adds a standby power source. It can keep the real-time clock chip running, ensuring that valid wall clock time is available after start-up in a non-internet-connected state.

Similarly, the fan connector permits the addition of a PWM-controlled active fan and heatsink assembly - this can be useful if the board works in high compute-load scenarios.

PWM active fan connection
Figure 4


Bring-up for experimentation

The most comfortable way to take possession of a newly purchased OKDO Rock 5B is the image rock-5b_debian_bullseye_kde_b39.img.xz - deploy it to a microSD card and start the process computer.

RADXA's development team is highly developer-focused, which is why SSH access is possible after the image has started - use the SSH client as shown below, substituting your IP address using the password rock:

tamhan@TAMHAN18:~$ ssh rock@192.168.1.102 
rock@192.168.1.102's password:

After that, familiarisation can be achieved by performing a quick benchmark run using sysbench. The program can be downloaded from the public repositories using the command sudo apt-get install sysbench.

After that, the table shows the results achieved. 
Command
Result
rock@rock-5b:~$ sysbench cpu run 
CPU speed:
events per second: 2698.24
rock@rock-5b:~$ sysbench cpu run --num-threads=4 
CPU speed:
events per second: 10847.04
rock@rock-5b:~$ sysbench cpu run --num-threads=8 
CPU speed:
events per second: 14434.26

The RK3588 system-on-a-chip used in this process computer implements the big/little design pattern. This means that it has four Cortex-A76 and four Cortex-A55 cores - due to scheduling, performance-intensive tasks are first run on the high-performance cores, with the low-performance standby cores being spun up in case of need.

This explains why the jump from 4 to 8 cores does not scale linearly - normally, CPU benchmarks, by and large, scale linearly. Performing an iperf run yields results in the range of 940 Mb per second - the gigabit ethernet port is not constrained by the interface between the processor and ethernet controller.

ROCK 5B GPIO access

Interacting with external hardware is accomplished via the 40-pin-GPIO extension header. The GPIO transceivers are fully exposed using the SysFS interface to enable simple GPIO access.

In practice, the main issue is translating between the logical GPIO groups and the numeric IDs of the memory locations. For this, the company provides the process outlined in the figure.

The Essential Guide to AC-DC Power Adapters
Figure. 5

In the following steps, we will use pin GPIO4_B3, which is said to have a GPIO number of 139, according to the GPIO table found at https://wiki.radxa.com/Rock5/hardware/5b/gpio.

In the next step, a shell script is required. As in all other cases of SysFS use, the actual initialization happens by writing parameters to "magic" files:

#!/bin/bash 
cd /sys/class/gpio
echo 139 > export
cd gpio139
echo out > direction

The actual writing process takes place in an endless loop:

while true 
do
echo 1 > value # output high
echo 0 > value # output low
echo 1 > value # output high
echo 0 > value # output low
done


Emitting two waveforms makes practical sense, as the waveform can then be analyzed to determine the amount of time spent on the loop. In the case of our Rock 5B, the results are as shown in the two figures.

ROCK 5B GPIO access
Figure. 6

ROCK 5B GPIO access on oscilloscope machine
Figure. 7

Keep in mind that the execution of the shell script does require root privileges: 
rock@rock-5b:~$ sudo ./worker.sh
[sudo] password for rock:

In addition, direct memory access is possible if higher frequencies are required. This, however, is outside of the scope of this experimentation.

Practical Issues

Remember that the Rock 5B does not come with an integrated wireless peripheral: if your application requires Bluetooth or Wi-Fi, a USB or PCeE dongle is needed. This can be a dealbreaker for some applications, as USB dongles tend to be sensitive to vibration, while a PCIe card (a) blocks one of the memory expansion slots and (b) can be pricey. Theoretically, the ROCK 5B can also be powered from its GPIO port. In practice, however, this often leads to unsatisfactory results - a detailed discussion of the potential problems can be found at https://forum.radxa.com/t/rock-5b-power-through-gpio-pins/14723.

Conclusion and Outlook

If high computer power is required, the ROCK 5B, in many ways, has no real competition. For example, it is one of the very few single-board computers that can also be purchased with 16 GB of random-access memory. Combined with the high-performance CPU and the multitude of video input and output opportunities, this board is ideally suited to many multimedia tasks. Furthermore, remember that this board still has a 3.5-inch headphone jack - a feature missing on contemporary process computers such as the Raspberry Pi 5.