Banana Pi BPI-M2 Zero (Allwinner H2+ / H3)

Shenzhen SinoVoIP CoSBClinux

⚡ L’essentiel en 60 secondes

La Banana Pi BPI-M2 Zero est une carte de développement mono-carte qui s'inscrit dans la lignée des ordinateurs de poche ultra-compacts, ayant été introduite sur le marché en 2017 par le fabricant Shenzhen SinoVoIP Co., Ltd. sous la marque Banana Pi. Son positionnement initial était clair : proposer une alternative économique et performante à la Raspberry Pi Zero W, avec un prix de lancement affiché à 15 dollars américains, hors frais de port. Bien que le marché ait évolué et que la carte soit désormais considérée comme un produit héritage, elle reste disponible à la vente et conserve une pertinence pour certains projets spécifiques grâce à sa compatibilité matérielle et logicielle. Il est important de noter que la carte a connu des révisions matérielles : les premières versions étaient équipées du processeur Allwinner H2+, tandis que les modèles plus récents, comme la révision v1.3, intègrent la puce Allwinner H3. Cette transition s'est faite en raison de l'arrêt de production (EOL) du H2+, mais le fabricant a veillé à ce que les images système fournies soient compatibles avec les deux puces, simplifiant ainsi la vie des utilisateurs qui ne peuvent pas toujours distinguer les variantes à l'achat.

Sur le plan des performances, la carte embarque un processeur quad-core Arm Cortex-A7, une architecture 32-bit ARMv7-A. Cette configuration offre une puissance de calcul nettement supérieure à celle de la Raspberry Pi Zero W d'origine, qui ne disposait que d'un cœur unique. La fréquence de fonctionnement du processeur est généralement citée autour de 1 GHz, bien que certaines sources mentionnent un maximum nominal de 1,2 GHz pour la puce H2+ ; cette légère incertitude sur la fréquence maximale exacte provient de la difficulté d'accéder aux fiches techniques officielles d'Allwinner, souvent hébergées sur des plateformes difficiles d'accès. La carte est équipée de 512 Mo de mémoire vive DDR3, une quantité partagée entre le processeur et le GPU Mali-400MP2. Cette limitation mémoire est un point crucial à considérer : pour des tâches lourdes, il est souvent nécessaire d'activer une compression mémoire (zram) pour éviter les plantages, comme l'ont démontré des tests de performance indépendants. Le stockage, quant à lui, repose exclusivement sur une carte microSD, la carte ne disposant pas de mémoire flash interne (eMMC) ni de capacité à démarrer depuis un périphérique USB externe, ce qui la rend moins flexible que certaines cartes plus modernes pour des installations critiques.

L'un des atouts majeurs de la BPI-M2 Zero est sa compatibilité physique avec l'écosystème Raspberry Pi Zero. Avec ses dimensions de 65 x 30 mm, elle s'insère dans les mêmes boîtiers et utilise un connecteur GPIO à 40 broches dont la disposition des broches est identique à celle des modèles Raspberry Pi Zero W et Pi 3. Cela signifie que de nombreux accessoires, appelés "hats", conçus pour la Raspberry Pi peuvent être utilisés directement, bien que la logique des broches spécifiques aux fonctions avancées puisse nécessiter des ajustements logiciels. La carte offre une connectivité sans fil intégrée via un module AP6212, gérant le Wi-Fi 802.11 b/g/n et le Bluetooth. Cependant, une particularité technique importante mérite d'être soulignée : le module est fourni sans antenne externe. Une prise RF est présente à côté du port HDMI, mais sans l'ajout d'une antenne adaptée, les performances Wi-Fi sont très médiocres, avec des vitesses de transfert instables et une portée réduite. L'ajout d'une antenne externe améliore considérablement la stabilité et la vitesse de la connexion.

En ce qui concerne les interfaces vidéo et multimédia, la carte dispose d'une sortie mini-HDMI capable d'afficher une résolution de 1080p à 30 images par seconde. Le moteur vidéo intégré permet le décodage matériel de vidéos H.264 en 1080p à 60 images par seconde, une capacité supérieure à celle de la Raspberry Pi Zero W de la même époque, qui était limitée à 30 images par seconde en décodage. Toutefois, il faut rester prudent avec certaines affirmations marketing du fabricant concernant le décodage H.265 (HEVC) ; les analyses techniques confirment que la puce Allwinner H2+/H3 ne dispose pas du matériel nécessaire pour ce codec, rendant cette fonctionnalité indisponible en pratique. Pour la capture d'image, la carte propose un connecteur CSI à 24 broches. Il s'agit d'une interface parallèle DVP (Digital Video Port) et non de la norme MIPI plus récente. Cela signifie qu'elle est compatible avec des capteurs d'image CMOS spécifiques, comme la série OV5640, permettant des applications de vision par ordinateur ou de surveillance basique, bien que la prise en charge logicielle sous les noyaux Linux récents puisse être incomplète.

La gestion de l'alimentation et des ports USB présente des subtilités techniques qu'il est essentiel de comprendre pour éviter d'endommager le matériel. La carte possède deux ports micro-USB : un port dédié à l'alimentation (5V / 2A) et un port OTG (On-The-Go) pour les données. Une particularité du schéma électrique est que les lignes d'alimentation (Vbus) de ces deux ports sont reliées. Par conséquent, brancher un périphérique USB sur le port OTG tout en alimentant la carte par le port d'alimentation peut créer des conflits électriques ou des rétro-alimentations indésirables. De plus, le mode hôte USB (pour brancher une clé USB ou un clavier) nécessite l'utilisation d'un câble OTG spécifique. En l'absence de port Ethernet physique, la carte ne peut pas être connectée directement à un réseau filaire, bien que le fabricant ait publié des schémas pour ajouter un contrôleur Ethernet externe via les broches GPIO, une solution complexe réservée aux utilisateurs avancés.

Le support logiciel est assuré principalement par des distributions Linux basées sur Debian ou Ubuntu. Le fabricant propose des images officielles, mais la communauté recommande souvent d'utiliser Armbian, une distribution optimisée pour les cartes à base de puces Allwinner. Armbian offre un support communautaire pour la BPI-M2 Zero avec des noyaux Linux modernes, permettant un meilleur support des périphériques et une sécurité accrue. Il est à noter que le support du Bluetooth sous les noyaux récents peut nécessiter des manipulations manuelles pour charger les modules de pilote appropriés, car la puce de communication utilise une interface série (UART) qui doit être correctement initialisée. Enfin, bien que la carte soit un produit héritage, elle reste un outil pédagogique intéressant pour comprendre l'architecture des systèmes embarqués, la gestion des ressources limitées et l'interaction avec le matériel via les broches GPIO, offrant un compromis entre compacité, coût et fonctionnalités multimédias pour des projets domotiques ou de prototypage léger.

Forum (1 sujet) →

