Sinovoip BananaPi BPi-R3 mini

FIXME This page is still incomplete, incomplete sections usually start with a “fix me”

Bananapi BPi-R3 mini board

  • Two 10M/100M/1G/2.5G capable RJ45 ports, directly connected to SOC.
  • PCIe 3.0x2 Key-M M.2 slot for NVMe SSD (or additional WiFi in Key-A/E to Key-M adapter)
  • USB 3.0 only Key-B M.2 slot with SIM card slot for cellular modem (no PCIe lanes on the Key-B M.2 slot!)

Please see the user manual provided by SinoVoip to understand the hardware switches selecting the available storage devices, and which device to boot from.

The required files for installation on stock OEM can be found here: https://firmware-selector.openwrt.org/?target=mediatek%2Ffilogic&id=bananapi_bpi-r3-mini

Refer to the Photos section → 'NAND/eMMC BOOT Switch' to switch between SPI or NAND

BEFORE YOU CONTINUE: Power off your device and set boot switch to boot from SPI-NAND (assuming stock rom or immortalwrt running there)

  1. After switching to SPI-NAND, power up your device
  2. Connect to your LAN port (closest to USB-C power connector) and SCP openwrt-*-r3-mini-emmc-gpt.bin into your device's /tmp directory
  3. SSH into your device as root
  4. Write the GPT partition table to eMMC /dev/mmcblk0 partition using the file we just sent via SCP:
    dd if=/tmp/openwrt-*-r3-mini-emmc-gpt.bin of=/dev/mmcblk0
  5. Reboot (to reload partition table)
  6. SCP the following files to /tmp directory:
    openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin
    openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip
    openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
    openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
  7. Once again SSH into your device as root
  8. Write the bootloader and OpenWrt images, write them to the appropriate partitions:
    echo 0 > /sys/block/mmcblk0boot0/force_ro
    dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin of=/dev/mmcblk0boot0
    dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip of=/dev/mmcblk0p3
    dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb of=/dev/mmcblk0p4
    dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb of=/dev/mmcblk0p5
    sync
  9. Remove the device from power, set boot switch back to eMMC
  10. Power your device, let OpenWrt boot up, the device will come up with IP 192.168.1.1 and assume the Ethernet port closer to the USB-C power connector as LAN port, ssh into it and set your device.
  11. (OPTIONAL) If you'd like to have Ethernet support inside U-Boot (eg. to boot via TFTP) you also need to write the PHY firmware to /dev/mmcblk0boot1:
    echo 0 > /sys/block/mmcblk0boot1/force_ro
    dd if=/lib/firmware/airoha/EthMD32.dm.bin of=/dev/mmcblk0boot1
    dd if=/lib/firmware/airoha/EthMD32.DSP.bin bs=16384 seek=1 of=/dev/mmcblk0boot1

This method ISN'T RECOMMENDED, it's recommended to leave the SPI-NAND alone and use the eMMC for the other OS

BEFORE YOU CONTINUE: Set boot switch to boot from eMMC (assuming OpenWrt is installed there by instructions above. Using stock rom or immortalwrt does NOT work!)

1. Write things to NAND

Move files to the device /tmp using scp:

openwrt-*-bananapi_bpi-r3-mini-snand-preloader.bin
openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb

2. Write them to the appropriate locations:

mtd write /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-preloader.bin /dev/mtd0
ubidetach -m 1
ubiformat /dev/mtd1
ubiattach -m 1
volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip)
ubimkvol /dev/ubi0 -N fip -n 0 -s $volsize -t static
ubiupdatevol /dev/ubi0_0 /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
cd /lib/firmware/airoha
cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static
ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
ubimkvol /dev/ubi0 -n 2 -N ubootenv -s 126976
ubimkvol /dev/ubi0 -n 3 -N ubootenv2 -s 126976
volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb)
ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
ubiupdatevol /dev/ubi0_4 /tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb)
ubimkvol /dev/ubi0 -n 5 -N fit -s $volsize
ubiupdatevol /dev/ubi0_5 /tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb

3. Remove the device from power, set boot switch to NAND, power up and boot into OpenWrt.


P.S.: in case write to MTD results in error, apply the following:

insmod mtd-rw.ko i_want_a_brick=1


P.P.S.: If after NAND flashing to 24.10.0-rc2 and trying flash using TFTP you got an error like this:

Volume en8811h-fw not found! 
[Airoha] read firmware from UBI failed. 
EN8811H load firmware fail.

Please change this in the instruction above:

ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static

to:

ubimkvol /dev/ubi0 -N en8811h-fw -n 1 -s 147456 -t static

FIXME Incomplete Flash Layout

Banana Pi BPi-R3 SPI-NAND Mini Flash Layout
Layer0 eMMC (KIOXIA THGBMJG6C1LBAIL 3.3V) 8GB
Layer1
mountpoint / /rom
filesystem OverlayFS SquashFS
Size in KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB
Banana Pi BPi-R3 eMMC Mini Flash Layout
Layer0 NAND flash memory chip (Winbond 25N01GVZEIG 2.7-3.6V 8-bit SLC) 128 MiB
Layer1
mountpoint / /rom
filesystem OverlayFS SquashFS
Size in KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB ? KiB

Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.

The default network configuration is:

Interface Name Description Default configuration
br-lan LAN & WiFi 192.168.1.1/24
eth0 LAN port None
eth1 WAN port DHCP
phy0 WiFi 2.4Ghz Disabled
phy1 WiFi 5Ghz Disabled
Port Switch port Notes
CPU ? No Switch
WAN N/A No Switch
LAN N/A No Switch

FIXME Data for 4G LTE and SSD LEDs is missing

How to configure LEDs in general, see the LED section in the led_configuration.

The Banana Pi BPi-R3 Mini has 6 front LEDs:

LED name LED print Internal name Trigger Added information
Power PWR N/A N/A .
System SYS green:status ? Isn't set by default
Wifi 2G W2G blue:wlan-1 netdev .
Wifi 5G W5G blue:wlan-2 netdev .
4G LTE LTE ? ? .
SSD SSD ? ? .
? ? mt76-phy0 ? .
? ? mt76-phy1 ? .

The Banana Pi BPi-R3 Mini has 4 rear LEDs (These are LAN Port LEDs, shouldn't be touched in most cases:

LED name LED print Internal name Trigger Added information
LAN Green LAN mdio-bus:0e:green:lan netdev .
LAN Yellow LAN mdio-bus:0e:yellow:lan netdev
WAN Green WAN mdio-bus:0f:green:wan netdev .
WAN Yellow WAN mdio-bus:0f:yellow:wan netdev .

hardware.button on howto use and configure the hardware button(s). Here, we merely name the buttons, so we can use them in the above Howto.

The Banana Pi BPi-R3 Mini has the following buttons:

Button name Action name Hex Value
button-reset reset 0198

Front:
banana_pi_bpi-r3_mini_case_9.jpg}

Rear(Low cost case, applies to both versions) :
banana_pi_bpi-wifi6_mini_and_r3_mini_case_3.jpg

Main PCB:
bpi-r3_mini_interface.jpg

FIXME Need photos for exact RX/TX/GND positions on the PCB

Use a 3.3V-TTL USB to Serial/UART converter.

Serial connection parameters
for Banana Pi BPi-R3 Mini
115200, 8N1

FIXME Missing bootlog


FIXME Missing bootlog

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/11/28 18:47
  • by freezeheat