Orange Pi Plus Setup, Benchmarks, and Initial Impressions

tl;dr: The Orange Pi Plus offers much better specs, and much better performance, than a similarly-priced Raspberry Pi. Unfortunately—and this is the case with most RPi competitors at this time—setup, hardware support, and the smaller repository of documentation and community knowledge narrow this board's appeal to enthusiasts willing to debug annoying setup and configuration issues on their own.

Orange Pi Plus - Front

Orange Pi Plus - Back

A few months ago, I bought an Orange Pi Plus from AliExpress. It's a single-board Linux computer very similar to the Raspberry Pi, with a few key differences:

  • Higher hardware specs at lower price points than the Raspberry Pi
  • An Allwinner H3 processor instead of a Broadcom ARM CPU
  • Features not found on any Raspberry Pi, like SATA, Gigabit Ethernet, IR, and even a built-in mic!

It looks amazing on paper, but my real-world experience with one has been disappointing. Between waiting for the very slow Orange Pi website and forums to load, to spending a few hours just trying to get one of the 'official' Linux distro images to boot correctly, to then debugging hardware issues (like USB keyboard detection, HDMI-to-DVI connections, etc.), there were obstacles every step of the way.

This very blog post was started a few months ago when I received the Pi, but I burned out trying to get everything working then, and I've only now finished the post so others might not spend so much time getting started. That's not high praise for the Orange Pi. It can work, and it does perform respectably, but the end-to-end experience of purchasing and setting up the board leaves a very bitter taste. Many of the issues I encountered with the Orange Pi have long been solved for the Raspberry Pi as a result of the Raspberry Pi Foundation and it's enormous community, and I'm not sure if the Orange Pi or similar boards will ever gain the critical mass of users to match the RPi experience.

Choosing a Linux distro for the Orange Pi

The Orange Pi website has a Downloads section that includes popular Linux distros, even including a version of Raspbian, but after trying to use both the Raspbian v0.8.0 and Debian Server v0.9 images for the Orange Pi Plus (both downloaded from Google Drive), and having no success (like not recognizing my Apple USB keyboard, allowing non-root SSH login, or detecting my Asus HDMI monitor), I searched around and found out about loboris' unofficial Orange Pi images. See forum topic Linux Distributions for Orange Pi H3 Boards.

So, after trying a few of the 'official' images and hitting nothing but failure, I finally settled on loboris' images, but using them involves a few extra setup steps to make it work with the Orange Pi Plus (detailed below).

Setting up the Orange Pi Plus with loboris' Debian Jessie image

  1. Download OrangePI_Jessie_Xfce.img.xz from loboris' Google Drive folder.
  2. Expand the .xz file with The Unarchiver.
  3. Copy the resulting .img file to the microSD card using dd technique (directions for Mac OS X):
    1. Figure out which disk is the microSD card: diskutil list
    2. Unmount the disk diskutil unmountDisk /dev/disk2
    3. Write the image file to the disk: sudo dd if=path/to/image.img of=/dev/rdisk2 bs=1m (or with pv so you can monitor progress: pv path/to/image.img | sudo dd of=/dev/rdisk2 bs=1m)
  4. Following these directions, I finished the image setup so it had the right kernel settings for the Orange Pi Plus:
    1. Once the card is written (step 3.3 above is complete), open the BOOT volume and do the following:
      1. From the scriptbin_kernel archive, select the appropriate script.bin.OPI-PLUS_ file for your monitor setup (I chose the script.bin.OPI-PLUS_1080p60_dvi file since I have an HDMI-to-DVI cable for my LG monitor), rename it to script.bin, and place it inside the BOOT volume.
      2. Rename the existing uImage to uImage.bak and then copy uImage_OPI-PLUS from the scriptbin_kernel archive, and copy it to the BOOT volume, renamed to uImage.
  5. Eject the card, put it in the Orange Pi, and boot it up. Cross your fingers!
  6. Once booted, log in using username orangepi and password orangepi—if your USB keyboard doesn't work (my Apple USB keyboard didn't), log in via SSH, e.g. ssh orangepi@[ip-address].
  7. Upon first login, resize the filesystem with sudo fs_resize.

It seemed every time I found a way to work through one problem, another one presented itself, so at this point, I've given up on trying to get an external keyboard to work with the Orange Pi, and am only using it via SSH. At least I can see it on my monitor now :)

There's no friendly setup utility like raspi-config, and very little documentation on other settings that can be changed, so you're on your own for customizations to busses, overclocking, changing boot settings, etc. Whereas almost any little tweak for a Raspberry Pi is documented in someone's blog post, a forum topic, or even in official documentation, there is very little (comparatively) for the Allwinner-based boards, which is one of the main reasons why these boards haven't wiped out the Raspberry Pi, despite their impressive hardware specs.

