NanoPi NEO Plus2

From FriendlyARM WiKi
Jump to: navigation, search



  • The NanoPi NEO Plus2 is another Allwinner based ARM board developed by FriendlyElec. It uses Allwinner's 64-bit quad-core A53 SoC with hexa-core Mali450 GPU and features 1GB of DDR3 RAM and 8GB eMMC.
  • With a small size of only 40 x 52mm the NanoPi NEO Plus2 has rich on-board resources: AP6212A WiFi & Bluetooth module, Gbps Ethernet and two USB hosts. It supports system-boot from a MicroSD card.
  • The NanoPi NEO Plus2 has a carefully designed power system and 6-layer PCB layout. These features enhance the board's heat dissipation.
  • The NanoPi NEO Plus2 meets popular IOT applications requirements for small size, high-speed and large throughput data transmission and high performance computing.

Hardware Spec

  • CPU: Allwinner H5,Quad-core 64-bit high-performance Cortex A53
  • DDR3 RAM:1GB
  • Storage: 8GB eMMC
  • Network: Gbps Ethernet
  • WiFi: 802.11b/g/n
  • Bluetooth: 4.0 dual mode
  • USB Host: 2 x Independent USB Host
  • MicroSD Slot: 1 x Slot. It supports system booting or is used to hold a storage card
  • Audio Input/Output: 5-Pin, 2.0mm pitch pin-header
  • MicroUSB: power input
  • Debug Serial: 4Pin, 2.54mm pitch pin-header
  • GPIO1:24Pin, 2.54mm pitch double-row pin-header containing UART, SPI, I2C and IO
  • GPIO2:12Pin, 2.54mm pitch pin-header containing USB, IR receiver,I2S and IO
  • Power Supply: DC 5V/2A
  • PCB Dimension: 40 x 52mm
  • PCB Layer: 6-Layer

Software Features


  • mainline kernel: Linux-4.x.y
  • UbuntuCore 16.04
  • 64-bit OS
  • supports FriendlyElec’s BakeBit Kit
  • supports FriendlyElec’s NanoHAT OLED
  • pre-installed FriendlyElec’s NanoHAT Motor Python Library
  • pre-installed WiringPi for GPIO access
  • pre-installed RPi.GPIO for GPIO access
  • npi-config: system configuration utility for setting passwords, language, timezone, hostname, SSH and auto-login.
  • networkmanager: a network utility to manage networking
  • auto-login with user account "pi" with access to npi-config
  • supports Gbps Ethernet
  • supports WiFi and Bluetooth
  • supports FriendlyElec's FA-CAM202 USB camera
  • supports audio recording and playing

Debian for NAS Dock

  • supports FriendlyElec’s NAS Dock
  • pre-installed OpenMediaVault

Diagram, Layout and Dimension


NanoPi NEO Plus2 Layout
  • GPIO Pin Description
Pin# Name Linux gpio Pin# Name Linux gpio
1 SYS_3.3V 2 VDD_5V
3 I2C0_SDA / GPIOA12 12 4 VDD_5V
5 I2C0_SCL / GPIOA11 11 6 GND
7 GPIOG11 203 8 UART1_TX / GPIOG6 198
9 GND 10 UART1_RX / GPIOG7 199
11 UART2_TX / GPIOA0 0 12 GPIOA6 6
13 UART2_RTS / GPIOA2 2 14 GND
15 UART2_CTS / GPIOA3 3 16 UART1_RTS / GPIOG8 200
17 SYS_3.3V 18 UART1_CTS / GPIOG9 201
19 SPI0_MOSI / GPIOC0 64 20 GND
21 SPI0_MISO / GPIOC1 65 22 UART2_RX / GPIOA1 1
23 SPI0_CLK / GPIOC2 66 24 SPI0_CS / GPIOC3 67
  • USB/Audio/IR Pin Description
