Book Image

Banana Pro Blueprints

By : Tony Zhang
Book Image

Banana Pro Blueprints

By: Tony Zhang

Overview of this book

This book follows a tactical plan that will guide you through the implementation of Banana Pro and its configurations. You will then learn the various programming languages used with Banana Pi with the help of examples. In no time at all, you’ll be working on a wireless project that implements AirPlay servers, hotspots, and so on. Following this, you’ll develop a retro-style arcade kiosk game. Then we’ll move on to explore the multimedia features of Banana Pro by designing and building an enclosure for it. After this, you’ll learn to build a remote-controlled smart car and we’ll examine how to control a robotic arm. The book will conclude with the creation of a home sensor system that has the ability to expand or shrink to suit any home.
Table of Contents (15 chapters)
Banana Pro Blueprints
About the Authors
About the Reviewers

Banana Pro

Since Raspberry Pi was born, a lot of new embedded boards have seen the light of day. A very popular one is Banana Pro. It came into the market in late 2014, is affordable ($45 USD), and offers many interfaces (Figure 1).

Banana Pro is the size of a credit card (92 mm x 60 mm and 48 g) and uses an Allwinner A20 system on chip. This includes a dual core CPU (ARM Cortex-A7, 1 GHz), a Mali 400 MP2 GPU, and a 1 GB SDRAM. Additionally, there is also a AP6181 Wi-Fi module onboard. Banana Pro makes use of the AXP209 Power Management Unit (PMU), which is very power efficient and allows power monitoring.