Benchmarking the Orange Pi

After running sudo apt-get update && sudo apt-get upgrade to get the latest updates, and changing the orangepi password using passwd, I decided to run a few quick benchmarks, to see how good the hardware was in comparison to the Raspberry Pi models I've tested exhaustively for my Raspberry Pi Dramble Drupal cluster project.

Networking

One of my main annoyances with the Raspberry Pi is it's abysmally slow network I/O capabilities; even if using a USB 3.0 Gigabit Ethernet adapter, the maximum throughput I could achieve was about 220 Mbps, which means using a Pi for things like NAS, load balancing, reverse proxying, etc. was far from ideal. On top of that, all networking was done (until the Pi 3) through the single USB 2.0 bus, so any bandwidth used by networking would be stolen from other I/O!

The Orange Pi fares much better, due to it's built-in support for Gigabit Ethernet:

  • 100 MB file download (via 100 Mbps Internet, onboard Gigabit Ethernet): 10.4 MB/s
  • 100 MB LAN file copy from Pi to Mac (onboard Gigabit Ethernet): 17.66 MB/s
  • 100 MB LAN file copy from Mac to Pi (onboard Gigabit Ethernet): 17.31 MB/s
  • iperf raw throughput (onboard Gigabit Ethernet): 545 Mbps

Compare these results to those from various Raspberry Pi configurations, and the Orange Pi is the winner by a large margin, at least for wired networking. One caveat: All the tests had relatively large margins of error—the iperf benchmark was run 10 times, and it ranged from 400 Mbps to 700 Mbps, meaning raw throughput is pretty decent... but not extremely consistent. As a comparison, using a USB 3.0 Gigabit adapter on my MacBook Air (connected to another Air/USB 3 adapter), I averaged 920 Mbps, and the tests ranged from 910 to 940 Mbps—much more consistent speeds.

Unfortunately for those wanting fast I/O and networking, chips like Broadcom's (used in the Raspberry Pi) and Allwinner's (used in the Orange Pi) were originally designed for smartphones, most of which don't worry too much about saturating 1 Gbps networks! They deal with and are optimized for much lower (and more spotty) bandwidth.

Storage / MicroSD / eMMC Flash

The Orange Pi includes a microSD card slot (like the Raspberry Pi), but also offers 8GB of onboard eMMC storage and an SATA port, so storage has the potential to be much faster on the Orange Pi than a Raspberry Pi!

I did some basic benchmarks, only testing on the internal eMMC and a SanDisk Extreme microSD card, to compare the Orange Pi's I/O performance against the Raspberry Pi (see my Raspberry Pi microSD Card Benchmarks). Here are the results for the microSD card (shows as /dev/mmcblk0):

  • hdparm buffered: 20.32 MB/s (18.51 MB/s on RPi)
  • dd write: 21.8 MB/s (18.3 MB/s on RPi)
  • iozone 4K random read: 8.30 MB/s (8.10 MB/s on RPi)
  • iozone 4K random write: 2.27 MB/s (2.30 MB/s on RPi)

For microSD cards, it's pretty much a wash. But that's to be expected. Where things get more interesting is when using the internal eMMC storage (shows as /dev/mmcblk1), which promises to be a bit faster:

  • hdparm buffered: 58.20 MB/s (3x faster than microSD)
  • dd write: 26.6 MB/s (similar to microSD)
  • iozone 4K random read: 15.26 MB/s (2x faster than microSD)
  • iozone 4K random write: 6.00 MB/s (3x faster than microSD)

Two caveats for eMMC usage:

  1. You have to format and mount the Orange Pi Plus's eMMC drive before you can use it.
  2. It's a bit more difficult than a typical drive to use for things like booting the Orange Pi, so for now, I would recommend just using the onboard storage for faster supplemental storage, as it's simple (and great!) for that purpose, and won't put you in a bind when you try reflashing the Orange Pi or changing boot configurations.

Drupal 8 (LEMP server)

Drupal is a fairly intense PHP-based CMS that hits CPU and I/O fairly hard when running completely uncached, and I like seeing how different servers handle a simple Drupal site under load. The Raspberry Pi's 4-core ARM CPU and the Allwinner H3 are both fairly slow in comparison to any modern desktop or laptop CPU, but they're quite a bit snappier than the older single-core CPU in older Raspberry Pis! Let's see how the Orange Pi stacks up when serving Drupal requests (using some of the same Drupal Benchmarks I used for the Pi Dramble):

  • Anonymous (cached) requests (Drupal 8.0.5, PHP 7): 110 req/s (100 req/s on Pi)
  • Authenticated (uncached) requests (Drupal 8.0.5, PHP 7): 19.7 req/s (8.4 req/s on Pi)
  • Cached requests (Nginx as reverse proxy): 15,908 req/s (2,220 req/s on Pi)

