Banana Pi BPI‐R3 Mini - tomato64/tomato64 GitHub Wiki

The Banana Pi BPI-R3 Mini comes with both 8G eMMC flash and SPI-NAND (128 MiB).
It should come pre-installed with a vendor version of OpenWrt.

The recommendation is to leave the installation on the NAND side untouched.
When doing the installation to eMMC set the hardware switch to boot from the NAND side to write the firmware.
After installing switch back to eMMC to boot into the new installation.

The device I purchased came with the usb to serial cable which may come in handy for troubleshooting and flashing.
The USB-C power port also has a built-in serial chip. If you computer has USB-C PD(Power Delivery) you can power the device and connect over the serial all in one cable.
However, even on my relatively modern Dell PC with USB-C PD, it seems when the Wifi started it began to draw too much power would reboot spontaneously. So I always just use the included serial cable. You may be able to boot, disable the wifi, and then try to run with USB-C PD. I never tested that, but preventing wifi from starting may help if the device draws more power than your USB-C port can provide.

The uart serial pins aren't labeled, but this explains their layout.

Installation

  • Grab the Tomato64 firmware images here.

  • First switch the boot selector to boot from the NAND and wait for OpenWrt to boot.

  • Copy the files to /tmp on the device.

    • with wget from downloads links on the images page
    • with scp scp -O * [email protected]:/tmp
    • or with winscp
    • or load files to usb and mount with mount /dev/sda1 /mnt
      • You may need to install the appropriate filesystem support
  • Over the serial connection (I used putty) or over SSH run the following

cd /tmp

echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=tomato64-bpi-r3-mini-emmc-preloader.bin of=/dev/mmcblk0boot0
gunzip -c tomato64-bpi-r3-mini.img.gz | dd of=/dev/mmcblk0 conv=fsync

echo 0 > /sys/block/mmcblk0boot1/force_ro
dd if=EthMD32.dm.bin of=/dev/mmcblk0boot1
dd if=EthMD32.DSP.bin bs=16384 seek=1 of=/dev/mmcblk0boot1

sync
  • Unplug the device
  • Flip the switch to boot from eMMC
  • Restore power to the device.

After doing those steps you should hopefully be up and running on Tomato64!

If the device is giving you issues booting from eMMC, run all the steps again.

F_cuBXKawAAYnSM