AttrSpecsvérifié
socAllwinner H2+ (later boards: H3) — 4× Arm Cortex-A7 (ARMv7-A, 32-bit) + Mali-400MP2 GPU @ 600 MHz, OpenGL ES 2.0 (wiki spec table). CNX's launch article says "quad core Cortex A7 @ up to 1 GHz"; Wikipedia says 1.2 GHz (H2+ nominal max).? non vérifié
ram512 MB DDR3, shared with the GPU (wiki spec table). U-Boot drives it at DRAM_CLK=408 MHz (u-boot configs/bananapi_m2_zero_defconfig, retrieved 2026-10-13).✔
cpu_core_voltagea GPIO-switched regulator (vdd-cpux, PL1) with only two states, 1.10 V / 1.30 V (mainline DTS) — coarse DVFS, not a full PMIC.? non vérifié
storagemicroSD only ("TF card, Max. 64 GB", wiki). No eMMC, no SPI NOR — the wiki comparison table explicitly lists "Onboard flash: NOPE" (that is the P2 Zero's 8 GB eMMC, absent here). Cannot boot from USB storage (bret.dk: "you cannot boot from the USB SSD").✔
video_outmini-HDMI (Type-C connector per mainline DTS), 1080p@30 fps, HDCP (wiki writes "DHCP", an obvious typo for HDCP). Video engine: 1080p@60 H.264 decode, 1080p@30 H.264 encode (wiki table, bret.dk).? non vérifié
camera_csi24-pin FPC connector marked "CSI" — parallel 8-bit DVP/CCIR656 bus, not MIPI: CSI0-D0…D7, PCLK, HSYNC, VSYNC, MCLK, I2C (PE12/PE13), Reset, PWDN; camera power enable on PD14 (CSI-PWR-EN, DTS gpio-line-names). Supports 8-bit YUV422 CMOS sensors, ~5 MP / 1080p (CNX 2017; full pin table on the wiki).✔
wifi_bluetoothon-board AP6212 module (Ampak/AMTAK, BCM43430-class) — 802.11 b/g/n 1×1 + Bluetooth, on SDIO (brcm,bcm4329-fmac, mmc1 in DTS) with BT on UART1 (brcm,bcm43438-bt, max-speed = <1500000>, RTS/CTS on PG11–PG13, DTS). Options AP6181/AP6335 (CNX). U.FL/on-board RF connector next to the HDMI port — no antenna included (bret.dk).? non vérifié
ethernetnone on board (wiki: "NOPE (but can extension with PIN define)"). The H2+/H3 integrated 10/100 EMAC can be brought out to an external PHY — Banana Pi published a "Zero-EPHY" PHY carrier design (schematic + PCB on the wiki, section "how to use zero 10/100 Ethernet").? non vérifié
usb1× micro-USB OTG (data; dr_mode = "otg", DTS) + 1× micro-USB power-only port. DTS comment: "The Vbus of these two connectors are connected together, so the external USB device will be powered just by the power input from the power-only USB port." One host port via ehci0/ohci0 (DTS).? non vérifié
gpio_expansion40-pin header, Raspberry Pi Zero W / Pi 3 pinout-compatible (wiki: "matches that of the Raspberry Pi 3"; fits Zero W cases and hats per bret.dk). 3.3 V logic (VCC-3V3/VCC-5V pins 1/2/4/17). From the wiki pin table: I2C0 = PA11/PA12 (pins 3/5), I2C1 = PA18/PA19 (pins 27/28), SPI0 = PC0–PC3 (pins 19/21/23/24), SPI1 signals on PA13–PA16, UART2 (PA0/PA1 + CTS/RTS PA2/PA3), UART3 (PA13/PA14 + CTS/RTS PA15/PA16), PWM1 on PA6 (pin 7), SPDIF-OUT on PA17, plus two R_PIO pins PL2 (pin 32) and PL4 (pin 36). No ADC/DAC exposed (the pin table lists none; the RPi has none either).? non vérifié
debug_console3-pin jumper CON3: UART0-TXD (PA4), UART0-RXD (PA5), GND, 115200 8N1 (wiki; DTS stdout-path = "serial0:115200n8").? non vérifié
other_i_oPower button (PL3, KEY_POWER, wakeup — DTS) + Reset button; Power LED (PL10, bananapi-m2-zero:red:pwr, DTS) and a status LED (wiki table;? non vérifié
power5 V / 2 A via the power-only micro-USB port; the wiki also documents powering via the 5 V pins of the GPIO header ("Zero power with GPIO 5V input"). No battery charger, no PoE (that is the P2 Zero).? non vérifié
consumption_thermalsmeasured in the bret.dk review (stress-ng + SoC sensor), but the numeric tables did not survive text extraction.✔
mechanical65 × 30 mm, 15 g (wiki table; bret.dk). The Getting Started page says "60mm*30mm" (docs.banana-pi.org) — the 65 mm figure matches the Pi Zero W footprint and is repeated by the wiki product page and bret.dk.✔
  • Fabricant : Shenzhen SinoVoIP Co., Ltd. (marque : Banana Pi) (Wikipedia : Banana Pi, consulté le 2026-10-13).
  • Année d'introduction : 2017. Première couverture commerciale : CNX Software, « …le board Banana Pi M2 Zero est un clone du Raspberry Pi Zero W avec un processeur quad-core », 2017-10-30 (CNX Software, consulté le 2026-10-13) ; la définition de la carte d'Armbian consigne également INTRODUCED="2017" (armbian/build config/boards/bananapim2zero.csc, consulté le 2026-10-13).
  • Prix de lancement : 15 US$ + frais de port sur AliExpress au lancement (CNX, 2017-10-30). Fin 2021, CNX notait que le prix avait « augmenté jusqu'à 23 $ » et que la carte était « devenue pour l'essentiel obsolète » face au Raspberry Pi Zero 2 W (CNX, 2021-11-01, consulté le 2026-10-13).
  • Statut : Legacy mais toujours vendue (annonces Amazon/bpi-shop actives ces dernières années, p. ex. page produit bpi-shop, consulté le 2026-10-13). Le wiki du fabricant indique : « As Allwinner H2+ chip is EOL, so BPI-M2 Zero will use H3 chip defaults. but image for H2+ also support H3, so all image is same » (la puce Allwinner H2+ étant EOL, la BPI-M2 Zero utilisera les valeurs par défaut de la puce H3 ; mais les images pour H2+ supportent aussi le H3, donc toutes les images sont identiques) (wiki Banana Pi : Banana Pi BPI-M2 ZERO, consulté le 2026-10-13). Le successeur officiel dans le même format factor est la BPI-M4 Zero (2023, Allwinner H618) (CNX, 2023-12-12, consulté le 2026-10-13).
  • Variantes / révisions : - Cartes H2+ (2017–…) — puce d'origine ; cartes H3 (p. ex. hardware v1.3) — même empreinte, H3 à la place du H2+ passé en EOL ; toutes les images du fabricant tournent sur les deux (wiki ; la révision matérielle v1.3 avec H3 est confirmée dans le test de bret.dk, consulté le 2026-10-13). - Options de module WiFi : AP6212 (par défaut), options AP6181 / AP6335 / « K016 » (tableau des specs matérielles du wiki ; CNX 2017-10-30). - BPI-P2 Zero (2018) — carte sœur ajoutant PoE, eMMC 8 Go et LAN 100M (CNX, 2018-08-02 ; tableau comparatif du wiki). - BPI-M4 Zero (2023) — remplacement moderne, même format Zero (CNX 2023-12-12).

+ Points forts

  • Drop-in Raspberry Pi Zero W : même encombrement de carte 65×30 mm, même header 40 broches, s'insère dans les boîtiers/hats Zero W (wiki ; bret.dk) — mais un quad-core Cortex-A7 contre le mono-cœur ARM11 du Zero W, à peu près classe Zero-2-W en UnixBench (benchmarks bret.dk).
  • WiFi + Bluetooth embarqués à prix classe Zero (AP6212) — le concurrent direct du Zero W d'origine à 15 $ en 2017 (CNX).
  • Connecteur caméra CSI (FPC 24 broches, DVP parallèle 8 bits, ~5 MP) — rare à cette taille/ce prix ; permet des builds de vision par ordinateur (tutoriel OpenCV : bluexmas.tistory.com, lié depuis le wiki).
  • Décodage matériel H.264 1080p60 / encodage 1080p30 (Mali-400MP2 + moteur cedar) — le Pi Zero W de la même époque se limitait à 1080p30.
  • Sortie EMAC 10/100 : le design Zero-EPHY à PHY externe de Banana Pi fournit un Ethernet filaire 100M depuis les broches du header (wiki « how to use zéro 10/100 Ethernet », schématique + PCB publiés).
  • Boutons Power + Reset sur une carte format Zero (wiki/bret.dk — bret.dk les singled out comme « incredibly useful » — incroyablement utiles).
  • Alimentation par les broches 5 V du GPIO documentée par le fabricant — intégration propre dans des bases robotiques/hat alimentées (wiki « Zero power with GPIO 5V input »).
  • Console série USB-OTG (g_serial, ttyGS0) supportée d'office par la config de carte Armbian — debug headless depuis n'importe quel PC sans dongle UART.
  • Support Mainline Linux : device tree dans torvalds/linux depuis 2017 (Icenowy Zheng), defconfig u-boot mainline, images Armbian CSC sur kernels 6.x.

− Points faibles

  • Le WiFi est quasiment inutilisable sans antenne externe. La patte RF de l'AP6212 est reliée à un connecteur à côté du port HDMI mais aucune antenne n'est fournie avec la carte : « once I got to WiFi it leaves a little to be desired… it fell back to a default firmware/configuration with very limited performance » (quand j'en suis arrivé au WiFi, c'est un peu décevant… il retombe sur un firmware/configuration par défaut aux performances très limitées) ; sans antenne : débits oscillant entre 0,68 et 13 Mbit ; avec une antenne bon marché : ~26/34 Mbit et plus de 20 réseaux visibles contre « only my phone's hotspot » (seulement le partage de connexion de mon téléphone) (test bret.dk, consulté le 2026-10-13).
  • Les deux ports micro-USB ne sont pas interchangeables — piège d'alimentation. L'un est alimentation seule, l'autre données OTG, et leurs lignes Vbus sont reliées (commentaire du DTS mainline). Fournir 5 V pendant qu'un hôte USB est branché sur le port OTG, ou alimenter des périphériques depuis le mauvais port, provoque un retour de courant sur Vbus ; le mode hôte nécessite en plus un câble OTG. Lire le commentaire du DTS avant de câbler des configurations batterie/USB.
  • La polarité de la détection de carte microSD a changé entre les séries de fabrication. « On the production batch of this board the card detect GPIO is high active (card inserted), although on the early samples it's low active » (sur la série de production de cette carte, le GPIO de détection de carte est actif à l'état haut (carte insérée), alors que sur les premiers exemplaires il est actif à l'état bas) (commentaire du DTS mainline) — les kernels/images construits pour la mauvaise polarité voient « no card inserted ».
  • Plafond de 512 Mo de RAM. Les charges lourdes exigent zram : Geekbench 5.4 multi-core n'a été mené à bien « to get … zram had to be enabled and bumped up to around 350MB » (pour y arriver… zram a dû être activé et porté à environ 350 Mo) (bret.dk).
  • Pas d'amorçage depuis USB/eMMC. La microSD est le seul chemin d'amorçage ; un SSD USB améliore la fiabilité mais « you cannot boot from the USB SSD » (on ne peut pas amorcer depuis le SSD USB) (bret.dk). (La note du build Armbian du 2023-07-06 « support emmc » sur le wiki concerne l'eMMC de la P2 Zero ; la M2 Zero n'a pas de puce eMMC — voir la discussion du forum forum.banana-pi.org/t/15906, consulté le 2026-10-13.)
  • Régressions kernel/images sous Armbian. Des utilisateurs communautaires sont restés figés à Armbian 21.08.1 / 5.10.60-sunxi parce qu'« upgrading to newer kernels broke several things including wired ethernet » (la mise à niveau vers des kernels plus récents cassait plusieurs choses, dont l'Ethernet filaire) (github.com/longview/BPi-M2Zero, consulté le 2026-10-13) ; « With the newer version of armbian it didn't work » (avec la nouvelle version d'armbian, cela ne fonctionnait pas) (forum.banana-pi.org/t/16389) ; des problèmes avec les kernels récents sont toujours signalés (notes crimier.github.io BananaPi M2 Zero, « problems reported with 6.12.20 Armbian kernel that are apparently fixable » — problèmes signalés avec le kernel Armbian 6.12.20 apparemment corrigeables).
  • Images Armbian miroitées par le fabricant de qualité médiocre. Pour l'image Armbian bookworm miroitée sur le wiki, les utilisateurs du forum conseillent : « I recommend not using this image. Testing is indicative of being less than complete. For one, there is a malformed block device configuration » (je recommande de ne pas utiliser cette image. Les tests indiquent une complétude insuffisante. Entre autres, il y a une configuration malformée des périphériques bloc) (forum.banana-pi.org/t/15906).
  • Bluetooth nécessite une mise en service manuelle. Le côté BT de la puce combo est un HCI sur UART (brcm,bcm43438-bt @1,5 Mbaud, DTS) qui exige le chargement de firmware/patch et hci_uart ; sur les kernels Armbian 6.1, des utilisateurs signalent « no BT controller found … we need to manually load hci_uart module and attach it to the serial interface » (aucun contrôleur BT trouvé… nous devons charger manuellement le module hci_uart et l'attacher à l'interface série) (forum.armbian.com/t/55975, consulté le 2026-10-13).
  • Le CSI est du DVP parallèle, pas du MIPI (table des broches : D0–D7/PCLK/HSYNC/VSYNC sur le wiki) — l'article CNX de 2023 sur la M4-Zero l'appelle librement « MIPI CSI » ; seuls des capteurs DVP (classe OV5640) conviennent, et la couverture du driver mainline sun6i-csi pour cette carte est incomplète.
  • Puce en EOL / confusion de révisions. Le H2+ est EOL et les cartes sont désormais livrées avec le H3 (wiki) ; les affirmations marketing (H.265, « 60 mm », « DHCP ») contiennent des erreurs — voir les signalements dans SoC & specs.
  • La tension CPU est un régulateur GPIO à 2 états (1,1/1,3 V) (DTS) — pas de DVFS fin ; l'over-clocking agressif au-delà des OPP du fabricant n'est pas pris en charge par la conception de la carte.
  • Retour d'expérience expert expert — expert-pi-like
    • Petit retour d'experience sur la BPI-M2 Zero. Le format est vraiment compact et l'empreinte Raspberry Pi est un plus pour les carrossages, mais attention aux pieges materiels. Le point le plus critique reste le WiFi AP6212 : sans antenne externe soudee, c'est inutilisable, on tombe a moins de 1 Mbi… — expert-pi-like
    • Merci pour le retour. Tu confirmes que le detecteur de carte SD a pose des soucis ? J'ai vu des mentions de polarite differente selon les revisions de la carte. J'ai un vieux kernel qui ne voit pas ma carte alors que le matériel semble OK, je suspecte ce problème de GPIO haut/bas actif selon la bat… — hobbyiste-bidouille
    • Effectivement, la polarite du card-detect a changé entre les premiers echantillons et la production de série. Si ton image est prevue pour l'autre polarite, il voit 'no card inserted'. Il faut vérifier les commentaires du DTS mainline. Pour le reste, n'esperes pas booter sur USB ou eMMC, le microSD… — maker-sous-linux

