Banana Pi BPI-CM4 (Amlogic A311D, format Raspberry Pi CM4)

Shenzhen SINOVOIP CoSBClinux

⚡ L’essentiel en 60 secondes

La Banana Pi BPI-CM4 est un module de calcul, ou System-on-Module (SoM), conçu pour s'insérer dans une carte porteuse compatible avec le format Raspberry Pi Compute Module 4. Il est essentiel de comprendre qu'il ne s'agit pas d'une carte mère autonome prête à l'emploi, mais d'un cœur électronique compact qui nécessite une base d'extension pour offrir des ports accessibles comme l'USB, l'HDMI ou l'Ethernet. Ce module se distingue par son processeur Amlogic A311D, une puce hexa-cœur adoptant une architecture big.LITTLE. Cette conception combine quatre cœurs Cortex-A73 à haute performance et deux cœurs Cortex-A53 plus économes en énergie, permettant d'adapter la puissance de calcul aux besoins de la tâche tout en optimisant la consommation. La fréquence maximale des cœurs rapides est sujet à des variations selon les sources et les configurations, oscillant entre 2,0 GHz et 2,4 GHz, tandis que les cœurs économiques tournent à des fréquences inférieures. Pour le traitement graphique, le module intègre un GPU Mali-G52 MP4, capable de gérer des rendus 3D modernes via les API Vulkan et OpenGL ES, ainsi qu'une unité de traitement neuronal (NPU) offrant 5 TOPS de puissance dédiée aux tâches d'intelligence artificielle, éliminant le besoin d'accélérateurs externes pour certaines applications d'IA légère.

En termes de mémoire et de stockage, la configuration standard disponible à la vente comprend 4 Go de mémoire vive LPDDR4 et 16 Go de stockage eMMC intégré directement sur le module. Bien que le fabricant mentionne des options allant jusqu'à 128 Go de stockage, seul le modèle 4 Go/16 Go est clairement documenté comme étant commercialisé. Il est important de noter que le slot pour carte microSD ne se trouve pas sur le module lui-même, mais sur la carte porteuse, ce qui signifie que le stockage amovible dépend de la base choisie. Pour les besoins de stockage rapide, le module expose une interface PCIe Gen2 x1. Sur la carte porteuse officielle BPI-CM4IO, cette interface est accessible via un connecteur mini-PCIe. Cette architecture permet d'installer un adaptateur pour un SSD NVMe, offrant des vitesses de lecture séquentielle dépassant les 350 Mo/s, soit une amélioration significative par rapport à la carte SD ou à l'eMMC intégré. Cependant, il faut garder à l'esprit que le processeur Amlogic ne permet pas de démarrer le système d'exploitation directement depuis ce SSD NVMe ; le chargeur d'amorçage doit résider sur la mémoire eMMC ou la carte SD, tandis que le système de fichiers principal peut être monté sur le SSD.

La connectivité réseau et sans-fil est assurée par une puce Realtek RTL8822CS, offrant le Wi-Fi 5 (802.11ac) double bande et le Bluetooth. La documentation officielle indique le Bluetooth 5.2, mais des tests indépendants ont rapporté une compatibilité effective avec le Bluetooth 4.2/LE, une nuance qu'il convient de considérer lors de l'achat de périphériques. Le module dispose de deux connecteurs d'antenne u.FL ainsi qu'une antenne PCB intégrée, bien que les tests aient montré que l'antenne externe pouvait parfois réduire le débit par rapport à l'antenne interne, un phénomène contre-intuitif mais documenté. Pour la connexion filaire, le module fournit un port Gigabit Ethernet unique via un transceiver Realtek RTL8211F. Il existe une confusion fréquente dans certaines fiches marketing mentionnant deux ports Ethernet, mais les schémas et les tests confirment qu'il n'y a qu'un seul port physique fonctionnel. La vidéo est limitée par les broches disponibles du SoC Amlogic : contrairement au Raspberry Pi CM4 qui gère deux sorties HDMI, la BPI-CM4 n'en propose qu'une seule, supportant la 4K à 60 images par seconde, ainsi qu'un seul port caméra CSI et un seul port écran DSI.

