Review of Orange Pi Mini 2
No development board has caught the imagination of the world as much as the Raspberry Pi. Enthusiastic manufacturers have raced to fabricate alternates which attempt to address some of the apparent lacunae of the original Raspberry Pi boards and also create their own USP.
One such board is the Orange Pi, sold by Shenzhen Xunlong Software of China. The first-generation of the board featured an Allwinner A20 Dual-core CPU clocked at 960 MHz along-with 1 GB of RAM. The second generation of the boards (current) feature an Allwinner H3 Quad-Core CPU clocked at 1.6 GHz along-with 1 GB of RAM.
I have a Raspberry Pi Model B+ (RPi), bought at Rs. 2900/- in India and I absolutely love it. It allows me to run a Linux Server at really low-cost of profile, power and heat. The convenience is simply great. Officially, the RPi board was originally priced at USD 35 and I had to purchase it in India at USD 44 (at Rs. 65/$). The Raspberry Pi Foundation dropped the price of the RPi board soon afterwards to USD 25 and it is currently available for purchase in India at USD 36.
When I wanted a second board, I was truly spoilt for choices with so many variants from so many manufacturers. I opted for Orange Pi.
Selection of the board did not come easy. I created a table detailing what I liked and disliked about the RPi-B+ to help me determine what would be suitable for me.
|1.||Raspbian OS is very stable and supports a large range of peripherals such as Wi-Fi, Adapters, Bluetooth Adapters, Webcams etc.||RPi only peripherals such as Camera, LCD display etc. are expensive.|
|2.||Very low Power consumption and Low-heat emitting board. CPU barely touches 35 – 40 °C even after days of continuous usage.||Low computing-power CPU that is showing it’s age. It’s easy to drive the CPU usage to 100% with relatively low number of concurrent processes.|
|3.||Automatically adjusts display resolution to a wide-variety of Display devices.||X-Windows performance is sluggish due to low-power CPU. Not suitable as a Desktop Computer replacement.|
|4.||Works well as Media Center with 1080p H.264 Video decode support in it’s VideoCore graphics chip.||No support for the emerging H.265 codec which is very bandwidth efficient and will be used for 4K transmission.|
|5.||Integrated Ethernet and USB Ports are a complete package when compared to Arduino boards which barely feature a Serial Port.||Ethernet interface is based on USB-bus and performance suffers. It may not be smart idea to use the RPi as a high-speed Router / Firewall / VPN / Gateway / NAS etc.|
While I started out using the RPi as a Media Server (using XBMC and OpenElec), soon afterwards, I bought an Amlogic S812 based Android Media Player and relegated the RPi to running Deluge daemon and Tor relay. I also wanted to use the Single Board Computer (SBC) to build a Network Attached Storage (NAS) which would store and serve my music and movies collection over the home network. Essentially, I was looking for a massive boost to the RPi’s Ethernet performance.
The Raspberry Foundation’s latest offering Raspberry Pi 2 Model B, dramatically improves on computing performance by a factor of 6x using a 900 MHz Quad Core CPU and 1 GB RAM, but it’s Ethernet capabilities still depend on the USB Bus and Ethernet performance is bogged down if other devices on the USB devices are also transferring data. For a NAS server, this is a death sentence because the External HDDs will be connected to the RPi over the USB bus and File Read/Write ops will easily saturate the USB bus, leaving very little headroom for Ethernet ops.
Consequently, the Raspberry Pi 2 did not make the cut and my hunt was on for a board with dedicated Ethernet bus.
In the final short-list, three boards were in the fray:
I created a table to figure out which board to opt for. A common filtering criterion was that the board must not cost more than the RPi2-B (USD 35).
|1||Lemaker Banana Pi||
|2||Hardkernel Odroid C1+||
|3||Xunlong Orange Pi Mini 2||
Clearly, the appropriate device for me had to be the Orange Pi Mini 2 (OPi). It was priced like a RPi but appeared to be much more powerful. The four USB ports could prove very useful when connecting external HDDs. The lack of display and video acceleration support is not a deal-breaker for me, because my intended use for the board is a headless computer.
I placed an order for the board on AliExpress and received it about 4-weeks later. The board came in a cardboard retail-box that also included an USB to Mini Barrel Connector cable. I connected the cable to a DC 5V 2A Phone Adapter for power, connected a USB Keyboard & USB Wireless Mouse, Dell 21″ Full-HD LCD Monitor over HDMI and powered it up. To my nasty surprise, the device refused to power-up and the display remained blank.
It turns out that firmware on the device is programmed to read specific sectors of a Micro SD Card to begin the booting process. In the absence of a MSD Card, it does not even initiate. The specific builds of Lubuntu, Raspbian OSes that are provided by the manufacturer, do not initiate the display till the X server is initiated. Even then, the board firmware reports a single capable display resolution and the X server triggers only that (1280 x 720). It is important to note that your monitor must support this resolution.
I started out by writing the Raspbian OS image on a Kingston 32GB Class 10 MSD Card and the board started up without any further issue. After tinkering with Raspbian, I moved onto Lubuntu which looks way better in X.
Lubuntu needed some configuration to get it working just the way I like it. It is important to note that the default login & password are provided for root user. Post-setup, you may create an ordinary user for day-to-day operations.
- Partition Size : Turns out that even though the MSD Card was a 32GB device, Lubuntu was installed on a 4GB partition and soon it became full and even OS updates could not be installed. I had to use gparted on another Ubuntu Laptop to resize the partition and expand the file-system to occupy the full-space on the partition.
- OS Update : I connected the device to my router via Ethernet and performed an apt-get update followed by apt-get dist-upgrade to bring the OS up-to-date.
- Wi-Fi disabled : Turns out that though my Comfast Wi-Fi dongle was supported (detected by lsusb) and the appropriate module available, it was placed on a soft-block. I had to use rfkill unblock all to activate the network device. Following this, it showed up when I executed lshw -class network.
- The WLAN was listed in interfaces as wlan6 and I used ifconfig wlan6 up to bring it up and iwlist wlan6 scan to check if it was detecting my network. Although I could have used the command-line to further configure the device, I chose to use the network-manager applet that is bundled in Lubuntu to configure the Wi-Fi adapter to enroll with my NetGear N300 Router.
- The board does not feature a battery-backed real-time clock and we Lubuntu depends on ntp to sync time on every boot. However, the timezone was set-to China and I corrected it using dpkg-reconfigure tzdata.
- There are a very utilities such as htop, midnight commander, netcat etc. that I prefer to have installed and hence I installed them with apt-get install htop mc lsof netcat ntfs-3g.
- When compared to the RPi, the OPi is blizzard fast. On the OPi, I installed Mozilla Firefox and ran the Sun Spider 1.0.2 Benchmark and achieved an average score of 1,697.09 ms.
- On the RPi, the performance was considerably slower. The native Webkit browser of Raspbian was able to achieve a score of 15,503.95 ms and Midori Browser was only able to achieve a score of 23,171.3 ms. The OPi was 10x faster than the RPi.
- The Allwinner H3 CPU features an on-board 100 Mbps Ethernet controller with dedicated bus. In my Outbound data tests, The OPi returned consistent max. throughput of 11.8 MB/sec (approx. 118 Mbps) using netcat tool. The throughput was unaffected even when I loaded the USB bus simultaneously by attempting to copy a 3 GB file between two Pen-drives
- The RPi was able to achieve 3.8 MB/sec transfer speed which dropped to just 2.3 MB/sec when I loaded the USB bus with a file transfer. The OPi was at-least 3x faster than the RPi in Ethernet performance.
- Display driver support is completely shot. Both Raspbian and Lubuntu are hard-configured to support only 1280×720 resolution and it is not possibly to change it without some intricate command line work. The manufacturer is hoping that at some point of time either they or contributors will rectify the situation.
- Although the CPU is capable of decoding 1080p H.265 Video streams, lack of driver support in Lubuntu / Raspbian means that it is not able to unlock this potential. I am told that Android OS for this Board does work as expected and Kodi (formerly known as XBMC) takes advantage of the on-board Mali graphics processor.
- The Allwinner H3 CPU gets hot. I applied some HY710 Thermal Paste on top of the CPU and measured the temperature using a Kitchen Thermometer. At one time, the reading shot up-to 55.2 °C. If the CPU die is allowed to get so hot and sustain, it will surely reduced the life of the CPU. It is highly recommended you either fit a passive heat-sink to the CPU or an active Fan or a combination of both to reduce the temperature to around 40 – 45 °C.
To Test & Setup
- Test if a bus-powered USB External HDD works with the board consistently.
- Update 6-Sep-2015: Yes. Please refer to Update 6-Sep-2015.
- Test if the board consistently works with Deluge and Tor daemons running.
- Test if the GPIO pins on the board work as advertised.
- Test if the EP-Pin based Composite Audio-Video out works as advertised.
The initial impressions of the board are very good however the CPU heating concerns me. For now, I have rigged up a temporary heat-sink using some coins and I am continuing with the testing in small instalments. I will keep this post updated.
- I have moved to Ubuntu 15.4 (Vivid) with Mate Desktop. This is a special build by Loboris and available on the OrangePi forums. Loboris has put in a terrific amount of effort to create a build that works very well on the OPi. In fact, he has even made the procedure of setting the default screen resolution as simple as copying and renaming a file. Now my OPi-M2 is running at 1920 x 1080 60p resolution.
- The build also comes with a wide-rage of modules for Wi-Fi and Bluetooth devices. My ultra-cheap devices were detected and activated without any rfkill business. While, an Ubuntu applet made the job of connecting to the Wi-Fi a breeze, I had to download and install blueman package to graphically search and connect to my Lenovo phone over Bluetooth.
- In a question to this post, I was asked if External Portable HDD can be connected to the OPi-M2. A Hitachi 500GB 2.5″ SATA HDD placed inside Terabyte SATA to USB 2.0 External Case worked perfectly. The drive was auto-detected and it’s NTFS partition was auto-mounted in Ubuntu 15.4. Another Western Digital 120GB 2.5″ SATA HDD placed inside a AdNet SATA to USB 2.0 External Case did not work at all; with the tell-tale signs of power-shortage (clock like clicking sounds as the HDD resets continuously due to insufficient power). It is important to note that this AdNet case is problematic and sometimes fails to work even on full-fledged laptops. It is my assumption that branded 2.5″ External Drives from Seagate, WD, Toshiba etc. should work without any issues.
- The post asked about maximum power the USB bus can supply. Since the External HDD requires between 500 – 700 mA, I can assume that at-least that much power is being supplied by the OPi-M2. Interestingly, If I used smplayer to play videos residing on the external HDD and ran lshw, the video rendering broke down and painted broken images. It seemed that the power being supplied by the 5V 2A adapter and the distribution by the voltage regulator on the OPi-M2, were stretched to their limits attempting to power the External HDD and also attempting to perform software-decode of a H.264 video. Not only the CPU was scaled up-to 1200 – 1500 MHz, the breakup of the image indicated that CPU / GPU was running short of power. Note that the HDD itself continued to work and was not force-ejected from the USB-bus.
I connected a Powered USB Hub to the OPi and a bunch of USB devices to the hub. The output of lshw clearly displays the device tree. The information is also available as a XML file here (serial number information redacted).
|memory||1003MiB System memory|
|usb@4||usb4||bus||SW USB2.0 ‘Open’ Host Controller (OHCI) Driver|
|usb@3||usb3||bus||SW USB2.0 ‘Enhanced’ Host Controller (EHCI) Driver|
|usb@2||usb2||bus||SW USB2.0 ‘Enhanced’ Host Controller (EHCI) Driver|
|usb@2:1||bus||USB 2.0 Hub|
|usb@2:1.1||bus||USB 2.0 Hub (Powered USB Hub)|
|usb@2:1.1.1||storage||USB Flash Drive (Sandisk 8GB Pen Drive)|
|usb@2:1.1.2||rename9||network||802.11n NIC (Comfast Wi-Fi Adapter)|
|usb@2:1.1.3||storage||USB Mass Storage Device (Bus Powered USB Portable Drive)|
|usb@2:1.1.4||storage||Ultra Fit (Sandisk 16GB Pen Drive)|
|usb@2:1.4||input||USB Receiver (Logitech K400 Wireless Keyboard)|
|usb@1||usb1||bus||SW USB2.0 ‘Enhanced’ Host Controller (EHCI) Driver|