EZ-0065

From 52Pi Wiki
Jump to navigation Jump to search

ASUS Tinker Board S

Tks01.jpg

Description

Tinker Board S is a Single Board Computer (SBC) in an ultra-small form factor that offers class-leading performance while leveraging outstanding mechanical compatibility.
The Tinker Board offers makers, IoT enthusiasts, hobbyists,PC DIY enthusiasts and others a reliable and extremely capable platform for building and tinkering their ideas into reality.

Specifications

  • CPU: Rockchip RK3288 - Quad core 1.8 GHz ARM Cortex-A17 (32-bit)
  • GPU: 600MHz Mali-T764 GPU
  • RAM: 2GB dual channel LPDDR3
  • Storage: removable MicroSD slot ( supporting SD 3.0 )
  • Display Output: full size HDMI 1.4
  • Audio port: 3.5 mm audio jack ( supporting line out and microphone in )
  • Audio Playback: 192k/24bit sample rate
  • GPIO: 40-pin header with 28 GPIO pins
  • Ethernet: Gigabit LAN ( not shared with USB bus )
  • Wireless: Bluetooth 4.0, 802.11 b/g/n Wi-Fi, with IPEX antenna header ( I-PEX MHF4 )
  • USB: four USB 2.0 ports
  • video input: CSI-camera
  • video output: MIPI-DSI, compatible with the Raspberry Pi 7" display and others
  • Power input: Micro-USB
  • Operating Systems: Official TinkerOS Debian Linux derivative & Android 6.01, Also Ubuntu, Armbian, ChromeOS and other images available software
  • There is also a Reset header with hard/soft power on and volume up button actions.

New Features

  • 16GB eMMC storage
  • HDMI-CEC Hardware Ready