NanoPi NEO Plus2
Pin# Name Description
1 VDD_5V 5V Power Out
2 USB-DP1 USB1 DP Signal
3 USB-DM1 USB1 DM Signal
4 USB-DP2 USB2 DP Signal
5 USB-DM2 USB2 DM Signal
6 GPIOL11 / IR-RX GPIOL11 or IR Receive
8 PCM0_SYNC / I2S0_LRC I2S / PCM Sample Rate Clock/Sync
9 PCM0_CLK / I2S0_BCK I2S / PCM Sample Rate Clock
10 PCM0_DOUT / I2S0_SDOUT I2S / PCM Serial Data Output
11 PCM0_DIN / I2S0_SDIN I2S / PCM Serial Data Input
12 GND 0V
  • Audio
Pin# Name Description
1 MICIN1P Microphone Positive Input
2 MICIN1N Microphone Negative Input
3 LINEOUTR LINE-OUT Right Channel Output
4 GND 0V
5 LINEOUTL LINE-OUT Left Channel Output
  • Debug Port(UART0)
Pin# Name
2 VDD_5V
  1. SYS_3.3V: 3.3V power output
  2. VVDD_5V: 5V power input/output. The input range is 4.7V ~ 5.6V
  3. All pins are 3.3V, output current is 5mA
  4. For more details refer to the document: NanoPi-NEO-Plus2-1704-Schematic.pdf

Dimensional Diagram


For more details refer to: [Dimensions_NanoPi-NEO-Plus2-1704]

Get Started

Essentials You Need

Before starting to use your NanoPi NEO Plus2 get the following items ready:

  • NanoPi NEO Plus2
  • microSD Card/TFCard: Class 10 or Above, minimum 8GB SDHC
  • microUSB power. A 5V/2A power is a must
  • A Host computer running Ubuntu 16.04 64 bit system

TF Cards We Tested

To make your NanoPi NEO Plus2 boot and run fast we highly recommend you use a Class10 8GB SDHC TF card or a better one. The following cards are what we used in all our test cases presented here:

  • SanDisk TF 8G Class10 Micro/SD TF card:

SanDisk MicroSD 8G

  • SanDisk TF128G MicroSDXC TF 128G Class10 48MB/S:

SanDisk MicroSD 128G

  • 川宇 8G C10 High Speed class10 micro SD card:

chuanyu MicroSD 8G

Install OS

Get Image Files

Visit this link download link to download image files(under the "official-ROMs" directory) and the flashing utility(under the "tools" directory):

Image Files: FriendlyCore (base on UbuntuCore) Image File, kernel:Linux-4.x NAS image file, kernel:Linux-4.x, for 1-bay NAS Dock OLED image file, kernel:Linux-4.x, for NanoHat OLED eflasher image file, kernel:Linux-4.x
Flash Utility:
win32diskimager.rar Windows utility for flashing Debian image. Under Linux users can use "dd"


Boot from TF
  • FriendlyCore / Debian / Ubuntu are all based on a same Linux distribution and their installation methods are the same.
  • Extract the Linux image and win32diskimager.rar files. Insert a TF card(at least 8G) into a Windows PC and run the win32diskimager utility as administrator. On the utility's main window select your TF card's drive, the wanted image file and click on "write" to start flashing the TF card.
  • Insert this card into your board's BOOT slot and power on (with a 5V/2A power source). If the PWR LED is on and the STAT LED is blinking this indicates your board has successfully booted.
Boot from eMMC
  • Extract the eflasher Image and win32diskimager.rar files. Insert a TF card(at least 4G) into a Windows PC and run the win32diskimager utility as administrator. On the utility's main window select your TF card's drive, the wanted image file and click on "write" to start flashing the TF card.
  • Insert this card into your board's BOOT slot and power on (with a 5V/2A power source). If the green LED is on and the blue LED is blinking this indicates your board has successfully booted.
  • Connect the board to an HDMI monitor or an LCD and a USB mouse, and select an OS to start installation.

If no monitor is connected you can select an OS by running the following command:

$ su root
$ eflasher

