console-at.sh

Arduino MKR GSM 1400 · Archivo : console-at.sh · Lenguaje : Bash · Uso : Dialoguer en AT avec le modem depuis un terminal Linux

Cuando el sketch de Arduino parece culpable, habla directamente con el módem u-blox del MKR GSM 1400: este script Bash lanza una salva de comandos AT clásicos y muestra las respuestas. Ideal para revisar SIM, registro de red y señal antes de programar.

Hardware

Una Arduino MKR GSM 1400 (microcontrolador SAMD21, módem celular 2G/GPRS, antena externa, alimentada por batería LiPo en el conector J6 o por USB). Un PC Linux (o WSL), socat/stty y acceso TTL al puerto serie del módem (cable USB-TTL de 3,3 V a los pines RX/TX del módem).

Cableado

Cruza TX/RX entre el adaptador USB-serie de 3,3 V y el módem, masa común; el módem es de 3,3 V, nunca RS-232.

Funcionamiento

stty deja el puerto en crudo a 115200 baudios; at() escribe la orden y lee 5 s con timeout. AT+CREG/CSQ/COPS/CPIN cubren red y SIM.

Ejecución

En el IDE de Arduino, instala el paquete Arduino SAMD Boards, selecciona la placa MKR GSM 1400 y carga. Los ejemplos de red suponen una SIM de datos activa insertada, la antena enroscada y cobertura 2G todavía disponible en tu zona.

Variantes

Sustituye at() por un terminal interactivo real (socat -, raw, echo, icrnl $PORT) o guarda las respuestas en un archivo.

console-at.sh

#!/usr/bin/env bash
# Console AT vers le modem du MKR GSM 1400 (mode bootloader/firmware AT).
# Le modem u-blox est accessible sur le port serie 1 (115200 bauds)
# quand le SAMD21 est en mode bootstrap, ou via un shield TTL.
# Usage : ./console-at.sh /dev/ttyUSB0
set -euo pipefail

PORT="${1:-/dev/ttyUSB0}"
VITESSE=115200

command -v socat >/dev/null || { echo "installez socat (apt install socat)"; exit 1; }
stty -F "$PORT" $VITESSE raw -echo

at() {
  printf '%s\r\n' "$1" > "$PORT"
  timeout 5 cat "$PORT" | head -n 20
}

echo "== Identite =="
at "AT"
at "AT+GMR"        # versions firmware
at "AT+CGMI"       # fabricant
echo "== Reseau =="
at "AT+CREG?"       # enregistrement 2G (0,1 = ok)
at "AT+CSQ"         # qualite signal (RSSI,BER)
at "AT+COPS?"       # operateur
echo "== SIM =="
at "AT+CPIN?"       # etat du code PIN
echo "Termine."

← Volver a la ficha