The Orange Pi Zero 3

Around early February, I got a little extra something in the mail: An Orange Pi Zero 3, which is (yes, you guessed it) yet another single-board computer–not based on the RK3588, but on the AllWinner H618 SoC, which is a lower end quad-core ARM Cortex-A53 running at 1.5GHz:

side by side
Side by side with its expansion board

Disclaimer: Orange Pi sent me a review unit (for which I thank them), and this article follows my .

Hardware Specs

The Zero 3 is a bit of an odd duck, but with a few interesting features:

  • 4GB of LPDDR4 RAM
  • A Gigabit Ethernet port
  • USB-C for power

I quite like to see Ethernet ports in smaller SBCs, since it makes them more useful as thin clients, and the generous RAM allocation is also a plus for a board this size. The rest of the specs are a mix of the usual and the unusual:

  • AllWinner H618 SoC with 4xCortex-A53 cores running at 1.5GHz and a Mali G31 MP2 GPU.
  • An on-board single-die 20U5622 Wi-Fi/Bluetooth module that supports 802.11ac at 5GHz and Bluetooth 5.0 (a pigtail antenna is supplied)
  • a micro-HDMI port (which is a bit of an annoyance, but I have a few cables for that)
  • An SD card slot (which is all you get for storage, since there is no EMMC on this board)
  • a 26-pin GPIO header (which is also a bit of an oddity, but is documented on their wiki)
  • A 13-pin header for an optional daugherboard (which I also got) with:
    • Two additional USB-A ports (it has one on the main board)
    • A 3.5mm audio jack
    • A microphone
    • An IR receiver

Given the mixing and matching that is going on in the BOM, I suspect this board (or its ancestors) was originally designed for use in a set-top box and re-purposed for the maker market by replacing an EMMC with a card slot, but that’s just a hunch.

Software Support

As usual, getting stable, maintainable software was a bit of a challenge. While fiddling with the board I realized that it booted into a mini-userland saved to SPI flash when no card was present (which has interesting implications for field service and is something I’d like to see more often), but booting a full OS has to be done from an SD card.

As to Linux distributions, it took me a while to actually get around to testing it, for two reasons:

  • I really wanted to flash , and that was a bit of a rabbit hole (more on that below).
  • The board is not officially supported by , nor is there a “vanilla” Debian CLI image for it (which I would have preferred).

Not the droid you are looking for

On the front, things are just… strange. To flash the official image to an SD card, you need to use an extraordinarily specific Windows tool (you read that right, it does something to the partitioning scheme that apparently can’t be done with your usual dd or Mac/Linux imaging tools), and there is no real way to customize or build your own image–so after a few weeks of poking around I gave up on that–part out of principle (it’s an unmaintainable solution) and part out of frustration.

Then I went and spent a fair chunk of time searching for a way to get a Linux image I could easily maintain or upgrade, and things were better, but still far from perfect.

An Armbian and a Leg

There are unofficial Armbian images available, but even though the wiki had quite a bit of documentation, it took me a while to realize I had to use specific system images for the 4GB RAM version of the board.

And, you guessed it, there were no prebuilt ones. This is apparently due to the need of having specific DTB files for uboot depending on board version, and instructions for patching the images were a bit hard to find (they are in Chinese, which I personally don’t really mind, but by that time I was already out of time).

So, in short, the software situation is a bit… complicated. And for folk like me, who are used to embedded systems and can boot their own kernels, Orange Pi does have build instructions for building a Linux 6.1 kernel on GitHub.

But since at the time I was already trying to backport an RK3588 kernel to , I just didn’t have the time to deal with another SoC and its quirks.

“Official” Debian

I eventually flashed the official Debian desktop image onto a 32GB SD card, and even though the system booted to a US English locale, I still had to do a few changes:

  • Remove the huaweicom repository from apt sources, because, well… I’d rather update from other places, or use geo-distributed mirrors.
  • Change the default terminal back to xfce-terminal, because (as usual in Chinese distributions) the default terminal is picked due to its ability to display Hanzi.
  • Remove a bunch of similarly-handpicked utilities, and install firefox-esr as a browser since it was lighter than Chromium.
  • Set up avahi-daemon and nss-mdns to be able to ssh into it using hostname.local and discover my other machines on the network.

I was also pleasantly surprised by orangepi-config, which is pretty feature-packed:

A quick overview of the options available

Power Consumption

Running Debian, I measured the bare board at the USB-C port, and saw it taking in a maximum of 2.2W while booting without anything connected, and idling at 0.8W in the same situation.

Plugging in a keyboard and mouse bumped these by almost 1W, and adding Ethernet another 0.3W.

With a monitor, keyboard and mouse plugged in, it was taking in a little above 2W idle, which is in line with expectations for a board with this kind of feature set.

Use Cases

With my original idea of flashing on it and test alongside the out the window, I plugged the Zero 3 into an LCD panel I have on my electronics bench and used it to look up documentation and well as a thin client to connect to my desktops.

And it worked–pretty well, really. With 4GB of RAM and a quad-core CPU, it was snappy enough to open PDFs and browse the web (as long as you don’t expect to watch a lot of video–anything over 720p was a bit sluggish):

A lot of CPU use and a steady pace of dropped frames

I used it without the expansion board, since the keyboard I was using has a built-in USB hub (and didn’t need audio), and it was almost invisible thanks to its small size.

So as a thin client, yes, it does work perfectly–I had zero issues with performance over VNC or RDP on the 1080p display I was using. And I did eventually try out as well, although clearly the Linux image I was using was not optimized for making the best out of the Mali G31 GPU:

The actual frame rate on the client was around 30fps and not what I would call playable, but it did work...

Conclusion

The Orange Pi Zero 3 is a strange SBC. Like many, it is let down by its software support, but the only real flaw I can point to hardware-wise (within comparable boards) is the lack of an EMMC.

I would have loved to have a good, easy way to run on it (where the GPU would shine), but as a Linux board I see it as being more useful for thin clients and running / alongside a 3D printer than, say, digital signage (since the video decoding is lacking), but it’s a very capable one.

It is a bit of a shame that it doesn’t ship with EMMC storage. But overall it is a capable board that can be used for a variety of purposes.

My plans for it are to (eventually) build it into a monitor (the panel on my electronics desk is just bare, literally hanging by the driver board, and I have been slowly designing a suitable enclosure). That way I can use it as a thin client, and, eventually, plug in my oscilloscope via USB.

But given its small size (it’s almost exactly the size of the now useless LCD on my ), I’ve also considered using it to run (although with 4GB of RAM it could probably handle two or three printers), and I suspect a lot of people will find the lower-specced boards pretty handy for that.

Another use (given its Ethernet port and low consumption) is as a home router “sidekick”–you can confidently power it off a USB port on your router and use it to run Pi-hole for ad blocking or OpenWRT for a personal VPN–which would be a nice and compact way to add those features to a home network.

This page is referenced in: