🛠 Diagnostic AT et qualité de signal
Objectifs
Dépanner un lien cellulaire avec les commandes AT du module SARA-R410M : état d'enregistrement (AT+CEREG?), qualité radio (AT+CSQ), cellule servante et technologie (AT+QENG). La bibliothèque MKRGSM expose sendModemCommand pour envoyer de l'AT brut sans réécrire de pilote UART. Le modem est sur une UART dédiée (SERCOM4 : GSM_TX PA12, GSM_RX PA13, RTS/CTS PA14/PA15) dont le flow control n'est pas activé par le core — d'où des réponses tronquées sous fort trafic AT.
Matériel
- 1 carte MKR NB 1500 + antenne + SIM data
- Câble micro-USB + console série
- Bibliothèque MKRGSM (la commande de sondes AT y est disponible)
Code complet
// Diagnostic AT periodique — MKR NB 1500
#include <MKRGSM.h>
#include "arduino_secrets.h"
const char PINNUMBER[] = SECRET_PINNUMBER;
GSM gsm;
void setup {
Serial.begin(9600);
while (!Serial);
bool ok = false;
while (!ok) {
if (gsm.begin(PINNUMBER) == GSM_READY) ok = true;
else delay(3000);
}
}
void loop {
Serial.println(F("--- Diagnostic ---"));
Serial.println(F("Enregistrement :"));
gsm.sendModemCommand("AT+CEREG?", &Serial); // 0,1 = enregistre, 0,5 = en roaming
Serial.println(F("Qualite signal :"));
gsm.sendModemCommand("AT+CSQ", &Serial); // +CSQ: rssi,ber
Serial.println(F("Cellule/RAT :"));
gsm.sendModemCommand("AT+QENG=\"servingcell\"", &Serial);
delay(30000);
}
Vérification attendue
AT+CEREG? répond +CEREG: 0,1 (enregistré) ou 0,5 (roaming). AT+CSQ répond +CSQ: 20,99 : premier chiffre 0–31 (RSSI, dBm ≈ -113 + 2×CSQ, donc 20 ≈ -73 dBm, excellent ; < 10 ≈ -93 dBm, limite), 99 = inconnu. AT+QENG indique la RAT (NB-IoT ou LTE-M) et la bande — vérifiez que ce sont bien celles attendues.
Erreurs fréquentes
- Interpréter CSQ comme un pourcentage : c'est une échelle 0–31 logarithmique ; 99 signifie « pas de mesure », pas « zéro signal ».
- Réponses AT incomplètes ou corrompues : l'UART du modem n'utilise pas RTS/CTS (bug ouvert du core) ; limitez le volume de commandes AT et ajoutez des pauses.
- Le module se fige après redémarrage logiciel (thread forum « SARA Modem freezes when restarted ») : préférez l'extinction propre (
shutdown) ou la coupure alimentation au redémarrage AT. sendModemCommandsans flux de sortie : passez bien&Serialpour voir les réponses.- En cas d'échec persistant, la fiabilité historique de MKRGSM est connue (issue #66) : croisez avec la bibliothèque MKRNB avant de déclarer la carte morte.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
attente-lte-nbiot.inoArduinochoix-bande.inoArduinopublish-mqtt-minimal.inoArduinoeconomie-energie.inoArduinogeoloc-cellules.inoArduinotest-coverage.inoArduino