The Asus Tinker Board
Introduction
There have been a number of contenders to the low cost single board computer, the Raspberry Pi, and the latest to emerge is the Tinker Board from Asus, made available on March 24 2017. You can check out the product page at:
https://www.asus.com/uk/Single-Board-Computer/Tinker-Board/
There is also a Tinker Board community page at:
The Tinker Board was designed to be compatible with the Raspberry Pi meaning that a lot of the existing add-ons can be used, saving Asus a lot of time and money. However, the Tinker Board has a better spec than the latest Raspberry Pi (the Raspberry Pi 3) with a claim of being twice as fast, although at almost double the cost (around £50 for the Tinker Board), Asus most likely want to lure Raspberry Pi customers away in the hope they will port their projects to the new system.
The Tinker Board can be viewed below (right) along with a Raspberry Pi 3 (left) with it being very clear the similarities.
New: GPIO (18/06/2017)
You can email me at james.boshikoopa@gmail.com
To return to the Computers Exposed page please click here.
You may also be interested in The Raspberry Pi.
Specification
Let's now look at the Tinker Board in more detail while comparing it to the most recent Raspberry Pi, the Raspberry Pi 3 which will be abbreviated to RPI.
Features Rockchip RK3288 which contains ARM Cortex-A17 @ 1.8GHz (quad core, 32-bit) and Mali T764 MP4 GPU @ 600MHz vs the RPI which has an ARM Cortex-A53 @ 1.2GHz (quad core, 64-bit) and Broadcom VideoCore IV GPU @ 250MHz.
2GB dual channel LPDDR3 RAM (vs RPI 1GB LPDDR2).
Measures 85.6x56x21mm (very close to RPI) with a layout similar to the RPI, meaning it is able to use Raspberry Pi cases.
RPI compatible GPIO - 40 pin, compatible with GPIO API. Colour coded GPIO layout makes it very easy to see GND, power and signals. 28 GPIO shared with SPI/UART/12C. Designed to be compatible with Raspberry Pi 2 and later models.
Weighs 55g with heat sink vs RPI which is 42g without any heat sinks. Tinker Board gives off more heat than RPI which usually doesn't require any heat sinks but some people add them. Advisable to use Tinker Board with a heat sink, however, some Raspberry Pi add-ons may not fit.
Supports H.264/H.265 and 4K playback but currently only on downloaded videos whereas the RPI is limited to 1080p although it does support both H.264 and H.265 (H.265 has to be done in software).
Has 4 USB 2 ports just like the RPI, and a Gigabit ethernet port as contrasted to the 10/100 ethernet connection of the RPI. On the Tinker Board the ethernet is distinct from the USB system, whereas internally the RPI uses a USB to ethernet adapter, so the performance should be better on the Tinker Board.
3 LED's are located on the board in one corner next to the LCD connector which are not marked but the schematic indicates they are power, activity and recovery.
3.5mm audio jack for 192K/24-bit HD audio line-in/microphone (vs RPI 3 48K/16-bit).
MIPI DSI display connector for LCD (compatible with RPI 7" LCD) and MIPI CSI for a camera.
Wi-Fi 802.11 b/g/n and Bluetooth 4.0 + EDR (vs RPI V4.1 + LE).
HDMI only output which includes audio, no built-in Standard Definition video connector support (RPI has composite output).
Parts of the board are nicely labelled with icons.
Available operating systems are 'TinkerOS' Debian and Android 6.01, contrasted with a bigger selection for the Raspberry Pi which includes Raspbian, Ubuntu Mate, Windows 10 IOT, and RISC OS. Downloads for the Tinker Board are at:
https://www.asus.com/uk/support/Download/1/52/0/1/UUSx6FPuqP3uZrhv/8/
The page also has 2D/3D drawings, schematics and information on setting up the camera and LCD.
Requires 5V 2-2.5A power via micro USB; claimed the board uses between 700 to 1000mA. Asus recommends that a linear power supply is used but I found the official Raspberry Pi switching power supply works, which is rated at 5.1V @ 2.5A.
Boots from micro SD, minimum 8GB with a maximum size of 32GB. The SD card slot is located on the back side of the board under the LCD connector.
No built-in RTC (Real Time Clock), need to add an RTC module, same with RPI.
PWM and S/PDIF solderable connections between the LAN and USB connectors.
There is an FAQ available at:
Like with the Raspberry Pi, the Tinker Board comes as just the board itself, the customer is expected already to have or to buy a keyboard, mouse, power supply, SD card and TV/monitor. The Tinker Board is packaged with a heat sink and paper manual in a cardboard box and the only mentions the downloads page with no link, but does include a labelled diagram of the board and GPIO pinout.
Setting up and first impressions
Having had used a number of Raspberry Pi computers I was confident enough that I could set up the Tinker Board without too much trouble. The first step was to download the operating system from Asus' site at:
https://www.asus.com/uk/support/Download/1/52/0/1/UUSx6FPuqP3uZrhv/8/
I went for 'Tinker OS' Debian V1.8 and after it downloaded I extracted the file and then wrote it to an 8GB SanDisk micro SD card using Win32DiskImager (Windows) The write did not take too long and after checking the SD card using Create and format hard disk partitions to see that the partitions had indeed been written I put the SD card into the Tinker Board, which latches in nicely. Then it was a matter of attaching a keyboard and mouse to 2 of the USB ports, an HDMI lead from my TV, an ethernet cable from my Wi-Fi extender and finally the power to the micro USB connector. As with the Raspberry Pi there is no power or reset switch so the system will start up as soon as power is connected.
The computer booted after a brief amount of time of apparently doing nothing, taking in total about 30 seconds to reach the desktop. The system responds fast and most programs open quickly although Chromium took a lot longer to start. Speaking of Chromium, other apps that come as standard with the O/S are Scratch, IDLE (many versions), Squeak, and LXMusic.
As with any first time use of a freshly installed O/S it is a good idea to update it so after checking that the network connection was active I ran the following commands from the terminal:
sudo apt update
sudo apt upgrade
The updating took some while and during the process it asked for some settings such as keyboard layout. Once it had finished the updating I restarted the computer.
Take note that the default user name and password is linaro, which you will need when changing preferences.
One of the problems I've encountered so far is the system not booting at all; the power LED will come on and the access light will flash but nothing more happens. This appears to have been fixed by using a different power supply, which is the official Raspberry Pi power supply. Another issue I have had is with the Tinker Board only outputting video at 800x600 but at times (such as after switching my TV between my Windows desktop and the Tinker Board) it will output at full HD. As of now I do not know the reason for the low resolution and I had tried a different HDMI cable and the resolution setting in Debian offers no other settings when in 800x600 mode. I fear this is a fault with my TV as I have had a similar issue with a Raspberry Pi,
The Tinker Board has not been well executed by Asus what with a delayed release and then not even making the O/S immediately available to download. For the price I feel most people will opt for a Raspberry Pi unless they really need the extra power the Tinker Board offers and then at least most existing Raspberry Pi peripherals can be used. Time will tell how successful the Tinker Board will be but it will have to give something special to move people away from the Raspberry Pi which has a huge following with plenty of people to answer questions.
GPIO
The GPIO (General-Purpose Input/Output) is what lets you interface the Tinker Board to your own circuits which can contain switches, lights, and so on. It is the GPIO that sets apart single board computers from laptops and desktops although there are solutions for those platforms for interfacing. Mixed across the 40-pin colourful GPIO header are power supply connections (+3.3V, +5V and GND) and 28 GPIO connections. Like with the Raspberry Pi, no input to the GPIO may exceed 3.3V otherwise permanent damage may result; if using 5V logic ensure you level shift to 3.3V first before it enters the Tinker Board. You can, however, feed a Tinker Board GPIO configured as output to 5V logic safely although you may need some form of logic conversion to make sure the logic levels are interpreted correctly.
With a so-called Raspberry Pi compatible GPIO setup you would think that getting the GPIO to work on the Tinker Board would be quite easy and it is if you get the right instructions. The Tinker Board has a GPIO library based on the Raspberry Pi's version but, as you will see from our test script shortly, it is named different. But as with the Raspberry Pi', you can choose to either use the SoC GPIO numbering (GPIO.ASUS) or the GPIO header numbering (GPIO.BOARD). This page has a handy reference between the SoC GPIO and board numbering:
https://www.asus.com/uk/Single-Board-Computer/Tinker-Board/
The following is the commands you need to execute from the terminal after the O/S has been installed and updated to get the GPIO set up:
sudo apt-get install python-dev python3-dev
CD /home/linaro/TinkerBoard.gpio-0.1
sudo python setup.py install
We are now going to do a simple test which will flash an LED on and off so open up IDLE and enter:
import ASUS.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
LED_pin = 3
GPIO.setup(LED_pin, GPIO.OUT)
while True:
GPIO.output(LED_pin, GPIO.HIGH)
time.sleep(1)
GPIO.output(LED_pin, GPIO.LOW)
time.sleep(1)
Save the script somewhere sensible as gpio_flash_LED.py.
The LED cathode needs to be connected to one of the GPIO header GND pins, and via a 150R resistor the LED anode needs to be connected to the GPIO header pin 3. To run the script, from a terminal window CD to our script's location and run:
sudo python gpio_flash_LED.py
You should see the LED you attached flash until you press Ctrl+C.
So how does the script work? Firstly, it's very simple and far from polished, just enough to get us going. On the first line we import the GPIO module which is ASUS.GPIO rather than RPi.GPIO for the Raspberry Pi. We then follow that up by importing the time module need for the time.sleep() command.
As we've already talked about there are 2 main GPIO numbering schemes but we will be using the board numbering so we use GPIO.setmode(GPIO.BOARD). A variable, LED_pin, is used to reference the LED number so we can easily change the pin number should we need to.
Before we can turn our LED on or off we must set the GPIO to output which we do using GPIO.setup(LED_pin, GPIO.OUT). Then we enter a loop using while True which only exits if we press Ctrl+C. We change the LED state using GPIO.output(), specifying first the pin number and then either GPIO.HIGH to turn the LED on or GPIO.LOW to turn the LED off. The method time.sleep(1) pauses our program for 1 second so that the LED turns on for 1 second and turns off for 1 second.
All content of this and related pages is copyright (c) James S. 2017