🛠 Passerelle cellulaire 4G/5G : module M.2 B-Key, SIM et failover
Objectifs
Faire de la ROCK 3B une passerelle cellulaire autonome — le socket M.2 B-Key 3042 (interfaces USB/PCIe/SATA) et le port SIM embarqué évitent tout carrier board : un module 4G LTE (ou 5G) + une SIM suffisent. Radxa documente l'usage des interfaces dans la doc officielle « interface usage » et le support a confirmé des modules Quectel (ex. EM05) sur le forum. Usage typique : failover d'une liaison filaire sur site isolé, avec les deux GbE en secours.
Matériel
- Radxa ROCK 3B sous Radxa OS, alimentation PD 12 V / 2 A (pics radio sous charge)
- Module M.2 B-Key 3042 LTE cat4+ type Quectel (EC25/EM05 ou équivalent), antennes, nano-SIM data
- >
Code complet
# 1. Le module est vu en USB (mode QMI/MBIM/ECM selon le module) :
sudo lsusb ; sudo dmesg | grep -i -e qmi -e gsm -e cdc
ls /dev/ttyUSB* # ports AT (ttyUSB2 souvent)
# 2. Dialogue AT : statut réseau et enregistrement
sudo apt install minicom
sudo minicom -D /dev/ttyUSB2 # AT+CPIN? -> READY ; AT+CSQ -> qualité signal
# AT+CGDCAP=1,"apn" puis AT+CGACT=1,1 selon module
# 3. Connexion données :
sudo apt install network-manager-modemmanager
mcli -t -f DEVICE,STATE device # wwan0 / cdc-wdm0 attendu
mcli connection add type gsm ifname cdc-wdm0 con-name 4g apn "apn.orange"
mcli connection up 4g ; ping -c3 -I wwan0 1.1.1.1
# 4. Failover simple (métriques) : Ethernet prioritaire, cellulaire de secours
sudo nmcli connection modify "Ethernet-eth0" connection.autoconnect-priority 100
sudo nmcli connection modify "4g" connection.autoconnect-priority 50
Vérification attendue
AT+CPIN? renvoie READY (SIM détectée), AT+CSQ une qualité > 10 ; mcli connection up 4g lève wwan0/cdc-wdm0 avec une IP ; ping -I wwan0 sort sur Internet. En débranchant Ethernet, le trafic bascule sur la liaison cellulaire (métrique la plus basse).
Erreurs fréquentes
- Oublier les antennes avant de mettre sous tension : le module cherche indéfiniment, AT+CSQ = 99.
- Mauvais port AT : l'ordre des ttyUSB* change selon le module — tester avec
ATsur chacun. - APN absent ou faux : l'enregistrement réseau réussit mais aucune donnée ; vérifier l'APN de l'opérateur.
- SIM data restreinte (voix seule) ou PIN SIM non désactivé : AT+CPIN ? indique SIM PIN.
- Installer le module en 5G alors que l'alimentation 5 V GPIO est utilisée : les pics radio exigent le PD 12 V/2 A (ou PoE 25 W).
- Les interfaces du B-Key sont USB/PCIe/SATA : un module purement PCIe peut nécessiter un firmware/module noyau spécifique — privilégier un module USB-QMI documenté pour Linux ARM.
Autres tutoriels pour cette carte
- Faire clignoter une LED via le GPIO avec libgpiod
- Lire un bouton poussoir en Python avec python3-libgpiod
- Premier réseau : Ethernet double gigabit, Wi-Fi optionnel et SSH
- Installer et booter le système sur un SSD NVMe (M.2 M-Key)
- Interroger un capteur I2C sur le connecteur 40 broches
- Surveiller température et fréquence CPU, piloter le ventilateur PWM
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash