Raspberry Pi Compute Module 3 (CM3 / CM3L)

Raspberry PiSBClinux

⚡ L’essentiel en 60 secondes

La Raspberry Pi Compute Module 3, souvent désignée par l'acronyme CM3, représente une étape significative dans l'évolution des ordinateurs monocarte destinés à l'intégration industrielle et aux produits finis. Lancée officiellement le 16 janvier 2017 par la société britannique Raspberry Pi Ltd, cette carte ne se présente pas sous la forme d'un circuit imprimé classique avec des ports USB et HDMI directement accessibles, mais plutôt comme un module compact au format SODIMM DDR2, mesurant 67,6 sur 31 millimètrès. Ce format, identique à celui des barrettes de mémoire vive pour ordinateurs portables, permet de souder ou d'insérer le module dans une carte porteuse personnalisée. Cette approche simplifie considérablement la conception électronique pour les fabricants, car le module gère la complexité du routage des broches du processeur, laissant au concepteur le soin de créer une carte mère plus simple, parfois même en deux couches seulement. Il est important de noter que la CM3 a été déclarée en fin de vie le 16 octobre 2025, suite à l'arrêt de production de son cœur électronique, le SoC BCM2837. Pour les nouveaux projets, Raspberry Pi recommande désormais les modèles CM3+ ou CM4S, bien que la CM3 reste fonctionnelle pour les systèmes existants.

Au cœur de la CM3 se trouve le SoC Broadcom BCM2837, une puce qui intègre un processeur quad-core Arm Cortex-A53 cadencé jusqu'à 1,2 GHz. Pour comprendre cette fréquence, il faut savoir qu'elle définit le nombre de cycles d'horloge que le processeur effectue chaque seconde, influençant directement la vitesse d'exécution des tâches. Bien que l'architecture ARMv8-A soit capable de traiter des instructions 64 bits, le système d'exploitation fourni par défaut fonctionne en 32 bits, une compatibilité héritée des générations précédentes. La puce est accompagnée de 1 Go de mémoire vive LPDDR2, une technologie de mémoire basse consommation. Deux variantes principales existent : la CM3 standard, qui dispose de 4 Go de stockage eMMC soudé directement sur le module, et la CM3 Lite (CM3L), qui n'a aucun stockage embarqué. Dans ce dernier cas, les signaux nécessaires pour connecter une carte SD ou une puce eMMC externe sont exposés sur le connecteur, offrant une flexibilité totale au concepteur sur le choix et la capacité du stockage. Il n'existe pas de variante avec plus de 4 Go d'eMMC pour le grand public, bien qu'une version spécifique de 16 Go ait été produite pour des produits commerciaux de la marque NEC.

L'un des atouts majeurs de la CM3 réside dans sa connectivité étendue, bien supérieure à celle d'une Raspberry Pi standard. Le module expose 48 lignes GPIO (entrées/sorties à usage général) via le connecteur SODIMM, contre 28 sur les modèles classiques. Ces GPIO sont divisés en deux banques indépendantes, chacune pouvant être configurée pour fonctionner en tension de 1,8 volt ou 3,3 volts. Cette flexibilité est cruciale pour l'interfaçage avec des périphériques industriels modernes qui fonctionnent souvent en 1,8 volt, évitant ainsi l'ajout de convertisseurs de niveau logique complexes. Cependant, cette puissance s'accompagne de contraintes strictes : toutes les alimentations doivent être présentes et séquentielles pour éviter d'endommager la puce. De plus, certains broches réservées, comme celles liées au démarrage eMMC ou au détecteur de câble HDMI, ne doivent pas être réutilisées comme GPIO standard sous peine de rendre la carte inutilisable. Il est également essentiel de noter que la CM3 ne dispose d'aucune connectivité sans fil intégrée : ni Wi-Fi, ni Bluetooth, ni port Ethernet. Ces fonctions doivent être ajoutées via la carte porteuse, par exemple avec un chip USB Ethernet comme le LAN9514, une pratique courante dans les déploiements industriels.

Le système d'exploitation supporté officiellement est Raspberry Pi OS, la même image 32 bits utilisée pour la Raspberry Pi 3. L'installation varie selon la variante. Pour la CM3 avec eMMC, le processus de programmation se fait via USB : le module est mis en mode démarrage par USB, ce qui le fait apparaître comme un disque dur externe sur un ordinateur hôte, permettant d'y copier l'image système à l'aide d'outils comme rpiboot. Pour la CM3 Lite, il suffit d'écrire l'image sur une carte SD insérée dans le connecteur dédié. Une particularité technique importante est l'absence de bootloader EEPROM sur la CM3, une fonctionnalité introduite seulement avec la génération CM4. Le démarrage est donc géré par le silicium du processeur, qui cherche toujours en priorité un fichier de démarrage sur l'eMMC ou la carte SD avant de basculer en mode USB si aucun système n'est trouvé. Cette séquence fixe signifie qu'il n'y a pas de paramétrage logiciel pour changer l'ordre de démarrage.