Retours et projets de la communauté

  • openHAB home automation hub

    openHAB home automation hub — "A Review of the Banana Pi M2 Zero Running openHAB" (, linked from the official wiki Resources). (unverified au 2026-10-13)

  • GPIO / Ubuntu image project (Spanish community)

    GPIO / Ubuntu image project (Spanish community) — TuryRx's pinout, wiring and stable Ubuntu images for the board (; forum ). (unverified au 2026-10-13) Arch Linux port guide — step-by-step Arch install/config for the M2 Zero (; forum ). (unverified au 2026-10…

  • ShaRPiKeebo handheld computer

    ShaRPiKeebo handheld computer — Morpheans' portable Linux computer with Sharp memory display + LoRa that lists the Banana Pi M2 Zero among supported SBCs . (unverified au 2026-10-13) Retro gaming in Zero cases — RetroOrange/Retropie-style builds demoed on the…

  • "THE 100" build guide

    "THE 100" build guide — full Armbian install/setup walkthrough for the M2 Zero . (unverified au 2026-10-13) — référence hébergé sur theforgetful, statut unverified vérifié le 2026-10-13. Projet documenté dans la fiche bananapi-m2-zéro (module LoRa) ; rôle : a…

  • OpenCV machine vision

    OpenCV machine vision — BPI-M2 Zero OpenCV tutorials (, linked from the official wiki). (unverified au 2026-10-13) — référence hébergé sur bluexmas, statut unverified vérifié le 2026-10-13. Projet documenté dans la fiche bananapi-m2-zéro (module LoRa) ; rôle …

