Difference between revisions of "NanoPC-T3 Plus"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 381: Line 381:
 
==Get Started==
 
==Get Started==
 
===Essentials You Need===
 
===Essentials You Need===
Before starting to use your NanoPi-T3-Plus get the following items ready
+
Before starting to use your NanoPC-T3-Plus get the following items ready
* NanoPi-T3-Plus
+
* NanoPC-T3-Plus
 
* SD Card: Class 10 or Above, minimum 8GB SDHC
 
* SD Card: Class 10 or Above, minimum 8GB SDHC
 
* A DC 5V/2A power is a must
 
* A DC 5V/2A power is a must
Line 388: Line 388:
 
* USB keyboard, mouse and possible a USB hub(or a TTL to serial board)
 
* USB keyboard, mouse and possible a USB hub(or a TTL to serial board)
 
* A host computer running Ubuntu 16.04 64 bit system
 
* A host computer running Ubuntu 16.04 64 bit system
{{S5P6818BootFromSDCard/zh|NanoPC-T3-Plus}}
+
{{S5P6818BootFromSDCard|NanoPC-T3-Plus}}
 
{{BurnOSToEMMC|NanoPC-T3-Plus|s5p6818-eflasher}}
 
{{BurnOSToEMMC|NanoPC-T3-Plus|s5p6818-eflasher}}
 
{{S5PXX18MakeSDCardViaSDFusing|NanoPC-T3-Plus|sd-fuse_s5p6818}}
 
{{S5PXX18MakeSDCardViaSDFusing|NanoPC-T3-Plus|sd-fuse_s5p6818}}
{{S5P6818Software|NanoPC-T3-Plus}}
+
{{ResizeTFCardFS|NanoPC-T3-Plus}}
 +
{{S5Pxx18HDMI|NanoPC-T3-Plus|arch/arm/plat-s5p6818/nanopi3/lcds.c}}
 +
{{S5Pxx18MofidyKernelCommandLineOnHostPC|NanoPC-T3-Plus|sd-fuse_s5p6818}}
 +
{{FriendlyCoreGeneral}}
 +
{{FriendlyCoreS5Pxx18}}
 +
{{S5P6818Software|NanoPC-T3}}
 
{{S5P6818ChangeLog}}
 
{{S5P6818ChangeLog}}

Revision as of 08:52, 23 December 2017

查看中文

1 Introduction

Overview
Front
Back
  • The NanoPC-T3 Plus octa-core single board computer is designed and developed by FriendlyELEC for professional and enterprise users. It uses the Samsung Octa-Core Cortex-A53 S5P6818 SoC. Compared to the FriendlyELEC NanoPC-T2 the NanoPC-T3 Plus not only has all the T2’s interfaces and ports but also has a more powerful SoC. Its dynamic frequency scales from 400M up to 1.4GHz. The NanoPC-T3 Plus has 16G eMMC onboard, audio jack, video input/output interfaces, built-in WiFi, Bluetooth and Gbps Ethernet port. In addition the NanoPC-T3 Plus) has power management, on board porcelain antenna and serial debug port. To avoid overheat issues the NanoPC-T3 Plus has a heat sink with mounting holes.
  • The NanoPC-T3 Plus has two camera interfaces: a DVP camera interface and a MIPI-CSI interface, and four video interfaces: HDMI 1.4A, LVDS, parallel RGB-LCD interface and MIPI-DSI interface. It supports RTC and has RTC interface pins. It has four USB ports with three being type A ports and one being 2.54mm pitch pin-headers.
  • The NanoPC-T3 Plus supports muitple OS systems e.g. Android5.1, Debian and UbuntoCore+Qt. It is an open source project with rich interfaces and ports. It is born a choice for professional and enterprise users.

