Documentation
Quick Start Guide
Getting Started
Video Introduction
How-tos in TinkerOS
Table of Contents
TinkerOS
Remote access
TightVNC
Follow the instructions onhttp://www.yuriybaldyasov.com/2017/05/15/asus-tinker-board-tightvnc-server-installation-steps/
X11vnc
sudo apt-get install x11vnc
The following file shoud be opened~/.config/lxsession/LXDE/autostartand this line should be added to the bottom:
@x11vnc -noxrecord -forever
-noxrecord fixes a problem it has with stack smashing on this board
-forever option keeps the server alive after a connect and disconnect from a client
It must be restarted to run without a terminal.
Vino
Similar process is found on https://wiki.archlinux.org/index.php/Vino
VPN Server
A guide for RPi can be used also for Tinker Board and can be found on: https://pimylifeup.com/raspberry-pi-vpn-server/
Netflix, Hulu, Amazon Prime
A guide is published on tinkerboarding forum.
Netflix is also available on android via Google Play.
Virtual Keyboard
If you do not have a USB keyboard it is possible to install virtual keyboard via ssh with command 'sudo apt-get install matchbox-keyboard'. To run the virtual keyboard run the 'matchbox-keyboard' in the terminal.
How to build Kernel/U-boot source code
U-boot
Get source code:
$ git clone https://github.com/TinkerBoard/debian_u-boot.git -b release
Building image:
$ cd debian_u-boot
$ make CROSS_COMPILE=arm-linux-gnueabihf- O=miniarm-rk3288 tinker-rk3288_defconfig all -j4
$ ./miniarm-rk3288/tools/mkimage -n rk3288 -T rksd -d miniarm-rk3288/spl/u-boot-spl-dtb.bin u-boot.img
$ cat miniarm-rk3288/u-boot.bin >> u-boot.img
Flash image:
Prepare one sdcard which has the full Debian image inside.
Then insert the sdcard into a linux based OS, and suppose the block device of the sdcard is /dev/sdx
$ sudo dd if=[path]/u-boot.img of=/dev/sdx seek=64
Kernel
Install the related packages:
$ sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabi device-tree-compiler gcc-aarch64-linux-gnu mtools parted libssl-dev fakeroot
Get source code:
$ git clone https://github.com/TinkerBoard/debian_kernel.git -b release
Building image:
$ cd debian_kernel
$ make miniarm-rk3288_defconfig ARCH=arm -j16
$ make zImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
$ make modules ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
(Note: As of 2018-01-05, if may be necessary to edit the Makefile to add -Wno-misleading-indentation to the CFLAGS_MODULE
$ make modules ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 CFLAGS_MODULE=-Wno-misleading-indentation
$ make rk3288-miniarm.dtb ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
$ make dtbs ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
Flash image:
Prepare one sdcard which has the full Debian image inside.
1. Install WIFI module to root file system: 1.1 Insert sd card to linux pc and then mount partition 2 (rootfs partition) suppose the block device of the sdcard is /dev/sdx Example:
$ sudo mkdir -p /media/users/sdx2
$ sudo mount /dev/sdx2 /media/users/sdx2
1.2 Open terminal to kernel folder and enter the following commands
$ sudo make ARCH=arm INSTALL_MOD_PATH=/media/users/sdx2 modules_install
$ sudo umount /media/users/sdx2
2. Replace the kernel image: 2.1 Insert sd card to linux pc and then mount partition 1 (boot partition) suppose the block device of the sdcard is /dev/sdx Example:
$ sudo mkdir -p /media/users/sdx1
$ sudo mount /dev/sdx1 /media/users/sdx1
2.2 Open terminal to kernel folder and copy zImage and rk3288-miniarm.dtb to partition 1
$ cp arch/arm/boot/zImage /media/users/sdx1
$ cp arch/arm/boot/dts/rk3288-miniarm.dtb /media/users/sdx1
$ sudo umount /media/users/sdx1
NOTE: The step 1.1 and 2.1 should be skipped since most of the linux distribution will mount the sdcard automatically.
PXE boot
Image version
Please use the image version before V1.9.1 (include), or after V2.0.5 (include).
NOTE : There is some problem from the image version V2.0.1 to V2.0.4, we have fixed it at V2.0.5.
Install tftp
1. Install following packages
sudo apt install xinetd tftpd
2. Create /etc/xinet.d/tftp and put this entry
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
}
3. Create a folder /tftpboot
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
4. Restart the xinetd service.
sudo service xinetd restart
Install nfs
1. Install following packages
sudo apt install nfs-kernel-server nfs-common
2. Create a folder/var/nfsshare
sudo mkdir /var/nfsshare
sudo chmod -R 777 /var/nfsshare
3. Create /etc/exports and put this entry
/var/nfsshare 10.42.0.0/24(rw,sync,no_subtree_check,no_root_squash)
4. Restart NFS server
/etc/init.d/nfs-kernel-server restart
PXE Boot
1.Set up a DHCP server as a PXE server. This server must provide functions of TFTP server and NFS server.
2.Prepare PXE config file in tftpboot directory. Create a directory "pxelinux.cfg" in tftpboot directory. The file name of PXE config is "default ". The patch of PXE config should be :
"/tftpboot/pxelinux.cfg/default " The content of PXE config is like "/boot/extlinux/extlinux.conf " in Tinker Board, but the path of rootfs should be modified. The following is an example. "10.42.0.1 " is IP of NFS server. "/nfs/rootfs/ " is path of NFS ROOT.
label kernel-4.4
kernel /zImage
fdt /rk3288-miniarm.dtb
append earlyprintk console=tty1 console=ttyS1,115200n8 root=/dev/nfs nfsroot=10.42.0.1:/nfs/rootfs rw ip=dhcp rootwait elevator=deadline
1.Put the following files into tftpboot directory for PXE boot. hw_intf.conf: You can get it from "/boot/hw_intf.conf " in Tinker Board. rk3288-miniarm.dtb: Device Tree config for Linux kernel. zImage: Linux kernel image with NFS functions(CONFIG_IP_PNP, CONFIG_IP_PNP_DHCP, CONFIG_IP_PNP_BOOTP, CONFIG_IP_PNP_RARP, and CONFIG_ROOT_NFS). The paths should be : "/tftpboot/hw_intf.conf ", "/tftpboot/rk3288-miniarm.dtb", "/tftpboot/zImage"
2.Copy the whole rootfs of Tinker Board into NFS directory in NFS server. According to the example above, the path of NFS ROOT in NFS server should be: "/nfs/rootfs" This path needs to be shared by NFS server. Modify the partition definitions in "/nfs/rootfs/etc/fstab". There should be only one partition.
proc /proc proc defaults 0 0
3.Remove the following files in Tinker Board. "/boot/rk3288-miniarm.dtb" "/boot/zImage" The bootloader will start PXE boot if these files are removed from Tinker Board.
HDMI resolution
How to change the HDMI resolutions
Method 1 : from UI intereface
Using the Monitor settings to change the resolution directly.
Method 2 : Terminal (Command line) - Xrandr
The following is the wiki of the xrandr https://wiki.archlinux.org/index.php/xrandr
# list all the available output resolution
$ xrandr
then you can use xrandr to set different resolution (must be present in the above list) on some output:
$ xrandr --output HDMI-1 --mode 1920x1080
Adding for unlisted resolution
$ cvt 1024 768 60
# 1024x768 59.92 Hz (CVT 0.79M3) hsync: 47.82 kHz; pclk: 63.50 MHz
Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
$ xrandr --newmode "1024x768" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
$ xrandr --addmode HDMI1 1024x768
$ xrandr --output HDMI1 --mode 1024x768
Method 3 : Editing /etc/X11/xorg.conf.d/20-modesetting.conf (Need to reboot)
Section "Device"
Identifier "Rockchip Graphics"
Driver "modesetting"
Option "AccelMethod" "glamor"
Option "DRI" "2"
EndSection
Section "Monitor"
Identifier "Monitor 0"
Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Monitor 0"
SubSection "Display"
Depth 24
Modes "1024x768_60.00"
EndSubSection
EndSection
Method 4 : Add a file to the folder of /boot/hdmi (Need to plug in-out)
Add a new file of hdmi_set_resolution.cfg, and write the resolution which you want in the file.
Then put it in this folder "/boot/hdmi" or the hdmi folder which is in your sdcard. (These 2 paths are the same)
There is a example in the attached file.
Controlling Backlight
https://tinker-board.asus.com/forum/thread-2285.html
How to setup wireless connection
How to connect to Wi-Fi hotspot
1. Boot up your Tinker Board to desktop.
2. Left-click the network icon in bottom right corner of your desktop.
3. Select Wi-Fi hotspot name which you want to connect.
4. Enter your password or other connection settings to login.
How to get Tinker Board's IP address
1. Open terminal in bottom left corner of your desktop.
2. Enter "sudo ifconfig" to display Tinker Board's IP address.
How to access Tinker Board remotely
Windows
1. Download putty.exe from https://www.putty.org/
2. Open putty.exe and enter Tinker Board's IP address.
3. The default login for Tinker Debian.
User: linaro
Password: linaro
Debian
1. Enter "ssh linaro@192.168.x.x" to connect to Tinker Board. (192.168.x.x is IP address).
ssh linaro@192.168.x.x
2. Login to Tinker Board.
How-tos in Android
Table of Contents
Android
How to root
In order to root Android you need to follow steps described at How to install SuperSu on Android via adb
An example of a full script can be found on https://tinker-board.asus.com/forum/thread-264.html?highlight=android
How to build Tinker source code
Android 6.0.1 kernel
Get source code:
$ git clone https://github.com/TinkerBoard/android-6.0.1_kernel.git -b release
Building image:
$ cd android_kernel
$ make rockchip_defconfig -j4
$ make rk3288-miniarm.img -j4
Flash image: Prepare one sdcard which has the full Android image inside. then insert the sdcard into a linux based OS, and suppose the block device of the sdcard is /dev/sdx
$ sudo dd if=./resource.img of=/dev/sdx seek=32768
$ sudo dd if=./kernel.img of=/dev/sdx seek=65536
How to build Android(AOSP) source code
Requirement
Install Google's repo command tool ref: https://source.android.com/setup/downloading
Make sure you have a bin/ directory in your home directory and that it is included in your path:
mkdir ~/bin
PATH=~/bin:$PATH
Download the Repo tool and ensure that it is executable:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Android 6.0.1 AOSP
Get source code:
$ repo init -u https://git@bitbucket.org/TinkerBoard_Android/manifest.git -b sbc/tinkerboard/asus/Android-6.0.1
$ repo sync -d
Find the build SOP document at the below path. [source code]/RKDocs/android_SOP_eng_6.0.1.docx
Android 7.1.2 AOSP
Get source code:
$ repo init -u https://git@bitbucket.org/TinkerBoard_Android/manifest.git -b sbc/tinkerboard/asus/Android-7.1.2
$ repo sync -d
Find the build SOP document at the below path. [source code]/RKDocs/android_SOP_eng_7.1.2.docx
How to change the boot logo
Static boot logo
Requirement
1. Please prepare the 24 bit bmp file and the length/width must be divisible by 4.
For example : 1000×400, 1920×1080 are OK, but 1921×1000 is not allowed
We recommended that you can use the Microsoft paint to save the picture as the 24 bit bmp.
Let's assume the picture name is logo.bmp
2. Use the linux tool "convert" to change the format
$ convert -compress rle -colors 256 logo.bmp logo_kernel.bmp
logo.bmp is the file which is came from step 1 and logo_kernel.bmp is the file which is after convert.
Android M:
3. Replace the logo.bmp and logo_kernel.bmp which is came from step 1 and step 2 to the kernel folder
Android N:
3. use the logo_kernel.bmp which is came from step 2 to replace the logo.bmp and logo_kernel.bmp at kernel folder
4. Rebuild kernel image
How to rebuild kernel: https://tinkerboarding.co.uk/wiki/index.php?title=Software#Android_6.0.1_kernel
NOTE: Please notice that the version of "convert" is also importance. The version of convert must be equal to the below
$ convert -version
Version: ImageMagick 6.6.9-7 2017-03-14 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP
If your OS is Ubuntu 12.04,just use apt to get the convert package
$ sudo apt-get install imagemagick
If you have no Ubuntu 12.04, you can use the Tinker Board with Tinker-OS V2.0.3
$ sudo apt-get install graphicsmagick-imagemagick-compat
Dynamic boot logo
You can reference the bootanimation.zip and replaced the png file inside. The Android framework will
play the picture from 0.png to the last png file one by one. And it will look like an animation.
After you finish the zip file, please put the bootanimation.zip to /system/media/bootanimation.zip
The zip file name must be bootanimation.zip. You can download the example from below link
https://bitbucket.org/TinkerBoard_Android/rk-device-rockchip-rk3288/raw/e57382fe021e651a01d3b3f6b3df21a6f5ed19d1/rk3288_vr/bootanimation.zip
Wallpaper
Please check the following 2 commits. One is for HDMI and the other is for DSI.
https://bitbucket.org/TinkerBoard_Android/rk-device-rockchip-rk3288/commits/a5a00b724063b3992a1e6ad711e69e0f4ecd63ce?at=sbc/tinkerboard/asus/Android-6.0.1
https://bitbucket.org/TinkerBoard_Android/rk-device-rockchip-rk3288/commits/0a382ad572b909d758553c43a6b6c929aacbadc6?at=sbc/tinkerboard/asus/Android-6.0.1
How to Rotate screen
Tinker Board can support rotate screen 0/90/180/270 degree. Please reference for the below 2 POSTs.
https://tinker-board.asus.com/forum/thread-574-post-2144.html#pid2144
https://tinker-board.asus.com/forum/thread-574-post-3426.html#pid3426
set the ro.sf.hwrotation in build.prop file
$ adb connect [ip address of tinkerboard]
$ adb root
$ adb connect [ip address of tinkerboard]
$ adb remount
$ adb pull /system/build.prop .
Then, edit the pulled build.prop file with a text editor. You want to focus on this particular property:
ro.sf.hwrotation
This properties has 4 options
# other possible values:
# 0 = Landscape, 90 = Portrait, 180 = reverse Landscape, 270 = Reverse Portrait
ro.sf.hwrotation=90
Please note that the 180 degree needs to use the image after 20180613.
After editing, push the build.prop back to the device
$ adb push build.prop /system/build.prop
Set the persist.demo.hdmirotation property
# for 0/180 degree
$ adb shell "setprop persist.demo.hdmirotation landscape"
# for 90/270 degree
$ adb shell "setprop persist.demo.hdmirotation portrait"
finally reboot the device.
How to connect DSI and CSI cable
- DSI, CSI cable can be use will no difference, those cable is the same.
- CSI connect to the middle of tinker board, please refer icon print on board as follows:
- DSI connect to the boundary of tinker board, please refer icon print on board as follows:
- DSI panel need extra 5V power. You can USB to supply, or thinker board can output 5V by GPIO PIN, red line is for positive(+),black line is for negative(-) , as follow.
- You need to notice the direction, when you install cable, the principle is: blue side is face outside of the tinker board.
DSI:
CSI:
How to trigger CSI
- Use Build-in Camera test tool for operation.
- Some operations need root permission to execute.
- Run "sudo su" in terminal command line before operation.
Camera Preview:
Key-in
camHalTest.bin 0
or
camHalTest.bin 1
0 for show preview in DSI
1 for show preview in HDMI
Camera preview will be showed on specific display equipment.
Capture
Each time executing Capture needs to run below cmd to setup environment.
sh /home/linaro/camera/copy_xml_file.sh
Then key-in capture cmd:
dumpsys
Five pictures will be taken and placed in /tmp/isptune with ppm filename extension.
Build-in file viewer is capable to open and view the image.
Note:
- All contents in /tmp/ are volatile and will disappear after reboot.
- Disk space for /tmp/ is only ~300MB and one ppm image size is ~22MB, so it can only save ~12 pictures. Make sure to move (mv) image files to external storage before next Capture operation of stress test.
Camera SOP/Camera Config
Table of Contents
SETTING UP THE CAMERA HARDWARE
Warning: Cameras are sensitive to static. Earth yourself prior to handling the PCB. A sink tap or similar should suffice if you don’t have an earthing strap.
The camera board attaches to the Tinker Board via a 15-way ribbon cable. There are only two connections to make: the ribbon cable needs to be attached to the camera PCB, and to the Tinker Board itself. You need to get the cable the right way round, or the camera will not work. On the camera PCB, the blue backing on the cable should face away from the PCB, and on the Tinker Board it should face towards the Ethernet connection (or where the Ethernet connector would be if you’re using a model A).
Although the connectors on the PCB and the Tinker Board are different, they work in a similar way. On the Tinker Board itself, pull up the tabs on each end of the connector. It should slide up easily, and be able to pivot around slightly. Fully insert the ribbon cable into the slot, ensuring it is set straight, then gently press down the tabs to clip it into place. The camera PCB connector also requires you to pull the tabs away from the board, gently insert the cable, then push the tabs back. The PCB connector can be a little more awkward than the one on the Tinker Board itself.
SETTING UP THE CAMERA SOFTWARE
Camera software is default built inside the release image. You don’t need to do extra setup.
To test whether the Camera is working, try the following Gstreamer command:
$ gst-launch-1.0 v4l2src ! video/x-raw,format=NV12,width=640,height=480 ! videoconvert ! autovideosink
The display should show a preview from the Camera, whilst displaying various informational messages.
TROUBLESHOOTING
If the Camera Module isn’t working correctly, please use below command to check whether the Camera Module be detected by Tinker Board.
$ ls /dev/video*
You will see /dev/video0 /dev/video1 /dev/video2.
If not, there are number of things to try:
- Is the ribbon cable attached to the Camera Serial Interface (CSI), not the Display Serial Interface (DSI)? The ribbon connector will fit into either port. The Camera port is located near the HDMI connector.
- Are the ribbon connectors all firmly seated, and are they the right way round? They must be straight in their sockets.
- Is the Camera Module connector, between the smaller black Camera Module itself and the PCB, firmly attached? Sometimes this connection can come loose during transit or when putting the Camera Module in a case. Using a fingernail, flip up the connector on the PCB, then reconnect it with gentle pressure. It engages with a very slight click. Don’t force it; if it doesn’t engage, it’s probably slightly misaligned.
- Is your power supply sufficient? The Camera Module adds about 200- 250mA to the power requirements of your Tinker Board.
USING THE CAMERA
The CSI Camera of Tinker Board support IMX219 and OV5647. Here describes the basic usage of Gstreamer and MJPEG-streamer.
Gstreamer
Preview
$ gst-launch-1.0 v4l2src ! videoconvert ! autovideosink
$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-
raw,format=NV12,width=640,height=480 ! videoconvert ! autovideosink
Capture
$ gst-launch-1.0 v4l2src num-buffers=10 ! video/x-
raw,format=NV12,width=640,height=480 ! jpegenc ! multifilesink
location=image_%02d.jpg
$ gst-launch-1.0 v4l2src num-buffers=10 ! video/x-
raw,format=NV12,width=640,height=480 ! jpegenc ! multifilesink
location=image.jpg
Recording
$ gst-launch-1.0 v4l2src num-buffers=512 ! video/x-
raw,format=NV12,width=640,height=480,framerate=30/1 ! queue ! mpph264enc ! queue ! h264parse ! mpegtsmux ! filesink location=/home/linaro/vga.ts
Show Picture
$ gst-launch-1.0 playbin uri=file:///home//linaro//image.jpg
$ gst-launch-1.0 filesrc location=image.jpg ! decodebin ! imagefreeze !
autovideosink
Play Video
$ gst-launch-1.0 playbin video-sink=rkximagesink uri=file:///home/linaro/vga.ts
$ gst-launch-1.0 uridecodebin uri=file:///home/linaro/vga.ts ! rkximagesink
MJPG-streamer
Install
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install subversion libjpeg62-turbo-dev imagemagick
$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/
$ cd code/mjpg-streamer
$ make
$ sudo make install
Start MJPG-streamer
$ cd ~/code/mjpg-streamer $ ./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so -w ./www"
You will see camera preview on your browser http://IP_ADDRESS:8080/?action=stream.
Note: IP_ADDRESS is 127.0.0.1 on Tinker Board browser or use wlan0 address (sudo ifconfig to check) on remote PC browser
Video playback support
Default player - RK player
1. Location:
/usr/lib/arm-linux-gnueabihf/qt5/examples/multimediawidgets/player/player
* You can double click "player" to open it or you also can copy "player" executed to your Desktop.
2. Please do change setting to DRM mode to have best performance. DRM Setting SOP:
-> Open the player and press "EGL" button on the right-down side.
-> Click "Open" button on the left-down side then choose and add video to playlist
-> Start Playing
3. Support formats and limitations
Browser - Chromium
1. V1.6 has pre-installed Chrome plug-in to enhance performance
2. Please confirm video is with H264 format if you are watching video on video-sharing website out of Youtube.
GPIO API
Table of Contents
Python
Python is a programming language that lets you work quickly and integrate systems more effectively.
1. Open a terminal and Install dependency package.
sudo apt-get update
sudo apt-get install python-dev python3-dev
2. Download Python GPIO library*
git clone http://github.com/TinkerBoard/gpio_lib_python.git
3. Navigate to folder
cd gpio_lib_python/
4. Install Python GPIO library for Tinker Board S
5. Reference codes
sudo python setup.py install
sudo python3 setup.py install
There're few sample codes under this folder /gpio_lib_python/test
*If get "git command not found", please install git first by apt with follow commands.
sudo apt-get update
sudo apt-get install git
C
C is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.
1. Open a terminal and download C GPIO library*
git clone http://github.com/TinkerBoard/gpio_lib_c.git
2. Navigate to folder
cd gpio_lib_c/
3. Install C GPIO library for Tinker Board S
sudo ./build
4. Check install success or not
gpio -v
gpio readall
5. Reference codes
There're few sample codes under this folder
/gpio_lib_c/examples
*If get "git command not found", please install git first by apt with follow commands.
sudo apt-get update
sudo apt-get install git
To make a simple script create a file with 'nano led.c' and input the following code.
Sample LED blink:
#include
#include
// #define LED 0 matches with ASUS_GPIO 164! This can be checked with command 'sudo gpio readall'.
#define LED 0
int main (void)
{
printf ("TB blink\n");
wiringPiSetup ();
pinMode (LED, OUTPUT);
for (;;)
{
printf ("led on\n");
digitalWrite (LED, HIGH);
delay (500);
printf ("led off\n");
digitalWrite (LED, LOW);
delay (500);
}
return 0;
}
To run the script run the command:
gcc -o led led.c -lwiringPi
To run the newly compiled led run the command 'sudo ./led'.
Scratch
1.Install
Step1. Install gpio_lib_python fromhttps://github.com/TinkerBoard/gpio_lib_python
Step2. Install NumPy. ex: pip install numpy
Step3. sh ./setup.sh
2.Uninstall
sh ./uninstall.sh
3.Run
Click the Desktop's shortcut.
4.Broadcast Command
Set Pin Mode
config[pin] (in|input) ex: config11in
Set Output
config[pin] inpulldown|inputpulldown) ex: config11inpulldown
config[pin] (out|output) ex:config11out
config[pin] (pwm|outpwm|outputpwm) ex: config11pwm
gpio[pin] (on|high|true) ex: gpio11on
pin[pin] (on|high|true) ex:pin11on
gpio[pin] (off|low|false) ex: gpio11off
pin[pin] (off|low|false) ex: pin11off
gpio[pin] pwm(0-100) ex: gpio11pwm50
pin[pin] pwn(0-100) ex:pin11pwm50
Shell
GPIO can be used direct from the shell:
# echo 223 > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio223/direction
# echo 0 > /sys/class/gpio/gpio223/value
# echo 1 > /sys/class/gpio/gpio223/value
# echo in > /sys/class/gpio/gpio223/direction
# cat /sys/class/gpio/gpio223/value
# echo 223 > /sys/class/gpio/unexport
Status of all GPIO can be read as follows:
sudo gpio readall #need GPIO_C_Library
which returns a table:
GPIO pinout
If you would like to control GPIO's SPI, I2C or serial(UART) with Python, it is recommended to use 3rd party or open source Python library, such as spidev, smbus2 or pySerial.
* We strongly recommend that you regularly backup all data stored in the device. ASUS shall not be liable for any damage to or loss of programs or data stored in the Tinker Board series, and shall not be responsible for data recovery, backup, or any charges arising therefrom.
* In no event shall ASUS be liable for any defect, damage or data loss arising from product repair or replacement.
FAQ
Table of Contents
What is?
1. What is a Single Board Computer
A single-board computer (SBC) is a complete computer built on a single circuit board, with microprocessor(s), memory, input/output (I/O) and other features required of a functional computer. Single-board computers were made as demonstration or development systems, for educational systems, or for use as embedded computer controllers. Many types of home computers or portable computers integrate all their functions onto a single printed circuit board.
2. What is tinker board
tinker board packs a whole load of exciting feature into a very small space, and at an incredibly competitive price that's barely more than its manufacturing cost. ASUS has identified a clear DIY/maker market trend and we intend to create a big impact with our little board, so we've crammed in loads of tech while keeping our profits to a minimum — it's our little contribution to the DIY world.
Hardware
3. How powerful is the CPU processing
tinker board features a powerful quad-core ARM Cortex-A17 1.8Ghz processor with a dual-channel DDR3 memory architecture. The performance is almost twice faster than the Raspberry Pi 3, and much higher than most of the SBC boards. For heavy computing loads like OpenCV projects, tinker board should be one of selected platform for your creation.
4. How powerful is the GPU processing
tinker board has an integrated ARM Mali GPU T760 MP4 supports up to 4K that up-scaled from 1080P, and the GPU also supports H.264/H.265 4K hardware decoder for 4K content display.(update coming soon.)
5. Does the tinker board overheat or need a heatsink
The performance of tinker board is much higher than most of the SBC boards, therefore the heat generation is also higher. But tinker board will comes with a passive heatsink to cool down the main SoC temperature.
(Do not touch the SoC or heatsink surface directly when powered tinker board to avoid possible skin burns.)
6. What type of hardware interfaces does the tinker board have
tinker board has 4 x USB 2.0 ports, 1 x GbE LAN, 1 x 3.5mm audio jack with 192K/24bit audio, MIPI DSI/CSI
7. Can I add additional system memory
The memory was soldered and mounted on the board during manufacturing, and did fully test before shipping out. Even the SoC can supports for higher memory capacity, but we'll strongly recommend you do not swap the memory by yourself.
8. What tinker board's range of temperature operation
The operation temperature is between 30°C ~ 80°C based on the system loadings.
9. Can I connect a keyboard and mouse and use the tinker board as a computer / PC
Yes, with the available operating system for tinker board, you can run tinker board as a linux-based mini system for daily operation or enjoy the media content thru this tiny board.
10. What are the tinker board's dimensions
tinker board measures 85.60mm x 56mm x 21mm (or roughly 3.37" x 2.21" x 0.83").
11. How much does the tinker board weigh
tinker board weighs 55g with the heatsink.
12. Is the tinker board compatible with RasperryPI cases
Yes, tinker board can compatible with most of the chassis for Raspberry Pi.
13. What SoC are used in the tinker board
The tinker board uses the Rockchip RK3288 series. This contains an quad-core ARM cortex A17, running at 1.8Ghz, and a Mali T760 MP4 GPU.
14. What type of Wi-Fi does the tinker board offer
The Wi-Fi solution is AW-NB177NF module, it contains a Realtek RTL8723BS IC, supports the Wi-Fi 802.11 b/g/n, and Bluetooth 4.0 + EDR.
15. What type of Bluetooth does the tinker board offer
Bluetooth 4.0 with EDR
16. Is the Ethernet port / LAN shared with the USB
The Ethernet port is working individually.
17. What type of hardware decoding does the tinker board offer
The GPU supports H.264/H.265 hardware decoder for media contents.(update coming soon)
18. Does the tinker board support an IR blaster
tinker board didn't equip IR transmitter, but tinker board has many GPIO expansion pins allowing this kind of extension.
19. What is the power requirement for the tinker board
tinker board supports 5V/2~2.5A power input, and a capable cable with 24~20 AWG for large current power.
20. Can the tinker board being powered by a battery
Yes, if the battery can supports power output with 5V/2A.
21. What type of microSD cards are supported
The MicroSD slot was from a SDIO 3.0 signal, allowing the MicroSD card with UHS-I speed. And we recommend using the card size at least 8GB.
22. What type of SD card is recommended
The MicroSD slot was from a SDIO 3.0 signal, allowing the MicroSD card with UHS-I
23. What resolutions are supported for the HDMI output
The maximum HDMI output supports up to 4K/30fps, up-scaled from 1080P.
24. What display outs are supported
There're two display interfaces on tinker board, one is HDMI & the other is MIPI DSI.
25. Is sound supported through HDMI
Yes, the sound output can be worked from HDMI or the 192K/24bit audio jack.
26. What type of audio in and audio out are supported.
The 3.5mm audio jack on tinker board can supports Mic-in and Line-out at the same time.
27. Which HDMI version is supported
HDMI 1.4
28. What is the DSI port
The Display Serial Interface (DSI) is a specification by the Mobile Industry Processor Interface (MIPI) alliance, DSI is commonly targeted at LCD and similar display technologies. It defines a serial bus and a communication protocol between the host (source of the image data) and the device (destination of the image data).
29. What model of LCD panel is compatible with the tinker board
The DSI interface is refer to the most popular design from Raspberry Pi, that allows users to connect the 7" display from Raspberry.
30. Does the tinker board have a realtime clock feature ( RTC )
No, but there're so many alternatives available on the market.
31. What else will I need after I purchase a Tinker Board
Get a keyboard, mouse, USB AC adaptor, a monitor with HDMI, and a micro SD card with 8GB capacity. Then download the OS image from its website, and burn into the micro SD card.
32. Does the Tinker Board support Expansion shields
Yes, the 40-pin GPIO equipped several signals for expansion. It will works with the GPIO API.
Software
33. What OS does the tinker board support
Currently Debian is the only available OS for Tinker Board.
34. How does the tinker board boot
All the files necessary for booting are installed in a FAT32 partition of the SD card. The tinker board has to have an SD card installed to boot from.
35. Which LINUX runs on the Tinker Board
TinkerOS (based on Debian)
36. Does the tinker board support Arduino
Yes