Table of content HideShow

The Allwinner H2+, which integrates four ARM-Cortex A7 cores that can clock up to 1.2GHz, is powering the Orange Pi Zero LTS. The tiny board, which measures just 52 x 46 mm, features 802.11 b/g/n Wi-Fi, Ethernet, up to 512 MB of RAM, USB 2.0 Type-A and a microSD card slot. There is also a 26-pin unpopulated GPIO header along with a 13-pin header for a headphone, USB 2.0, TV-out, microphone and IR signals.

This board is the next generation of the Orange Pi Zero that was first launched in November 2016 for $7 and up. It should solve various issues with the Allwinner XR819 WiFi module that many developers reported. The main modification on revision v1.5 (vs. v1.1 - I did not find the datasheet for v1.4) is the power supply logic to reduce the interferences on the Wi-Fi module.

Fig. 1: Orange Pi Zero LTS

The Orange Pi Zero LTS costs between US$8.49 and US$10.49 depending on the version you buy (256/512MB of RAM) and is available to order on AliExpress (shipping cost about US$4.89).

In this article, I will install the Armbian Buster OS. Then, using VSC and the Remote-SSH extension, I will install Pip3 to install some Python libraries and finally I will test the performance of the board using my testbench algorithm: N-Queens-Problem written in Python.

Hardware and Software

In this article, the following hardware and software will be used:

The Orange Pi Zero LTS v1.5 specifications are the following:

Orange Pi Zero LTS v1.5 CPU SoC – Allwinner H2+ quad-core Cortex A7 processor @1.2 GHz GPU Mali400MP2 GPU @600 MHz

Supports OpenGL ES 2.0 System Memory 256 to 512 MB DDR3-1866 SDRAM (Shared with GPU) Storage microSD card slot Connectivity 10/100M Ethernet

802.11 b/g/n WiFi (Allwinner XR819 WiFi module) with u.FL antenna connector and external antenna USB 1x USB 2.0 host ports

1x micro USB OTG port Expansion headers Unpopulated 26-pin GPIO header mostly compatible with Raspberry Pi (1) header

13-pin header with headphone, 2x USB 2.0, TV-out, microphone and IR receiver signals Debugging 3-pin header for serial console Misc 2x LEDs Supported OS Android 7.0, OpenWrt, Ubuntu or Debian Desktop/server

Armbian’s Debian 10 Buster or Ubuntu 18.04 Bionic Power Supply 5V via micro USB port or optional PoE Dimensions - Weight 52 x 46 mm - 26 g

Armbian Buster

I tested the board using Armbian Buster. I've downloaded the 7-zip zipped image and I used the Startup Disk Creator of Ubuntu to write the image on a Kingstone 16GB SD-card, which is the same SD-card that I used to test the Raspberry Pi performances.

To use VSC and the Remote-SSH extension, you need first to change the default password (user: root, password: 1234). Use a terminal and connect to the board using SSH (enabled per default). You'll get something like Fig. 2. After changing the password, it is possible to connect to the remote OS using VSC and the Remote-SSH extension.

Fig. 2: Orange Pi running Armbian Buster: Changing the default password.

It is possible to monitor the CPU temperature using armbianmonitor -m under Armbian, but I got temperatures between 10.9°C and 14.5°C (Fig. 3), and this didn't sound very good to me. The CPU had definitively a higher temperature!... It should be a wrong thermal calibration. Reading the temperature directly, it also reported some wrong values (see Fig. 4)

Fig. 3: Temperature monitor using armbianmonitor -m ... The values are too low!



Fig. 4: Temperature monitor. The values are too low!

WiFi on Armbian

To configure the wlan0 interface on Armbian, modify the following file:

sudo nano /etc/network/interfaces : auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf : ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="" psk="" }

Then, you need to disable the NetworkManager and use iwd:

apt install iwd systemctl disable wpa_supplicant echo -e "

[device]

wifi.backend=iwd

" >> /etc/NetworkManager/NetworkManager.conf

More info: here.

If you use the standard NetworkManager you are going to get following errors when activating the wlan0 interface:

root@orangepizero:~# sudo ifconfig wlan0 up SIOCSIFFLAGS: Invalid argument root@orangepizero:~# rfkill list 0: phy0: Wireless LAN Soft blocked: no Hard blocked: no root@orangepizero:~# sudo ip link set wlan0 up RTNETLINK answers: Invalid argument

Performance Test

The N-Queens Problem library needs the tqdm module. And to install that, type the following:

