Inovato Quadra Review, Part 4: Hardware, Storage & Networking Tests
The Inovato Quadra is a very inexpensive ($29) computer with four ARM cores, 2GB of RAM and both Wi-Fi and 1GB wired network connectivity. So far, I have been very impressed with the value that it provides.
In my previous three articles on the Quadra, I've detailed its specifications, installed Linux and third-party applications on it and discovered some of its limitations around heat dispensation when streaming videos. In this article, I will look at the Quadra's hardware, extend its storage capabilities and perform some basic storage and network tests on it.
Hardware Deep Dive
Inovato is very upfront about the fact that the Quadra is based on a T95 Mini TV box that usually runs Android. The folks behind Inovato, however, have figured out how to run Linux on the device. To better understand the device, I tried to find a diagram of its architecture, but all I was able to find from my Google searches was that T95 has a S905W central engine from Amlogic that integrates in its interior a quad-core CPU ARM Cortex-A53 and a Mali-450mp5 GPU.
I was able to locate a block diagram for the S905W, which jived with what I was seeing on the device.
Some of the specs that I found interesting included the fact that the GPU is a penta-core ARM Mali-450 GPU that runs at up to 750MHz+ (DVFS) with two geometry/vertex processors, and three pixel processors that support OpenGL ES 1.1/2.0 and OpenVG 1.1. It also has an Amlogic Video Engine (AVE-10) with dedicated hardware decoders and encoders, and a built-in HDMI 2.0a transmitter including both controller and PHY with 3D, CEC, HDR and HDCP 2.2.
To further investigate the device, I opened a terminal window on its dashboard and entered the following commands:
- lsmod (showed that it has an aarch64 architecture with a Cortex-A53 processor)
- lscpu (confirmed that it had a Cortex-A53 processor)
- lsblk and fdisk -l (showed the 16Gb EMMC disk)
- free -h (showed 2GB of RAM with 644MB being used)
- lshw, lspci and hwinfo (were not found)
- dmidcode (returned an error message)
- The /proc cpuinfo and meminfo directories were there and reported the expected information
I didn't uncover anything unexpected or unusual during my dive into the device's hardware or architecture.
Attaching Secondary Storage
The device has only 16GB of EMMC storage, which is fine for many applications, but some may require additional storage. Fortunately, the device does have two USB ports, one of which I was using for the dongle for my wireless keyboard and mouse. I wanted to see if the other (blue) USB port could be used to attach secondary storage, and if so, how performant it was.
Before attaching the USB device, I entered lsblk to get a baseline of the devices that it recognized.
I then placed a 240GB Kingston suv500ms240g mSATA SSD in an ORICO M.2 enclosure and connected it to the blue USB port on the device.
Dmesg showed that a new SCSI device was found.
Lsblk showed the device as SDA, and it looks like it was already partitioned from some previous testing that I did on it.
When I tried to mount the partition (SDA1), I received the following message: unknown filesystem type 'VMFS_volume_member.' I formatted the partition by entering mkfs -t ext4 /dev/sda1. I could then mount the device without any issues.
Performance Testing the USB Storage Device
To test the storage, I installed fio and entered the following command which ran a 30-minute random 4k read/write test:
fio --filename=/dev/sda1 --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=1800 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=15
Fio reported a read rate of 17.7 MB/s and a write rate of 17.6 MB/s.
The disk performance was also reported by the System Monitoring Center.
Edge DX showed that the CPU rate got as high as 77 percent while running the tests.
While the test was running, the temperature never got above 202 degrees for the CPU, or 172 for the GPU.
As the blue connector signifies a USB 3.0 SuperSpeed connector or port, it should be capable of 5Gbs, and I would expect to see a faster rate than 17.7 MB/s.
To see if the random test -- which uses the CPU to generate random numbers -- was the performance bottleneck, I replaced --rw=randrw with --rw=rw to run a sequential read and write test. The test ran for 20 minutes before the device overheated and powered itself off.
The Edge DX showed that the CPU rate was below 50 percent while the test was running.
Fio reported a read rate of 51 MB/s, and a write rate of 51 MB/s, until it overheated.
I was a little bit confused by these results as they were more than what I would expect from a USB 2.0 port, but less than what I'd expect for a USB 3.0. For example, in previous tests I've run on other devices, I've been able to get ~40MBps with a USB 2.0 device and 150MBps on USB 3.0 devices. I may revisit this topic at another time to investigate it further, but I wasn't that concerned about it as this device was not designed to act as a storage server, nor will I be using it as one.
To test the network performance of the device, I used iPerf3, which creates a network load between two systems and then reports the bandwidth, delay jitter and datagram loss of the network.
I then tested the network bandwidth between the Quadra system with a Fedora system on my network. On the Fedora system (10.0.0.221), I entered iperf3 -s to act as the iPerf3 server. On the Quadra, I entered iperf3 -c 10.0.0.221 -t 10 to act as the client. This ran an iPerf3 load test for 10 seconds (-t 10). The two systems used Cat6 cables and were connected via a 1Gbps router. The results test showed that the max bandwidth between the two systems was 113 Mbps.
The default window size of iPerf3 is 8KB. To verify whether or not the window size had an effect on network performance, I set the window size to 8K, 128K, 256K, 512K and 1024K and reran the test. The test with window sizes from 8K to 256K were virtually identical, whereas the test with 512K and 1024K reported: socket buffer size not set correctly.
Finally, I ran a 10-minute test while watching the temperature of the CPU and GPU. The test ran without any problems and the temperature never surpassed 165 degrees.
In this article, I looked at the hardware and architecture of the Inovato Quadra, attached and tested external storage to it and checked the storage and network performance of the device. It was difficult to find information about the device's hardware, but it looks similar to other ARM-based devices that I have seen. It immediately recognized the USB storage device, and I was able to put a filesystem with ease. I was able to get a 51 MB/s read/write speed from the storage device when testing it; however, the Quadra did overheat during my sequential storage testing. Using iPerf3, I was able to get about 113Mbps from the device.
The device's overheating issues may disqualify it from some use cases, but it's important to remember that this device was not designed to be used as a NAS device. Instead, it was designed and built (actually repurposed) to be used as a very low-cost, light-use desktop or hobbyist platform, or for other use cases that don't require sustained resource utilization. At just $29, it serves that purpose very well.