Friendly Arm NanoPi M4: A Comprehensive Overview

Friendly Arm NanoPi M4: A Comprehensive Overview

NanoPi M4 is an ARM board based on the RK3399 SoC. It has the same form factor as the RPi B3+ and has ports and interfaces compatible with the RPi B3+. With a compact board measuring 85 x 56 mm, it is rich in hardware resources. These features make it a good platform for rapid product prototyping and various applications.
NanoPi M4 features an onboard 2.4G and 5G dual-band WiFi + Bluetooth 4.1 combo wireless module, four USB 3.0 Type A host ports, one Gbps Ethernet port, one HDMI 2.0 Type A port, one 3.5mm audio jack, and one Type-C port. Additionally, it also has a 40-pin connector compatible with RPi, dual MIPI-CSI camera interfaces, PCIe x2, USB2.0 x2, eMMC slot, RTC port, etc.
NanoPi M4 has two RAM options: 4GB LPDDR3 and 2GB DDR3. Both can boot from TF card or external eMMC module.
NanoPi M4 supports Ubuntu Desktop 18.04 (64-bit) with GPU and VPU acceleration features, Lubuntu 16.04 (32-bit), Ubuntu Core 18.04 (64-bit), Android 7.1, and Lubuntu Desktop. With these rich resources and powerful performance, it can be widely used in applications such as machine learning, artificial intelligence, deep learning, robotics, industrial control, industrial cameras, advertising machines, game consoles, blockchain, etc.

Friendly Arm NanoPi M4: A Comprehensive Overview

Hardware Specifications

SoC: Rockchip RK3399

CPU: big.LITTLE, dual-core Cortex-A72 (up to 2.0GHz) + quad-core Cortex-A53 (up to 1.5GHz)

GPU: Mali-T864 GPU, supports OpenGL ES1.1 / 2.0 / 3.0 / 3.1, OpenCL, DX11, and AFBC

VPU: 4K VP9 and 4K 10-bit H265 / H264 60fps decoding, dual VOP, etc.

PMU: RK808-D PMIC, works with independent DC / DC for DVFS, software power-off, RTC wake-up, system sleep mode

Memory: Dual-channel 4GB LPDDR3-1866 or dual-channel 2GB DDR3-1866

Flash: No onboard eMMC, but has eMMC slot

Ethernet: Native Gigabit Ethernet

Wi-Fi / BT: 802.11a / b / g / n / ac, Bluetooth 4.1, Wi-Fi and Bluetooth combo module, 2×2 MIMO, dual antenna interface

Video Input: One or two 4-channel MIPI-CSI, dual ISP, up to 13MPix/s, supports simultaneous input of dual camera data

Video Output

HDMI: HDMI 2.0a, supports 4K @ 60Hz, HDCP 1.4 / 2.2

One 4-channel MIPI-DSI

Audio Output: 3.5mm dual-channel headphone jack or HDMI

Audio Input: One microphone input interface

USB 3.0: Four USB 3.0 Type-A ports

USB Type-C: Supports USB2.0 OTG and power input

microSD Slot x 1

40Pin GPIO Expansion Port

Three 3V / 1.8V I2C, up to one 3V UART, one 3V SPI, one SPDIF_TX, up to eight 3V GPIO

One x 1.8V 8-channel I2S

24Pin Expansion Port:

Two independent native USB 2.0 hosts

PCIe x2

PWM x1, PowerKey

Debugging: One debugging UART, 4-pin 2.54mm header, 3V level, 1500000bps

LED: One power LED and one GPIO controlled LED

RTC Battery: 2-pin 1.27 / 1.25mm RTC battery input connector

Power: DC 5V / 3A

PCB: 8 layers, 85mm x 56mm

Operating Temperature: -20℃ to 70℃

Friendly Arm NanoPi M4: A Comprehensive Overview

Quick Start

Preparation

To start your NanoPi-M4, please prepare the following hardware:

  1. NanoPi-M4 mainboard

  2. Type-C data cable

  3. TF card: Class10 or above 8GB microSD card

  4. USB to serial adapter (optional, for debugging or operation on PC)

  5. A 5V/3A or higher power adapter

  6. A display or TV that supports HDMI input (or purchase LCD accessories)

  7. A set of USB keyboard and mouse, a USB hub is needed when connecting more USB devices

  8. A computer that needs to be connected to the internet, preferably using Ubuntu 18.04 64-bit system

Quick Boot from SD Card

First, visit the official website to download the required firmware files:

You need to prepare an 8G or larger SDHC card, and the existing data on the card will be destroyed, so please back up the data on the SD card first.