2 Hardware Spec

  • SoC: Samsung S5P6818 Octa-Core Cortex-A53, 400M Hz - 1.4G Hz
  • PMU Power Management: Implemented by a Cortex-M0 MCU, support software power-off, sleep and wakeup functions
  • System Memory: 2GB 32bit DDR3 RAM
  • SD Storage: 1 x microSD Card Socket
  • Ethernet: Gbit Ethernet(RTL8211E)
  • WiFi: 802.11b/g/n
  • Bluetooth: 4.0 dual mode
  • Antenna: Porcelain Antenna IPX Interface
  • eMMC: 16GB
  • Video Input: DVP Camera/MIPI-CSI (two camera interfaces)
  • Video Output: HDMI Type-A / LVDS / Parallel RGB-LCD / MIPI-DSI (four video output interfaces)
  • Audio: 3.5 mm audio jack / via HDMI
  • Microphone: onboard Microphone
  • USB Host: 4 x USB 2.0 Host, three type A ports and one 2.54 mm pitch pin-headers
  • MicroUSB: 1 x MicroUSB 2.0 Client, Type A
  • LCD Interface: 0.5mm pitch 45 pin FPC seat, full color RGB 8-8-8
  • HDMI: 1.4A Type A, 1080P
  • DVP Camera: 0.5mm pitch 24 pin FPC seat
  • GPIO: 2.54 mm pitch 30 pin-header
  • I2S/USB: 2.54 mm pitch 14 pin-header
  • Serial Debug Port: 2.54mm pitch 4-pin-header
  • User Key: power, Reset, boot selection
  • LED: 1 x power LED and 1 x system LED
  • Other Resources: CPU’s internal TMU
  • RTC Battery: RTC Battery Seat
  • Heat Sink: 1 x Heat Sink with mounting holes
  • Power: DC 5V/3A
  • PCB: Six Layer
  • Dimension: 100 mm x 64 mm
  • Working Temperature: -40℃ to 80℃
  • OS/Software: uboot, Android and Debian

3 Diagram, Layout and Dimension

3.1 Layout

NanoPC-T3 Plus Layout
  • 30Pin GPIO Pin Spec
Pin# Name Pin# Name
1 SYS_3.3V 2 DGND
3 UART2_TX/GPIOD20 4 UART2_RX/GPIOD16
5 I2C0_SCL 6 I2C0_SDA
7 SPI0_MOSI/GPIOC31 8 SPI0_MISO/GPIOD0
9 SPI0_CLK/GPIOC29 10 SPI0_CS/GPIOC30
11 UART3_TX/GPIOD21 12 UART3_RX/GPIOD17
13 UART4_TX/GPIOB29 14 UART4_RX/GPIOB28
15 UART5_TX/GPIOB31 16 UART5_RX/GPIOB30
17 GPIOC4 18 GPIOC7
19 GPIOC8 20 GPIOC24
21 GPIOC28 22 GPIOB26
23 GPIOD1/PWM0 24 GPIOD8/PPM
25 GPIOC13/PWM1 26 AliveGPIO3
27 GPIOC14/PWM2 28 AliveGPIO5
29 VDD_5V_OUT 30 DGND
  • 14Pin I2S/USB Pin Spec
Pin# Name Pin# Name
1 VDD_5V 2 VDD_5V
3 USB_DM2 4 LED1
5 USB_DP2 6 I2S_SDIN1
7 DGND 8 I2S_SDOUT1
9 PWRKEY 10 I2S_MCLK1
11 NRESETIN 12 I2S_BCLK1
13 DGND 14 I2S_LRCK1
  • DVP Camera Interface Pin Spec
Pin# Name
1, 2 SYS_3.3V
7,9,13,15,24 DGND
3 I2C0_SCL
4 I2C0_SDA
5 GPIOB14
6 GPIOB16
8 GPIOC13/PWM1
10 NC
11 VSYNC
12 HREF
14 PCLK
16-23 Data bit7-0
  • LVDS
Pin# Name
1 VDD_5V_OUT
2 VDD_5V_OUT
3 VDD_5V_OUT
4 LVDS_Y0M
5 LVDS_Y0P
6 DGND
7 LVDS_Y1M
8 LVDS_Y1P
9 DGND
10 LVDS_Y2M
11 LVDS_Y2P
12 DGND
13 LVDS_CLKM
14 LVDS_CLKP
15 DGND
16 LVDS_Y3M
17 LVDS_Y3P
18 DGND
19 GPIOC15
20 DGND
21 I2C2_SCL
22 I2C2_SDA
23 GPIOC16
24 DGND
  • Debug Port(UART0)
Pin# Name
1 DGND
2 VDD_5V
3 UART_TXD0
4 UART_RXD0
  • RGB LCD Interface Pin Spec
