Banana Pi BPI-R1

From Banana Pi Wiki
Revision as of 19:34, 9 May 2018 by Sinovoip (talk | contribs) (Compulsive modification of HDMI output resolution)
Jump to: navigation, search



The Banana Pi R1 is a router based Banana Pi running on the same SoC as the M1 Classic Pi.

The R1 is a open hardware router that can run on a variety of open source operating systems including OpenWrt, Android, and Bananian. The R1 has slim router form factor with a bay for 2.5" HDDs. It also has 4 Gigabit LAN ports, 1 Gigabit WAN, and 300Mbs wireless N capabilities.

Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.

Key Features

  • Allwinner A20 Dual-core 1.0GHz CPU
  • Mali-400 MP2 with Open GL ES 2.0/1.1.
  • 1 GB DDR3 memory.
  • 1x SATA interface.
  • 4x Gigabit LAN 1x Gigabit WAN

Getting Start


Hardware interfact

BPI-R1 front.png

BPI-R1 back.jpg

Hardware spec

GPIO PIN define

Banana Pi BPI-R1 has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:

Gpio define.png




Basic Development

Compulsive modification of HDMI output resolution

the final solution of compulsive modification of HDMI output resolution.

As you may have discovered the common configuration method in raspberry pi (such as alteration of /boot/config.txt) does not work on BPI, neither does the modification of cmdline.txt and uEnv.txt especially for some display with converter(HDMI->VGA or HDMI ->IDVI) or some old display devices.

Today,we are introducing a new solution to modify the resolution of HDMI, no other risks if you do it according to this document step by step:

1,install compile sunxi-tools depended-upon packages

sudo apt-get install libusb-1.0-0-dev

2,get sunxi-tools new code from github:

git clone

3,compile sunxi-tools

cd sunxi-tools

4,backup script.bin

sudo cp /boot/bananapi/script.bin /boot/bananapi/script.bak

5,copy script.bin to current dir

cp /boot/bananapi/script.bin ./

6,use bin2fex change bin to fex

bin2fex ./script.bin ./script.fex

7,edit script.fex file:

nano script.fex
see this below:
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 3
screen0_output_mode = 5
screen1_output_type = 2
screen1_output_mode = 11
fb0_framebuffer_num = 2
fb0_format = 10

fb0_pixel_sequence = 0 fb0_scaler_mode_enable = 1 fb1_framebuffer_num = 2 fb1_format = 10 fb1_pixel_sequence = 0 fb1_scaler_mode_enable = 0 lcd0_backlight = 197 lcd1_backlight = 197 lcd0_bright = 50 lcd0_contrast = 50 lcd0_saturation = 57 lcd0_hue = 50 lcd1_bright = 50 lcd1_contrast = 50 lcd1_saturation = 57 lcd1_hue = 50 just change screen0_output_mode = 5, note , other not do any change.

A20 support as below: HDMI/TV mode numbers:

0 480i 1 576i 2 480p 3 576p 4 720p 50Hz 5 720p 60Hz 6 1080i 50 Hz 7 1080i 60 Hz 8 1080p 24 Hz 9 1080p 50 Hz 10 1080p 60 Hz 11 PAL 12 PAL SVIDEO 14 NTSC 15 NTSC SVIDEO 17 PAL_M 18 PAL_M SVIDEO 20 PAL_NC 21 PAL_NC SVIDEO 23 1080p 24 Hz 3D 24 720p 50 Hz 3D 25 720p 60 Hz 3D 26 1360x768 60 Hz 27 1280x1024 60 Hz Press Ctrl + x , Y ,Enter save and exit edit:

8,use fex2bin change fex to bin

fex2bin ./script.fex ./script.bin

copy script.bin to /boot

sudo cp ./script.bin /boot/bananapi/

9,reboot and make a try

sudo reboot another easy way: just edit uEnv.txt file to change it:

bootargs=enforcing=1 console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 rootwait init=/init vmalloc=384M ion_c ma_list="120m,176m,512m" loglevel=8 bootmenutimeout=10 datadev=mmcblk0p2 disp.screen0_output_type=3 disp.screen0_o utput_mode=10 disp.screen1_output_type=3 disp.screen1_output_mode=10


Stable 1.2.1 release:
Kernel upgraded to 4.1.17
Added Parted package
Lots of package upgrades and bug fixes...
VM build system - OpenwrtBuild-BPI-R1-VM-V1.0.torrent if you wish to spin up your own version from scratch!
github link:

Image Release

Android 4.4


Ubuntu kernel 3.4

  • 2016-07-21 update
google drive :
MD5: 155f072da499a7c523b7394f77dd9def
Forum thread:
  • 2016-07-19 update, need use >=16G SD card
google drive :
MD5: 37d6599eac4daced375fba8fa58dc1d5
Forum thread:

Armbian image

  • Armbian Xenial and Armbian Jessie
Image lownload link :


  • Banana pi BPI-R1 mainline linux kernel for fedora

Arch linux

  • Archlinux 28-12-2017 4.6.5 sunxi mainline kernel
Kernel borrowed from armbian: BPI-R1 new image:Armbian_5.17_bpi-r1_Debian_jessie_4.6.5_desktop-build-by-bpi-r1.img
Archlinux upgraded from official bpi image.
The kernel issues related to kernel / userspace mismatch seem to be gone (such as systemd-sysctl input / output error etc).
Image download link: