🛠 Migrer un produit du CM3 vers le CM3+ en drop-in
Objectives
The CM3 has been officially end-of-life since October 16, 2025 (removal of the BCM2837); Raspberry Pi designates the CM3+ as its direct replacement for existing designs, with a availability commitment until at least January 2028. Electrically identical and pin-to-pin compatible, the CM3+ is nevertheless not a risk-free clone: this tutorial establishes a migration checklist validated by tests.
Hardware
- Original CM3 carrier boards + replacement CM3+ modules (and CM3+ Lite for designs with external SD/eMMC)
- Oscilloscope/ramp analyzer for VBAT, calipers for ground clearance
- Recent software images (firmware later than November 2018 mandatory)
- Datasheets RP-008161-DS (CM3) and RP-008163-DS (CM3+) side by side
Complete Code
#!/usr/bin/env bash
# test_migration.sh — batterie de non-régression sur le produit migré CM3+
set -u
ok=0; ko=0
check { if eval "$2" >/dev/null 2>&1; then echo "PASS $1"; ok=$((ok+1));
else echo "FAIL $1"; ko=$((ko+1)); fi; }
check "firmware recent (>= nov 2018)" "test -n '"'"'$(vcgencmd versionmap | grep -oE '[0-9a-f]{8}' | head -1)'"'"'"
check "pas de sous-tension" "test $(sudo vcgencmd get_throttled | cut -d= -f2) -eq 0"
check "eMMC détecté" "lsblk -n /dev/mmcblk0"
check "temp sous 80C en charge" "bash -c 'stress-ng --cpu 4 --timeout 60s; test $(vcgencmd measure_temp | cut -d= -f2 | cut -d. -f1) -lt 80'"
check "GPIO bank0 OK" "gpio -g read 17"
check "réseau porteuse OK" "ping -c1 -W2 192.168.1.1"
echo "=== $ok PASS / $ko FAIL ==="; test $ko -eq 0
Design points to verify outside the script: (1) firmware — any old CM3 image prior to November 2018 must be re-flashed; (2) z-height — the CM3+ has a slightly taller CPU package, check existing covers and heatsinks; (3) VBAT — require 3500 mW of capacity (the CM1 required only 2000), check the regulator on the original board; (4) thermal threshold lowered from 85 °C (CM3) to 80 °C (CM3+): review the thermal budget of sealed enclosures.
Expected Verification
The test suite passes green on 10 power on/off cycles and 1 h of CPU load: no undervoltage, temperature kept below 80 °C, eMMC and SODIMM peripherals identical to the CM3. The cover closes (z-height validated) and the production firmware is dated. The BOM changes reference (CM3+/8-64 GB or Lite) and the schedule includes the CM3+ EoL (not before January 2028) with a CM4S trajectory if the product must live beyond that.
Common Errors
- Reusing stock SD cards/firmware from before November 2018: the CM3+ will not boot, and diagnostics go in all directions if this datasheet §1 requirement is not known.
- Not reopening the thermal budget: throttling occurs 5 °C earlier than on the CM3, an enclosure calibrated to 84 °C becomes a throttling oven.
- Forgetting the CPU height: the CM3+ is physically identical EXCEPT for the processor package z-height — covers fitted to the tenth of a millimeter no longer fit.
- Believing the migration is final: the CM3+ itself has an EoL date (not before January 2028); long-life products must already target the CM4S (same SODIMM, Pi 4 silicon).
- Migrating without re-qualifying power supply ramps: the sequencing requirements (from highest to lowest, latch-up) are identical, but a current-limited VBAT regulator inherited from a CM1 design may drop out earlier.
Other tutorials for this board
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash