Introduction
Banana Pi BPI-M64 is a 64-bit quad-core mini single board computer. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M64 has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, and lastly a DC power port. The processor is pin-to-pin comptialbe with R18, so it comes with two versions:M64 and M64-R18
A64 Key Features
- 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor-A64
- 2GB DDR3 SDRAM
- 8G EMMC
- 10/100/1000Mbps Ethernet
- WiFi (AP6212) & Bluetooth
R18 Key Features
- 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor-R18
- 2GB DDR3 SDRAM
- 8G EMMC
- 10/100/1000Mbps Ethernet
- WiFi (AP6212) & Bluetooth
Development For Android
Install Android Image
Prepare
- 1. Prepare a USB-Serial cable, a MicroUSB cable and PC with Linux or WIndows 7/10
- 2. The USB-Serial cable is used for console debug and MicroUSB cable is used for Image download and ADB debug.
- 3. M64 board is only suport DC power supply bootup.
- 4. If you want insert a SDcard for Android storage using, and your SDcard was download Linux Image or any other allwinner bootable SDcard image, please format the SDcard start from block 0.
- 5. Download and Install Allwinner Image Download Tools, PhoenixSuit is for window and LiveSuit is for Linux
- 6. Download BPI atest Android Image
Install Image with PhoenixSuit on Windows
- 1. Open PhoenixSuit, click the Firmware icon to switching to firmware download panel, then click Image button and choose the Android Image file.
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-03.jpg)
- 2. M64 board disconnect DC power, press and hold the uboot-key button(new uart debug pin), plugin mirco-usb cable to PC, popup a warning dialog.
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-04.jpg)
- 3 Press Yes to continue and popup another waring dialog, Press Yes to continue
- 4 Downloading
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-05.jpg)
- 5 Download finish
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-06.jpg)
Install Image with LiveSuit on Linux
- According to the Readme.pdf in LiveSuit Install package, After install the LiveSuit successfully please run LiveSuit.sh with root permission, then the download process is almost the same as PhoenixSuit.
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-07.jpg)
Build Android source code
Get Android source code
- Android 7.1
$ git clone https://github.com/BPI-SINOVOIP/BPI-A64-Android7
- Android 6.1
$ git clone https://github.com/BPI-SINOVOIP/BPI-A64-Android
Build Android Source code
- Please read the source code README.md
Development For Linux
Install Linux Image
Prepare
- 1. Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
- 2. Using your USB-Serial Connect debug console on M64
- 3. M64 board is only suport DC power supply bootup
- 4. Install bpi-tools on your Linux PC. If you can't access this URL or any other problems, please go to bpi-tools repo and install this tools manually.
$ apt-get install pv
$ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
- 5. Download BPI latest image
- 6. Login user/password: pi/bananapi or root/bananapi
Install Image to SDcard
- 1. Install image with bpi-tools on Linux
- plug your sd card to your Linux PC, and run
$ sudo bpi-copy xxx.img /dev/sdX
- 2. Install bpi image with Etcher on Windows, Linux and MacOSBalena Etcher is an open source project by Balena, Flash OS images to SD cards & USB drives
Install Image to EMMC
- 1. Prepare a sd which is installed Linux image and bootup with sdcard
- 2. Copy emmc image to udisk then plug in M64, then mount udisk.
- 3. After mount udisk, use command "bpi-copy xxx-emmc-xxx.img" to install image on Emmc.
- 4. After success install, power off M64, eject the sdcard and poweron with emmc boot.
Switch to LCD boot type
- 1. The default release images are HDMI boot type, you can switch to LCD boot type for BPI 7" LCD support after first boot.
$ sudo bpi-bootsel /usr/lib/u-boot/bananapi/bpi-m64/BPI-M64-LCD7-linux4.4-8k.img.gz
$ reboot
- 2. Load the Touchscreen driver if you want to using TP
$ sudo modprobe gt9xxnew_ts.ko
Build Linux source code
Get the bsp source code
$ git clone https://github.com/BPI-SINOVOIP/BPI-M64-bsp-4.4
Build the bsp source code
- Please read the source code README.md
Other development and test
GMAC
Use iperf3 to test gmac
1. On PC Terminal:
2. On M2U console:
- TCP test: "iperf3 -c serverIP"
- UDP test: "iperf3 -u -c serverIP"
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-08.jpg)
Bluetooth
- Use bluetoothctl tool to operate BT
- Execute "bluetoothctl"
- If you don't know how to use bluetoothctl, type "help", you will see more commands
- Execute these commands:
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-09.jpg)
WiFi on A64
WiFi Client
You have two ways to setup WiFi Client
1. Use commands to setup WiFi client
- ip link set wlan0 up
- iw dev wlan0 scan | grep SSID
- vim /etc/wpasupplicant/wpa_supplicant.conf
network={
ssid="ssid"
psk="password"
priority=1
}
- wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
- dhclient wlan0
2. Use UI interface to setup WiFi Client
Ap Mode
1.Install hostapd and create hostapd configuration file hostapd.conf:
interface=wlan0
driver=nl80211
ssid=test
hw_mode=g
channel=1
2.Execute command:"hostapd -d /<path>/hostapd.conf" If you meet problem like this:
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-10.jpg)
Then, you could solve by following command:
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-11.jpg)
- rfkill unblock 1
- rfkill unblock 2
- ifconfig wlan0 up
- hostapd -d hostapd.conf
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-12.jpg)
Clear boot
GPIO Control
- To access a GPIO pin you first need to export it with
echo XX > /sys/class/gpio/export
- with XX being the number of the desired pin. To obtain the correct number you have to calculate it from the pin name (like PH18)
(position of letter in alphabet - 1) * 32 + pin number
for PH18 this would be ( 8 - 1) * 32 + 18 = 224 + 18 = 242 (since 'h' is the 8th letter)
- echo "out/in" > /sys/class/gpio/gpio*NUMBER*/direction
- echo "0/1" > /sys/class/gpio/gpio*NUMBER*/value
Camara function
We use HDF5640 camara.
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-13.jpg)
Guvcview
- Use your UI interface to operate camara
- Applications -> Sound & Video -> guvcview
Shell
- We also have built-in command in "/usr/local/bin" to test camara
- "./test_ov5640_image_mode.sh" to test picture taking function
- "./cameratest.sh" to test video recording function
IR function
- Execute "getevent"
- Use your IR device to send information to A64
RPi.GPIO
Install RPi.GPIO
- Execute "git clone https://github.com/BPI-SINOVOIP/RPi.GPIO
- after clone the repo, cd RPi.GPIO
- Execute "sudo apt-get update"
- Execute "sudo apt-get install python-dev python3-dev"
- Execute "sudo python setup.py install" or "sudo python3 setup.py install" to install the module
Using RPi.GPIO
- cd /usr/local/bin
- Execute "./bpi_test_g40.py" to test RPi.GPIO
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-14.jpg)
WringPi
How to Update WiringPi
- Execute "bpi-update -c pkglist.conf"
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-15.jpg)
- If your image is 32bit please do this command to install wring pi
- Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"
- If your image is 64bit please do:"bpi-update -c bpi-pkg-bpi-wiringpi-arm64.conf"
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-16.jpg)
RGB 1602 LCD
- Execute "/usr/local/bin/bpi_test_lcd1602.sh"
0.96 Inch OLED Display
- Execute "/usr/local/bin/bpi_test_52pi.sh"
8x8 RGB LED Martix
- Firstly you need a GPIO Extend Board for 8x8 LED Martix
![](https://cdn.static.spotpear.com/uploads/picture/learn/banana-pi/banana-pi-bpi-m64/banana-pi-bpi-m64-17.jpg)
- Execute "/usr/local/bin/bpi_test_gpio40.sh"
File System
- read only system change to read & write mode: "mount -o remount,rw /"