Banana Pi BPI-CM4 (Amlogic A311D, Raspberry Pi CM4 form factor)
⚡ The essentials in 60 seconds
- soc — Amlogic A311D (amlogic,a311d, amlogic,g12b family) — big.LITTLE hexa-core: 4× Cortex-A73 + 2× Cortex-A53, Arm Mali-G52 MP4 (6EE) GPU (OpenGL ES 3.2, Vulkan 1.0, OpenCL 2.0 per wiki spec table), 5 TOPS NPU (wiki, CNX).
- ram — 4 GB LPDDR4 (mainline DTS memory@0 reg = <0x0 0x0 0x0 0x40000000>; geerlingguy saw 3709 MiB usable).
- cpu_power — two PWM-controlled DC/DC regulators — VDDCPU_A (MP8756GD, 0.68–1.04 V) for the A73 cluster, VDDCPU_B (SY8120B1ABC, 0.68–1.04 V) for the A53 cluster (mainline DTS).
- storage — 16 GB eMMC on module (options "up to 128 GB", wiki) — 8-bit bus, mmc-hs200-1_8v, max-frequency = <200000000> (mainline DTS). microSD slot is on the carrier (4-bit, cap-sd-highspeed, 50 MHz, CD on GPIOC_6). No SPI NOR. Measured eMMC: 233 MB/s 1 M sequential read (fio) — geerlingguy #11; 148.8 MB/s hdparm read on a Samsung part (wiki benchmark table).
- pcie_nvme — PCIe Gen2 x1 controller on-module routing (mainline &pcie with reset on GPIOA_8); the BPI-CM4IO carrier exposes it as a mini-PCIe socket (PCIe + USB 2.0) with a micro-SIM slot for an LTE modem. NVMe SSD works through a mini-PCIe→NVMe adapter — the wiki explicitly states "bananapi cm4io has a minipcie slot onboard" and benchmarks a Samsung 970 EVO Plus at 351 MB/s hdparm read, 101 k IOPS 4 k random read (wiki "Boot Linux from SSD").
- ethernet — one Gigabit Ethernet — Amlogic GbE MAC (ðmac, phy-mode = "rgmii-txid") + on-module Realtek RTL8211F PHY (ethernet-phy@0, "Realtek RTL8211F (0x001cc916)", max-speed = <1000>, interrupt on GPIOZ_14) (mainline DTS; CNX; wiki spec table "1x Gigabit Ethernet ports one via RTL8211F GbE transceiver"). Measured 943 Mbit/s up / 873 Mbit/s down (iperf3, geerlingguy #11).
- On this board : 9 tutorials · 10 code
The Banana Pi BPI-CM4 is a compact system-on-module (SoM) designed to offer a powerful alternative to the Raspberry Pi Compute Module 4 within the same physical footprint. Unlike a single-board computer that includes all ports and connectors on one piece of silicon, a SoM integrates the processor, memory, and storage onto a small, rectangular board that must be plugged into a separate carrier board, also known as a baseboard or IO board. This modular approach allows developers to design custom hardware tailored to specific projects while reusing the same computing core. The BPI-CM4 measures 55 by 40 millimeters and features two 100-pin board-to-board connectors, making it physically and electrically compatible with the Raspberry Pi CM4 form factor. This "pin-to-pin" compatibility means it can be inserted into many existing CM4 carrier boards, although users should be aware that certain advanced features specific to the Raspberry Pi silicon, such as dual HDMI outputs or dual camera interfaces, will not function due to differences in the underlying processor architecture.
At the heart of the BPI-CM4 is the Amlogic A311D system-on-chip, a hexa-core processor that employs a big.LITTLE architecture. This design combines four high-performance Cortex-A73 cores for demanding tasks with two energy-efficient Cortex-A53 cores for lighter background processes, allowing the system to balance speed and power consumption dynamically. The processor is paired with a Mali-G52 MP4 graphics processing unit, which supports modern graphics APIs like Vulkan and OpenCL, enabling smooth desktop experiences and 3D rendering. A standout feature of this SoC is its integrated neural processing unit (NPU), capable of delivering 5 trillion operations per second (TOPS). This dedicated hardware accelerator allows the module to run artificial intelligence and machine learning tasks locally, such as image recognition or voice processing, without needing an external AI stick or cloud connectivity. The module typically ships with 4 GB of LPDDR4 RAM and 16 GB of eMMC storage, providing a solid foundation for embedded applications, though the manufacturer has indicated options for higher storage capacities.
Connectivity options are robust for a module of this size. The BPI-CM4 includes a Realtek RTL8822CS chip that provides dual-band Wi-Fi 5 (802.11ac) and Bluetooth connectivity. The module features two u.FL antenna connectors for attaching external antennas, as well as an onboard PCB antenna for basic wireless needs. For wired networking, it provides a single Gigabit Ethernet port via a Realtek RTL8111F transceiver. While some marketing materials may suggest dual Ethernet ports, authoritative technical documentation and device tree definitions confirm that the BPI-CM4 supports only one Gigabit Ethernet interface. Video output is handled through a single HDMI 2.1 port, capable of driving displays up to 4K resolution at 60 frames per second. Additionally, the module supports MIPI-DSI for connecting small displays and MIPI-CSI for camera modules, though the number of lanes available is limited compared to the Raspberry Pi CM4, restricting the system to one camera and one display interface simultaneously.
Expansion capabilities are largely determined by the carrier board used. The official Banana Pi BPI-CM4IO carrier board exposes a PCIe Gen2 x1 lane through a mini-PCIe slot. This slot can be used to add high-speed NVMe solid-state drives via an adapter, significantly boosting storage performance compared to the onboard eMMC or microSD cards. It can also accommodate LTE modem cards for cellular connectivity, supported by a micro-SIM slot on the carrier. The carrier board also provides a 26-pin GPIO header compatible with Raspberry Pi GPIO standards, allowing for the connection of sensors, actuators, and other peripherals using standard libraries like WiringPi or libgpiod. The GPIO header supports various protocols, including I2C, SPI, UART, and PWM, though the specific mapping of these functions to the physical pins differs from the Raspberry Pi and must be consulted in the Banana Pi documentation.
Software support for the BPI-CM4 has evolved significantly. While the vendor initially provided images based on an older Linux kernel (4.9) and U-Boot bootloader, which limited performance and security updates, the community has stepped in with strong support. The module is now fully supported in mainline Linux kernels starting from version 6.4, with device tree files that enable most hardware features, including the NPU, GPU via the open-source Panfrost driver, and audio. Armbian, a popular Linux distribution for single-board computers, offers "platinum" support for the BPI-CM4, providing up-to-date kernels and a user-friendly experience. This mainline support is crucial for long-term projects, as it ensures access to the latest security patches and software features. However, users should be aware of a boot priority quirk: the Amlogic processor boots from eMMC storage before checking the SD card. If a corrupted or incompatible image is written to the eMMC, it can prevent the system from booting from the SD card, requiring a recovery process using the vendor’s USB burning tool or a complete wipe of the eMMC.
Thermal management is an important consideration for the BPI-CM4. The A311D processor is powerful but can generate significant heat under sustained load. Independent reviews have shown that without adequate cooling, the module can throttle its performance within seconds of starting a heavy computational task, dropping clock speeds to prevent overheating. A small heatsink with airflow is recommended for applications that require consistent high performance. Despite these challenges, the BPI-CM4 offers a compelling value proposition, combining a powerful hexa-core CPU, integrated AI acceleration, and CM4 compatibility at a competitive price point. It serves as an excellent choice for developers looking to leverage the Raspberry Pi CM4 ecosystem while benefiting from the specific strengths of the Amlogic A311D platform, particularly in areas like media playback, AI inference, and general-purpose computing.


Pinout diagram

| Attr | Specs | verified |
|---|---|---|
soc | Amlogic A311D (amlogic,a311d, amlogic,g12b family) — big.LITTLE hexa-core: 4× Cortex-A73 + 2× Cortex-A53, Arm Mali-G52 MP4 (6EE) GPU (OpenGL ES 3.2, Vulkan 1.0, OpenCL 2.0 per wiki spec table), 5 TOPS NPU (wiki, CNX). | ? unverified |
ram | 4 GB LPDDR4 (mainline DTS memory@0 reg = <0x0 0x0 0x0 0x40000000>; geerlingguy saw 3709 MiB usable). | ? unverified |
cpu_power | two PWM-controlled DC/DC regulators — VDDCPU_A (MP8756GD, 0.68–1.04 V) for the A73 cluster, VDDCPU_B (SY8120B1ABC, 0.68–1.04 V) for the A53 cluster (mainline DTS). | ? unverified |
storage | 16 GB eMMC on module (options "up to 128 GB", wiki) — 8-bit bus, mmc-hs200-1_8v, max-frequency = <200000000> (mainline DTS). microSD slot is on the carrier (4-bit, cap-sd-highspeed, 50 MHz, CD on GPIOC_6). No SPI NOR. Measured eMMC: 233 MB/s 1 M sequential read (fio) — geerlingguy #11; 148.8 MB/s hdparm read on a Samsung part (wiki benchmark table). | ✔ |
pcie_nvme | PCIe Gen2 x1 controller on-module routing (mainline &pcie with reset on GPIOA_8); the BPI-CM4IO carrier exposes it as a mini-PCIe socket (PCIe + USB 2.0) with a micro-SIM slot for an LTE modem. NVMe SSD works through a mini-PCIe→NVMe adapter — the wiki explicitly states "bananapi cm4io has a minipcie slot onboard" and benchmarks a Samsung 970 EVO Plus at 351 MB/s hdparm read, 101 k IOPS 4 k random read (wiki "Boot Linux from SSD"). | ✔ |
ethernet | one Gigabit Ethernet — Amlogic GbE MAC (ðmac, phy-mode = "rgmii-txid") + on-module Realtek RTL8211F PHY (ethernet-phy@0, "Realtek RTL8211F (0x001cc916)", max-speed = <1000>, interrupt on GPIOZ_14) (mainline DTS; CNX; wiki spec table "1x Gigabit Ethernet ports one via RTL8211F GbE transceiver"). Measured 943 Mbit/s up / 873 Mbit/s down (iperf3, geerlingguy #11). | ✔ |
wifi_bluetooth | on-module Realtek RTL8822CS — 802.11ac (WiFi 5) dual-band up to 867 Mbit/s + Bluetooth, SDIO (rtl8822cs: wifi@1 on &sd_emmc_a, sd-uhs-sdr104, keep-power-in-suspend) with BT on &uart_A (realtek,rtl8822cs-bt, RTS/CTS, wake GPIOs GPIOX_18/19) (mainline DTS; CNX; wiki). 2× u.FL antenna connectors + onboard PCB antenna; no antenna in the box (CNX, bret.dk). | ? unverified |
video | 1× HDMI 2.1 output up to 4Kp60 (single HDMI only — the A311D pin budget gives 1 HDMI / 1 CSI / 1 DSI vs the BCM2711's 2/2/2, wiki), 1× MIPI-DSI display connector and 1× MIPI-CSI camera connector (both on the carrier; mainline enables &hdmi_tx, CEC AO A/B, &i2c1 "camera" bus, &i2c3 DSI touch bus). Vendor camera example: OmniVision OS08A10 via os08a10.dtbo (wiki). | ✔ |
usb | 2× USB 2.0 Type-A + 1× USB-C (OTG on the carrier; mainline baseboard DTS sets dr_mode = "peripheral") — two USB2 PHYs (usb2_phy0/1) on the module (mainline DTS). | ? unverified |
gpio_expansion | 26-pin header on the carrier, Raspberry-Pi-CM4-style 26-pin block (wiki pinout table maps BPI-CM4 nets to RPi CM4 GPIO numbers). From the BPI-CM4IO pin table: I2C1 = GPIOX_17/18 (pins 3/5), UART_B = GPIOX_6/7 (8/10), SPI_A = GPIOX_8/9/10/11 (MOSI/MISO/SCK/SS0, pins 19/21/24/23), I2S = GPIOA_0/1/2/3/7, SPDIF in/out = GPIOH_5/GPIOH_4, IR-IN = GPIOAO_5, GPIOAO_10 (pin 11), 3V3 and DCIN power pins. - PWM: mainline enables pwm_ab (PWM_E pin), pwm_ef (also used as the 32.768 kHz WiFi clock) and pwm_AO_cd; the vendor WiringPi fork supports hardware + software PWM on the 26 pins (wiki). > ses SARADC_CH3/ADC_KEY. - DAC: none exposed. | ✔ |
debug_console | 3-pin UART header on the carrier (UART0 RX/TX/GND); stdout-path = "serial0:115200n8" = uart_AO in mainline; Armbian console is ttyAML0 (armbian/build). | ✔ |
other | 2 buttons (power + the ADC "Function" key), power LED + activity LED (mainline led-blue = GPIOAO_7 with heartbeat trigger, led-green = GPIOAO_2), IR input, audio via HDMI I2S glue and the axg sound card (amlogic,axg-sound-card, TDM/FRDDR DAI links) in mainline. | ? unverified |
power | 5 V, via the carrier's USB-C OTG port or the header/DCIN pins (wiki, CNX "Supply Voltage – 5V"). Recommended 5 V/3 A supply (wiki Getting Started). Measured (module + carrier, WiFi/BT/Ethernet on, no peripherals): 1.8 W idle, 4.1 W under stress-ng --matrix 0 (geerlingguy #11). | ✔ |
thermals | throttling starts at ≈70 °C; bare module under stress-ng throttles within 5 s to 2208/1074 MHz, and after 10 min sits at 1000/1000 MHz; a small heatsink keeps it at 1800/1398 MHz after 10 min (bret.dk). | ? unverified |
mechanical | module 55 × 40 mm, "exactly the same size as the raspberry PI CM4" (wiki), 4× M2.5 mounting holes (CNX); BPI-CM4IO carrier 100 × 72 mm (wiki). | ? unverified |
- Manufacturer: Shenzhen SINOVOIP Co., Ltd. / Guangdong BiPai Technology Co., Ltd., brand "Banana Pi" (Wikipedia: Banana Pi, retrieved 2026-10-13).
- Product: Banana Pi BPI-CM4 — a Raspberry Pi CM4-compatible system-on-module (2× 100-pin board-to-board connectors, 55 × 40 mm, 4× M2.5 holes) (CNX, 2023-01-05).
- Year: announced 2022-05-25 ("Banana Pi is working on a Raspberry Pi CM4 compatible module powered by Amlogic A311D", CNX 2022-05-25); retail launch 2023-01-05 (CNX 2023-01-05). Armbian's board metadata records INTRODUCED="2021" (armbian/build config/boards/bananapicm4io.conf).
- Launch price: US$95 for the module, ~US$110 for the kit with the BPI-CM4IO baseboard (CNX 2023-01-05). Independent purchases: $90 module / $105 module+CM4IO incl. shipping (bret.dk review) and $109.73 for 4 GB/16 GB on AliExpress on 2023-01-05 (geerlingguy/sbc-reviews #11).
- Status: Active / current (not EOL as of 2026-10-13): vendor Android image dated 2024-04-29 and Linux images dated 2023-12-26 on the wiki (Banana_Pi_BPI-CM4); Armbian still ships it with KERNEL_TARGET="current,edge" and bootloader tag v2026.01 (armbian/build); AliExpress/Taobao listings are linked from the wiki.
- Variants / related boards: - BPI-CM4 4 GB LPDDR4 + 16 GB eMMC — the shipping configuration documented everywhere (wiki spec table, CNX, geerlingguy). CNX's 2022 announcement listed 2 GB/4 GB RAM and eMMC "up to 128 GB" options. - BPI-CM4IO — Banana Pi's own 100 × 72 mm carrier for BPI-CM4 or Raspberry Pi CM4 (wiki BPI-CM4IO). - Raspberry Pi CM4 IO board and third-party CM4 carriers — physically/electrically usable ("Other is Pin2Pin. you can use Raspberry Pi CM4 baseboard", wiki; CNX notes dual-HDMI and dual-camera carrier features do not work). - BPI-CM2 (Rockchip RK3568, extra 70-pin connectors) and BPI-CM5 (Amlogic A311D2) are different modules that share the CM4 footprint (CNX 2023-08-08, wiki BPI-CM5).
+ Strengths
- Raspberry Pi CM4 drop-in footprint and connector layout ("Pin2Pin", same 55×40 mm size), so existing CM4 carriers work — with the documented loss of dual-HDMI/dual-CSI features (wiki, CNX).
- 5 TOPS NPU on the SoC — no external AI accelerator needed (CNX: "users do not need to add an AI accelerator like Google Coral or Myriad X"); the vendor points at the Khadas VIM3 NPU demos.
- Hexa-core big.LITTLE A73+A53 — measurably faster CPU than a BCM2711 CM4 even with the Pi overclocked to 2.0 GHz (CNX), 6 logical CPUs vs 4 (bret.dk).
- Mali-G52 MP4 (6EE) with mainline Panfrost driver (Vulkan/OpenCL) — Armbian even blacklists simpledrm because it "conflicts with Panfrost" (armbian/build).
- mini-PCIe + micro-SIM on the carrier → documented Quectel EC20 LTE 4G WAN via qmi_wwan (quectel-CM &) or pppd, AT port /dev/ttyUSB2 (wiki EC20 section).
- PCIe NVMe storage through the mini-PCIe slot: ~351 MB/s read, 101 k IOPS 4 k random read — 100× the microSD 4 k random performance (wiki benchmark table).
- WiFi 5 + BT with two u.FL connectors and a working onboard PCB antenna — bret.dk measured better throughput on the PCB antenna than with an external antenna.
- Real mainline + Armbian "platinum" support (kernel 6.x, Panfrost, ALSA axg sound card, LED and ADC-key drivers) on top of the vendor BSP — rare for Banana Pi modules (wiki Armbian section, mainline DTS).
- Misc silicon features exposed: IR receiver (GPIOAO_5), SARADC user key, HDMI CEC (both CEC AO controllers), I2S/TDM audio with HDMI audio glue, MIPI CSI (OS08A10) and MIPI DSI panels (800×1280 / 1200×1920 BPI panels, rotation via fb_rotate or Xorg).
− Weaknesses
- Ancient vendor BSP. u-boot 2015.01 + Linux 4.9.241 on all vendor images: "the module is only suitable for people that are fine with using outdated bootloader and Linux kernel" (CNX 2023-01-05).
- eMMC boot-priority trap. A bootable eMMC blocks SD-card boot; a half-flashed eMMC can hang the board in BL2 and requires the USB Burning Tool / full dd erase to recover (wiki Boot Sequence).
- Severe thermal throttling. Throttling begins at ~70 °C, within 5 seconds under stress-ng on a bare module, down to 1000/1000 MHz after 10 minutes; heatsink + airflow required for sustained load (bret.dk).
- RTL8822CS WiFi driver conflict on Armbian. The out-of-tree 88x2cs driver "fights mainline rtw88_8822cs for the onboard SDIO wifi (DISASSOC_LOW_ACK, h2c failures, 1 Mbit/s at full signal)" — Armbian ships MODULES_BLACKLIST="simpledrm 88x2cs" (armbian/build board config). On vendor images WiFi/BT are disabled by default and must be enabled by adding 88x2cs to /etc/modules (wiki "Enable Wifi and BT").
- No NVMe/PCIe boot. "A311d soc rom and BPI-M2S-bsp uboot are both not support nvme boot" — SSD is rootfs-only, bootloader must live on SD/eMMC (wiki).
- SD-card / PCIe instability workaround. The vendor documents user_kernel_args=pci=pcie_bus_safe disableuhs to force the SD host out of UHS mode when the PCIe slot is populated (wiki) — i.e. the combination is not reliably stable.
- Reduced CM4 feature set. Only 1 HDMI, 1 CSI, 1 DSI (vs 2/2/2 on the CM4): "for A311D chip PIN limited"; carrier features such as dual HDMI or dual camera simply do not work (wiki, CNX).
- Antenna paradox. Attaching the external antenna raised signal strength but dropped throughput; unexplained at time of writing (bret.dk WiFi section).
- GPIO tooling is BSP-only and partial. "This WiringPi only support set 26pins gpio to output, input, pwm or software pwm, for io functions as i2c, spi, ..., you must enable dtb overlay in boot.ini" — the vendor WiringPi/RPi.GPIO forks (Dangku/WiringPi, Dangku/RPi.GPIO) do not work on mainline kernels (wiki).
- Documentation/datasheet availability. Datasheet, schematic, DXF and images are hosted on Baidu Pan / Google Drive links (some already broken by "Google security update", per the wiki note), a real long-term availability risk for the official hardware docs.
- Spec-sheet inconsistencies: "2 Gigabit port" vs one real GbE; Bluetooth 5.2 vs 4.2/LE; "USB3" comment vs USB 2.0-only carriers; 2 GB RAM option never confirmed at retail.
- Minor: the Debian 10 vendor image ships an iperf3 too old for --bidir (geerlingguy #11); eMMC parts are second-sourced (Samsung AJTD4R HS200 vs SZ Rayson RS1G32LO4), so storage numbers vary by unit.
- Retour d'expérience expert expert — expert-pi-like
- Retour sur la BPI-CM4. Le format CM4 est un vrai plus pour réutiliser des carriers existants, mais attention au piège du boot : si l'eMMC contient une partition bootable corrompue, la carte ne bootera jamais sur SD sans passer par le USB Burning Tool ou un dd complet. C'est documenté et ça m'a coût… — expert-pi-like
- Merci pour ce retour. J'hésite encore entre la BPI-CM4 et un CM4 classique. Tu confirmes que le support PCIe est bien limité ? Je vois des mentions de NVMe via mini-PCIe, mais est-ce que ça boot directement ? J'ai vu dans la doc qu'il faut garder le bootloader sur SD ou eMMC car le ROM de l'A311D n… — maker-bleu
- Effectivement, pas de boot NVMe, le bootloader doit rester sur eMMC ou SD. Pour le PCIe, j'ai dû ajouter pci=pcie_bus_safe disableuhs aux arguments kernel car ma carte SD était instable dès que j'insérais un adaptateur mini-PCI- NVMe. C'est un workaround connu. Et pour le GPIO, oublie WiringPi stan… — linux-hacker-99
Community feedback and projects
- Banana Pi BPI-CM4 Review (Compute Module 4), Is it the best replacement for the Raspberry Pi CM4 forum.banana-pi.org
- Banana Pi CM4 Review & Benchmarks vs Raspberry Pi CM4 forum.banana-pi.org
- [BPI-CM4] MNT Reform with A311D Processor desktop performance captured over HDMI forum.banana-pi.org
- Banana Pi BPI-CM4 computer module with Amlogic A311D forum.banana-pi.org
Content not available yet.
- Official wiki (product page, pinout, images)
- Official getting started (boot sequence, overlays, WiFi/BT, camera, EC20 LTE, NVMe)
- Official carrier board page (BPI-CM4IO, 26-pin table)
- Datasheet / schematic / mechanical (vendor, Google Drive + Baidu)
- Datasheet / schematic / mechanical (vendor, Google Drive + Baidu)
- Datasheet / schematic / mechanical (vendor, Google Drive + Baidu)
- Datasheet / schematic / mechanical (vendor, Google Drive + Baidu)
- Datasheet / schematic / mechanical (vendor, Google Drive + Baidu)
- meson-g12b-bananapi-cm4.dtsi
- meson-g12b-bananapi-cm4-cm4io.dts
- configs/bananapi-cm4-cm4io_defconfig
- config/boards/bananapicm4io.conf
- Armbian
- Armbian
- Vendor BSP / forks
- Vendor BSP / forks
- Vendor BSP / forks
- Vendor BSP / forks
- Vendor BSP / forks
- Vendor BSP / forks
- CNX Software 2022-05-25 (announcement)
- CNX Software 2023-01-05 (launch, $95)
- CNX Software 2023-08-08 (BPI-CM2, RK3568 sibling)
- bret.dk full review
- geerlingguy sbc-reviews #11
- Wikipedia: Banana Pi
- Community
- Community
- Ancient vendor BSP. u-boot 2015.01 + Linux 4.9.241 on all vendor images: "the module is only suitable for people that are fine with using outdated bootloader and Linux kernel" (CNX 2023-01-05).
- eMMC boot-priority trap. A bootable eMMC blocks SD-card boot; a half-flashed eMMC can hang the board in BL2 and requires the USB Burning Tool / full dd erase to recover (wiki Boot Sequence).
- Severe thermal throttling. Throttling begins at ~70 °C, within 5 seconds under stress-ng on a bare module, down to 1000/1000 MHz after 10 minutes; heatsink + airflow required for sustained load (bret.dk).
- RTL8822CS WiFi driver conflict on Armbian. The out-of-tree 88x2cs driver "fights mainline rtw88_8822cs for the onboard SDIO wifi (DISASSOC_LOW_ACK, h2c failures, 1 Mbit/s at full signal)" — Armbian ships MODULES_BLACKLIST="simpledrm 88x2cs" (armbian/build board config). On vendor images WiFi/BT are disabled by default and must be enabled by adding 88x2cs to /etc/modules (wiki "Enable Wifi and BT").
- No NVMe/PCIe boot. "A311d soc rom and BPI-M2S-bsp uboot are both not support nvme boot" — SSD is rootfs-only, bootloader must live on SD/eMMC (wiki).
- SD-card / PCIe instability workaround. The vendor documents user_kernel_args=pci=pcie_bus_safe disableuhs to force the SD host out of UHS mode when the PCIe slot is populated (wiki) — i.e. the combination is not reliably stable.
- Reduced CM4 feature set. Only 1 HDMI, 1 CSI, 1 DSI (vs 2/2/2 on the CM4): "for A311D chip PIN limited"; carrier features such as dual HDMI or dual camera simply do not work (wiki, CNX).
- Antenna paradox. Attaching the external antenna raised signal strength but dropped throughput; unexplained at time of writing (bret.dk WiFi section).
- GPIO tooling is BSP-only and partial. "This WiringPi only support set 26pins gpio to output, input, pwm or software pwm, for io functions as i2c, spi, ..., you must enable dtb overlay in boot.ini" — the vendor WiringPi/RPi.GPIO forks (Dangku/WiringPi, Dangku/RPi.GPIO) do not work on mainline kernels (wiki).
- Documentation/datasheet availability. Datasheet, schematic, DXF and images are hosted on Baidu Pan / Google Drive links (some already broken by "Google security update", per the wiki note), a real long-term availability risk for the official hardware docs.
- Spec-sheet inconsistencies: "2 Gigabit port" vs one real GbE; Bluetooth 5.2 vs 4.2/LE; "USB3" comment vs USB 2.0-only carriers; 2 GB RAM option never confirmed at retail.
- Minor: the Debian 10 vendor image ships an iperf3 too old for --bidir (geerlingguy #11); eMMC parts are second-sourced (Samsung AJTD4R HS200 vs SZ Rayson RS1G32LO4), so storage numbers vary by unit.
- Monter le module BPI-CM4 sur son carrier et réussir le premier boot debutant Schéma : IMG-bananapi-cm4-debutant-1-assembler-module-cm4-carrier.svg — module Banana Pi BPI-CM4 (55 × 40 mm) en cours d'alignement au-dessus d'un carrier BPI-CM4IO, deux connecteurs 100 broches surlignés, câble USB-C d'alimentation et câble HDMI à proximité.
- Apprivoiser les LED et la touche ADC du carrier CM4IO debutant Schéma : IMG-bananapi-cm4-debutant-2-leds-et-cle-adc-cm4io.svg — gros plan du carrier BPI-CM4IO : LED bleue (GPIOAO_7), LED verte (GPIOAO_2), bouton « Function » relié au SARADC, header 26 broches en bas d'image.
- Mesurer le stockage du BPI-CM4 : eMMC, microSD et le palier NVMe debutant Schéma : IMG-bananapi-cm4-debutant-3-benchmark-stockage-cm4.svg — BPI-CM4IO avec une microSD insérée dans son slot et un SSD NVMe monté sur adaptateur mini-PCIe ; en médaillon, histogramme des débits séquentiels eMMC / microSD / NVMe.
- Activer I2C, SPI et UART sur le BPI-CM4 : env.txt ou armbianEnv.txt intermediaire Schéma : IMG-bananapi-cm4-intermediaire-1-overlays-bus-banapi-cm4.svg — header 26 broches du carrier BPI-CM4IO avec les fonctions surlignées : I2C1 (GPIOX_17/18, broches 3/5), UART_B (GPIOX_6/7, broches 8/10), SPI_A (GPIOX_8 à 11, broches 19/21/23/24) ; à côté, une carte SD dont la partition boot affiche env.txt et armbianEnv.txt.
- Brancher un capteur BME280 sur l'I2C1 du carrier (GPIOX_17/18) intermediaire Schéma : IMG-bananapi-cm4-intermediaire-2-i2c-bme280-banapi-cm4.svg — module BME280 câblé sur le header 26 broches du BPI-CM4IO : SDA sur la broche 3 (GPIOX_17), SCL sur la broche 5 (GPIOX_18), VCC en 3V3 et GND, résistances de pull-up intégrées au module.
- Déplacer le rootfs sur un SSD NVMe via le port mini-PCIe intermediaire Schéma : IMG-bananapi-cm4-intermediaire-3-nvme-rootfs-minipcie-cm4.svg — SSD NVMe fixé sur un adaptateur mini-PCIe inséré dans le port du carrier BPI-CM4IO ; la carte microSD reste insérée : flèches « bootloader sur SD » et « rootfs sur SSD ».
- Exploiter le NPU 5 TOPS de l'A311D pour l'inférence embarquée avance Schéma : IMG-bananapi-cm4-avance-1-npu-5tops-banapi-cm4.svg — BPI-CM4 sur son carrier avec une caméra USB et un écran HDMI affichant une détection d'objets ; la puce A311D est surlignée avec l'étiquette « NPU 5 TOPS ».
- Monter un point d'accès 4G avec le module Quectel EC20 du port mini-PCIe avance Schéma : IMG-bananapi-cm4-avance-2-routeur-lte-4g-ec20-cm4.svg — module Quectel EC20 au format mini-PCIe avec deux antennes u.FL et une micro-SIM insérée, monté dans le port du carrier BPI-CM4IO ; flèches WAN (antenne 4G) vers LAN (câble RJ45).
- Dompter la chauffe : throttling à 70 °C, dissipateur et pilotage CPU avance Schéma : IMG-bananapi-cm4-avance-3-maitriser-thermique-banapi-cm4.svg — module BPI-CM4 coiffé d'un petit dissipateur sur l'A311D ; en médaillon, courbe de fréquence : effondrement à 1000 MHz sans refroidissement contre 1800 MHz maintenu avec dissipateur.
Code library — examples written for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBashserveur-web-capteur.pyPythonwifi-station.shBashjournal-cron.shBashveilleur-systemd.pyPython
Examples and repos found online
- nerocide/bananapi-cm4_turing-pi2 github.com
- riktam/bananapi-cm4-usb github.com