L'alimentation du module se fait en 5 V, généralement via le port USB-C de la carte porteuse ou des broches dédiées. La consommation est modérée, avec environ 1,8 W au repos et 4,1 W en charge maximale, mais la gestion thermique est un point critique. Le module chauffe rapidement et commence à réduire sa fréquence de fonctionnement (throttling) dès que la température atteint environ 70 °C. Sans dissipateur thermique, les performances chutent drastiquement en quelques secondes sous une charge lourde, tombant à des fréquences très basses après dix minutes. L'ajout d'un petit ventilateur ou d'un dissipateur est donc fortement recommandé pour maintenir des performances stables. Au niveau logiciel, le module bénéficie d'un support officiel du noyau Linux principal (mainline) depuis la version 6.4, ainsi que d'une prise en charge par la distribution Armbian, ce qui est un avantage majeur par rapport aux images fournies par le fabricant qui reposent sur un noyau Linux très ancien (version 4.9). Cette compatibilité avec les systèmes modernes permet d'utiliser des pilotes graphiques récents et des outils de développement à jour.

Un aspect technique important concerne la séquence d'amorçage. Le processeur Amlogic est conçu pour lancer le système depuis la mémoire eMMC en priorité absolue. Si une image système corrompue ou simplement présente sur l'eMMC empêche le démarrage, la carte peut sembler inerte et refuser de démarrer depuis la carte SD, même si celle-ci est correctement configurée. La récupération nécessite souvent l'effacement complet de l'eMMC via un outil de programmation USB spécifique, une opération qui peut effrayer les débutants mais qui est documentée par le fabricant. Enfin, il est crucial de ne pas confondre ce module avec d'autres produits portant des noms similaires. La BPI-CM4 utilise exclusivement le processeur Amlogic A311D. D'autres modules au format CM4, comme la BPI-CM2, utilisent des puces Rockchip, tandis que des produits d'autres marques comme Pine64 ou Radxa utilisent des puces RK3566. Cette distinction est vitale pour choisir les bons pilotes et les bonnes images système, car une incompatibilité de processeur rendra la carte inutilisable. En résumé, la BPI-CM4 offre une alternative puissante et moderne au Raspberry Pi CM4, avec un potentiel IA intégré et une bonne connectivité, mais elle exige une attention particulière à la gestion thermique et à la configuration de l'amorçage.

Forum (1 sujet) →

