Linaro’s 96Boards initiative was announced in February with the introduction of Hikey board, and while progress has been rather slow, there are now two boards available for sale: Lemaker Hikey and Qualcomm Dragonboard 410c. The main advantage of these board is that 96Boards is not only an hardware specification, but also a software specifications that mandate most code to be open source, with recent versions of Linux and U-boot, and in the case of Dragonboard 410c work is being done with Freedreno open source GPU drivers.
Now that I’ve got a board I’ll explain my experience with the purchasing process, take a few pictures, and show how to get started with Android, and install the latest version, before running a few benchmarks.
I normally don’t like purchasing from North American and European distributors, because of the potential documentation involved to comply with silly laws, high shipping fees, which are themselves compounded by import taxes at home and the courier’s handling fees, meaning a $75 board could easily ending costing $150… So I did not intend to buy the board at first, and just went to the Arrow’s Dragonboard 410c page to find out how much shipping would be…
The board ships from the United Stated, but to my surprise shipping was free via Fedex Economy.
Two days later, I received an email asked me to complete an FCC Purchaser’s Certification form, because while the board had passed the company’s internal EMC tests, it had not passed FCC certification yet, so I could only use it as an evaluation platform. EMC certifications is expected by the end of the month. So I filled it up and simply sent it back by email.
The following Wednesday my order was confirmed, and I received the board yesterday (November 20). So it took about a week between my order and shipping, so I’m pretty satisfied how it all went considering the board is sent for free.
I did not pay any import duties, but Fedex did request for 7% VAT, amounting to about $6.
I got the board in a box warning about static electricity.
The main difference with the previous photos is that they added shields on top of the power circuitry, as well as on Qualcomm Snapdragon 410c and memory chips.
I’ve also take a picture with a few “friends” including Raspberry Pi 2, Orange Pi 2 mini, and Roseapple Pi boards. with DragonBoard 410c being slightly smaller.
Linaro released the first Reference Software Platform for 96Boards a couple of weeks ago, and while Hikey supported both Android and Debian 8.2, ony the latter was released for DragonBoard 410c, so I was expecting the board to come pre-loaded with Debian Linux distribution, but instead it came with Android 5.1. That’s why I’m going to focus on Android in this first post, before checking out Linux in more details.
Since the board comes pre-loaded with an operating systems it should be easy to start with the platform, right? Sort of, but there are still some mini challenges to overcome.
First, the board takes 6.5 to 18V power supply as per 96Boards specifications, and the power barrel has a 1.7mm diameter instead of the more usual 2.1mm. That means all these 5V power supply I’ve accumulated can’t be used, so I had to find a 12V power supply, as well as some adapters to be able to connect it to the board. Luckily, I have a few 12V/1A power adapter from some TV boxes, and I have a 28 power jack adapters set to handle this case. If you don’t have any of those, you could also check out 96Boards power supply page with some recommendations.
Once I got this sorted out, I also connected a USB keyboard, and RF dongle for my air mouse, an HDMI cable to my TV, and an Ethernet… wait.. There’s no Ethernet port on 96Boards, so that’s it. As I connected the power, and LED quickly blink once, and then nothing for several (long) seconds, until I saw the Qualcomm boot animation, and later the lock screen.
These are the few apps pre-installed in the Android image.
And a look at “About phone” section shows MSM8916 for arm64 is running Android 5.1.1 on top of Linux 3.10.49. So I don’t think that image fully complies with 96Boards software specifications, and hopefully the Android release part of the Reference Software Platform will fix that.
I could connect to WiFi with issues, and transfer the screenshots via Bluetooth, since Android would not recognize my USB flash drive. Later on I found out micro SD cards work fine.
If you intend to modify the bootloader or kernel, you’ll most probably want to connect a USB to TLL board to the development platform. Unfortunately, while most development boards on the market are perfectly happy with a 3.3V or 5V power debug board, DragonBoard 410c board requires a 1.8V USB to TTL board which needs to inconveniently be connected to pins 1, 11 and 13 on the 40-pin low speed (LS) header. I could remember that Hardkernel USB-UART board supports both 1.8 and 3.3V, and I got one thanks to the several ODROID board I was given to play with.
I fired up minicom in my Ubuntu computer, made sure it was set to 115200 8N1, but whatever I did I could not get any debug message on the serial console, even after switching Tx and Rx a few times… I tried to download Snapdragon 410 GPIO Pin Assignment from the Wiki, but the file in question had a “redirect loop”… So I gave up on that part for now.
Eventually Linaro is going to update the firmware images and release the source regularly, so you’ll probably want to install the latest the latest build of the Android image, and I followed the instructions on 96Boards github wiki in an Ubuntu computer, which uses fastboot, and there’s also another method using a micro SD card.
You’ll need fastboot utility to flash the firmware over USB. This command and all other below are typed from your Linux computer (Ubuntu/Debian):
sudo apt-get install android-tools-fastboot
Now download and extract the latest bootloader
wget http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/dragonboard410c_bootloader_emmc_android*.zip -O dragonboard410c_bootloader_emmc_android_latest.zip
Now keep pressing S4 button (Volume -), while inserting the power jack into the board, and after a few releas the button. You should be in fastboot mode. Let’s check it:
sudo fastboot devices
All good. Now flash all files with a single command
The output will start with:
target reported max download size of 268435456 bytes
sending 'partition' (33 KB)...
OKAY [ 0.006s]
It should take a few seconds to complete. If you forget to add sudo, the following message will show forever:
< waiting for device >
Now you’ll want to download the latest Android firmware files in your computer:
Once this is done, unzip and flash the files to the board:
for f in *.tar.xz; do tar xJf $f; done
sudo fastboot flash boot boot.img
sudo fastboot flash system system.img
sudo fastboot flash userdata userdata.img
sudo fastboot flash recovery recovery.img
sudo fastboot flash persist persist.img
sudo fastboot flash cache cache.img
Now unplug the power, and the micro USB cable, and put the power jack back into the board. Android should boot, but in my case it did not, and my power meter was stuck at 1 to 1.5 Watts instead of 2.0 to 3.0 Watts during a normal boot.
So I fell back to the second update method, using a micro SD card. I’ve used a terminal windows in Ubuntu in the instructions below, but you could also use a Windows computer, and Win32DiskImager utility to perform the same tasks over a graphical user interface.
First download and extract the SD card image:
wget http://builds.96boards.org/releases/dragonboard410c/qualcomm/android/latest/dragonboard410c_sdcard_install_android-*.zip -O dragonboard410c_sdcard_android_latest.zip
Now insert your SD card into your computer, and check your device with lsblk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 461.8G 0 part /
└─sda3 8:3 0 3.5G 0 part [SWAP]
<strong>sdb 8:16 1 29.3G 0 disk</strong>
└─sdb1 8:17 1 29.3G 0 part /media/jaufranc/2730-8926
sr0 11:0 1 1024M 0 rom
In my case, the micro SD card is 32GB, so my device is sdb. You need to replace <sd_device> with your own device in the command to dump the data to the SD card.
sudo umount /dev/<sd_device>*
sudo apt-get install pv
sudo dd if=db410c_sd_install_android.img | pv | sudo dd of=/dev/<sd_device> bs=16M
Set the S6 switch to 0110 (boot from SD-card ,USB Host mode) as shown on the right.
Now power on the board, LED 1 will blink regularly, and after a while NOOBS should show up on your monitor or TV, asking you to choose the operating system to install.
Click install, and complete the process. Once it asks your to remove the SD card. Disconnect the power, remove the micro SD card, set S6 back to 0000, re-connect the power, and be very patient for the first boot. I propose you make some tea and coffee, drink it, go to relieve yourself, and come back later where Android will have hopefully booted.
My Linux kernel is now a little newer, but still dated in August. So they have not released any Android firmware for a few months. This should change for the December Software Reference Platform release.
I’ve also side-loaded a few benchmarks to find out more about the board performance. But first let’s see what CPU-Z reports.
Qualcomm Snapdragon 400/410 is properly recognized with a quad core Cortex A53 processor clocked between 200 and 1.21 GHz and an Adreno 306 GPU @ up to 400 MHz. The governor is set to interactive, so it may slightly negatively impact the benchmarks below. The system has indeed 1GB RAM, with 4.84GB internal storage available to the user out of the 8GB eMMC flash.
After installing Antutu 5.7.1, it asked me whether I wanted to update to the 64-bit version for better performance. It’s the first time it happened in all my testing despite reviewing and benchmarking other 64-bit ARM systems before. The board scores 18,211 points in Antutu, quite lower as I expected compared to Amlogic S905 (quad core @ 2.0 Ghz -> ~28,000 points) and Rockchip RK3368 (octa-core @ 1.2 GHz -> ~34,000 points) processors also Cortex A53 cores.
Several smartphones have launched with Snapdragon 410 processors, so in theory it should be easy to find benchmark for comparison, but most of these phones come with a lower resolution 1280×720 display, and run Android 4.4. I still found Elephone Trunk with Snaprdragon 410, Android 5.1, and a 1280×780 scoring 21,500 points, so the score in DragonBoard 410c appears more or less as expected.
Vellamo 3.x should not run with Firefox at all, and only partially with Webview, so ignore the Browser scores. The board got 1,114 points in the multicore benchmark, or 786 points in the metal benchmark, which compares to respectively 1,572 and 763 with Amlogic S905 benchmark results.
Qualcomm DragonBoard 410c achieved 2,304 points in 3DMark Ice Storm Extreme compared to around 4,200 to 4,300 points in both Rockchip RK3368 and Amlogic S905 devices at the same 1920×1080 resolution.
As you can see from this initial review, 96Boards project is still very much work in progress on the software side, and I had wished some more common decision were made with regards to the specs (e.g. power supply, serial voltage, Ethernet…), but at least the DragonBoard 410c platform should be interesting over time for people who want recent versions of U-boot, Linux and Android / Debian firmware, and source code, as well as an open source GPU drivers (Freedreno).
The next step should be to run Debian 8.2, but since the firmware is at the alpha stage with some issues like no HDMI audio, I may decide to take my time, and wait for the December release.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.