Pin# Name Description
1, 2 VDD_5V_OUT 5V Output, it can be used to power LCD modules
11,20,29, 37,38,39,40, 45 DGND Ground
3-10 Blue LSB to MSB RGB blue
12-19 Green LSB to MSB RGB green
21-28 Red LSB to MSB RGB red
30 GPIOB25 available for users
31 GPIOC15 occupied by FriendlyARM one wire technology to recognize LCD models and control backlight and implement resistive touch, not applicable for users
32 XnRSTOUT Form CPU low when system is reset
33 VDEN signal the external LCD that data is valid on the data bus
34 VSYNC vertical synchronization
35 HSYNC horizontal synchronization
36 LCDCLK LCD clock, Pixel frequency
41 I2C2_SCL I2C2 clock signal, for capacitive touch data transmission
42 I2C2_SDA I2C2 data signal, for capacitive touch data transmission
43 GPIOC16 interrupt pin for capacitive touch, used with I2C2
44 NC Not connected
  • MIPI-DSI Interface Pin Spec
Pin# Name
1, 2, 3 VDD_5V_OUT
4 DGND
5 I2C2_SDA
6 I2C2_SCL
7 DGND
8 GPIOC16
9 DGND
10 GPIOC1
11 DGND
12 NC
13 nRESETOUT
14, 15 DGND
16 MIPIDSI_DN3
17 MIPIDSI_DP3
18 DGND
19 MIPIDSI_DN2
20 MIPIDSI_DP2
21 DGND
22 MIPIDSI_DN1
23 MIPIDSI_DP1
24 DGND
25 MIPIDSI_DN0
26 MIPIDSI_DP0
27 DGND
28 MIPIDSI_DNCLK
29 MIPIDSI_DPCLK
30 DGND
  • MIPI-CSI Interface Pin Spec
Pin# Name
1, 2 SYS_3.3V
3 DGND
4 I2C0_SDA
5 I2C0_SCL
6 DGND
7 SPI2_MOSI/GPIOC12
8 SPI2_MISO/GPIOC11
9 SPI2_CS/GPIOC10
10 SPI2_CLK/GPIOC9
11 DGND
12 GPIOB23
13 GPIOC2
14, 15 DGND
16 MIPICSI_DN3
17 MIPICSI_DP3
18 DGND
19 MIPICSI_DN2
20 MIPICSI_DP2
21 DGND
22 MIPICSI_DN1
23 MIPICSI_DP1
24 DGND
25 MIPICSI_DN0
26 MIPICSI_DP0
27 DGND
28 MIPICSI_DNCLK
29 MIPICSI_DPCLK
30 DGND
  • RTC
3.35uA@3V
  • USB 2.0 Host
with 1A over current protection
Notes
  1. SYS_3.3V: 3.3V power output
  2. VDD_5V/VDD_5V_OUT: 5V power output
  3. For more details refer to the document: NanoPC-T3 Plus Schematic.pdf

3.2 Board Dimension

NanoPC-T3 Plus Dimensions

For more details refer to the document: NanoPC-T3 Plus Drawing(dxf).zip
  • Power Jack
  • DC 4.7~5.6V IN, 4.0*1.7mm Power Jack
DC-023.png

4 Get Started

4.1 Essentials You Need

Before starting to use your NanoPC-T3-Plus get the following items ready

  • NanoPC-T3-Plus
  • SD Card: Class 10 or Above, minimum 8GB SDHC
  • A DC 5V/2A power is a must
  • HDMI monitor or LCD
  • USB keyboard, mouse and possible a USB hub(or a TTL to serial board)
  • A host computer running Ubuntu 16.04 64 bit system

4.2 Boot from SD Card

Get the following files from here download link:

  • Get a 8G SDHC card and backup its data if necessary.