root@orangepizero:~# sudo apt-get install python3-pip root@orangepizero:~# pip3 install tqdm # check if all cpu were identified: root@orangepizero:~# grep -c ^processor /proc/cpuinfo 4

Because the Orange Pi Zero LTS does not have a GPU temperature sensor (or any function that provides that information), I modified the get_gpu_temp(...) function in the temperature.py file as:

def get_gpu_temp(self): #res = os.popen('vcgencmd measure_temp').readline() #res = float(res.replace('temp=','').replace('\'C

','')) return self.get_cpu_temp()

to return the CPU temperature.

For the test, I used the same heatsink as for the Raspberry Pi:

Aluminum Heatsink Kit



The N-queens-problem benchmark (N=12) was launched and repeated 100 times with multi-thread and single-thread configuration:

root@orangepizero:~# git clone https://github.com/lemariva/N-Queens-Problem.git root@orangepizero:~# cd N-Queens-Problem root@orangepizero:~/N-Queens-Problem# python3 queenpool_multithread.py multithread_output.csv 12 4 100 Calculating loop number 1 (of 100) Starting calculation Elapsed time: 67.737995 There are 14200 solutions for 12 queens. 1566140517, 12, 4, 14200, 67, 737995, 51.79, 51.79 [...]

root@orangepizero:~/N-Queens-Problem# python3 queenpool_multithread.py singlethread_output.csv 12 1 100 Calculating loop number 1 (of 100) Starting calculation Elapsed time: 252.97670 There are 14200 solutions for 12 queens. 1566148971, 12, 1, 14200, 252, 97670, 27.71, 27.71 [...]

The N-queens-problem is a well-known problem that consists of placing N chess queens on an N×N chessboard so that no two queens attack each other. In this case, there are 14200 solutions for 12 queens.

The multi-thread and single-thread performances resulted as described in Fig. 5a and 5b, respectively.

Fig. 5a: Multi-thread Configuration Fig. 5b: Single-thread Configuration



The multithread performance of the Orange Pi Zero LTS is comparable to the performance of the Raspberry Pi 3B. In Fig. 5a, as the CPU temperature was under 70°C, the performance was better: It took the Orange Pi Zero LTS less than 67 seconds to solve the N-queens problem. After the 17th iteration, the temperature increased to over 70°C (as I mentioned, the sensor could not be correctly calibrated!) and the CPU performance was affected. Regarding the temperature, it increased slowly compared to the temperature of the Raspberry Pi 3B. The single-thread performance of both boards (OPi and RPi 3B) is also comparable. They needed about 252 seconds to resolve the N-queens problem.

The folowing table sumarizes the performance of the Orange Pi Zero LTS and compares it with the Raspberry Pi 3B and 3B+ models using Raspbian Stretch.

oPi Zero LTS rPi Model 3B+ rPi Model 3B Avg. Multi-Thread Solving Time 69.97 s 62.66 s 70.85 s Multi-Thread Max. Temperature 71.75 °C 68.78 °C 78.69 °C Avg. Single-Thread Solving Time 251.65 s 213.34 s 251.30 s Single-Thread Max. Temperature 31.10 °C 54.22 °C 52.61 °C





For the tests, the Orange Pi Zero LTS was running Armbian Buster with kernel 4.19.59-sunxi (TA: 21°C), while the Raspberry Pis run Raspbian Stretch with kernel 4.14.27-v7+ (TA: 19°C).



The single-thread test was in average 3.65x slower than the multi-thread test (184.60 min vs 50.75 min to solve 45 N-queens problems). However, the temperature remained under 70°C and the system performance was not affected. The max. temperature for the single-thread solution seems too low for me (again, I think it is not calibrated!).

Conclusions

With the release of the Raspberry Pi 4, the market has become more difficult for competitors. But in the low-cost segment, it is still worth thinking about alternatives to raspberry. Thus, the Orange Pi Zero LTS is definitely an alternative to the old Raspberry Pi models (older than 3B+). Its price and size make it optimal for small designs. Moreover, it supports more OS than the Raspberry Pi. Its performance is comparable to the Raspberry Pi 3B and positions itself here against the much lower-power, single-core variants of the Raspberry Pi Zero.

The problems with the temperature that the older versions have seem to be resolved. Unfortunately, the internal temperature measurement is not working properly (from my point of view)! However, I was positively surprised by the board. This was my first Orange Pi and it didn't disapoint me at all, I'm thinking of buying one of its big brother (Orange Pi 3). I will test the performance of Docker running on this system in a next article.