Image Files
rk3399-sd-buildroot-linux-4.4-arm64-YYYYMMDD.img.zip Buildroot firmware, based on Rockchip Linux SDK, with Qt5-wayland graphical interface
rk3399-sd-friendlydesktop-bionic-4.4-arm64-YYYYMMDD.img.zip FriendlyDesktop desktop firmware, based on Ubuntu 18.04 64-bit, with LXDE graphical desktop
rk3399-sd-friendlycore-bionic-4.4-arm64-YYYYMMDD.img.zip FriendlyCore system firmware (integrated with Qt 5.10.0), based on Ubuntu core
rk3399-sd-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip Lubuntu desktop firmware, comes with X Window graphical interface
Flash Utility:
win32diskimager.rar Windows utility. Under Linux, users can use “dd”

Extract the firmware and flashing tool separately, insert the SD card (limited to 8G and above) under Windows, run win32diskimager tool as administrator, select your SD card drive letter in the win32diskimager tool interface, select the system firmware you want to flash, and click the Write button to flash.

When the SD card is finished, eject the SD card and insert it into the slot, power it on to boot.

The Android system does not support booting from the SD card. If you need to run the Android system, please purchase the eMMC accessory, and then refer to the following chapters to flash the Android system to eMMC for operation.

Serial Debugging

If you want to see more detailed information when the NanoPi-M4 starts or control it more directly, it is recommended to connect and use the debugging serial port.

Use the prepared USB to serial adapter and connection cable (to be purchased separately) to connect the development board:

Pin# Development Board Debugging Serial Port USB to Serial Adapter
1 GND GND
2 VCC5V0_SYS NC (not connected) Note: For Matrix USB2UART adapter, switch 5V ON/OFF to OFF
3 UART2DBG_TX RX
4 UART2DBG_RX TX
Connect the USB to serial adapter to PC Linux, it will usually be recognized as ttyUSB0, or use the following command to determine the device name:
 dmesg | grep ttyUSB
 ls -l /dev/ttyUSB*
Install minicom on PC Linux, run minicom, configure the serial device and parameters (1500000 Bps, 8N1, no flow control)
 sudo apt-get install minicom
 minicom -s

Note: The default baud rate for RK3399 debugging serial port is 1500000, some adapters may not reach this rate, and there may be exceptions (such as garbled characters) due to USB extension cables or connecting to USB hubs, check and replace if necessary.

Using FriendlyDesktop

NanoPi M4 supports running various systems including Ubuntu Desktop 18.04 (64-bit), Lubuntu 16.04 (32-bit), Ubuntu Core 18.04 (64-bit), Android 7.1, etc., here we recommend usingFriendlyDesktop.
Friendly Arm NanoPi M4: A Comprehensive OverviewFriendlyDesktop is a lightweight Ubuntu desktop system. It is based on LXDE and has the following features:
Latest Version – Built on Ubuntu 18.04 64-bit system.
Easy to Develop – Compatible with features of FriendlyCore, integrated with optimized Qt5.10, QtCreator, and Arduino IDE.Lightweight – Requires very few CPU resources for smooth operation, and performs particularly well when memory capacity is sufficient.Energy Efficient – It requires fewer resources to run the same tasks compared to other common systems.Simple Beauty – With GTK+ 2, it has a beautiful, internationalized user interface.Easy to Use – Provides users with an application list similar to Microsoft Windows.Customizability – Users can easily customize the appearance of LXDE.Standard Compatibility – Compatible with freedesktop.org standards.FriendlyDesktop for the Friendly Electronics RK3399 platform has optimized support for Mali GPU and VPU, with integrated X.org drivers in the system, supporting Hardware Cursor, OpenGL graphics acceleration, etc., and supporting 4K hardware video playback.

Use Qt Hardware Decoder to Play 4K Video

FriendlyDesktop comes pre-installed with the Qt player Qt5-VideoPlayer, which has been adapted to Rockchip’s gstreamer plugin, supporting hardware decoding of 4K video. To start the player: open the menu Sound & Video on FriendlyDesktop, click Qt5-VideoPlayer. In the player interface, click the Open button in the lower left corner to load a video file into the right playback list, double-click the file in the playback list to start playing. The interface of the player is shown below, you can set full-screen playback and adjust the volume:

Friendly Arm NanoPi M4: A Comprehensive Overview

Open the command line terminal and enter the following command to test:

gst-player.sh

The default audio will output to the headphone jack, you can use which gst-player.sh to find the location of this script and customize its playback behavior.

The Wheel Fire Team, Professional Development Board Sales Service Provider

Leave a Comment