Nano Pi Fire 3
Aliased from Fire3

NanoPi Fire3 (click to enlarge)

The NanoPi Fire3 is a 7.5cm x 4cm Single Board Computer (SBC) which hosts a 1.4GHz Octa-Core Cortex-A53 with 1GB DDR3 RAM, with its CPU being a Samsung S56818 SoC. The Fire3 has a CMOS interface to support cameras, 40-Pin GPIO, MicroHDMI, RGB LCD Connector, and Gbps Ethernet.

It can run FriendlyCore, Debian, Android and Armbian.

Given it is only slightly larger than a Raspberry Pi Zero but hosts a 1.4GHz 8-core CPU, it's one of the more powerful small "Raspberry Pi compatible" SBCs available. As for true compatibility, see below.

The Fire3 has been tested by the NZPRG using the Armbian and Ubuntu operating systems. We recommend Armbian.

Note that when using Armbian, the armbian-config utility can be used to set most system configuration, including a static IP address.

Raspberry Pi Compatibility#

The GPIO pins are configured differently to the Raspberry Pi so that Pi hats and devices that connect directly to the GPIO pins won't necessarily work (notably I²C devices). This can be worked around, see below under Fire3 GPIO Pinout.

Specifications#

NanoPi Fire3 (click to enlarge)

Fire3 GPIO Pinout#

While it claims to be, the Fire3's GPIO is actually not compatible with the Raspberry Pi, notably the I²C bus is different. Most I²C software on the Pi uses pins 3 and 5, which are assigned to I²C bus #1, whereas on the Fire3 those two pins are assigned to bus #0.

On the Fire 3 I²C Bus #1's SDA and SCL pins are pins 27 and 28 respectively rather than pins 3 and 5 as on the Raspberry Pi, so if you get your 3.3v and ground from somewhere on the GPIO bus and SDA and SCL from pins 27 and 28 you can use Pi I²C devices without resorting to altering Python library code (as most seem hard-coded on bus 1, a generally safe assumption).

Grumble...
Why FriendlyArm (who make the Fire3) and Orange Pi alter the locations of their I²C bus pins and still claim Raspberry Pi GPIO compatibility is a bit of a mystery. Sadly, on the Orange Pi there are no extant pins for I²C bus #1 at all. There may be some way of initialising a new bus in software and reassigning pins to be compatible with the Pi but that's beyond me (or my interest, frankly).

Pin # Name Pin # Name
1 SYS_3.3V 2 VDD_5V
3 I²C0_SDA 4 VDD_5V
5 I²C0_SCL 6 DGND
7 GPIOD8/PPM 8 UART3_TXD/GPIOD21
9 DGND 10 UART3_RXD/GPIOD17
11 UART4_TX/GPIOB29 12 GPIOD1/PWM0
13 GPIOB30 14 DGND
15 GPIOB31 16 GPIOC14/PWM2
17 SYS_3.3V 18 GPIOB27
19 SPI0_MOSI/GPIOC31 20 DGND
21 SPI0_MISO/GPIOD0 22 UART4_RX/GPIOB28
23 SPI0_CLK/GPIOC29 24 SPI0_CS/GPIOC30
25 DGND 26 GPIOB26
27 I²C1_SDA 28 I²C1_SCL
29 GPIOC8 30 DGND
31 GPIOC7 32 GPIOC28
33 GPIOC13/PWM1 34 DGND
35 SPI2_MISO/GPIOC11 36 SPI2_CS/GPIOC10
37 AliveGPIO3 38 SPI2_MOSI/GPIOC12
39 DGND 40 SPI2_CLK/GPIOC9


Tags:  Fire 3