Difference between revisions of "Getting Started with M2 Zero"

From Banana Pi Wiki
Jump to: navigation, search
(Introduction)
(Introduction)
 
(56 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
[[zh:快速上手 香蕉派 BPI-M2 Zero]]
 
=Introduction=
 
=Introduction=
==BPI-M2U==
+
[[File:BPI-M2_zero_11.JPG|thumb|Overview [[Banana Pi BPI-M2 ZERO]]]]
 +
[[File:M2Zero_raspbian.png|thumb|Overview: BPI-M2Z raspbian]]
 +
[[File:BPI-M2_zero_android_4.4.JPG|thumb|Android 4.4]]
 +
[[File:BPI-M2_zero_ubuntu.JPG|thumb|Ubuntu Linux]]
  
  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.
+
*Read more about : [[Banana_Pi_BPI-M2_ZERO]]
  
*Read more about : [[Banana Pi BPI-ZERO]]
+
==BPI-M2 Zero==
 +
 
 +
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===
 
===Key Features===
Line 13: Line 19:
  
 
=Development=
 
=Development=
Let's get start to develop on BPI-M2P, see amazing things happen.
 
 
==Basic Development==
 
==Basic Development==
 +
===Load your first Android image on M2 Zero===
 +
  1.You could download latest image from our forum.
 +
 
 +
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.
 +
 
 +
  3.Prepare your image, and download image burning tools PhoenixCard.exe.
 +
 
 +
  4.Use "PhoenixCard.exe" to burn android image to TF card.
 +
 
 +
  [[Image:M3_Android_Burning.png | 600px]]
 +
 +
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9
 +
 
===Prepare to develop===
 
===Prepare to develop===
 
   * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
 
   * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System
   * Using your USB-Serial Connect debug console on M2P
+
   * Using your USB-Serial Connect debug console on M2 Zero
 +
 
 +
  [[Image:Debug_console_wire.png]]
 +
 
 +
  [[Image:M2_Zero_debug_console.png]]
  
===Load your first image on M2P===
+
===Install Linux Image on M2 Zero===
  1.You could download latest image from our forum
+
Download [http://wiki.banana-pi.org/Banana_Pi_BPI-M2_ZERO#Linux latest Linux image], default login user/password is pi/bananapi or root/bananapi.
  * Here is the example forum thread link: http://forum.banana-pi.org/t/banana-pi-bpi-m2p-new-image-release-ubuntu-16-04-v1-1/5719
+
 +
Install Image to SDcard on Linux PC with bpi-tools
 +
:1. Install bpi-tools on your system
 +
    $ apt-get install pv
 +
    $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
 +
:If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.
 
    
 
    
  2.Install bpi-tools on your Ubuntu
+
:2. Insert your SDcard into your PC
  * apt-get install pv
+
    $ bpi-copy xxx.img /dev/sdx
  * curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
 
 
    
 
    
  3.After you download the image, insert your TF card into your Ubuntu
+
Install Image to SDcard with Ether on Windows, Linux and MacOS
  * Execute "bpi-copy xxx.img /dev/sdx" to install image on your TF card.
+
:[https://www.balena.io/etcher/ Balena Etcher] is an open source project by Balena, Flash OS images to SD cards & USB drives
 
+
 
  4.After step 3, then you can insert your TF card into M2P, and press power button setup M2P.
+
Install Image to EMMC with SD Ubuntu
 +
:1.Prepare a sd which is installed ubuntu image and bootup with sdcard
 +
:2.Copy emmc image to udisk, plug in board, 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 the board, eject the sdcard and poweron with emmc boot.
  
===Load your first image on M2P EMMC===
+
===Update your image===
  * Run your M2P with TF card
+
:1. Get the m2 zero bsp source code
  * Copy "xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to your USB disk
+
    $ git clone https://github.com/BPI-SINOVOIP/BPI-M2P-bsp-4.4
  * Plug your USB disk in M2P
 
  * After M2P recognise USB disk, execute "bpi-copy xxx-sd-emmc-xxx.img.zip / xxx-sd-emmc-xxx.img" to install image on EMMC
 
  * Then power off M2P, take TF card out, power on M2P with EMMC
 
  
 +
:2. Build the source code according to the README.md, and update the packages to the sdcard with bpi image flashed.
 
==Advanced Development==
 
==Advanced Development==
  
===How to build uboot & kernel===
+
===How to create an image ===
 
 
===How to create a image ===
 
 
* Prepare a SD card which have installed system(Ubuntu/Raspbian/..)
 
* Prepare a SD card which have installed system(Ubuntu/Raspbian/..)
* Boot your SD card with M2P, after M2P finish starting, copy your files and config your system, then poweroff M2P. [If you don't want to config your system, you can skip this step]
+
* 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"
 
* Plug your SD card in PC(which is running Linux), "cd /media", then "ln -s <your account> pi"
* Execute "bpi-migrate -c bpi-m2p.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx"
+
* Execute "bpi-migrate -c bpi-m2z.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx"
 
* Then you could get your own image now
 
* Then you could get your own image now
  
 
===OTG===
 
===OTG===
1. On M2P console:
+
1. On M2 Zero console:
 
* Execute "./adbd.sh", then execute "ps -ax | grep adbd" to see if adbd is set up
 
* Execute "./adbd.sh", then execute "ps -ax | grep adbd" to see if adbd is set up
  
 
2. On PC terminal:
 
2. On PC terminal:
* If adbd was succeed to set up, insert OTG-USB interface to M2P and PC(with Ubuntu system)
+
* 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 M2P OTG
+
* Execute "adb devices" to see if PC has recognised M2 ZeroP OTG
* If yes, we could execute "adb shell" to connect M2P by adb now
+
* If yes, we could execute "adb shell" to connect M2 Zero by adb now
 +
 
 +
===USB Ethernet===
 +
* Prepare a USB to OTG wire, usb ethernet adapter
  
===GMAC===
+
[[Image:M2Zero_usb_network_wire.png]]
* Use iperf3 to test gmac
 
  
[[Image:M2P_GMAC.png]]
+
* Use iperf3 to test network
 +
[[Image:M2Zero_network.png]]
  
 
===Bluetooth===
 
===Bluetooth===
Line 69: Line 98:
 
* If you don't know how to use bluetoothctl, type "help", you will see more commands
 
* If you don't know how to use bluetoothctl, type "help", you will see more commands
 
* Execute these commands:  
 
* Execute these commands:  
[[Image:M2P_BT_bluetoothctl.png]]
+
[[Image:M2Zero_bluetooth.png]]
 
 
[[Image:M2P_BT.png]]
 
 
 
===WiFi on M2P===
 
 
 
Driver code:
 
 
 
*https://github.com/BPI-SINOVOIP/BPI_WiFi_Firmware
 
  
====WiFi Client====
+
===WiFi Client===
 
'''You have two ways to setup WiFi Client'''
 
'''You have two ways to setup WiFi Client'''
  
Line 85: Line 106:
 
* ip link set wlan0 up
 
* ip link set wlan0 up
 
* iw dev wlan0 scan | grep SSID
 
* iw dev wlan0 scan | grep SSID
* vim /etc/wpasupplicant/wpa_supplicant.conf  
+
* vim /etc/wpa_supplicant/wpa_supplicant.conf  
* network={    ssid="ssid"    psk="password"    priority=1 }
+
network={     
* wpa_supplicant -B -dd -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
+
ssid="ssid"     
 +
psk="password"     
 +
priority=1  
 +
}
 +
* wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
 
* dhclient wlan0
 
* dhclient wlan0
  
Line 103: Line 128:
 
* Use your UI interface to operate camara
 
* Use your UI interface to operate camara
 
* Applications -> Sound & Video -> guvcview
 
* Applications -> Sound & Video -> guvcview
[[Image:guvcview_ov5640.png]]
+
====Shell====
 
 
 
* We also have built-in command in /usr/local/bin to test camara
 
* We also have built-in command in /usr/local/bin to test camara
 
* "./test_ov5640_image_mode.sh" to test picture taking function
 
* "./test_ov5640_image_mode.sh" to test picture taking function
 
* "./cameratest.sh" to test video recording function
 
* "./cameratest.sh" to test video recording function
  
===IR function===
+
===Display===
* Execute "getevent"
+
====How to change display resolution====
* Use your IR device to send information to M2P
+
For Example: we change M2Z HDMI display 1080P.
[[Image:IR_getevent.png]]
+
 
 +
1. First, mount /dev/mmcblk0p1  /mnt, then enter to /mnt/bananapi/bpi-m2z/linux, find "sys_config.fex";
 +
 
 +
2. "vim sys_config.fex", change "screen0_output_mode = 5" to "screen0_output_mode = 10"
 +
 
 +
[[Image: display_output.png]]
 +
 
 +
3. After save changed, use "fex2bin" command to transfer sys_config.fex to bin file, "fex2bin sys_config.fex script.bin ", reboot.
 +
 
 +
parameters meaning:
 +
 
 +
[[Image: display_mode.png]]
 +
 
 +
===BPI-Tools===
 +
====Install Bpi-tools====
 +
* Execute "curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - "
 +
 
 +
====Update Bpi-tools====
 +
* Execute "bpi-tools"
 +
[[Image: Bpi-tools.png]]
 +
 
 +
===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
 +
 
 +
[[Image: RPi_GPIO.png]]
  
===WringPi===
+
===WiringPi===
 
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
 
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
* We also have built-in test command in /usr/local/bin
+
* We also have built-in test command in "/usr/local/bin"
 +
 
 +
====How to Update WiringPi====
 +
* Execute "bpi-update -c pkglist.conf"
 +
[[Image: Update_Pkglist.png]]
 +
 
 +
* Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"
 +
[[Image: Update_WringPi.png]]
  
 
====RGB 1602 LCD====
 
====RGB 1602 LCD====
 
* Execute "/usr/local/bin/bpi_test_lcd1602.sh"
 
* Execute "/usr/local/bin/bpi_test_lcd1602.sh"
[[Image: WringPi_1602_LCD.png]]
 
  
 
====0.96 Inch OLED Display====
 
====0.96 Inch OLED Display====
 
* Execute "/usr/local/bin/bpi_test_52pi.sh"
 
* Execute "/usr/local/bin/bpi_test_52pi.sh"
[[Image: WringPi_0.96_OLED.png]]
 
  
 
====8x8 RGB LED Martix====
 
====8x8 RGB LED Martix====
Line 131: Line 193:
  
 
* Execute "/usr/local/bin/bpi_test_gpio40.sh"
 
* Execute "/usr/local/bin/bpi_test_gpio40.sh"
[[Image: WringPi_LED_Martix.png]]
 
 
==FAQ==
 

Latest revision as of 01:58, 11 July 2023

Introduction

Overview: BPI-M2Z raspbian
Android 4.4
Ubuntu Linux

BPI-M2 Zero

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

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

Development

Basic Development

Load your first Android image on M2 Zero

 1.You could download latest image from our forum.
 
 2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.
 
 3.Prepare your image, and download image burning tools PhoenixCard.exe.
 
 4.Use "PhoenixCard.exe" to burn android image to TF card.
 
 M3 Android Burning.png
 * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9

Prepare to develop

 * 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

Install Linux Image on M2 Zero

Download latest Linux image, default login user/password is pi/bananapi or root/bananapi.

Install Image to SDcard on Linux PC with bpi-tools

1. Install bpi-tools on your system
   $ apt-get install pv
   $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
If you can't access this URL or any other problems, please go to bpi-tools repo and install this tools manually.
2. Insert your SDcard into your PC
   $ bpi-copy xxx.img /dev/sdx
 

Install Image to SDcard with Ether on Windows, Linux and MacOS

Balena Etcher is an open source project by Balena, Flash OS images to SD cards & USB drives

Install Image to EMMC with SD Ubuntu

1.Prepare a sd which is installed ubuntu image and bootup with sdcard
2.Copy emmc image to udisk, plug in board, 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 the board, eject the sdcard and poweron with emmc boot.

Update your image

1. Get the m2 zero bsp source code
   $ git clone https://github.com/BPI-SINOVOIP/BPI-M2P-bsp-4.4
2. Build the source code according to the README.md, and update the packages to the sdcard with bpi image flashed.

Advanced Development

How to create an image

  • 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

OTG

1. On M2 Zero console:

  • Execute "./adbd.sh", 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

  • Prepare a USB to OTG wire, usb ethernet adapter

M2Zero usb network wire.png

  • Use iperf3 to test network

M2Zero network.png

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:

M2Zero bluetooth.png

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/wpa_supplicant/wpa_supplicant.conf
network={    
ssid="ssid"    
psk="password"    
priority=1 
}
  • wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
  • dhclient wlan0

2. Use UI interface to setup WiFi Client

Clear boot

Camara function

We use HDF5640 camara.

Ov5640 camara.png

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

Display

How to change display resolution

For Example: we change M2Z HDMI display 1080P.

1. First, mount /dev/mmcblk0p1 /mnt, then enter to /mnt/bananapi/bpi-m2z/linux, find "sys_config.fex";

2. "vim sys_config.fex", change "screen0_output_mode = 5" to "screen0_output_mode = 10"

Display output.png

3. After save changed, use "fex2bin" command to transfer sys_config.fex to bin file, "fex2bin sys_config.fex script.bin ", reboot.

parameters meaning:

Display mode.png

BPI-Tools

Install Bpi-tools

Update Bpi-tools

  • Execute "bpi-tools"

Bpi-tools.png

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

RPi GPIO.png

WiringPi

How to Update WiringPi

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

Update Pkglist.png

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

Update WringPi.png

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

WringPi LED Martix Extend Board.png

  • Execute "/usr/local/bin/bpi_test_gpio40.sh"