Image Files
s5p6818-sd-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip FriendlyCore(32bit) with Qt 5.10.0 (base on Ubuntu core) image file
s5p6818-sd-friendlycore-xenial-4.4-arm64-YYYYMMDD.img.zip FriendlyCore(64bit) with Qt 5.10.0 (base on Ubuntu core) image file
s5p6818-sd-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip LUbuntu Desktop image file with X Window
s5p6818-sd-friendlywrt-4.4-YYYYMMDD.img.zip FriendlyWrt image file (base on OpenWrt)
s5p6818-sd-android7-YYYYMMDD.img.zip Android7 image file
s5p6818-sd-android-lollipop-YYYYMMDD.img.zip Android5.1 image file
s5p6818-eflasher-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip SD card image, which is used to install a lubuntu desktop to eMMC
s5p6818-eflasher-friendlywrt-4.4-YYYYMMDD.img.zip SD card image, which is used to install a FriendlyWrt to eMMC
s5p6818-eflasher-android7-YYYYMMDD.img.zip SD card image, which is used to install a android7 to eMMC
s5p6818-eflasher-android-lollipop-YYYYMMDD.img.zip SD card image, which is used to install an Android to eMMC
s5p6818-eflasher-friendlycore-xenial-4.4-arm64-YYYYMMDD.img.zip SD card image, which is used to install a FriendlyCore-arm64 to eMMC
s5p6818-eflasher-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip SD card image, which is used to install a FriendlyCore-armhf to eMMC
Flash Utility:
win32diskimager.rar Windows utility. Under Linux users can use "dd"
  • Uncompress these files. Insert an SD card(at least 4G) into a Windows PC and run the win32diskimager utility as administrator. On the utility's main window select your SD card's drive, the wanted image file and click on "write" to start flashing the SD card.
  • Insert this card into your board's boot slot, press and hold the boot key (only applies to a board with onboard eMMC) and power on (with a 5V/2A power source). If the PWR LED is on and LED1 is blinking this indicates your board has successfully booted.

4.3 Flash image to eMMC with eflasher

  • Download eflasher image file

An image file's name is as : s5p6818-eflasher-OSNAME-YYYYMMDD.img.zip
The "OSNAME" is the name of an OS e.g. android, friendlycore and etc;
This image file is used for making an installation SD card and it contains a Ubuntu core system and a utility EFlasher;
Download s5p6818-eflasher-OSNAME-YYYYMMDD.img.zip to a host PC and get a windows utility win32diskimager.rar as well;

  • Make Installation SD Card with eflasher

Extract the package with a 7z utility and you will get a file with an extension ".img". Insert an SDHC card(minimum 8G or above) to a PC running Windows, run the Win32DiskImager utility as administrator, click on "Image File" to select your wanted file, select your SD card and click on "Write" to start flashing the Image to your SD card;
If your PC runs Linux you can command "dd" to extract the package and get an ".img" file and write it to your SD card;

  • Operate in GUI Window: Flash OS to eMMC

Insert your SD card to NanoPC-T3-Plus, connect an HDMI monitor or LCD to your board, press and hold the "boot" key beside the Ethernet port, power on the board you will see a pop-up window asking you to select an OS for installation. Select your wanted OS and start installation.

  • Operate in Commandline Utility: Flash OS to eMMC

Insert an installation SD card to NanoPC-T3-Plus, log into or SSH to your board and run the following command to start EFlasher:

sudo eflasher

4.3.1 Make Installation Card under Linux Desktop

  • 1) Insert your SD card into a host computer running Ubuntu and check your SD card's device name
dmesg | tail

Search the messages output by "dmesg" for similar words like "sdc: sdc1 sdc2". If you can find them it means your SD card has been recognized as "/dev/sdc". Or you can check that by commanding "cat /proc/partitions"

  • 2) Downlaod Linux script

git clone https://github.com/friendlyarm/sd-fuse_s5p6818.git
cd sd-fuse_s5p6818

  • 3) Here is how to make a Lubuntu desktop SD card
sudo ./fusing.sh /dev/sdx lubuntu

(Note: you need to replace "/dev/sdx" with the device name in your system)
When you run the script for the first time it will prompt you to download an image you have to hit “Y” within 10 seconds otherwise you will miss the download

  • 4) Run this command to make a complete image file:
sudo ./mkimage.sh lubuntu

More content please refre: Assembling the SD card image yourself

4.4 Extend SD Card Section

  • When Debian/Ubuntu is loaded the SD card's section will be automatically extended.
  • When Android is loaded you need to run the following commands on your host PC to extend your SD card's section:
sudo umount /dev/sdx?
sudo parted /dev/sdx unit % resizepart 4 100 resizepart 7 100 unit MB print
sudo resize2fs -f /dev/sdx7

(Note: you need to replace "/dev/sdx" with the device name in your system)