AttrSpecsvérifié
socAmlogic 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).? non vérifié
ram4 GB LPDDR4 (mainline DTS memory@0 reg = <0x0 0x0 0x0 0x40000000>; geerlingguy saw 3709 MiB usable).? non vérifié
cpu_powertwo 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).? non vérifié
storage16 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_nvmePCIe 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").✔
ethernetone Gigabit Ethernet — Amlogic GbE MAC (&ethmac, 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_bluetoothon-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).? non vérifié
video1× 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).✔
usb2× 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).? non vérifié
gpio_expansion26-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_console3-pin UART header on the carrier (UART0 RX/TX/GND); stdout-path = "serial0:115200n8" = uart_AO in mainline; Armbian console is ttyAML0 (armbian/build).✔
other2 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.? non vérifié
power5 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).✔
thermalsthrottling 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).? non vérifié
mechanicalmodule 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).? non vérifié
  • Fabricant : Shenzhen SINOVOIP Co., Ltd. / Guangdong BiPai Technology Co., Ltd., marque « Banana Pi » (Wikipedia : Banana Pi, récupéré le 2026-10-13).
  • Produit : Banana Pi BPI-CM4 — un system-on-module compatible Raspberry Pi CM4 (2 connecteurs carte à carte de 100 broches, 55 × 40 mm, 4 trous M2.5) (CNX, 2023-01-05).
  • Année : annoncé le 2022-05-25 (« Banana Pi is working on a Raspberry Pi CM4 compatible module powered by Amlogic A311D », CNX 2022-05-25) ; lancement commercial le 2023-01-05 (CNX 2023-01-05). Les métadonnées de carte d'Armbian indiquent INTRODUCED="2021" (armbian/build config/boards/bananapicm4io.conf).
  • Prix de lancement : 95 $ US pour le module, ~110 $ US pour le kit avec la carte de base BPI-CM4IO (CNX 2023-01-05). Achats indépendants : 90 $ le module / 105 $ module+CM4IO port compris (review bret.dk) et 109,73 $ pour le 4 Go/16 Go sur AliExpress le 2023-01-05 (geerlingguy/sbc-reviews #11).
  • Statut : Actif / actuel (non EOL au 2026-10-13) : image Android du fabricant datée du 2024-04-29 et images Linux datées du 2023-12-26 sur le wiki (Banana_Pi_BPI-CM4) ; Armbian le distribue toujours avec KERNEL_TARGET="current,edge" et le tag de bootloader v2026.01 (armbian/build) ; des liens vers les boutiques AliExpress/Taobao figurent sur le wiki.
  • Variantes / cartes associées : - BPI-CM4 4 Go LPDDR4 + 16 Go eMMC — la configuration commercialisée documentée partout (tableau de spécifications du wiki, CNX, geerlingguy). L'annonce CNX de 2022 listait des options 2 Go/4 Go de RAM et eMMC « jusqu'à 128 Go ». - BPI-CM4IO — carte fille 100 × 72 mm de Banana Pi pour BPI-CM4 ou Raspberry Pi CM4 (wiki BPI-CM4IO). - Carte IO Raspberry Pi CM4 et cartes filles CM4 tierces — utilisables physiquement/ électriquement (« Other is Pin2Pin. you can use Raspberry Pi CM4 baseboard », wiki ; CNX note que les fonctions double HDMI et double caméra de la carte fille ne fonctionnent pas). - BPI-CM2 (Rockchip RK3568, connecteurs 70 broches supplémentaires) et BPI-CM5 (Amlogic A311D2) sont des modules différents qui partagent l'empreinte CM4 (CNX 2023-08-08, wiki BPI-CM5).

+ Points forts

  • Empreinte et brochage de connecteurs identiques au Raspberry Pi CM4 (« Pin2Pin », même format 55×40 mm), donc les cartes filles CM4 existantes fonctionnent — avec la perte documentée des fonctions double HDMI/double CSI (wiki, CNX).
  • NPU 5 TOPS dans le SoC — pas d'accélérateur IA externe nécessaire (CNX : « users do not need to add an AI accelerator like Google Coral or Myriad X ») ; le fabricant renvoie vers les démos NPU du Khadas VIM3.
  • Hexa-core big.LITTLE A73+A53 — CPU mesurablement plus rapide qu'un CM4 BCM2711 même avec le Pi overclocké à 2,0 GHz (CNX), 6 CPU logiques contre 4 (bret.dk).
  • Mali-G52 MP4 (6EE) avec pilote Panfrost mainline (Vulkan/OpenCL) — Armbian blackliste même simpledrm car il « conflicts with Panfrost » (armbian/build).
  • mini-PCIe + micro-SIM sur la carte fille → WAN Quectel EC20 LTE 4G documenté via qmi_wwan (quectel-CM &) ou pppd, port AT /dev/ttyUSB2 (section EC20 du wiki).
  • Stockage PCIe NVMe via le connecteur mini-PCIe : ~351 Mo/s en lecture, 101 k IOPS en lecture aléatoire 4 k — 100× les performances aléatoires 4 k de la microSD (tableau de benchmarks du wiki).
  • WiFi 5 + BT avec deux connecteurs u.FL et une antenne PCB intégrée fonctionnelle — bret.dk a mesuré un meilleur débit avec l'antenne PCB qu'avec une antenne externe.
  • Vrai support mainline + Armbian « platinum » (kernel 6.x, Panfrost, carte son ALSA axg, pilotes LED et ADC-key) par-dessus le BSP du fabricant — rare pour les modules Banana Pi (section Armbian du wiki, DTS mainline).
  • Fonctions silicium diverses exposées : récepteur IR (GPIOAO_5), touche utilisateur SARADC, HDMI CEC (les deux contrôleurs CEC AO), audio I2S/TDM avec glue audio HDMI, caméras MIPI CSI (OS08A10) et écrans MIPI DSI (écrans BPI 800×1280 / 1200×1920, rotation via fb_rotate ou Xorg).

− Points faibles

  • BSP du fabricant ancien. u-boot 2015.01 + Linux 4.9.241 sur toutes les images du fabricant : « the module is only suitable for people that are fine with using outdated bootloader and Linux kernel » (CNX 2023-01-05).
  • Piège de priorité d'amorçage eMMC. Une eMMC amorçable bloque l'amorçage sur carte SD ; une eMMC à moitié flashée peut bloquer la carte dans BL2 et nécessite l'USB Burning Tool / un effacement complet par dd pour récupérer (wiki Boot Sequence).
  • Throttling thermique sévère. Le throttling commence à ~70 °C, en 5 secondes sous stress-ng sur un module nu, jusqu'à 1000/1000 MHz après 10 minutes ; dissipateur + flux d'air requis pour une charge soutenue (bret.dk).
  • Conflit de pilote WiFi RTL8822CS sous Armbian. Le pilote hors-tree 88x2cs « fights mainline rtw88_8822cs for the onboard SDIO wifi (DISASSOC_LOW_ACK, h2c failures, 1 Mbit/s at full signal) » — Armbian fournit MODULES_BLACKLIST="simpledrm 88x2cs" (config de carte armbian/build). Sur les images du fabricant, WiFi/BT sont désactivés par défaut et doivent être activés en ajoutant 88x2cs à /etc/modules (wiki « Enable Wifi and BT »).
  • Pas d'amorçage NVMe/PCIe. « A311d soc rom and BPI-M2S-bsp uboot are both not support nvme boot » — le SSD ne sert que de rootfs, le bootloader doit rester sur SD/eMMC (wiki).
  • Contournement d'instabilité SD/PCIe. Le fabricant documente user_kernel_args=pci=pcie_bus_safe disableuhs pour forcer l'hôte SD hors du mode UHS quand le connecteur PCIe est occupé (wiki) — c'est-à-dire que la combinaison n'est pas fiable.
  • Jeux de fonctions CM4 réduit. Seulement 1 HDMI, 1 CSI, 1 DSI (vs 2/2/2 sur le CM4) : « for A311D chip PIN limited » ; les fonctions de la carte fille comme le double HDMI ou la double caméra ne fonctionnent tout simplement pas (wiki, CNX).
  • Paradoxe de l'antenne. Brancher l'antenne externe augmentait la force du signal mais diminuait le débit ; inexpliqué au moment de la rédaction (section WiFi de bret.dk).
  • Outils GPIO réservés au BSP et partiels. « 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 » — les forks WiringPi/RPi.GPIO du fabricant (Dangku/WiringPi, Dangku/RPi.GPIO) ne fonctionnent pas sur les kernels mainline (wiki).
  • Disponibilité de la documentation/datasheet. Datasheet, schématique, DXF et images sont hébergés sur des liens Baidu Pan / Google Drive (certains déjà cassés par la « Google security update », selon la note du wiki), un vrai risque de disponibilité à long terme pour la documentation matérielle officielle.
  • Incohérences des fiches techniques : « 2 Gigabit port » vs un seul vrai GbE ; Bluetooth 5.2 vs 4.2/LE ; commentaire « USB3 » vs cartes filles uniquement USB 2.0 ; option 2 Go de RAM jamais confirmée au détail.
  • Mineur : l'image Debian 10 du fabricant fournit un iperf3 trop vieux pour --bidir (geerlingguy #11) ; les composants eMMC sont double-sourcés (Samsung AJTD4R HS200 vs SZ Rayson RS1G32LO4), les chiffres de stockage varient donc selon l'exemplaire.
  • 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

Retours et projets de la communauté

  • Full independent review + benchmark suite vs Raspberry Pi CM4

    Full independent review + benchmark suite vs Raspberry Pi CM4 — (UnixBench, GeekBench 6, (unverified au 2026-10-13) — interne hébergé sur site interne, statut vivant vérifié le 2026-10-13. Projet documenté dans la fiche bananapi-cm4 (SBC) ; rôle : approfondir…

Contenu indisponible pour le moment.

  • BSP du fabricant ancien. u-boot 2015.01 + Linux 4.9.241 sur toutes les images du fabricant : « the module is only suitable for people that are fine with using outdated bootloader and Linux kernel » (CNX 2023-01-05).
  • Piège de priorité d'amorçage eMMC. Une eMMC amorçable bloque l'amorçage sur carte SD ; une eMMC à moitié flashée peut bloquer la carte dans BL2 et nécessite l'USB Burning Tool / un effacement complet par dd pour récupérer (wiki Boot Sequence).
  • Throttling thermique sévère. Le throttling commence à ~70 °C, en 5 secondes sous stress-ng sur un module nu, jusqu'à 1000/1000 MHz après 10 minutes ; dissipateur + flux d'air requis pour une charge soutenue (bret.dk).
  • Conflit de pilote WiFi RTL8822CS sous Armbian. Le pilote hors-tree 88x2cs « fights mainline rtw88_8822cs for the onboard SDIO wifi (DISASSOC_LOW_ACK, h2c failures, 1 Mbit/s at full signal) » — Armbian fournit MODULES_BLACKLIST="simpledrm 88x2cs" (config de carte armbian/build). Sur les images du fabricant, WiFi/BT sont désactivés par défaut et doivent être activés en ajoutant 88x2cs à /etc/modules (wiki « Enable Wifi and BT »).
  • Pas d'amorçage NVMe/PCIe. « A311d soc rom and BPI-M2S-bsp uboot are both not support nvme boot » — le SSD ne sert que de rootfs, le bootloader doit rester sur SD/eMMC (wiki).
  • Contournement d'instabilité SD/PCIe. Le fabricant documente user_kernel_args=pci=pcie_bus_safe disableuhs pour forcer l'hôte SD hors du mode UHS quand le connecteur PCIe est occupé (wiki) — c'est-à-dire que la combinaison n'est pas fiable.
  • Jeux de fonctions CM4 réduit. Seulement 1 HDMI, 1 CSI, 1 DSI (vs 2/2/2 sur le CM4) : « for A311D chip PIN limited » ; les fonctions de la carte fille comme le double HDMI ou la double caméra ne fonctionnent tout simplement pas (wiki, CNX).
  • Paradoxe de l'antenne. Brancher l'antenne externe augmentait la force du signal mais diminuait le débit ; inexpliqué au moment de la rédaction (section WiFi de bret.dk).
  • Outils GPIO réservés au BSP et partiels. « 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 » — les forks WiringPi/RPi.GPIO du fabricant (Dangku/WiringPi, Dangku/RPi.GPIO) ne fonctionnent pas sur les kernels mainline (wiki).
  • Disponibilité de la documentation/datasheet. Datasheet, schématique, DXF et images sont hébergés sur des liens Baidu Pan / Google Drive (certains déjà cassés par la « Google security update », selon la note du wiki), un vrai risque de disponibilité à long terme pour la documentation matérielle officielle.
  • Incohérences des fiches techniques : « 2 Gigabit port » vs un seul vrai GbE ; Bluetooth 5.2 vs 4.2/LE ; commentaire « USB3 » vs cartes filles uniquement USB 2.0 ; option 2 Go de RAM jamais confirmée au détail.
  • Mineur : l'image Debian 10 du fabricant fournit un iperf3 trop vieux pour --bidir (geerlingguy #11) ; les composants eMMC sont double-sourcés (Samsung AJTD4R HS200 vs SZ Rayson RS1G32LO4), les chiffres de stockage varient donc selon l'exemplaire.
  • 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.

Bibliothèque de code — exemples écrits pour cette carte

  • clignotante.py Python

    Le script de mise en jambe sur SBC : une LED branchée sur le connecteur GPIO clignote à 1 Hz. python3-gpiod pilote directement la puce GPIO via le noyau, sans bibliothèque propriétaire.

  • bouton-gpio.py Python

    Un bouton sur le connecteur GPIO déclenche une action à l'appui et au relâchement. Version générique par scrutation de la ligne gpiod avec anti-rebond logiciel de 30 ms.

  • capteur-i2c.sh Bash

    Le réflexe Linux pour tout capteur I2C : balayer le bus avec i2cdetect, vérifier la présence de la puce puis lire quelques registres avec i2cget. Sortie directe dans le terminal, sans écrire une lign…

  • surveillance-temperature.sh Bash

    Sans aucune dépendance, ce script lit le capteur thermique exposé par le noyau Linux, journalise température et fréquence CPU en CSV et affiche une alerte au-delà d'un seuil. Parfait pour dimensionne…

  • capteur-dht11.py Python

    Le pilote Adafruit CircuitPython fonctionne sur Linux standard : il bit-bang le protocole 1 fil du DHT via libgpiod. Le script affiche température et humidité toutes les 2 s, en encaissant les trames…

  • servo-pwm-sysfs.sh Bash

    L'interface PWM du noyau Linux (sysfs) est identique sur toutes les cartes : période 20 ms, impulsion 0,5-2,5 ms. Ce script bash fait balayer un servo sur 3 cycles puis coupe l'alimentation pour évit…

  • serveur-web-capteur.py Python

    Sans aucune dépendance externe, la carte devient un serveur web : une page HTML affiche température du SoC et uptime, un endpoint JSON les expose aux tableaux de bord. Le réflexe réseau pour monitore…

  • wifi-station.sh Bash

    NetworkManager est l'outil standard des distributions carte modernes : deux commandes suffisent à rejoindre un point d'accès WPA2 et vérifier l'IP obtenue. Le script liste aussi les réseaux visibles …

  • journal-cron.sh Bash

    Le binôme cron + script court est l'automate universel de Linux : chaque minute, charge CPU et température sont ajoutées à un CSV avec rotation intégrée. Zéro dépendance, zéro démon, redémarre tout s…

  • veilleur-systemd.py Python

    Une LED en battement + un contrôle de services toutes les secondes : le script devient un démon systemd avec Restart=always, démarré au boot. Le patron de robustesse pour une carte embarquée sans écr…

Exemples et dépôts trouvés en ligne