The password for "root" is "fa".Type a number and enter to select an OS, then type "yes" and enter to start installation:
After installation is done shutdown the system, take out the TF card, power on your board again and it will boot from eMMC.

Work with FriendlyCore


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 Qt5.9 EGLES and OpenGL ES1.1/2.0 (Only for S5P4418/S5P6818)

FriendlyCore's User Accounts

  • 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 allow you to operate the board via a serial terminal.Here is a setup where we connect a board to a PC via the PSU-ONECOM and you can power on your board from either the PSU-ONECOM or its MicroUSB:

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:

  • FriendlyCore User Accounts:

Non-root User:

   User Name: pi
   Password: pi


   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

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:

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


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

  • Check device list
sudo 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
sudo nmcli r wifi on
  • Scan Surrounding WiFi Sources
sudo nmcli dev wifi
  • Connect to a WiFi Source
sudo nmcli dev wifi connect "SSID" password "PASSWORD"

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

  • Use USB WiFi

Our OS system has support for popular USB WiFi drivers. Many USB WiFi modules are plug and play with our system. Here is a list of models we tested;

Number Model
1 RTL8188CUS 802.11n WLAN Adapter
2 RT2070 Wireless Adapter
3 RT2870/RT3070 Wireless Adapter
4 RTL8192CU Wireless Adapter
5 mi WiFi mt7601

Setup Wi-Fi Hotspot

If your board has an onboard AP6xxx IC run the following command to enter AP mode:

sudo turn-wifi-into-apmode yes

You will be prompted to type your WiFi hotspot's name and password and then proceed with default prompts.
After this is done you will be able to find this hotspot in a neadby cell phone or PC. You can login to this board at

ssh root@

When asked to type a password you can type "fa".

To speed up your ssh login you can turn off your wifi by running the following command:

sudo iwconfig wlan0 power off

To switch back to Station mode run the following command:

sudo turn-wifi-into-apmode no

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


If your board has an onboard bluetooth module you can search for surrounding bluetooth devices by running the following command:

hcitool scan

You can run "hciconfig" to check bluetooth's status.

Playing Audio

You can play an audio file by running the following command:

aplay -t raw -c 2 -f S16_LE -r 44100 /root/test.pcm

HDMI Audio Output

Our system's default audio output is the 3.5mm audio jack. You can turn on the HDMI audio by editing the /etc/asound.conf file:

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

card 0 points to the 3.5mm audio jack and card 1 points to the HDMI audio. You need to save your changes and reboot your system to make your changes take effect.

Connect to USB Camera(FA-CAM202)

The FA-CAM202 is a 200M USB camera.
Refer to this link for more details on how to connect to a FA-CAM202: Connect NanoPi M1 to DVP Camera CAM500B

Develop Qt Application

Please refer to: How to build Qt application

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.

Run Qt Demo

Run the following command

$ sudo /opt/QtE-Demo/

Here is what you expect to observe. This is an open source Qt Demo:

Record and Play Audio File

The NanoPi NEO Plus2 has an audio interface: 2.0mm pitch 5-pin pin-header:

Pin# Name Description
1 MICIN1P Microphone Positive Input
2 MICIN1N Microphone Negative Input
3 LINEOUTR LINE-OUT Right Channel Output
5 LINEOUTL LINE-OUT Left Channel Output

Here is a hardware setup for connecting an audio device to a NanoPi NEO Plus2:
Make sure an audio device is connected to your NEO Plus2 and then you can test audio recording and playing by running the following commands.
Check audio devices:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sun50iw2codec-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Play Audio Files:

$ aplay /root/Music/test.wav -D plughw:0

Record Audio:

$ arecord -f cd -d 5 test.wav

Make Your Own FriendlyCore

Use Mainline BSP

The NanoPi NEO Plus2 has gotten support for a 64-bit kernel: Linux-4.x.y with Ubuntu Core 16.04. For more details about how to use mainline u-boot and Linux-4.x.y refer to :Mainline U-boot & Linux


Schematics and Datasheets

Update Log


  • Released English Version