Contenu indisponible pour le moment.

  • Le WiFi est quasiment inutilisable sans antenne externe. La patte RF de l'AP6212 est reliée à un connecteur à côté du port HDMI mais aucune antenne n'est fournie avec la carte : « once I got to WiFi it leaves a little to be desired… it fell back to a default firmware/configuration with very limited performance » (quand j'en suis arrivé au WiFi, c'est un peu décevant… il retombe sur un firmware/configuration par défaut aux performances très limitées) ; sans antenne : débits oscillant entre 0,68 et 13 Mbit ; avec une antenne bon marché : ~26/34 Mbit et plus de 20 réseaux visibles contre « only my phone's hotspot » (seulement le partage de connexion de mon téléphone) (test bret.dk, consulté le 2026-10-13).
  • Les deux ports micro-USB ne sont pas interchangeables — piège d'alimentation. L'un est alimentation seule, l'autre données OTG, et leurs lignes Vbus sont reliées (commentaire du DTS mainline). Fournir 5 V pendant qu'un hôte USB est branché sur le port OTG, ou alimenter des périphériques depuis le mauvais port, provoque un retour de courant sur Vbus ; le mode hôte nécessite en plus un câble OTG. Lire le commentaire du DTS avant de câbler des configurations batterie/USB.
  • La polarité de la détection de carte microSD a changé entre les séries de fabrication. « On the production batch of this board the card detect GPIO is high active (card inserted), although on the early samples it's low active » (sur la série de production de cette carte, le GPIO de détection de carte est actif à l'état haut (carte insérée), alors que sur les premiers exemplaires il est actif à l'état bas) (commentaire du DTS mainline) — les kernels/images construits pour la mauvaise polarité voient « no card inserted ».
  • Plafond de 512 Mo de RAM. Les charges lourdes exigent zram : Geekbench 5.4 multi-core n'a été mené à bien « to get … zram had to be enabled and bumped up to around 350MB » (pour y arriver… zram a dû être activé et porté à environ 350 Mo) (bret.dk).
  • Pas d'amorçage depuis USB/eMMC. La microSD est le seul chemin d'amorçage ; un SSD USB améliore la fiabilité mais « you cannot boot from the USB SSD » (on ne peut pas amorcer depuis le SSD USB) (bret.dk). (La note du build Armbian du 2023-07-06 « support emmc » sur le wiki concerne l'eMMC de la P2 Zero ; la M2 Zero n'a pas de puce eMMC — voir la discussion du forum forum.banana-pi.org/t/15906, consulté le 2026-10-13.)
  • Régressions kernel/images sous Armbian. Des utilisateurs communautaires sont restés figés à Armbian 21.08.1 / 5.10.60-sunxi parce qu'« upgrading to newer kernels broke several things including wired ethernet » (la mise à niveau vers des kernels plus récents cassait plusieurs choses, dont l'Ethernet filaire) (github.com/longview/BPi-M2Zero, consulté le 2026-10-13) ; « With the newer version of armbian it didn't work » (avec la nouvelle version d'armbian, cela ne fonctionnait pas) (forum.banana-pi.org/t/16389) ; des problèmes avec les kernels récents sont toujours signalés (notes crimier.github.io BananaPi M2 Zero, « problems reported with 6.12.20 Armbian kernel that are apparently fixable » — problèmes signalés avec le kernel Armbian 6.12.20 apparemment corrigeables).
  • Images Armbian miroitées par le fabricant de qualité médiocre. Pour l'image Armbian bookworm miroitée sur le wiki, les utilisateurs du forum conseillent : « I recommend not using this image. Testing is indicative of being less than complete. For one, there is a malformed block device configuration » (je recommande de ne pas utiliser cette image. Les tests indiquent une complétude insuffisante. Entre autres, il y a une configuration malformée des périphériques bloc) (forum.banana-pi.org/t/15906).
  • Bluetooth nécessite une mise en service manuelle. Le côté BT de la puce combo est un HCI sur UART (brcm,bcm43438-bt @1,5 Mbaud, DTS) qui exige le chargement de firmware/patch et hci_uart ; sur les kernels Armbian 6.1, des utilisateurs signalent « no BT controller found … we need to manually load hci_uart module and attach it to the serial interface » (aucun contrôleur BT trouvé… nous devons charger manuellement le module hci_uart et l'attacher à l'interface série) (forum.armbian.com/t/55975, consulté le 2026-10-13).
  • Le CSI est du DVP parallèle, pas du MIPI (table des broches : D0–D7/PCLK/HSYNC/VSYNC sur le wiki) — l'article CNX de 2023 sur la M4-Zero l'appelle librement « MIPI CSI » ; seuls des capteurs DVP (classe OV5640) conviennent, et la couverture du driver mainline sun6i-csi pour cette carte est incomplète.
  • Puce en EOL / confusion de révisions. Le H2+ est EOL et les cartes sont désormais livrées avec le H3 (wiki) ; les affirmations marketing (H.265, « 60 mm », « DHCP ») contiennent des erreurs — voir les signalements dans SoC & specs.
  • La tension CPU est un régulateur GPIO à 2 états (1,1/1,3 V) (DTS) — pas de DVFS fin ; l'over-clocking agressif au-delà des OPP du fabricant n'est pas pris en charge par la conception de la carte.
  • Flasher Armbian et premier boot du BPI-M2 Zero debutant Schéma : IMG-bananapi-m2-zero-debutant-1-flasher-armbian-m2-zero.svg — BPI-M2 Zero (65 × 30 mm) vue de dessus avec les deux ports micro-USB annotés « OTG (données) » et « Power only », microSD insérée au dos, et le pont CON3 (UART0 TXD/RXD/GND) surligné près du connecteur 40 broches.
  • LED et bouton avec libgpiod sur le port 40 broches debutant Schéma : IMG-bananapi-m2-zero-debutant-2-clignoter-gpiod-m2-zero.svg — connecteur 40 broches du BPI-M2 Zero (brochage compatible Pi Zero W) : LED + résistance 330 Ω entre la broche 7 (PA6) et la masse, bouton entre la broche 32 (PL2) et GND (broche 6).
  • Wi-Fi AP6212 : le piège de l'antenne U.FL non fournie debutant Schéma : IMG-bananapi-m2-zero-debutant-3-wifi-ap6212-antenne-m2-zero.svg — BPI-M2 Zero avec gros plan sur le connecteur RF U.FL situé à côté du mini-HDMI, petite antenne vissée, et terminal affichant nmtui connecté à un réseau 2,4 GHz.
  • Console série sur USB-OTG : dépanner sans réseau ni câble UART intermediaire Schéma : IMG-bananapi-m2-zero-intermediaire-1-console-serie-otg-ttygs0.svg — BPI-M2 Zero reliée par un câble USB à un ordinateur portable via son port OTG ; sur l'écran du PC, un terminal picocom ouvert sur /dev/ttyACM0 ; la puce du gadget CDC-ACM est surlignée sur la carte.
  • Activer le bus SPI0 et piloter un petit écran TFT intermediaire Schéma : IMG-bananapi-m2-zero-intermediaire-2-spi0-ecran-tft-m2-zero.svg — écran TFT 2,4 pouces (contrôleur ILI9341) câblé sur les broches SPI0 du BPI-M2 Zero : broches 19/21/23/24 (PC0 à PC3) plus 3V3 et GND, avec les étiquettes MOSI/MISO/CLK/CS.
  • Survivre avec 512 Mo : zram, swap compressé et services légers intermediaire Schéma : IMG-bananapi-m2-zero-intermediaire-3-zram-memoire-512mo-m2-zero.svg — BPI-M2 Zero avec jauge de RAM à moitié pleine ; diagramme en médaillon : la RAM se scinde en applications + bloc zram compressé utilisé comme swap, la microSD reste à l'écart du swap.
  • Câbler l'Ethernet 10/100 EMAC avec le carrier Zero-EPHY avance Schéma : IMG-bananapi-m2-zero-avance-1-emac-100mbps-zero-ephy.svg — BPI-M2 Zero montée sur le carrier Zero-EPHY : lignes RMII issues du connecteur 40 broches vers une PHY Ethernet externe, jack RJ45 avec transformateur, et le câble réseau qui sort du montage.
  • Caméra DVP 8 bits sur le connecteur CSI et vision OpenCV avance Schéma : IMG-bananapi-m2-zero-avance-2-camera-dvp-csi-opencv-m2-zero.svg — nappe FPC 24 broches reliant un module caméra OV5640 (capteur DVP parallèle) au connecteur CSI du BPI-M2 Zero ; tableau des signaux D0-D7, PCLK, HSYNC, VSYNC, MCLK, I2C PE12/PE13, CSI-PWR-EN (PD14) ; écran affichant une détection de visage OpenCV.
  • Réveiller le Bluetooth de l'AP6212 : hci_uart et firmware BCM avance Schéma : IMG-bananapi-m2-zero-avance-3-bluetooth-ap6212-m2-zero.svg — BPI-M2 Zero avec la puce AP6212 surlignée, lignes UART1 (PG11-PG13, RTS/CTS) reliant le SoC au section Bluetooth ; terminal bluetoothctl affichant un scan d'appareils BLE.

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…

  • reseau-ethernet.sh Bash

    En installation fixe, une IP statique évite de chercher la carte dans le bail DHCP. Le script crée (ou corrige) un profil NetworkManager manuel sur le port Ethernet, puis vérifie la passerelle au pin…

  • 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