Sur le plan thermique, la CM3 est connue pour chauffer davantage que ses prédécesseurs en raison de la densité de son processeur quad-core. Le fabricant avertit que le processeur peut générer une chaleur significative sous charge lourde, nécessitant une conception thermique soignée, comme l'ajout de dissipateurs. Le système dispose d'un mécanisme de réduction automatique de la fréquence (throttling) lorsque la température interne dépasse 85 °C pour protéger la puce. La plage de température de fonctionnement nominale s'étend de -25 °C à +80 °C, limitée par les composants mémoire et de stockage. Enfin, bien que la CM3 soit en fin de vie, elle a laissé une empreinte durable, étant utilisée dans des produits commerciaux comme les écrans d'affichage numérique de NEC ou des projets open source comme la tablette CutiePi. Pour les ingénieurs travaillant encore sur des systèmes hérités, il est crucial de vérifier la compatibilité mécanique avec les anciennes cartes porteuses CM1, car la CM3 est légèrement plus haute et consomme plus de courant, ce qui peut poser problème sur les conceptions anciennes ayant des régulateurs de tension faibles ou des espaces restreints.

Forum (1 sujet) →

AttrSpecsvérifié
socBroadcom BCM2837 — quad-core Arm Cortex-A53 (ARMv8-A 64-bit ISA, run with 32-bit userland by default), up to 1.2 GHz, dedicated 512 KB L2 cache; the BCM2837 is an evolution of the BCM2835 (same peripherals, more addressable RAM, quad-core CPU) (datasheet RP-008161-DS §1; official docs compute-module.html).? non vérifié
gpuBroadcom VideoCore IV (raspberrypi.com/documentation/computers/compute-module.html model table).✔
ram1 GB LPDDR2 (fixed; the only RAM option) (datasheet §1).? non vérifié
storage4 GB eMMC soldered on CM3 (I/O fixed at 1.8 V, not accessible on module pins); CM3L has none and exposes the SDX pins (datasheet §1, §8).? non vérifié
connectivityNo Wi-Fi, no Bluetooth, no Ethernet on the module. The peripheral list is: 1× USB 2.0 host/OTG, 1× HDMI 1.3a, composite TV-out, 2× CSI (1 four-lane + 1 two-lane, up to 1 Gbps/lane), 2× DSI (1 four-lane + 1 two-lane), 2× I2C, 2× SPI, 2× UART, 2× SD/SDIO, DPI (24-bit parallel RGB display), SMI (NAND/Intel-mode-80 bus), JTAG (datasheet §2.2, §9). Networking must come from the carrier board (e.g., a USB Ethernet chip such as the LAN9514 spotted on NEC's mezzanine board — community observation in launch-blog comments, not official).? non vérifié
gpio48 usable GPIO lines (GPIO0–45) in two independently powered banks: bank0 = GPIO0–27, bank1 = GPIO28–45. Each bank's VREF supply sets its I/O level anywhere from 1.8 V to 3.3 V; both banks must be powered even if unused. Weak internal pulls (50–65 kΩ) on all but GPIO28/29/44/45; default drive 8 mA, max 16 mA per pin, aggregate ≤ 50 mA per bank. PWM0/PWM1, GPCLK0–2, PCM (I2S) are GPIO alternate functions; no ADC and no DAC on the SoC (datasheet §6, §7, §9.1, Tables 9–10).? non vérifié
mechanical200-pin DDR2-SODIMM form factor (JEDEC MO-224 outline), 67.6 × 31 mm — 1 mm taller than CM1 (datasheet §4; CNX launch article).? non vérifié
powersix supplies, all mandatory: VBAT (core SMPS input, 2.5–5.0 V, recommended minimum 3500 mW for CM3), 3V3 (≥250 mA), 1V8 (≥250 mA), VDAC (2.5–3.3 V; clean 2.5–2.8 V only if TV-out used, else tie to 3V3), GPIO0-27 VREF and GPIO28-45 VREF (1.8–3.3 V, ≥50 mA), plus SDX VREF on CM3L. Supplies must ramp highest-voltage-first (or simultaneously without crossing) to avoid forward-biasing on-chip diodes / latch-up (datasheet §7, Tables 7–8).? non vérifié
typical_consumption? non vérifié
temperaturenominal operating range −25 °C to +80 °C (limited by eMMC and LPDDR2 parts); DVFS thermal throttling engages when the on-die sensor exceeds 85 °C (datasheet §10). Note: CNX lists −20 to +70 °C for the later CM3+ datasheet — do not mix the two figures.? non vérifié
  • Fabricant : Raspberry Pi (Trading) Ltd. (désormais Raspberry Pi Ltd.), Royaume-Uni.
  • Lancement : 16 janvier 2017, annoncé dans l'article de blog officiel « Compute Module 3 Launch ! » (raspberrypi.com/news/compute-module-3-launch/, consulté le 2026-10-13 ; la date de lancement est également confirmée par CNX Software, cnx-software.com/2017-01-16/raspberry-pi-3-compute-modules-cm3-and-cm3l-launched-for-35-and-30/, consulté le 2026-10-13).
  • Prix au lancement : 30 $ US pour le CM3 (eMMC 4 Go), 25 $ US pour le CM3 Lite (CM3L, sans eMMC) ; le Compute Module d'origine a été simultanément repassé à 25 $ (blog officiel de lancement, même URL). Un kit de développement complet (CM3 + Compute Module IO Board V3) se vendait environ 150 $ (CNX, même URL).
  • Statut : Fin de vie (End-of-Life). Date officielle d'EoL : 16 octobre 2025, due à l'arrêt de production du SoC central ; Raspberry Pi recommande le CM3+ pour les conceptions existantes et le CM4S pour les nouvelles conceptions SODIMM (documentation officielle, raspberrypi.com/documentation/computers/compute-module.html, consulté le 2026-10-13 ; avis d'obsolescence pip.raspberrypi.com/documents/RP-009286-PC). Le module avait été déclaré « legacy, not recommended for new designs » dès janvier 2019 (datasheet Release 3, RP-008161-DS).
  • Variantes : - CM3 — LPDDR2 1 Go + eMMC 4 Go sur le module. - CM3L (CM3 Lite) — même SoC/RAM, sans eMMC ; les signaux de l'interface SD/eMMC (SDX) sont exposés sur le connecteur SODIMM afin que le concepteur puisse y brancher un connecteur pour carte SD ou son propre composant eMMC (datasheet RP-008161-DS, §1). - Une variante CM3 avec eMMC 16 Go a été produite pour les produits d'affichage de NEC (indiqué par le compte officiel NEC_Displays dans les commentaires du blog de lancement ; source unique, à considérer comme secondaire).

+ Points forts

  • System-on-Module dans un connecteur DDR2 SODIMM : tout l'ordinateur Pi 3 (SoC, RAM, PMIC, eMMC) dans une pièce sur connecteur adaptée à la production de masse, avec un placage or dur de 35 µm sur la tranche du module ; les cartes mères peuvent être de simples conceptions deux couches (datasheet §2.1 ; blog de lancement « the module takes care of the complexity of routing out the processor pins… »).
  • ~10× les performances CPU et 2× la RAM du Compute Module 1, avec un brochage identique — les conceptions CM1 sont largement rétrocompatibles (blog de lancement ; datasheet §1).
  • Des I/O au-delà d'un Pi normal : 48 GPIO (contre 28 sur une carte Pi), double CSI et double DSI dont du MIPI 4 voies à 1 Gbit/s/voie, interface d'affichage parallèle DPI 24 bits, bus NAND SMI, sortie composite, JTAG — le tout sur le connecteur en tranche (datasheet §2.2).
  • Tension GPIO sélectionnable par bank (1,8–3,3 V) — l'adaptation de niveau vers des périphériques 1,8 V est une décision de carte mère, pas une corvée de convertisseur de niveau logique (datasheet §7, tableau 7).
  • Mode programmation USB : le module peut être flashé par USB depuis n'importe quel hôte (y compris un autre Pi) sans aucun stockage à bord — pratique pour le provisionnement en usine (datasheet §8).
  • Lignée industrielle : programme de disponibilité longue durée (garanti jusqu'à au moins janvier 2026 selon la datasheet §11), utilisé par NEC dans des afficheurs commerciaux (voir Projects).
  • Absents : le sans-fil (ajouté seulement à partir du CM4), l'Ethernet, le PCIe, et une EEPROM de bootloader mettable à jour sur le terrain (fonctions CM4+) — documentation officielle compute-module.html.

− Points faibles

  • Fin de vie (16 oct. 2025) : le BCM2837 a été arrêté ; plus de nouvelles commandes. Chemins de migration : CM3+ (même empreinte, BCM2837B0, meilleure tenue thermique, EOL pas avant janvier 2028), CM4S (SODIMM, silicium de Pi 4), ou CM4/CM5 (nouvelles conceptions). Sources : documentation officielle compute-module.html + avis d'obsolescence RP-009286-PC + page 1 de la datasheet.
  • Bridage thermique / quad-core chaud : le blog de lancement avertit explicitement que le processeur « will run much hotter under heavy CPU load, so designers need to consider thermals » ; la datasheet documente le bridage à 85 °C et avertit que « the Quad ARM complex in the BCM2837 can generate significant heat output » (blog de lancement ; datasheet §10). CNX note que le CM3+ a été retravaillé thermiquement parce que le CM3 chauffait davantage en charge (article CNX CM3+).
  • Cadence CPU plafonnée à 1,2 GHz : le silicium peut aller plus vite (1,4 GHz sur les cartes Pi 3B+) mais l'alimentation du module la limite à 1,2 GHz (article CNX CM3+, même URL).
  • Piège de séquence d'alimentation : faire monter les alimentations dans le mauvais ordre peut polariser directement les diodes internes de la puce et provoquer un latch-up ; les six rails doivent toujours être présents, même inutilisés (datasheet §7, §7.1).
  • Broches 1,8 V réservées : HDMI_HPD_N_1V8 et EMMC_EN_N_1V8 ne sont pas des GPIO génériques — le firmware attend toujours leur fonction spéciale ; les réutiliser casse le boot/HDMI (datasheet §9.1, avertissement en gras).
  • Broches flottantes à la mise sous tension : GPIO28, 29, 44, 45 n'ont aucune pull par défaut ; la datasheet recommande des pulls externes hors puce pour qu'elles ne flottent jamais pendant la mise sous tension et le boot initial (datasheet §9.1).
  • Ordre de boot figé & repli USB-boot lent : pas d'EEPROM ni de BOOT_ORDER ; forcer le boot USB via EMMC_DISABLE_N coûte quelques secondes de timeout eMMC, et les cartes mères personnalisées nécessitent un circuit MOSFET dimensionné pour une commande de grille en 1,8 V afin de l'automatiser (datasheet §8).
  • Pièges de la mise à niveau CM1→CM3 : le module est 1 mm plus haut et VBAT tire nettement plus de courant — les anciennes cartes CM1 avec un jeu en Z serré ou de faibles régulateurs VBAT peuvent tomber en panne (datasheet §1 ; blog de lancement).
  • Plafond de stockage & usure eMMC : seule une option eMMC 4 Go existait (8–32 Go est arrivé avec le CM3+) ; le rail I/O de l'eMMC est câblé en dur à 1,8 V (datasheet §1, §7 ; article CNX CM3+). >
  • Pas de sans-fil par conception : Wi-Fi/Bluetooth exigent des addons USB ; le bus SDIO SD1 qui porte le Wi-Fi sur un Pi 3B n'a aucune radio montée sur le CM3 (datasheet §2.2 liste des périphériques ; documentation officielle).
  • Limitation de synchronisation des caméras stéréo (affecte les conceptions caméra CM3) : discutée sur le blog officiel de lancement entre des membres de la communauté et l'ingénieur firmware RPi 6by9 — les modules caméra n'exposent aucun genlock, la dérive de synchro est de quelques millisecondes et incorrigible en matériel (commentaires du blog de lancement). >
  • Retour d'expérience expert expert — expert-raspberrypi
    • Petit retour d'experience sur la Compute Module 3 maintenant qu'elle est officiellement en fin de vie. C'etait une super carte pour le design industriel grace au format SODIMM et aux 48 GPIO, mais attention a la gestion thermique. Le quad-core chauffe serieusement en charge lourde et le throttling … — expert-raspberrypi
    • Merci pour le rappel. J'ai justement un vieux carrier CM1 que j'essaie d'upgrader. J'ai constate des boot aléatoires jusqu'à ce que je realise que je n'avais pas ajoute les résistances de pull-up externes sur GPIO28, 29, 44 et 45. Le datasheet le dit mais c'est facile a rater quand on migre. Est-ce… — hacker_elec
    • Pour le boot USB, sans le MOSFET ca reste manuel et lent avec le timeout eMMC. Le vrai souci reste l'absence totale de Wi-Fi et Bluetooth sur le module. Il faut obligatoirement un dongle USB ou un module externe sur le carrier, ce qui prend la place du port unique USB 2.0. Si ton projet a besoin de… — maker_pragmatique

Retours et projets de la communauté

  • NEC commercial displays / digital signage

    NEC commercial displays / digital signage — NEC shipped CM3 (and CM1) modules in the expansion bay of 40″–98″ professional displays with Ethernet and signage software partners ; official write-up: and . (unverified au 2026-10-13) CutiePi open-source tablet — …

  • Flashing a CM3 eMMC over USB with usbboot

    Flashing a CM3 eMMC over USB with usbboot — the standard provisioning workflow for production images (used from another Pi or a Linux PC): (procédure also described in datasheet §8). (unverified au 2026-10-13)

Contenu indisponible pour le moment.

  • Fin de vie (16 oct. 2025) : le BCM2837 a été arrêté ; plus de nouvelles commandes. Chemins de migration : CM3+ (même empreinte, BCM2837B0, meilleure tenue thermique, EOL pas avant janvier 2028), CM4S (SODIMM, silicium de Pi 4), ou CM4/CM5 (nouvelles conceptions). Sources : documentation officielle compute-module.html + avis d'obsolescence RP-009286-PC + page 1 de la datasheet.
  • Bridage thermique / quad-core chaud : le blog de lancement avertit explicitement que le processeur « will run much hotter under heavy CPU load, so designers need to consider thermals » ; la datasheet documente le bridage à 85 °C et avertit que « the Quad ARM complex in the BCM2837 can generate significant heat output » (blog de lancement ; datasheet §10). CNX note que le CM3+ a été retravaillé thermiquement parce que le CM3 chauffait davantage en charge (article CNX CM3+).
  • Cadence CPU plafonnée à 1,2 GHz : le silicium peut aller plus vite (1,4 GHz sur les cartes Pi 3B+) mais l'alimentation du module la limite à 1,2 GHz (article CNX CM3+, même URL).
  • Piège de séquence d'alimentation : faire monter les alimentations dans le mauvais ordre peut polariser directement les diodes internes de la puce et provoquer un latch-up ; les six rails doivent toujours être présents, même inutilisés (datasheet §7, §7.1).
  • Broches 1,8 V réservées : HDMI_HPD_N_1V8 et EMMC_EN_N_1V8 ne sont pas des GPIO génériques — le firmware attend toujours leur fonction spéciale ; les réutiliser casse le boot/HDMI (datasheet §9.1, avertissement en gras).
  • Broches flottantes à la mise sous tension : GPIO28, 29, 44, 45 n'ont aucune pull par défaut ; la datasheet recommande des pulls externes hors puce pour qu'elles ne flottent jamais pendant la mise sous tension et le boot initial (datasheet §9.1).
  • Ordre de boot figé & repli USB-boot lent : pas d'EEPROM ni de BOOT_ORDER ; forcer le boot USB via EMMC_DISABLE_N coûte quelques secondes de timeout eMMC, et les cartes mères personnalisées nécessitent un circuit MOSFET dimensionné pour une commande de grille en 1,8 V afin de l'automatiser (datasheet §8).
  • Pièges de la mise à niveau CM1→CM3 : le module est 1 mm plus haut et VBAT tire nettement plus de courant — les anciennes cartes CM1 avec un jeu en Z serré ou de faibles régulateurs VBAT peuvent tomber en panne (datasheet §1 ; blog de lancement).
  • Plafond de stockage & usure eMMC : seule une option eMMC 4 Go existait (8–32 Go est arrivé avec le CM3+) ; le rail I/O de l'eMMC est câblé en dur à 1,8 V (datasheet §1, §7 ; article CNX CM3+). >
  • Pas de sans-fil par conception : Wi-Fi/Bluetooth exigent des addons USB ; le bus SDIO SD1 qui porte le Wi-Fi sur un Pi 3B n'a aucune radio montée sur le CM3 (datasheet §2.2 liste des périphériques ; documentation officielle).
  • Limitation de synchronisation des caméras stéréo (affecte les conceptions caméra CM3) : discutée sur le blog officiel de lancement entre des membres de la communauté et l'ingénieur firmware RPi 6by9 — les modules caméra n'exposent aucun genlock, la dérive de synchro est de quelques millisecondes et incorrigible en matériel (commentaires du blog de lancement). >

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. gpiozero est la bibliothèque de référence sur cet OS : elle gère les puces GPIO sans manipulation root.

  • bouton-gpio.py Python

    Un bouton sur le connecteur GPIO déclenche une action à l'appui et au relâchement. gpiozero fournit les callbacks when_pressed/when_released avec anti-rebond intégré et le pause() événementiel.

  • 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