FriendlyARM NanoPi M1

Jump to: navigation, search
FriendlyARM NanoPi M1
NanoPi M1 3.jpg
Manufacturer FriendlyARM
Dimensions 64mm x 56mm
Release Date March 2016
Website NanoPi M1 Product Page
SoC H3 @ 1.2Ghz
DRAM 512MiB (K4B2G1646D-BCK0) or 1GiB (K4B4G1646D-BCK0) DDR3
Power DC 5V @ 2A via microUSB or pin headers
Audio microphone, stereo line-out, I²S and S/PDIF on pin headers
Network 10/100Mbps Ethernet (H3 built-in PHY)
Storage µSD
USB 3 USB2.0 Host, 1 USB2.0 OTG

This page needs to be properly filled according to the New Device Howto and the New Device Page guide.



Almost square board, blue soldermask, ⌀3mm mounting holes in the corners. 3 x USB type-A, Ethernet jack (with integrated magnetics) and four-pin header for UART/power near one of the edges. Sticker indicating amount of RAM is placed on the lower PCB side.

On the top side of the board, next to H3 SoC, the following is silkscreened:


(on LinkSprite's OEM variant 'pcDuino4 nano' can be read instead)

Sunxi support

Current status

The H3 chipset support for NanoPi M1 has been included in mainline kernels since 4.2. Most of the board functionality works out of the box, but support for many features has been added rather recently, which means that a fairly recent kernel version is required. Some features (hw accelerated crypto, graphics/video features, thermal, and DVFS) are still being worked on. For a more comprehensive list of supported features, see the status matrix for mainline kernels. In addition, legacy 3.4 kernels are available in various work-in-progress git branches.

See the Manual build section for more details.

NanoPi M1 shares nearly all hardware details with Orange Pi PC (same number of USB ports) and Orange Pi One (same voltage regulator). Besides the differences regarding camera connector and pins available on the GPIO header pretty similar to Orange Pi PC. Detailed device information can be found on FriendlyArm wiki.


FriendlyARM's and 3rd partie's OS images can be found here. Armbian images with more recent u-boot and kernel versions can be found here.


FriendlyARM provides a BSP based on a newer Allwinner 3.4.39 variant on Github.

Manual build

You can build things for yourself by following our Manual build howto and by choosing from the configurations available below.


Mainline U-Boot

Use the orangepi_pc build target (supported since v2016.01) unless nanopi_m1 target is available build target. The U-Boot repository and toolchain is described in the Mainline U-Boot howto.

The H3 boards can boot from SD, eMMC, NAND or NOR flash (if available), and via FEL using the OTG USB port. In U-Boot, loading the kernel is also supported from USB or ethernet (netboot). HDMI support in U-Boot is still WIP.

Linux Kernel

Sunxi/Legacy Kernel

The 3.4 kernel from the official Allwinner's git repository does not support H3 yet. But it is possible to use one of the kernel forks, based on the lichee H3 SDK tarball:

Configure this kernel using sun8i_h3_defconfig, the rest is explained in the kernel compilation guide.

Use the .fex file for generating script.bin. The .fex file is available from xunlong_orange_pi_pc.fex.

When booting the legacy 3.4 kernel with the mainline U-Boot, add the following line to boot.cmd:

  setenv machid 1029
  setenv bootm_boot_mode sec

Some other legacy kernel repositories:

Mainline kernel

The H3 SoC is supported by the mainline kernels. For cpufreq, thermal, and HDMI audio support a) third party patches or b) a pre-patched distro (e.g. Armbian) is still needed (cpufreq support will appear in 4.18). A number of features have stabilized only recently (Ethernet in 4.15 HDMI in 4.17), so make sure you're running a recent kernel if these features are needed.

The development process, links to patches and links to kernel fork repositories are listed on the Linux mainlining effort page. Patches can also be found from the arm-linux mailing list.

Repositories with H3 patches:

Use the sun8i-h3-nanopi-m1.dtb device-tree binary.

Tips, Tricks, Caveats

FEL mode

No FEL button. The device falls into FEL mode when no SD card is inserted.


The board has two LEDs, mounted on the top side next to the audio jack:

  • A red LED, labelled "PWR", connected to the PL10 pin and to 3.3V via weak pull-up, thus being able to represent three states:
    • full brightness when GPIO is set to output high
    • reduced brightness when GPIO is set to high impedance state
    • turned off when GPIO is set to output low.
  • A blue LED, labelled "STAT", connected to the PA10 pin.

Voltage regulators / heat

NanoPi M1 uses the same voltage regulator as Orange Pi One/Lite switching between 1.1V and 1.3V (SY8113B datasheet). Unlike the Xunlong boards which contain a thick copper layer inside the PCB to spread heat away from the SoC FriendlyARM chose a different design. This and maybe the smaller PCB size lead to higher temperatures compared to Orange Pis and in case you want to operate the M1 under constant high load think about adding a heatsink

Locating the UART

NanoPi NEO UART pins

Four-pin UART0 header is placed next to 40 pin GPIO header. Pinout: GND, 5V, TX, RX. Pin 1 (GND) is the one next to Micro USB connector. Logic voltage is 3.3V. For more instructions refer to our UART Howto.



  • FriendlyARM did the pcDuino4 nano as OEM for Linksprite which will be sold starting in September 2016. According to cnxsoft both models are compatible.

See also

Manufacturer images

Personal tools