Banana Pro resources

Summary
This page pulls together the material Banana Pro owners usually need first: downloads, hardware specifications, GPIO pinouts, peripheral configuration, and fault-finding notes. Banana Pro keeps the original Banana Pi shape, but adds onboard WiFi with the AP6210 802.11n module, Bluetooth 4.0, a SATA 2.0 interface, and a stronger power path. That makes it a better fit for NAS builds, home automation, and wireless projects, although only if the supply and cabling are actually up to the job.
One rule saves a lot of time. Check the image checksum before flashing, then keep a clean baseline boot report - kernel version, dmesg, and journalctl - while the board is still healthy. Once updates or hardware changes start, that baseline is the thing you compare against.
Who this is for
This is for new Banana Pro owners setting up a first build, developers moving across from Banana Pi who need the Pro-specific differences explained plainly, and anyone chasing GPIO, WiFi, SATA, or boot problems on Banana Pro hardware.
Getting the board ready
You need the hardware differences clear before anything else. The Pro adds WiFi and Bluetooth, exposes SATA, and asks more of the power supply than the older board. After that, the sequence is familiar enough: find the correct image, verify it, wire the header correctly, configure WiFi and Bluetooth, set up storage, and keep enough logs to make troubleshooting sensible.
These are the points that matter in practice: Banana Pro hardware differences, correct image downloads and integrity checks, GPIO configuration using the 40-pin header with BCM, physical, and Allwinner numbering, onboard WiFi and Bluetooth setup, SATA 2.0 storage expansion for NAS or a media server, FEX or script.bin versus device tree requirements, baseline boot reports, and the usual Banana Pro faults such as WiFi driver problems, SATA detection failures, and weak power delivery.
Banana Pro hardware overview
How Banana Pro differs from Banana Pi
The main changes are straightforward. WiFi comes from the onboard AP6210 module, which supports 802.11b/g/n on 2.4GHz and can reach up to 150Mbps. Bluetooth 4.0 is part of the same module and is configured via hciconfig and the BlueZ stack. SATA 2.0 gives you an onboard path for 2.5-inch drives or SSDs, but it still needs a proper 5V feed from the dedicated SATA power connector. The power circuit is also stronger than the original Banana Pi, though not strong enough to excuse a weak supply. In practice, poor power is what causes WiFi to drop out and SATA to behave erratically.
There are five details worth keeping separate. WiFi uses the onboard AP6210 module, with 802.11b/g/n on 2.4GHz and up to 150Mbps, and it needs driver support plus country code configuration. Bluetooth is built into the same AP6210 hardware and is configured via hciconfig and the BlueZ stack. SATA 2.0 is rated up to 3 Gbps and is intended for 2.5-inch drives or SSDs, but it still depends on the dedicated 5V SATA power connector. The board's power delivery is improved, with a recommended 5V 2.5A minimum and 3A for SATA drives. The PCB also has better thermal management and power routing than the original Banana Pi.
GPIO 40-pin header pinout
Banana Pro uses a 40-pin header arranged to match the Raspberry Pi 2 layout. Pin numbering appears in three forms, and mixing them up is a good way to miswire a board.
Physical numbering refers to pin position on the header, from 1 to 40. BCM means the GPIO numbers used by RPi software for compatibility. Allwinner refers to the actual A20 SoC pin names, such as PH7 and PI10.
Key GPIO pins (Allwinner naming):
- Power: Pins 1, 17 (3.3V), Pins 2, 4 (5V), Pins 6, 9, 14, 20, 25, 30, 34, 39 (Ground)
- I2C: SDA (Pin 3 - PB21/TWI1-SDA), SCL (Pin 5 - PB20/TWI1-SCL)
- SPI: MOSI (Pin 19 - PI12), MISO (Pin 21 - PI13), SCLK (Pin 23 - PI11), CE0 (Pin 24 - PI10)
- UART: TXD (Pin 8 - PB22), RXD (Pin 10 - PB23)
- PWM: Pin 12 (PI3), configurable via device tree or FEX
- General GPIO: PH series (PH2, PH7, PH10, etc.) and PI series pins available for user applications
GPIO access methods:
# Using sysfs (legacy, widely compatible):
echo 7 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio7/direction
echo 1 > /sys/class/gpio/gpio7/value
# Using gpiod tools (modern, recommended):
gpioinfo
gpioset gpiochip0 7=1
gpioget gpiochip0 7
# Using WiringPi (if installed, see wiki link):
gpio readall
gpio mode 7 out
gpio write 7 1
Important: Pin numbering varies by tool. WiringPi uses its own numbering scheme. Always verify pinout before connecting hardware to avoid damaging GPIO pins (max 3.3V input).
WiFi and Bluetooth configuration
WiFi (AP6210 module)
The AP6210 module provides 2.4GHz 802.11n WiFi. Driver support depends on the kernel branch, and that detail matters more than people expect.
- Modern kernels (4.x+): Use mainline
brcmfmacdriver (built-in or module) - Legacy kernels (3.x): May require vendor-specific driver or firmware
# Check if WiFi interface exists:
ip link show wlan0
# Check driver and firmware:
dmesg | grep -i brcm
lsmod | grep brcm
# If firmware missing, install (Debian/Ubuntu):
sudo apt install firmware-brcm80211
# Connect to WiFi (NetworkManager):
sudo nmcli dev wifi list
sudo nmcli dev wifi connect "SSID" password "password"
# Or using wpa_supplicant:
wpa_passphrase "SSID" "password" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
sudo systemctl restart wpa_supplicant
# Set regulatory domain (required for proper channel access):
sudo iw reg set US
Common WiFi issues:
- Module not detected: Check
dmesg | grep brcmfor errors. Verify firmware installed. Some images require manual firmware installation. - Weak signal/disconnects: Check power supply (insufficient power causes WiFi instability). Disable power management:
sudo iw dev wlan0 set power_save off. - Country code issues: Some channels unavailable without proper regulatory domain setting. Set via
iw reg set.
Bluetooth (BT 4.0)
Bluetooth 4.0 sits on the same AP6210 module and uses the BlueZ stack. Pairing, scanning, and service startup all depend on that path being brought up cleanly first.
# Check Bluetooth status:
hciconfig -a
# If interface down, bring up:
sudo hciconfig hci0 up
# Scan for devices:
sudo hcitool scan
# Using bluetoothctl (interactive):
bluetoothctl
> scan on
> pair [MAC_ADDRESS]
> connect [MAC_ADDRESS]
SATA 2.0 interface
Banana Pro includes a SATA 2.0 interface with a theoretical ceiling of 3 Gbps and practical throughput of around 150-200 MB/s on a decent drive.
Hardware setup
The physical side is simple enough. Use a standard SATA data cable for the onboard port, connect the SATA power connector beside it, and make sure the supply can deliver at least 2.5A for the board plus the drive. 2.5-inch SATA drives and SSDs are the intended use here. 3.5-inch drives are a different matter and need an external power supply, because the board cannot provide 12V.
- Data cable: Standard SATA data cable connects to onboard SATA port
- Power: SATA power connector on board (4-pin, near SATA data port). Connect 5V power supply capable of delivering 2.5A+ for drive plus board.
- Drive support: 2.5" SATA drives and SSDs. 3.5" drives require external power supply (board cannot provide sufficient 12V).
Software configuration
# Check if SATA drive detected:
lsblk
# Look for /dev/sda or similar
dmesg | grep -i sata
# Look for: ahci, ata1, drive detection messages
# Check SMART status (if drive supports SMART):
sudo smartctl -a /dev/sda
# Format and mount (example, adjust as needed):
sudo fdisk /dev/sda # Create partition
sudo mkfs.ext4 /dev/sda1
sudo mkdir /mnt/sata
sudo mount /dev/sda1 /mnt/sata
# Auto-mount on boot (/etc/fstab):
/dev/sda1 /mnt/sata ext4 defaults,noatime 0 2
SATA troubleshooting:
- Drive not detected: Check power connection to SATA power connector. Verify drive spins up (listen for spin-up sound). Check
dmesgfor AHCI/SATA controller initialization. - Intermittent disconnects: Usually power-related. Upgrade to 5V 3A power supply. Check cables are fully seated.
- Poor performance: SATA 2.0 limits to ~300 MB/s theoretical. Practical speeds 150-200 MB/s with SSD. Check filesystem alignment and mount options (noatime reduces writes).
Power requirements and recommendations
- Board only: 5V 2A minimum (idle ~1.2A, peak ~1.8A with WiFi active)
- Board + SATA 2.5" HDD: 5V 2.5A minimum (3A recommended for headroom)
- Board + SATA SSD: 5V 2.5A adequate (SSDs draw less power than HDDs)
- Cable quality: Use short (<1m), thick (24AWG or better) micro-USB cable. Thin cables cause voltage drop.
Undervoltage symptoms:
Random WiFi disconnects, a SATA drive that vanishes, unexplained freezes, and reboots are all classic signs. Filesystem corruption belongs on that list too. If the kernel supports detection, check dmesg | grep -i voltage for undervoltage warnings and treat the result as a clue, not a curiosity.
Curated internal links (start here)
- Start here: Quick Start Guide ' cabling, first boot, and basic access.
- Downloads hub ' image files and integrity checks.
- Banana Pro specifications ' reference details when choosing images and peripherals.
- SBC Maintenance Routine ' preventive maintenance, backup strategies, and security updates for ARM boards.
- Network setup notes ' common network bring-up checks and symptoms.
- Boot and Storage Notes ' SD card reliability, boot troubleshooting, and storage best practices.
- ARM Linux Reliable Setup Checklist ' comprehensive pre-flash and post-boot procedures for ARM boards.
- Log in to the Banana Pi (Wiki) ' archived login tips and defaults.
- FEX configuration (Wiki) ' archived notes for systems that still use script.bin style configuration.
- Building U-Boot and kernel (Wiki) ' deeper bootloader/kernel workflow notes.
- WiringPi (Wiki) ' GPIO tooling notes (archival).
If the right path is not obvious, start with the downloads hub and the Quick Start Guide. Bootloader or kernel work comes later, once the board is behaving consistently.
Quick checklist
- Stable PSU and cable (undervoltage causes random resets and storage corruption).
- Known-good SD card (or eMMC module) and a reliable card writer.
- Ethernet cable for first boot (recommended).
- Optional: USB'TTL serial adapter (3.3V) for recovery and early boot logs.
- Verified image file (checksum matches).
- A plan for access: SSH keys ready, or local console available.
- Spare storage available for "try a different card" troubleshooting.
Steps / guidance
- Choose an image and verify the download.
Start from the downloads hub and verify integrity before flashing:
sha256sum banana-pro-image.img.xz sha256sum banana-pro-image.img - Flash to storage and confirm partitions.
lsblk blkid - Boot with minimal peripherals. Use Ethernet and avoid extra USB devices until the baseline boot is stable.
- Confirm identity and interfaces.
uname -a cat /proc/cpuinfo | head -n 40 ip a ip r lsblk - Record a baseline boot report.
systemctl --failed journalctl -b -p err | tail -n 120 dmesg | tail -n 80Keep this output in your notes. If a later update changes behaviour, the comparison is much faster when the original log is already there.
- Update once under supervision. Keep console access open; after reboot, repeat the verification checks.
Verification checks
After flashing or changing boot components, run at least two checks rather than guessing from one successful boot.
sha256sum banana-pro-image.img
ip a
lsblk
dmesg | tail -n 50
journalctl -b -p err | tail -n 120
Common pitfalls (Banana Pro)
- Wrong image for the board variant: symptoms include no boot, no network, or missing devices; re-check model and image notes.
- Wrong boot configuration format: some images rely on FEX/script.bin expectations; others use device tree. Change one variable at a time.
- Undervoltage and marginal storage: random resets, filesystem errors, and "sometimes works" behaviour usually point here.
- Assuming Wi-Fi is easier than Ethernet: first boot over Ethernet removes a lot of variables.
Troubleshooting
- No boot: swap PSU/cable first, then swap SD card; confirm you flashed the correct device; capture serial logs if available.
- Boots but no network: check
ip aandip r; confirm DNS withcat /etc/resolv.conf. - Filesystem errors: treat as storage until proven otherwise; re-flash to a new card and retry.
- USB devices unstable: reduce peripherals; try powered hub for high-draw devices; check
dmesgimmediately after plug/unplug. - After update, access lost: use serial/local console; check
journalctl -b -p err; revert the last risky change first. - SATA drive not detected: verify power connection to SATA power connector; check
lsblkanddmesg | grep -i sata; confirm drive spins up (audible); upgrade PSU to 3A if using HDD. - WiFi firmware missing: install firmware package:
sudo apt install firmware-brcm80211; checkdmesg | grep brcmfor loading errors; reboot after installation. - Bluetooth not working: bring up interface:
sudo hciconfig hci0 up; check BlueZ service:systemctl status bluetooth; scan for devices:bluetoothctl scan on. - GPIO permission denied: add user to gpio group:
sudo usermod -a -G gpio $USER; check udev rules in/etc/udev/rules.d/; logout and login for group changes to take effect.
Common mistakes
- Skipping checksums and debugging a corrupt image.
- Changing bootloader and kernel in the same session.
- Running headless without a recovery path (serial or local console).
- Debugging "random" problems without swapping PSU/cable and storage.
- Mixing configuration approaches (FEX/script.bin assumptions vs device tree) without confirming what the image expects.
- Connecting 5V signals to GPIO pins (max input is 3.3V).
- Using WiFi for first boot without confirming firmware is present.
- Expecting 3.5" SATA drives to work without external 12V power.
Frequently asked questions
- Are GPIO pins 5V tolerant?
- No. Banana Pro GPIO operates at 3.3V. Connecting 5V signals directly will damage the SoC. Use level shifters for 5V devices.
- SATA vs USB storage: which is faster?
- SATA 2.0 provides ~150-200 MB/s with SSD (theoretical 300 MB/s). USB 2.0 limited to ~30-35 MB/s practical. For NAS or high-throughput applications, use SATA.
- Does WiFi support 5GHz band?
- No. AP6210 module is 2.4GHz only (802.11b/g/n). Maximum theoretical speed 150Mbps (typical 50-80Mbps in practice).
- What Bluetooth version is supported?
- Bluetooth 4.0 (part of AP6210 module). Supports BLE (Bluetooth Low Energy) and classic profiles. Configure via
bluetoothctl. - Which OS images work best for Banana Pro?
- Armbian offers best hardware support and mainline kernels. Raspbian ports available but may have driver limitations. Check downloads hub for verified images.
- FEX vs device tree: which does my image use?
- Legacy images (kernel 3.x) use FEX/script.bin. Modern images (kernel 4.x+) use device tree. Check
/bootforscript.bin(FEX) or*.dtbfiles (device tree). - Serial console settings?
- 115200 baud, 8N1, no flow control. Connect USB'TTL adapter to pins 8 (TX) and 10 (RX) on GPIO header. Adapter must be 3.3V logic level.
- What power supply do you recommend?
- 5V 2.5-3A from reputable brand (Anker, RAVPower, official Raspberry Pi adapter). Use quality micro-USB cable (24AWG or thicker, <1m length). Avoid phone chargers.
- SD card vs eMMC: which should I use?
- eMMC faster and more reliable for constant writes. SD card easier to swap for testing. For production NAS/server, use eMMC or boot from SATA (if bootloader supports).
- CSI camera support?
- Banana Pro has CSI connector for parallel camera interface. Support depends on kernel drivers and device tree configuration. Compatibility limited compared to Raspberry Pi Camera Module.
Related guides
- Image files and integrity checks
- Banana Pro specifications
- Quick Start Guide
- SBC Maintenance Routine
- Network Setup Notes
- Boot and Storage Notes
- ARM Linux Reliable Setup Checklist
Author: LeMaker Documentation Team
Last updated: 2026-01-12