I’m not the person to have a lot of desires around Christmas time, as most of the time, Black Friday and Cyber Monday sales are only exercises in leading the less-scrupulous to part with their money through “false markdowns”. However, I ended up on the receiving end of a newsletter from JW Computers where the Asus Tinker Board was offered for a decent discount.
The benchmark in the low-cost single-board computer market is undoubtedly the Raspberry Pi. The unit has been popular beyond belief, and over time, new iterations have kept the heat on their competitors by offering more performance and features for the same price.
That being said, it has absolutely no shortage of imitators and competitors, many seeking to offer more features, and some at even lower prices. However, many of them fall short when it comes to availability, stability, software updates, hardware support and community support. As a result, using these boards can end in frustration as some things that Raspberry Pis can easily do turns into a bit of a hackathon involving the need to build-your-own and chase down dependencies. The options you get with some of these alternatives are also limited, and some also trade raw CPU performance for graphics performance.
The big difference with the Asus Tinker Board is that it comes from a respected manufacturer of PC hardware. I’ve had mostly good experiences with their products offering good value for money. The other difference is that the Asus Tinker Board has been designed to be footprint-compatible with the Raspberry Pi board, but instead, is based around a Rockchip RK3288 SoC which is a powerhouse, paired with 2Gb of RAM. This SoC powers a number of tablets, TV-boxes and Chromebooks, with the SoC datasheet claiming Quad Core 1.8Ghz ARM Cortex-A17 cores, dual-channel DDR3 RAM support, up to 4K HDMI 2.0 display, accelerated VP9/H.264/H.265 4K decoding, 1080p VC-1, MPEG-1/2/4, VP8 decoders, 1080p VP8/H.264 encoder, Mali-T764 GPU, Ethernet MAC, USB 2.0, 13M ISP with MIPI CSI-2 interface. This potentially makes it quite attractive as a step-up from the Raspberry Pi, with Asus claiming benefits such as faster USB, Wi-Fi, CPU, GPU and SD performance with improved audio quality.
The downside of this is that the board is not as cheap as the Raspberry Pi. In Australia, it typically sells for AU$99 and above which is about double of that of the Raspberry Pi 3 (AU$54). However, thanks to the Cyber Monday sale, I managed to pick one up for AU$78, easing the cost somewhat. However, it does feel as if the board hasn’t been quite as popular as I expected for its specifications since its introduction in late April as it seems the shop hasn’t sold many.
The Tinker Board comes packed in a sturdy fold-open cardboard box with a decidedly blue-and-white colour scheme. The logo is of a “happy” chip, with pictorial representations of some of the features on the rear – “Clear Board Recognition” is a bit strange though, although I suppose that was their way of expressing that the added computing power may make it more useful for computer vision applications.
The sides of the box are also quite vague as to what to expect, except for the specs label which looks akin to those found on motherboards. It lists the model as TINKER BOARD/2GB.
Inside is a cardboard tray which holds the static shielding bag that contains the board.
The board itself is black, featuring a teal-green silkscreen giving it a futuristic look. All connectors adopt the Raspberry Pi Model B+ (and later) layout for compatibility, with LED and Wi-Fi antenna placement emulating that of the Raspberry Pi 3 Model B. The GPIO header has been helpfully colour coded for ease of use and is “hat compatible” for the most part. CSI and DSI ports are also provided in their familiar locations. The unit lacks CVBS (composite) video output, instead opting to provide a microphone input on the TRRS jack. The connectors mostly come from Foxconn and UDE, and feel of high quality. The Wi-Fi is provided on a connector with a short jumper lead from the module to the antenna on board – the use of a module in this manner may ease global certification requirements, and allows for upgrades to the antenna.
The board actually packs a lot of components for the footprint. A closer look shows the major components being:
- Rockchip RK3288-C Main SoC (Quad Core 1.8Ghz ARM Cortex-A17)
- Rockchip RK808-B Power Management IC
- Azurewave AW-NB177NF-V03 1×1 2.4Ghz 802.11n + BT4.0 BLE SDIO Module
- Genesys Logic GL852G 4-port USB 2.0 hub IC
- Realtek RTL8211E Gigabit Ethernet PHY
- Realtek ALC4040 USB Audio Controller (24-bit/192khz Play, 24-bit/96khz Rec)
- A solid 220uF/6.3v electrolytic capacitor near the USB ports
- An Fcom 24Mhz oscillator.
The underside has a smattering of MLCC bypass capacitors, needed for good electrical stability. There is a push-push microSD slot, two Samsung K4E8E324EBEGCF 1GiB 1866Mhz DDR3 RAM packages, and an ST 24C08WP 8Kbit EEPROM. There seems to be another crystal oscillator near the DRAM as well. The Tinker Board claims to be Revision 1.2, PCB Made in Taiwan but the unit Made in China.
A look from the edge shows the PCB seems to be a “paper type” board. I suppose that’s where the cost may have been cut slightly. This side houses the wireless antenna at the extreme edge of the board, three indicator LEDs and the microSD socket undermeath.
Just like the Raspberry Pi, microUSB-B female socket for power, HDMI for video out and an TRRS audio jack.
This side has an Ethernet connector with integrated link lights and four USB ports.
Top side is reserved for GPIO pins.
A fold-out leaflet acts as a reference guide for the board. Unlike the Raspberry Pi, this one comes with a heatsink that needs to be stuck to the SoC before use – some “assembly” required.
The manual does summarize the specifications as well, as well as warning you not to overclock the board. I guess that means we can’t overclock the board then :(.
Assembling the heatsink involves peeling off the protective blue film, lining up the heatsink, and pressing it on moderately hard.
A completed Tinker Board. Don’t operate without a heatsink – you’ll see why later.
The heatsink is taller than the GPIO pins, but not quite as tall as the USB connectors.
As a result, it has no problem fitting into most Pi-B+ and later enclosures. However, do note that the audio jack is a little smaller as it doesn’t have the large shroud of plastic around it.
Setting Up – A False Start
To start tinkering with the Tinker Board, the most obvious place to start is the Asus website. I started there and downloaded the version of TinkerOS from the site, which is a Debian-based distribution. Unzip the image file, and write it to a card as you would with the Raspberry Pi and off you go.
Unfortunately, it seems the Asus website is dreadfully out of date. As a result, I started out testing an out of date TinkerOS version 1.8!
On the plus side, once imaged to a card and booted, the image automatically resizes the partition to fill the card and boots straight into the graphical environment under user linaro with a default password of linaro. This worked just fine the first time with my 2A USB charger that I use with my phone, which was nice. It may be possible to do some set-up without the use of a screen and keyboard/mouse via SSH through Ethernet but I didn’t try it. In TinkerOS version 1.8, all the configuration is “left to you to do” without any tools to help.
The latest version turns out to be TinkerOS version 2.0.3 at the time of writing. Other OSes available include Android, Armbian, DietPi, Volumio, Yocto, FlintOS, Lubuntu, LibreELEC and Lakka – many more than what is alluded to on the Asus website, but not quite the variety available for the Raspberry Pi (unofficially).
Setting Up – Unexpected Hurdles
Hurdle #0: No Display?
I wiped my card to start fresh with TinkerOS version 2.0.3. Unfortunately, when connected to my monitor, it would not show a display once the desktop environment had initialized. I was sure the unit was booted just fine, the display just would not come up.
I had to take the board downstairs with a powerbank to my TV to set-up. As it turns out, it booted and output in the “best” mode available, but the timings might be a little off. With the graphical environment, it’s easy to set up the Wi-Fi and get connected, making remote administration easier.
Under the new version, there is now a tool to help you do some basic configuration tasks just like raspi-config.
Hurdle #1: VNC server does not work
On the Interfaces tab, you can enable a VNC server, but it doesn’t seem to do anything. I couldn’t actually VNC into the board after enabling it, and port 5900 remained closed. I suppose that’s fine, as I can set that up myself using x11vnc.
Hurdle #2: x11vnc stack smashing crashes
I updated and upgraded all the packages on the Tinker Board, then installed x11vnc in much the same way as I do with a Raspberry Pi. However, the server decides to close after some interactions, normally ones involving dialogue boxes. Restarting the server in an SSH session shows that it closed due to stack smashing detected. As a result, a workaround needed to be added to the x11vnc command line – the option -noxrecord.
Hurdle #3: Resolution when running headless
Unlike the Raspberry Pi, there is no /boot/config.txt where a fixed size framebuffer can be defined ahead of time. As a result, when working with no HDMI connected, the board reverts to 800×600, and clicking the Set Resolution button or opening the Monitor settings panel is fruitless as it will not open.
There were a lot of false-starts with the issue, as a number of forum posts claimed that editing various X11 conf files can fix the resolution. As I found, this was not the case for me, and none of the proposed edits worked. I didn’t want to install a dummy video device either, as I might have to use the HDMI from time to time.
The solution was to invoke xrandr –fb 1920×1080 or whatever resolution you wanted once the desktop had loaded properly. If you do it in a .desktop file, you get strange issues such as taskbars in the wrong place or windows that won’t maximise – so I added it to my x11vnc start-up script with a 5-second delay (sleep 5) to ensure the desktop had loaded properly first.
Hurdle #4: Graphic acceleration not working in Chrome
After updating all the packages, I found that graphic acceleration stopped working in Chrome resulting in unwatchable YouTube. The fix is to relink the necessary modules as stated here.
Hurdle #5: Some basic commands don’t work
I then found that issuing commands such as iw or ifconfig just didn’t work, resulting in an error which seems that the necessary package was not installed. Issuing sudo apt-get install net-tools shows the package is installed and up to date, so what’s the problem?
As it turns out, the PATH environment variable does not include /sbin or /usr/sbin, and thus some of the executables are not available just by typing them on the command line. As a result, you should add them to the PATH variable.
Up and Running – Still a Little Rough
After all of that, I was up and running and spent some time with it. On browsing webpages in the included Chromium under GPU acceleration, it was not too bad. It did show some slowness, and an occasional stutter with YouTube, but nothing too major. It did, however, take almost half the CPU to play a 1080p YouTube video full-screen with the h264ify plugin installed by default. Things do get quite a bit worse when any overlay is drawn over the video – this causes it to slow and stutter.
Using the in-built Media Player application with some .mp4 files, I successfully watched some H.264 and H.265 encoded video with good results and very low CPU load. Unfortunately, it seems that acceleration only works with this player (a similar situation to many other ARM boards), and playing the same files under VLC proved to be a little difficult with high CPU usage for H.264 and inability to decode real-time for H.265. The included Media Player is very basic, and because of the way its overlay rendering works, the accelerated video rendering is “always on top” of any other window.
The graphics seemed a little slow as well – window dragging resulted in noticeable tearing, and even the boot debug text showed some strange “sparkling” effects as if it wasn’t being updated synchronously.
I also had problems browsing SMB shares, although I’m not sure if that’s a general problem with Linux and Windows-shares (i.e. problems with SMBv2 compatibility) or if it was specific to the distribution of Linux.
Despite this, the board did feel noticeably faster at booting and doing a number of general tasks. The gigabit Ethernet connection was a noticeable improvement, as was the Wi-Fi even if it was still 2.4Ghz single band. The Wi-Fi signal strength reported as being weaker, however, the connection did seem more stable. Audio output was also quite improved, and quite useable with a headset plugged in but not quite the same level as better soundcards (~100dB SNR claimed).
I was impressed that plugging in USB devices “hot-plug” did not cause any unexpected reboots or crashes, although I didn’t plug in anything hefty. The design does not appear to incorporate any polyfuses – hence the suggestion to use an LPS-marked power supply to ensure safety. I didn’t find any power issues with my 2.0A power supply with a decent USB cable even with Ethernet, Wi-Fi, USB-keyboard/mouse receiver, USB webcam and USB memory key installed. For the most part, the board remained stable and did not crash unexpectedly, and the quality USB connector on the board really “clicks” well with quality cables.
While I didn’t try any more advanced tinkering – say trying to get it to work with the “pre-hat” add-ons or a camera, it does seem that others have had some issues with slow performance to difficulties getting things to work at all. Given that many of the accessories are designed for Raspberry Pi in mind, support for “alternative” platforms is not likely to be high up in the list of priorities especially if they are not popular. It’s quite regrettable, as a number of people seemed to express (on the forums) that they were disappointed at the performance under computer-vision/video-capture situations from the CSI. This may improve in the future or another distribution/application may help (e.g. yocto). They do, however, include some support files to help users get started with the GPIO pins.
Unfortunately, towards the end of playing around with it, I wanted to find more information from the Tinker Board forums, only to find that tinkerboarding.co.uk had gone down. That’s definitely not nice …
How Fast is the SD? How Thirsty/Hot is the Board?
I decided not to focus on regular benchmarks, since the Raspberry Pi and the Tinker Board are different in terms of their ARM architecture, and I wasn’t going to build the benchmarks from scratch on both platforms to make comparisons. Instead, I decided to focus on checking a few things to do with the Tinker Board.
The first was to do with microSD card access. I used my fastest spare card – a Samsung Pro 32Gb card with ~70MB/s of read speed capability.
Unfortunately, reading out the card only provided 25.2MB/s. This is actually quite similar to what you will get on a Raspberry Pi (22.5MB/s normally). So much for their claims of increased access speeds.
However, there is a grain of truth – in dmesg it seems that the slot was initialized with 148.5Mhz clock, which in SDR mode would give up to 74.25MB/s of actual throughput. I don’t think the Raspberry Pi can clock its SD bus this high without creating issues – not least because it doesn’t run 1.8V signalling. However, I’m yet to see the full potential of the card and I’m not sure why.
The next thing I wanted to see was how the power consumption of the board was, and what the temperature was like. Using a Mi Power Bank as the power source, and my modified Charger Doctor shunt and Keysight DMM as the logging device, a quick run showed the following:
On boot-up, the consumption peaked at about 1.1A. When idling with both Ethernet and Wi-Fi connected, it consumed about 365mA with occasional rises when background services did their processing. I then initialized four screen instances, each running md5sum /dev/zero, basically hashing an infinite stream of zeroes. This resulted in a peak current of about 1.55A but then it fell back which was puzzling.
It seems that the Tinker Board actively thermally throttles itself and avoids crashing for that reason. As a result, counter-intuitively, it could consume a lot of current when colder, but when hot and throttling back, the power consumption would fall.
To test this hypothesis, I decided to blow on the heatsink with a blower bulb and this restored the current to a high level. Once stopped, the current fell back.
Once shut down, the LEDs go out and the quiescent consumption is about 50mA (although the accuracy of this reading is probably limited due to it being at the low-low-end of the scale).
To further get a glimpse into the throttling, I decided to do a second experiment. This involved a 60mm USB powered fan blowing over the board initially as the same test is run. The fan is then removed and the board covered with its case.
While the fan is blowing hard at the board, surprisingly, the chip maintains 1.8Ghz with loading on all cores as opposed to the 1.6Ghz it claims in the information sheet. Without the ventilation, what you actually get is quite dependent on the temperature. Initially, when the fan is taken away, the CPU current increases within 1 minute and the board peaks out at about 1.6A as it seems the heat may have increased the CPU leakage significantly (and put it at risk of thermal runaway). Then dramatic throttling takes place.
This is a time-accelerated animation – initially, the temperature begins at 60 degrees C, and the board runs solid at 1.8Ghz. Once the temperature increases into the 70 degrees C to 80 degrees C mark, throttling seems to be active in keeping the chip below 80 degress C as much as possible.
As a result, the heatsink on the board does get hot, but the board does not crash. As a result, getting a good impression of the actual performance of the board is difficult, as it will depend on the thermal conditions under which usage takes place.
While a weekend is not enough to know everything about the Asus Tinker Board, it was enough to get a feel of how it performs and what the ecosystem is like. The board itself boasts quite interesting specifications on paper, making it quite attractive to prospective buyers. Hands-on, the board looks visually appealing, is well built with decent connectors and comes bundled with a heatsink. While it does have higher power requirements and users are advised to invest in good quality cables and power supplies, this did not prove to be a difficulty and stability was good (in fact, probably better than my Pi 3 sample). The board has good Gigabit Ethernet connectivity, audio output and Wi-Fi sensitivity. Video acceleration also worked to some degree with its limited Media Player and Chromium browser.
Unfortunately, it still seems that the provided TinkerOS software lacks in ease of use and maturity. Some issues impacting ease of use remained, and made setting things up more difficult and demanding than with the equivalent Raspberry Pi. While this can be developed-upon over time, this is not necessarily guaranteed. Support seems to be mainly through a “third party” forum and wiki at tinkerboarding.co.uk (which is down at the moment). While they do also link to a github and hackster.io space, all of these support areas seem very sparse at this time. Without a large number of willing experts, it’s unlikely solutions to some problems will be easily solved. Some of the issues with acceleration may indeed be fixed with other distributions, through using different software or operating under Android.
That being said, its performance is difficult to pin-down due to the thermal throttling it exhibits. Considering its power consumption, its ability to support higher-consumption downstream peripherals is limited as well. It also remains almost twice as expensive as the Raspberry Pi counterpart, making it difficult to recommend to a general “tinkerer” unless they really are either very experienced with Linux or willing to do some extra work to try and solve issues as they arise.
I haven’t had the time to check out the other distributions – however, I might do so in the future depending on what the board ends up doing. Hopefully things get better in the future … although in this space, nothing is guaranteed. After all, Intel cut back on offerings in this exact space five months ago.