NOTE: Tinker Board S has 16GB eMMC storage onboard, you can flash the latest image to the eMMC and boot from the eMMC.
And there is a HDMI-CEC hardware Ready onboard.
HDMI-CEC is a device control protocol that runs over HDMI cables.
It allows rudimentary control over HDMI-CEC aware devices:
These devices oftern have vendor-specific names for the protocol, such as AnyNet+ for Samsung devices.
Therefore, it is possible to either control an HDMI-CEC-aware device (such as a TV) from another (like a computer), 
e.g. by having the computer turn the TV on, or vice versa, e.g. by using the TV remote to control MythTV on the computer.
Backgroud: HDMI-CEC devices have two key public propertie - a logical address and a physical address. 
The physical address is determined by the ports a device is plugged into. 
HDMI is effectively a tree structure, with the TV/Display defaulting to physical address 0.0.0.0 
(I understand there should only be 1 display in a HDMI setup, 
but exceptions apparently can be sometimes tolerated depending on the equipment)
If a device with other HDMI ports (referred to as a switch) is plugged in, 
any devices plugged into that will get a number in the the next "dot range".
So if an AV Receiver is plugged into port 1 of the TV, it would have physical address 1.0.0.0
if the MythTv HDMI out is plugged into port 3 of the AV receiver above, its physical address should be 1.3.0.0
Subsequently, any device directly attached to the switch gets a number based on the port it is plugged into. 
Typically devices determine their physical address via DDC, but as some CEC bridges are not "inline" with the 
source device they cannot dynamically determine the physical address. 
(These devices, such as the RainShadowTech one can have their physical address set to allow them to 
"impersonate" the non-hdmi-cec device - such as a typical HDMI-capable video card.

Secondly, there is a "Logical Address" which largely determines the type of device 
And supports negotiation if multiple instances of the same type are on the HDMI tree (ie two bluray players etc). 
However, the Logical address is used when addressing devices, not the physical address. 
The Physical address is used when a "source Device" is in playback mode, 
and alerts all other devices that it is sending a stream to the display device via the path inherent in its physical address.

Features

  • Class-Leading Performance
Tks02.jpg
With its powerful and modern quad-core ARM-based processor — the Rockchip RK3288 
Tinker Board offers significantly improved performance versus other popular SBC boards.
To provide the flexibility needed for different builds and projects, Tinker Board features 2GB of LPDDR3 dual-channel memory. 
Tinker Board is also equipped with an SD 3.0 interface that offers significantly faster read 
and write speeds to expandable microSD cards used for the OS, applications and file storage.
  • Robust GPU Performance & Functionality
Featuring a powerful but energy-efficient design, Tinker Board supports next-generation graphics and GPU computing API's. 
Powered by an ARM-based Mali™-T764 GPU, Tinker Board's GPU and fixed-function processors allow for a wide range of uses, 
including high-quality media playback, gaming, computer vision, gesture recognition, image stabilization and processing, 
as well as computational photography and more. Multimedia enthusiasts will appreciate the fixed-function H.264 and H.265 playback support, 
including playback of HD and UHD video*.
*HD & UHD video playback at 30 fps on Tinker Board is currently only available via the included media player. 
Third-party video players and applications may not offer hardware acceleration, 
which will result in limited or unstable playback performance. 
  • HD Audio Quality
Further improving on key areas found lacking on many SBC boards, Tinker Board is equipped with an HD codec 
that supports up to 24-bit/192kHz audio. 
Its integrated audio jack supports audio output and a microphone in, without an extension module.
  • Maker-Friendly, with IoT Connectivity
Tks03.jpg
Tinker Board features standard maker connectivity options, including a 40-pin GPIO interface 
that allow for interfacing with a range inputs from buttons, 
switches, sensors, LEDs, and much more. Tinker Board is equipped with one DSI MIPI connection for displays and touchscreens. 
The secondary CSI MIPI connection is for connection to compatible cameras allowing for computer vision, and much more.

Tinker Board also features Gbit LAN for Internet and network connectivity. 
A dedicated bus resource designed for the LAN port ensures consistent Ethernet performance. 
The integrated Wi-Fi and Bluetooth controller on the Tinker Board is shielded with a metal cover 
to ensure minimal interference and improved radio performance. 
An integrated IPEX antenna header allows for easy antenna replacement or upgrades.

Tinker Board also features a full-size HDMI output. 
Additionally, it includes four USB 2.0 ports for extensive peripheral and accessory connectivity.
  • Enhanced DIY Design
Careful consideration went into the design and development of the Tinker Board to ensure that it provides 
a superior user experience for first-time builders or for seasoned hobbyists. Builders will appreciate the 
color-coded GPIO header, which makes it easy to recognize respective pin headers.
The PCB dimensions and topology of the Tinker Board align with standard SBC boards, allowing support for 
a wide range of chassis and physical accessories. 
Tks04.jpg
The PCB features silk-screening with a connection header and location callouts, for improved connection clarity. 
The onboard MIPI headers also feature color-coded pull tabs.
Tinker Board also includes a heatsink, which helps improve heat dissipation under heavy loading or in hot ambient environments.

Package include

  • 1 x ASUS Tinker Board S mainboard
  • 1 x Aluminum Heat sink
  • 1 x Instruction

TinkerOS Supported OS Applications

A Debian-based distribution ensures a smooth and functional experience, directly out of the box. 
Whether it's browsing the web, watching videos, or writing scripts, TinkerOS is a great starting point for your next project or build.

Furthermore TinkerOS has been carefully designed to be extremely lightweight and responsive. 
Running on top of the base Debian 9 is a the LXDE desktop environment. This GUI is optimized specifically for SBC boards. 
It also features plug & play NTFS support allowing for easy access to Windows based flash drives and external hard drives. 
The included web browser has also been carefully selected and optimized. 
It based on Chromium allowing for speed and stability along with a number of extensions. 
The ASUS team has help to enable hardware acceleration of the browser allowing for 
improved web rendering and video playback including HD resolutions in YouTube.

TinkerOS also includes a number of popular applications allowing for easy programming and development. 
These include IDLE / Python as well as Squeak / Scratch.

Beyond TinkerOS and its Debian Linux offering Tinker Board also support the Android Operating system. 
This allows for an entirely different usage scenarios ranging from media playback, gaming, and much more.

Tinker board is also working closely with a wide range of popular applications to enable support & optimize functionality.
Tinkeros1.png




Gallery

Tks01.jpg
Tks02.jpg
Tks03.jpg
Tks04.jpg
Tks05.jpg
Tks06.jpg

Tinker Board Performance

  • CPU Performance
Tinker Board features an ARM-based RK3288 SoC and is equipped with four cores to 
enhance multithread application performance. It operates at frequencies of up to 1.8GHz, 
improving performance across all applications. This increase in CPU core count, 
along with an increase in processor frequency, helps to enable significantly faster performance 
across a wide range of applications, extending and enhancing project capabilities. As a result, 
typical PC tasks are faster and more responsive.
Tkcpu1.png


  • GPU Performance
Tinker Board's GPU is based on the Mali™-T764 GPU. It offers up 4 cores and a 600MHz clock speed. 
When compared to competitor SBC GPUs, Tinker Board offers better GPU computing and GPU acceleration performance.
Tkgpu01.png


  • Stream and Memory Performance
Tinker Board offers dual-channel DDR3 which delivers better memory bandwidth 
versus competitor devices that offer only a single-channel DDR2.
TkGGG1.png


Network/Audio Specifications

  • Networks Performance
Tksond0.png


Tinker Board features gigabit Ethernet, which offers significantly improved throughput versus competitor SBCs that are equipped with 10/100 Ethernet.

    • Transfer/receive speeds
Tknic.png


Tinker Board's dedicated controller and non-shared bus design ensure superior packet delivery and reception. 
LAN performance remains the same on the Tinker Board during USB transfers versus LAN performance of competitor SBC's 
which experience up to an 18% reduction in speed during USB transfer.
    • LAN performance with USB transfer
Tknic2.png


USB Speed

Tinker Board offers superior read and write performance with external storage drives, 
allowing quicker read and write speeds. This improves workflow, copying, backups and overall file usage.
    • Read speeds: up to 154% faster
    • Write speeds: up to 6% faster
Tkusb1.png


  • Card spec: Kingston DataTraveler 64GB USB3.0

Wi-Fi Performance (Signal Loss)

Tinker Board Wi-Fi performance is more robust than most competitor devices, allowing for improved signal reception.
Tkusb2.png


Nictk.png


  • Tinker Board - OS: Linux 4.4.0+ armv7l l Image Version: V20170113 l Memory Type: 2GB l CPU Type, Speed[GHz]: Cortex-A17 Quad-core 1.8GHz l GPU Type, Speed[MHz]: Mali™ T-764
  • Competitor SBC - OS: Linux 4.4.11+ armv7l l Memory Type: 1GB l CPU Type, Speed[GHz]: Cortex-A53 Quad-core 1.2GHz l GPU Type, Speed[MHz]: VideoCore IV

Documentation

  • Getting start
    • For Linux
1. Insert the microSD card into a Linux PC
2. Rename the image to output.img and then put the file into the FlashUSB folder
3. Execute FlashUSB.sh
===============================================
Select the disk you want to flash:
sdc -Multiple_Flash_Reader_058F63616476-0:1
sdb -Generic-_Compact_Flash_058F63616476-0:0
Enter the number:0
dd if=/home/yihsin/Rockchip/aa7-demo/out/target/output.img of=/dev/sdc seek=0 bs=16M conv=notrunc
flash start!
flash end!
===============================================
Insert the microSD card into the slot on the Tinker Board.
Connect the power supply, keyboard, mouse and your monitor. Now boot it up!
    • For Windows
1. Insert the microSD card into a Windows PC
2. Download and run the "Win32DiskImager" application
2.1 Browse and select the source image file to be flashed (Image File)
2.2 Select the microSD card as the destination (Device)
2.3 Click "Write"
Win32 pic.jpg


3. Safely remove the microSD card with the new bootable image, then insert into the microSD card slot on the Tinker Board.
4. Connect the power supply, keyboard, mouse and your monitor. Now boot it up!

Insert the bootable micro SD card into your Tinker Board, then connect the power supply, keyboard, mouse, and monitor to boot up

Power supply

The tinker board S requires 5V/2~2.5A power via the micro-USB port. 
The exact amount of current (mA) the tinker board requires will depend on what's connected to it. 
For general use, a 2A power supply from a reputable retailer will provide ample power to run your tinker board.

Typically, tinker board S uses between 700 to 1000mA, depending on which peripherals are connected. 
It may use as little as 500mA when no peripherals are attached. 
Maximum power for the tinker board is 1A. 
If you need to connect a USB device to bring power requirements above 0.5A, 
then you must connect to it via an externally powered USB hub.

USB

The tinker board S is equipped with four USB 2.0 ports. 
These are connected to the GL852G USB Hub from the upstream USB port via the RK3288.
The USB ports enable the attachment of peripherals such as keyboards, mice and webcams. 
This provides the board with additional functionality.
There are some differences between the USB hardware on the tinker board and the USB hardware on desktop computers, laptops and tablets.
The USB host port inside the tinker board is for power supply only, RK3288, 
was originally intended to be used in the mobile market, e.g. the single USB port on a phone for connection to a PC, 
or to a single device. In essence, the OTG hardware is simpler than the equivalent hardware on a PC.
OTG typically supports communication to all types of USB devices, 
but to provide an adequate level of functionality for most of the USB devices that one might plug into a tinker board, 
the system software has to do more work.

GPIO

One powerful feature of the Tinker Board is the row of available GPIO (general purpose input/output) pins along the edge of the board. 
These pins are a physical interface between the Tinker Board and the outside world. At the simplest level, 
you can think of them as switches that can be turned on or off. Of the 40 pins, 28 are GPIO pins (shared with SPI/UART/I2C pins). 
The Tinker Board is equipped with one SPI bus that offers two chip selects. 
The SPI bus is available on the onboard 40-pin header.
Pic gpio.png


Download

Note: TinkerOS default username is ”linaro” ; password is “linaro”


How to use GPIO API

  • 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
wget http://dlcdnet.asus.com/pub/ASUS/mb/Linux/Tinker_Board_2GB/GPIO_API_for_Python.zip
    • 3. Unzip GPIO_API_for_Python.zip and navigate to folder
unzip GPIO_API_for_Python.zip
cd GPIO_API_for_Python/
    • 4. Install Python GPIO library for Tinker Board
sudo python setup.py install
sudo python3 setup.py install 
    • 5. Reference codes

There're few sample codes under this folder

/GPIO_API_for_Python/test

add_event_callback.py (add_event_detect function for input GPIO)
btc.py (unit test for all functions of GPIO)
forloop.py (pull high all GPIO and then pull down all GPIO)
pwm.py (Software PWM function test)
pwm_input.py (Software PWM function test by raw_input)


  • Language 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
wget http://dlcdnet.asus.com/pub/ASUS/mb/Linux/Tinker_Board_2GB/GPIO_API_for_C.zip
    • 2. Unzip GPIO_API_for_C.zip and navigate to folder
unzip GPIO_API_for_C.zip
cd GPIO_API_for_C/
    • 3. Install C GPIO library for Tinker Board
sudo chmod +x build
sudo ./build
    • 4. Check install success or not
gpio -v
gpio readall
    • 5. Reference codes

There're few sample codes under this folder /GPIO_API_for_C/wiringpitest or /GPIO_API_for_C/examples

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.

AsusGPIO.png