4.5 LCD/HDMI Resolution

When the system boots our uboot will check whether it is connected to an LCD or to an HDMI monitor. If it recognizes an LCD it will configure its resolution. Our uboot defaults to the HDMI 720P configuration.
If you want to modify the LCD resolution you can modify file "arch/arm/plat-s5p6818/nanopi3/lcds.c" in the kernel and recompile it.
If your NanoPC-T3-Plus is connected to an HDMI monitor and it runs Android it will automatically set the resolution to an appropriate HDMI mode by checking the "EDID". If your NanoPC-T3-Plus is connected to an HDMI monitor and it runs Debian by default it will set the resolution to the HDMI 720P configuration. If you want to modify the HDMI resolution to 1080P modify your kernel's configuration as explained above.

4.6 Update SD Card's boot parameters From PC Host

Insert your SD card into a host PC running Linux, if you want to change your kernel command line parameters you can do it via the fw_setevn utility.
Check the current Command Line:

git clone https://github.com/friendlyarm/sd-fuse_s5p6818.git
cd sd-fuse_s5p6818/tools
./fw_printenv /dev/sdx | grep bootargs

For example, to disable android SELinux, You can change it this way:

./fw_setenv /dev/sdc bootargs XXX androidboot.selinux=permissive

The "XXX" stands for the original bootargs' value.

5 Work with FriendlyCore

5.1 Introduction

FriendlyCore is a light Linux system without X-windows, based on ubuntu core, It uses the Qt-Embedded's GUI and is popular in industrial and enterprise applications.

Besides the regular Ubuntu core's features our FriendlyCore has the following additional features:

  • it supports our LCDs with both capacitive touch and resistive touch(S700, X710, HD702, S430, HD101 and S70)
  • it supports WiFi
  • it supports Ethernet
  • it supports Bluetooth and has been installed with bluez utilities
  • it supports audio playing
  • it supports Qt 5.10.0 EGLES and OpenGL ES1.1/2.0 (Only for S5P4418/S5P6818)

5.2 System Login

  • If your board is connected to an HDMI monitor you need to use a USB mouse and keyboard.
  • If you want to do kernel development you need to use a serial communication board, ie a PSU-ONECOM board, which will

For example, NanoPi-M1:
PSU-ONECOM-M1.jpg
You can use a USB to Serial conversion board too.
Make sure you use a 5V/2A power to power your board from its MicroUSB port:
For example, NanoPi-NEO2:
USB2UART-NEO2.jpg

  • FriendlyCore User Accounts:

Non-root User:

   User Name: pi
   Password: pi

Root:

   User Name: root
   Password: fa

The system is automatically logged in as "pi". You can do "sudo npi-config" to disable auto login.

  • Update packages
$ sudo apt-get update

5.3 Configure System with npi-config

The npi-config is a commandline utility which can be used to initialize system configurations such as user password, system language, time zone, Hostname, SSH switch , Auto login and etc. Type the following command to run this utility.

$ sudo npi-config

Here is how npi-config's GUI looks like:
npi-config

5.4 Develop Qt Application

Please refer to: How to Build and Install Qt Application for FriendlyELEC Boards

5.5 Setup Program to AutoRun

You can setup a program to autorun on system boot with npi-config:

sudo npi-config

Go to Boot Options -> Autologin -> Qt/Embedded, select Enable and reboot.

5.6 Extend TF Card's Section

When FriendlyCore is loaded the TF card's section will be automatically extended.You can check the section's size by running the following command:

$ df -h

5.7 Transfer files using Bluetooth

Take the example of transferring files to the mobile phone. First, set your mobile phone Bluetooth to detectable status, then execute the following command to start Bluetooth search.:

hcitool scan


Search results look like:

Scanning ...
    2C:8A:72:1D:46:02   HTC6525LVW

This means that a mobile phone named HTC6525LVW is searched. We write down the MAC address in front of the phone name, and then use the sdptool command to view the Bluetooth service supported by the phone:

sdptool browser 2C:8A:72:1D:46:02

Note: Please replace the MAC address in the above command with the actual Bluetooth MAC address of the mobile phone.
This command will detail the protocols supported by Bluetooth for mobile phones. What we need to care about is a file transfer service called OBEX Object Push. Take the HTC6525LVW mobile phone as an example. The results are as follows:

Service Name: OBEX Object Push
Service RecHandle: 0x1000b
Service Class ID List:
  "OBEX Object Push" (0x1105)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 12
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX Object Push" (0x1105)
    Version: 0x0100

As can be seen from the above information, the channel used by the OBEX Object Push service of this mobile phone is 12, we need to pass it to the obexftp command, and finally the command to initiate the file transfer request is as follows:

obexftp --nopath --noconn --uuid none --bluetooth -b 2C:8A:72:1D:46:02 -B 12 -put example.jpg

Note: Please replace the MAC address, channel and file name in the above command with the actual one.

After executing the above commands, please pay attention to the screen of the mobile phone. The mobile phone will pop up a prompt for pairing and receiving files. After confirming, the file transfer will start.

Bluetooth FAQ:
1) Bluetooth device not found on the development board, try to open Bluetooth with the following command:

rfkill unblock 0

2) Prompt can not find the relevant command, you can try to install related software with the following command:

apt-get install bluetooth bluez obexftp openobex-apps python-gobject ussp-push

5.8 WiFi

For either an SD WiFi or a USB WiFi you can connect it to your board in the same way. The APXX series WiFi chips are SD WiFi chips. By default FriendlyElec's system supports most popular USB WiFi modules. Here is a list of the USB WiFi modules we tested:

Index Model
1 RTL8188CUS/8188EU 802.11n WLAN Adapter
2 RT2070 Wireless Adapter
3 RT2870/RT3070 Wireless Adapter
4 RTL8192CU Wireless Adapter
5 mi WiFi mt7601
6 5G USB WiFi RTL8821CU
7 5G USB WiFi RTL8812AU

You can use the NetworkManager utility to manage network. You can run "nmcli" in the commandline utility to start it. Here are the commands to start a WiFi connection:

  • Change to root
$ su root
  • Check device list
$ nmcli dev

Note: if the status of a device is "unmanaged" it means that device cannot be accessed by NetworkManager. To make it accessed you need to clear the settings under "/etc/network/interfaces" and reboot your system.

  • Start WiFi
$ nmcli r wifi on
  • Scan Surrounding WiFi Sources
$ nmcli dev wifi
  • Connect to a WiFi Source
$ nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0

The "SSID" and "PASSWORD" need to be replaced with your actual SSID and password.If you have multiple WiFi devices you need to specify the one you want to connect to a WiFi source with iface
If a connection succeeds it will be automatically setup on next system reboot.

For more details about NetworkManager refer to this link: Use NetworkManager to configure network settings

If your USB WiFi module doesn't work most likely your system doesn't have its driver. For a Debian system you can get a driver from Debian-WiFi and install it on your system. For a Ubuntu system you can install a driver by running the following commands:

$ apt-get install linux-firmware

In general all WiFi drivers are located at the "/lib/firmware" directory.


5.9 Ethernet Connection

If a board is connected to a network via Ethernet before it is powered on it will automatically obtain an IP with DHCP activated after it is powered up. If you want to set up a static IP refer to: Use NetworkManager to configure network settings


5.10 Custom welcome message

The welcome message is printed from the script in this directory:

/etc/update-motd.d/

For example, to change the FriendlyELEC LOGO, you can change the file /etc/update-motd.d/10-header. For example, to change the LOGO to HELLO, you can change the following line:

TERM=linux toilet -f standard -F metal $BOARD_VENDOR

To:

TERM=linux toilet -f standard -F metal HELLO

5.11 Modify timezone

For exampe, change to Shanghai timezone:

sudo rm /etc/localtime
sudo ln -ls /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5.12 Set Audio Device

If your system has multiple audio devices such as HDMI-Audio, 3.5mm audio jack and I2S-Codec you can set system's default audio device by running the following commands.

  • After your board is booted run the following commands to install alsa packages:
$ apt-get update
$ apt-get install libasound2
$ apt-get install alsa-base
$ apt-get install alsa-utils
  • After installation is done you can list all the audio devices by running the following command. Here is a similar list you may see after you run the command:
$ aplay -l
card 0: HDMI
card 1: 3.5mm codec
card 2: I2S codec

"card 0" is HDMI-Audio, "card 1" is 3.5mm audio jack and "card 2" is I2S-Codec. You can set default audio device to HDMI-Audio by changing the "/etc/asound.conf" file as follows:

pcm.!default {
    type hw
    card 0
    device 0
}
 
ctl.!default {
    type hw
    card 0
}

If you change "card 0" to "card 1" the 3.5mm audio jack will be set to the default device.
Copy a .wav file to your board and test it by running the following command:

$ aplay /root/Music/test.wav

You will hear sounds from system's default audio device.
If you are using H3/H5/H2+ series board with mainline kernel, the easier way is using npi-config


5.13 Run Qt 5.10.0 Demo with GPU acceleration

Run the following command

$ sudo qt5demo

S5pxx18-QtE

5.14 Run Qt 5.10.0 Demo with OpenGL

Run the following command

. setqt5env
cd $QTDIR
cd /examples/opengl/qopenglwidget
./qopenglwidget

For more Qt 5.10.0 examples, please go to:
cd $QTDIR/examples/

5.15 Play HD Video with Hardware-decoding

gst-player is console player, it base on GStreamer, support VPU with Hardware-decoding:

sudo gst-player /home/pi/demo.mp4

The equivalent gsteamer command is as follows:

sudo gst-launch-1.0 filesrc location=/home/pi/demo.mp4 ! qtdemux name=demux demux. ! queue ! faad ! audioconvert ! audioresample ! alsasink device="hw:0,DEV=1" demux. ! queue ! h264parse ! nxvideodec ! nxvideosink dst-x=0 dst-y=93 dst-w=1280 dst-h=533

5.16 Connect to DVP Camera CAM500B

The CAM500B camera module is a 5M-pixel camera with DVP interface. For more tech details about it you can refer to Matrix - CAM500B.
Enter the following command to preview the video:

gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! nxvideosink

Enter the following command to start recording (VPU hardware encoding):

gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! tee name=t t. \
 ! queue ! nxvideosink t. ! queue ! nxvideoenc bitrate=12000000 ! mp4mux ! \
 filesink location=result_720.mp4

5.17 Power Off and Schedule Power On

“PMU Power Management” feature helps us to auto power on the board at a specific time, it is implemented by an MCU, support software power-off, and RTC alarm power-up functions.

Here’s a simple guide:
Turn on automatically after 100 seconds. (Time must be greater than 60 seconds.):

$ sudo echo 100 > /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm

After setting up the automatic boot, turn off board with the 'poweroff’ command:

$ sudo poweroff

Cancel automatic boot:

$ sudo echo 0 > /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm

Query the current settings, in the front is current time, followed by the time of automatic booting: If no automatic boot is set, it will display "disabled”.

$ sudo cat /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm


Note that some older versions of hardware may not support this feature, if you don't see this file node in your system:
/sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm
your board may be it does not support this feature.

5.18 Installing and Using OpenCV 4.1.2

OpenCV has been pre-installed in FriendlyCore (Version after 20191126) and does not require manual installation.
Please refre this link: https://github.com/friendlyarm/install-opencv-on-friendlycore/blob/s5pxx18/README.md
Quick test:

. /usr/bin/cv-env.sh
. /usr/bin/setqt5env-eglfs
cd /usr/local/share/opencv4/samples/python
python3 turing.py

5.19 Installing and Using Caffe

git clone https://github.com/friendlyarm/install-caffe-on-friendlycore
cd install-caffe-on-friendlycore
sudo ./install-caffe.sh

6 Update Log

6.1 2023-01-09

6.1.1 FriendlyCore:

  • optimized the systemd service

6.2 2020-10-26

  • FriendlyCore, Lubuntu:

Fix Bluetooth stability issue

6.3 2019-12-27

  • FriendlyWrt:

Upgrade to OpenWrt r19-snapshot 64bit, support Docker CE

  • eflasher:

1) Supports flashing only some files, such as updating only the kernel and uboot in emmc
2) Added gui option to disable overlay filesystem
3) Add command line parameters to achieve one-click installation without interaction
4) Fix the issue that the same mac address will appear on different devices after backup and restore image
5) UI interface can now be configured with title, hide interface menus and buttons

6.4 2019-11-26

  • FriendlyCore:

Pre-installed OpenCV 4.1.2

6.5 2019-11-14

  • Introducing a new system FriendlyWrt:

FriendlyWrt is a customized OpenWrt system developed by FriendlyElec. It is open source and suitable for applications in IoT, NAS etc.
Please refre: http://wiki.friendlyelec.com/wiki/index.php/How_to_Build_FriendlyWrt

  • FriendlyCore, Lubuntu updated as follows:

1) Added support for new 4.3-inch screen YZ43
2) Compile bcmdhd as a module.

  • Android7 update is as follows:

1) Added support for new 4.3-inch screen YZ43
2) Optimize the touch experience when using HD900 screen under Android 7 system

6.6 2019-10-18

  • Android7, FriendlyCore, Lubuntu:

Fixed audio playback issue.

6.7 2019-09-30

  • Android7 updated as follows:

1)Added support for Android hardware access library (named FriendlyThing), support access to hardware resources such as GPIO, PWM, RTC, serial port and watchdog, providing open source demo
2) Added support for camera CAM500B (OV5640)
3) Added support for LCD W500 (800x480)
4) Fixed LCD-S430 compatibility issues

  • FriendlyCore, FriendlyDesktop updated as follows:

1) Kernel version updated to v4.4.172, same as Android 7
2) Added Docker support, support 32bit and 64bit file systems
3) Kernel configuration items are optimized to enable more features and device drivers

6.8 2019-07-18

  • Introducing a new system Android 7.1.2

1) Features similar to the old version of Android 5, support 4G, WiFi, Ethernet, Bluetooth, etc.
2) Kernel version: 4.4.172
3) Known issue: The camera is not working yet

  • Android/FriendlyCore/Lubuntu updated as follows:

1) Fix an issue where HD101B can't be touched in some cases
2) Fix GPIO configuration of Power key
3) Solve the problem of too small volume: the volume of the DAC is changed from -20dB to -6dB during playback.
4) Add more models of USB Wi-Fi support, built-in driver rtl8821CU.ko, rtl88XXau.ko

  • Updates for Lubuntu only:

1) Modify Lubuntu's Power key behavior to (without pop-ups) shut down directly
2) Add script xrotate.sh to simplify screen rotation settings (Note: screen rotation will lose performance)

  • The following updates are only available for NanoPC T3/T3+, Smart6818:

Support for reading Ethernet Mac addresses from the onboard EEPROM, only supports the following systems: FriendlyCore, Lubuntu, Android7

6.9 2019-06-25

Linux(Ubuntu 16.04/18.04) uses OverlayFS to enhance filesystem stability.

6.10 2019-06-03

1) Configure LED1 to be in heartbeat mode
2) Fix HDMI 1080P may have no display problem in some cases
3) Fix the issue that mysql cannot be installed under Linux
4) Fix the issue that the 1-wire touch resistance screen cannot be used under lubuntu

6.11 2019-01-24

1) Update uboot-v2014.07, uboot-v2016.01 for HD702V LCD
2) Adjust Qt5 font path

6.12 2018-12-17

  • Android5 updated as follows:

1) Add support for 4G network, support module: Quectel EC20
2) Add audio setting UI, you can set the default output to headphones or HDMI
3) Synchronously turn off the backlight of the one-line touch screen when the system Shutdown

  • FriendlyCore updated as follows:

1) Add OV5640 camera support
2) Update BL1 to improve system startup stability

  • Lubuntu updated as follows:

1) Add Chrome-browser browser, support web page 1080P hardware decoding, support WebGL
2) Set the audio output channel to HDMI by default (can be changed via /etc/asound.conf)
3) Update BL1 to improve system startup stability
4) Fixed some issues regarding the package error in the previous version
5) Adjust DPMS settings, turn off automatic sleep by default

6.13 April-28-2016

  • Released English version

6.14 June-30-2016

  • Added sections 5.2.4 and 8

6.15 Sep-27-2016

  • Added section 9
  • Updated sections 5.2.2 and 8.2

6.16 Nov-2-2016

  • Updated sections 6.4 and 11

6.17 June-20-2017

  • Updated sections 6.2 and 6.3: wireless connection and setting up WIFI AP
  • Updated section 8.4.1: added compiling kernel for UbuntuCore
  • Added section 3: software features
  • Added section 7: UbuntuCore
  • Added section 9.5: LCD support

6.18 March-28-2018

  • Updated sections 6.10