Sinovoip BananaPi BPi-R3 mini
Supported Versions
Hardware Highlights
- 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!)
- 5G Module requires BSP driver Information and Opensource drivers available here
Installation
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
Installation instructions for eMMC (Done via LAN port + SSH)
BEFORE YOU CONTINUE: Power off your device and set boot switch to boot from SPI-NAND (assuming stock rom or immortalwrt running there)
- After switching to SPI-NAND, power up your device
- Connect to your LAN port (closest to USB-C power connector) and SCP
openwrt-*-r3-mini-emmc-gpt.bininto your device's/tmpdirectory - SSH into your device as root
- Write the GPT partition table to eMMC
/dev/mmcblk0partition using the file we just sent via SCP:dd if=/tmp/openwrt-*-r3-mini-emmc-gpt.bin of=/dev/mmcblk0
- Reboot (to reload partition table)
- SCP the following files to
/tmpdirectory: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
- Once again SSH into your device as root
- 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
- Remove the device from power, set boot switch back to eMMC
- 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.
- (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
Installation instructions for NAND (Done via LAN port + SSH)
This method ISN'T RECOMMENDED, it's recommended to leave the SPI-NAND alone and use the eMMC for the other OS
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
In case both SPI-NAND and eMMC are not bootable
You will need to access the UART
Upgrading OpenWrt
Debricking / back to stock firmware
Flash Layout
Incomplete Flash Layout
eMMC
SPI-NAND
Failsafe mode
Basic configuration
→ Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.
Specific Configuration
Network interfaces
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 |
Switch Ports (for VLANs)
| Port | Switch port | Notes |
|---|---|---|
| CPU | ? | No Switch |
| WAN | N/A | No Switch |
| LAN | N/A | No Switch |
LEDs
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 | . |
Buttons
→ 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 |
Hardware
Info
Photos
Serial
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 |
|---|
Bootlogs
OEM bootlog
Missing bootlog
OpenWrt bootlog
Missing bootlog




