Getting Started with P2-Zero
Contents
Introduction
- Read more about : Banana Pi BPI-P2 Zero
BPI-P2 Zero
Banana Pi BPI-P2 Zero is an ultra compact single board computer measures only 65mm*52.5mm. It uses quad-core Cortex A7 allwinner H2+ processor(Option : H3 and H5), with 512MB RAM memory.8G eMMC flash,100M LAN,add PoE function support , 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
- CPU: Allwinner H2+, Quad-core Cortex-A7
- 512MB DDR 3 SDRAM
- WiFi (AP6212) & Bluetooth onboard
- Mini HDMI
- 40 PIN GPIO, It includes UART, SPI, I2C, IO etc
- 100M LAN
- IEEE 802.3af PoE standard PoE module support
- 8G eMMC flash onboard
Development
Basic Development
Prepare to develop
* Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System * Using your USB-Serial Connect debug console on P2 Zero
Load your first image on P2 Zero
1.You could download latest image from our forum * Here is the example: http://forum.banana-pi.org/t/bananapi-bpi-p2-zero-h2-with-poe-ubuntu-image-release-2018-08-17/6533 2.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 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 P2 Zero, and press power button setup P2 Zero
Update your image
1.Clone M2Z repo: https://github.com/BPI-SINOVOIP/BPI-M2Z-bsp , M2 zero and P2 zero are using same bsp code. * git clone https://github.com/BPI-SINOVOIP/BPI-M2Z-bsp
2.Build your project * ./build.sh 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-m2z.conf -d /dev/sdX", to update the compiled kernel to your TFcard
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
EMac
- Use iperf3 to test network
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:
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
Clear boot
- git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB
- bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX
Camara function
We use HDF5640 camara.
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"
3. After save changed, use "fex2bin" command to transfer sys_config.fex to bin file, "fex2bin sys_config.fex script.bin ", reboot.
parameters meaning:
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"
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
WiringPi
- GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
- We also have built-in test command in "/usr/local/bin"
How to Update WiringPi
- Execute "bpi-update -c pkglist.conf"
- Execute "bpi-update -c bpi-pkg-bpi-wiringpi.conf"
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
- Execute "/usr/local/bin/bpi_test_gpio40.sh"