Getting Started with M2 Zero

From Banana Pi Wiki
Jump to: navigation, search


Overview: BPI-M2Z raspbian
Android 4.4
Ubuntu Linux

BPI-M2 Zero[edit]

Banana Pi M2 Zero is an ultra compact single board computer measures only 60mm*30mm. It uses quad-core Cortex A7 allwinner H2+ processor, with 512MB RAM memory. It's ideal for light-weight systems with some space-limited applications. Like other members of Banana Pi, it supports both linux and android operating system.

Key Features[edit]

  • Quad Core ARM Cortex A7 CPU H2+
  • 512MB SDRAM.
  • WiFi (AP6212) & Bluetooth onboard.
  • Mini HDMI.


Basic Development[edit]

Prepare to develop[edit]

 * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
 * Using your USB-Serial Connect debug console on M2 Zero
 Debug console wire.png
 M2 Zero debug console.png

Load your first image on M2 Zero[edit]

 1.You could download latest image from our forum
 * Here is the example:
 2.Install bpi-tools on your system
 * apt-get install pv
 * curl -sL | sudo -E bash
 3.After you download the image, insert your TF card into your Ubuntu
 * Execute "bpi-copy xxx.img /dev/sdx" to install image on your TF card.
 4.After step 3, then you can insert your TF card into M2 Zero, and press power button setup M2 Zero

Update your image[edit]

 1.Clone M2Z repo:
 * git clone
 2.Build your project
 * ./ BPI-M2Z-720P
 3.After finish built, Execute "cd SD", plug your Ubuntu TFcard in PC, then check your TFcard was recognised as /dev/sdX by Ubuntu. 

 4. Execute "bpi-update -c bpi-r2.conf -d /dev/sdX", to update the compiled kernel to your TFcard

Advanced Development[edit]

How to create an image[edit]

  • Prepare a SD card which have installed system(Ubuntu/Raspbian/..)
  • Boot your SD card with M2 Zero, after M2 Zero finish starting, copy your files and config your system, then poweroff M2 Zero. [If you don't want to config your system, you can skip this step]
  • Plug your SD card in PC(which is running Linux), "cd /media", then "ln -s <your account> pi"
  • Execute "bpi-migrate -c bpi-m2z.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx"
  • Then you could get your own image now


1. On M2 Zero console:

  • Execute "./", then execute "ps -ax | grep adbd" to see if adbd is set up

2. On PC terminal:

  • If adbd was succeed to set up, insert OTG-USB interface to M2 Zero and PC(with Ubuntu system)
  • Execute "adb devices" to see if PC has recognised M2 ZeroP OTG
  • If yes, we could execute "adb shell" to connect M2 Zero by adb now

USB Ethernet[edit]

  • Prepare a USB to OTG wire, usb ethernet adapter

M2Zero usb network wire.png

  • Use iperf3 to test network

M2Zero network.png


  • 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:

M2Zero bluetooth.png

WiFi Client[edit]

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 -B -dd -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
  • dhclient wlan0

2. Use UI interface to setup WiFi Client

Clear boot[edit]

Camara function[edit]

We use HDF5640 camara.

Ov5640 camara.png


  • Use your UI interface to operate camara
  • Applications -> Sound & Video -> guvcview


  • We also have built-in command in /usr/local/bin to test camara
  • "./" to test picture taking function
  • "./" to test video recording function


Install Bpi-tools[edit]

Update Bpi-tools[edit]

  • Execute "bpi-tools"



Install RPi.GPIO[edit]

  • Execute "git clone"
  • after clone the repo, cd RPi,GPIO
  • Execute "sudo apt-get update"
  • Execute "sudo apt-get install python-dev python3-dev"
  • Execute "sudo python install" or "sudo python3 install" to install the module

Using RPi.GPIO[edit]

  • cd /usr/local/bin
  • Execute "./" to test RPi.GPIO

RPi GPIO.png


How to Update WiringPi[edit]

  • Execute "bpi-update -c pkglist.conf"

Update Pkglist.png

  • Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"

Update WringPi.png

RGB 1602 LCD[edit]

  • Execute "/usr/local/bin/"

0.96 Inch OLED Display[edit]

  • Execute "/usr/local/bin/"

8x8 RGB LED Martix[edit]

  • Firstly you need a GPIO Extend Board for 8x8 LED Martix

WringPi LED Martix Extend Board.png

  • Execute "/usr/local/bin/"