Figure 1: Banana Pro is a dual core computer featuring many connectors (source:

Specifications of Banana Pro

Table 1 summarizes the Banana Pro specifications. Everything is available to build a complete computer system, including a hard disk or connection to a television or computer screen. Both the Gb LAN and WLAN guarantee easy integration into networks and fast operation, for example, as NAS. USB sockets allow the usage of a keyboard, mouse, or even DVB receivers (refer to Chapter 4, An Arcade Cabinet). The 40-pin General Purpose Input Output (GPIO) header allows arbitrary experiments that feature different bus systems, such as CAN (Controller Area Network) or SPI (Serial Peripheral Interface). Different LEDs provide board statuses; CSI (Camera Serial Interface) and LVDS (Low Voltage Differential Signaling) interfaces are also available. The CSI interface can be used in order to connect a camera and LVDS interface that can be used for display connection purposes. Even an onboard microphone is implemented. The following are the Banana Pro specifications:



System on chip

Allwinner A20, SATA 2, two USBs, and one Micro-USB


1 GHz Cortex-A7 dual-core


Mali 400 MP2, OpenGL 2.0/1.1 (hardware accelerated)




5V/2A using Micro-USB (DC and/or USB OTG)




Two USBs of the 2.0 version and one USB 2.0 OTG

Low level connectors

A 40-pin GPIO header, including UART, I2C, SPI, PWM, CAN, I2S, and SPDIF


A Micro-SD card, SATA 2.0, and a 2.5 inch hard disk power supply onboard


10/100/1000 Ethernet RJ 45 and 150 Mbps Wi-Fi 802.11 b/g/n


HDMI-A 1.4, a composite video (PAL and NTSC) (via 3.5 mm TRRS jack shared with an audio output), and LVDS/RGB/CPU display interface (DSI) for raw LCD panels. 11 HDMI resolutions from 640×480 to 1920×1080 plus various PAL and NTSC standards


An HD H.264 2160p video decoding. A multiformat FHD video decoding, including Mpeg1/2, Mpeg4, H.263, H.264, and so on. An H.264 high-profile 1080p@30fps or 720p@60fps encoding


An 8-bit parallel camera interface

Audio outputs

HDMI, analog audio (via a 3.5 mm TRRS jack that's shared with composite video out), I2S audio (also potentially for audio input), and an electrical SPDIF audio output

Audio input

An onboard microphone


A reset button, power button, and a U-boot button


A power status LED (red), Ethernet status LED (blue), and a user-defined LED (green)


An onboard IR receiver


92 mm x 60 mm and 48 gm

Table 1: Banana Pro specifications

Contrary to many other embedded boards, Banana Pro offers a SATA connector for the direct connection to a 2.5 inch hard disk connection. Moreover, for SSDs or a 2.5 inch hard disk, a power connector is onboard.


Note the correct polarity of the SATA/DC power connector. Compared to CubieBoard or Cubietruck, Banana Pro uses the concept of changed polarity. Therefore, when ordering a Banana Pro SATA/DC cable, be sure of the DC polarity (Figure 2).

Figure 2: The Banana Pro SATA/DC cable (source:

All the connectors of Banana Pro are explained in Figure 3. These are as follows:

  • Debug TTL UART: This interface can be used in order to connect to a serial console PC/laptop via a serial USB cable for debugging purposes.

  • Display interface: Use this connector to connect to an LCD. LeMaker offers three different sizes of LCDs that are up to 7 inches in size.

  • HDMI: Using an HDMI (type A) or an HDMI (type A) cable (HDMI 1.4), this socket allows the connection to a monitor or television. In addition to this, digital audio can be transferred through this connector.

  • SATA 2.0 interface and SATA/DC 5V: Banana Pro has a SATA 2.0 connector onboard. Furthermore, the DC for SSDs or 2.5 inch hard disks can be directly supplied (Figure 2).

  • The micro USB power: Connect your 5V micro USB power supply to this connector in order to boot Banana Pro. While the 1.2A power supply may be sufficient to boot the board without a hard disk, I recommend at least a 2A power supply when the hard disk is connected to the board. Also, keep in mind that a 7 inch LCD connected to the board will consume an additional 750mA.

    Figure 3: Connectors of Banana Pro

  • USB OTG: This allows for switching between a host and target mode. When in host mode, power will be drawn from Banana Pro to a drive or USB device that's connected. Many OTG implementations are currently limited and do not enable the powering of all devices.

    Figure 4: The USB OTG to USB adapter (source:


    Using an adapter cable (Figure 4), USB devices can be connected to this port.

  • Reset button: Pushing this button will reboot Banana Pro. Note that pushing this button during an operation may result in data corruption. It is recommended that you always shut down Banana Pro using the sudo halt –p command when using Linux.

  • Camera interface: This connector allows the usage of the LeMaker camera.

  • Power button: This button will boot Banana Pro after shutdown.

  • 40-pin GPIO header: This header provides different signals, such as SPI, CAN, I2S, I2C, UART, or SPDIF.

  • Microphone: The microphone can be used for recordings (mono).

  • AV output: This connector combines analog videos and analog audio in a so-called TRRS jack (Figure 5):

    Figure 5: The TRRS connector for Banana Pro. Pin 1 is audio left, pin 2 is audio right, pin 3 is video out and pin 4 is ground.


    There are adapter cables available that separate audio and videos (Figure 6):

    Figure 6: The TRRS splitter for audio and videos

  • IR Receiver: Banana Pro features an onboard IR receiver that receives remote control signals.

  • 2 x USB: Connect your USB devices here.

  • Ethernet interface: Banana Pro provides a 1 Gb Ethernet interfaces that offers a true GB speed.

  • The microSD card slot: Banana Pro boots from a microSD card since a direct boot from a hard disk is not possible. However, a root filesystem can be directed to the hard disk once it's booted from the microSD card.

  • FEL button: FEL is a low-level subroutine that's contained in the BootROM on Allwinner devices. It is used for the initial programming and recovery of devices using a USB.

In addition to the preceding connectors, Banana Pro offers a WLAN module that can also work as an access point. Banana Pro does not supply a real-time clock (RTC). However, there are RTC add-on boards available at

Figure 7: The RTC add-on board for Banana Pro. Source:

Banana Pro onboard LEDs

Banana Pro features several LEDs onboard. The red LED lights up as soon as DC power is supplied to the board. The blue LED shows Ethernet activity. The green and blue LEDs can be set individually. Chapter 2, Programming Languages, will show you how these LEDs can be programmed.