The Orange Pi's higher CPU frequency and overall system architecture (especially related to network and microSD I/O) give a very good boost to a heavy application like Drupal; so despite it's usage/setup warts, the Orange Pi has excellent performance characteristics, with consistent results that were 2-6x faster than the Pi 2 B even after 5-10 minutes of heavy load.

When I receive the Pi 3 B that I ordered last week, I'll be running these tests against it as well, to see how much of an improvement it provides based on just the CPU architecture improvements. Sadly, networking and general I/O is still the main bottleneck for the Pi 3 in many applications.

Some other observations

  • On the board, SW4 is a power switch, but it didn't seem to do anything in my use.
  • The official "Raspbian v0.8.0" image didn't recognize my USB keyboard, nor allow non-root SSH login (even after tons of debugging—my USB mouse did work, and root SSH password or key-based login worked fine).
  • The official "Debian Server v0.9" image also had some weird issues (like the non-root SSH login not working).
  • If you use an HDMI-to-DVI cable, make sure you use the right profile in the BOOT volume (as described using loboris' images above).
  • The forums are the only place where useful information can be found at this time. There are a few blog posts on the Orange Pi scattered around, but they're of varying quality and harder to find/digest than the official (and slow-loading) forums.

Recommendation

I likely spent ten or twelve hours getting the Orange Pi Plus to do all the things I wanted it to do (run some benchmarks, work with a couple external devices, etc.), and I had to give up trying to get my external USB keyboard working with it, so I was never able to evaluate its use as a lightweight desktop replacement.

The performance—especially for I/O and networking—is extremely appealing. For $40, this computer can be made into a very respectable NAS, load balancer, router, or reverse proxy. However, unless the setup process and ongoing support of the Orange Pi developers and community improves dramatically, I don't think the Orange Pi will be a viable alternative to the Raspberry Pi for most people.

Comments

I think this board suffers from the "Chinese" problem.

There is nothing wrong with the Chinese stuff, necessarily, but they suffer from "too much too much" syndrome.

They add features almost for the sake of adding features at a cost of quality and unfortunately, at the cost of reliability. The parts are cheaper so they can cram more on board, but, they don't necessarily consider the effect of, or test for this increased complexity and effect on the end experience.

I've seen this before on other Chinese made products. From Chinese-made cell phones/tablets, to the glut of "media boxes" I've seen, to even the Chinese quad drone tech.

I can't say I am surprised, but The benefit here is that stuff like this does advance the progress overall. We finally start seeing other manufacturers adding needed features and learning from stuff like this.

Thanks for documenting your experiences!

How did you get that from this review? If anything, described here are less hardware issues with this board than with the RPi (notably the one-USB2-bus-servers-all problem). The problems described here are all software related (including the USB keyboard issue, which anyone with an Apple USB keyboard (yours truly included) and a hankering for playing around with Linux distros can attest to). The device has also shed 50% of its price since this article was written, making it even more attractive, even with the mentioned software quirks mentioned.

I agree Orange Pi kind of boards will have too many features and making all of them work will be difficult. In any case when building an embedded system product we only use few features at run time. Hence we can shutdown 50% of the features during the boot-up and hope the minimal stuff needed for the product work. Think of the features of the board as an Indian restaurant lunch, you only eat what you need :)

I wish you had tested it's sata port with an ssd to see if it suffered any serious bottlenecks, perhaps compairing the same drives benchmarks on the Pi and a PC, would also have been nice to see sata file transfer rates over gigabit Ethernet.

For me one of the key advantages is that the layout is opensource and most of the components are sourceable. I could use the orange as a prototype board, cut out anything I don't need and draw up a new reduced board for production.

Well, to whoever stumbles upon this wonderful article and reads it (thanks Jeff - awesome work) here is a bit of my experience, might be useful, then again might be not.

After a few days tinkling with the board I've got it running Kodi over Openelec and it is the best bundle so far. (1) I had to modify the script.bin file to start over HDMI-DVI connection. (2) I had to modify/create austostart.sh file to set CPU governor to ondemand. (3) To fight the heat issue, I had to install a heatsink radiator over the CPU, RAM and NAND chips and add a cooler over the whole thing. Now it is quiet and cool. (4) Had to create and modify advancedsettings.xml to set the cache routine, to fight "buffering" and crashes.

All of the above is available on multiple forums on internet.

So far, so good. It works with very minor glitches which I am going to figure out later on as I use the box. It is much faster then the previous android media centers I had and a lot more versatile.