[TUTO] Update Firmware SIM8XX

Il existe plusieurs modules GSM de la série SIM800 de chez SIMCOM possédant chacun des spécificités propres : taille, interfaces, fonctions supplémentaires (GNSS, Bluetooth)… etc. Les firmwares de ces modules sont souvent mis à jour, intégrant alors de nouvelles fonctionnalités (ajout de nouvelles commandes, fix de bugs…). Cet article vous présente comment mettre à jour vos modules SIMCOM de la série SIM8XX et ainsi exploiter tout le potentiel de votre matériel.

Ce tutoriel utilise un flashage du firmware par la liaison série du module (RX / TX). Un Arduino en MultiSerial ou convertisseur UART – USB peuvent être utilisés afin d’interfacer le module avec votre ordinateur.

Le module utilisé pour la démonstration est un SIM800L de chez SIMCOM.

Téléchargement de l’outil :

Télécharger la dernière version du firmware du module sur le site officiel de SIMCOM : http://simcom.ee/documents/?dir

Lancer l’exécutable :

Entrer les configurations de la carte :

  • Target : type de carte utilisé (ici un SIM800L)
  • PortType : type de transfert, via liaison USB ou UART (RX / TX)
  • Com : port COM utilisé
  • Baud rate : vitesse de transmission (souvent 9600 ou 115200 par défaut)
  • Image Folder : sélection du firmware à flasher dans le module

Cliquer sur Image Folder afin de sélectionner le .cfg du firmware à flasher :

Vérifier que le module est bien ETEINT puis cliquer sur Start Download. Le module doit être éteint afin que le logiciel puisse flasher le module avant son démarrage complet. Une indication (waiting) apparait, attendant le démarrage du module.

Allumer le module. La barre de téléchargement doit alors se lancer.

Une fois le download correctement effectué, une fenêtre apparaît indiquant le bon déroulement du processus.

Sources d’erreurs possibles :

  • Mauvais port COM sélectionné
  • Erreur de branchement des signaux RX/TX
  • Ordre d’allumage du module
  • Mauvais firmware

nb : pour le cas du SIM800L, deux versions de firmwares existent. Selon la version du module il faut choisir l’une ou l’autre. La commande AT+GMR retourne la version du firmware dans le module :
1308B0XSIM800L16 = mettre la version de firmware disponible sur le site SIMCOM
1418B0XSIM800L24 = mettre la version de firmware suivante : 1418B05SIM800L24

[Tuto] Module GSM SIM800L – Prise en main

Le module GSM SIM800L est l’un des plus petits modules GSM du monde avec une taille de 2.2 cm x 1.8 cm. C’est un module puissant qui démarre automatiquement et recherche automatiquement le réseau. Il inclut notamment le Bluetooth 3.0+EDR et la radio FM (récepteur uniquement). Il vous permettra d’échanger des SMS, de passer des appels mais aussi, et c’est nouveau, de récupérer de la data en GPRS 2G+. Ainsi vous pourrez faire transiter des données sur une très longue distance, si par exemple la radio FM ou le Bluetooth ne vous suffit plus.

Librairies : SoftwareSerial.h

Matériel : Arduino, SIM800L, carte SIM, diode 1N4007, jumpers, breadboard

Datasheets : SIM800L | At command

Montage :

Ce module nécessite une alimentation entre 3,4V et 4,4V. L’alimentation 5V de l’Arduino ne lui convient donc pas. Pour contrer ce problème d’alimentation, on ajoute une diode 1N4007 entre le 5V de l’Arduino et le pin VCC du SIM800L. Le SIM800L nécessite un pic de courant d’environ 2A. Le reste du branchement est détaillé ci-dessous. La pin reset doit être relié au 3,3v de l’arduino.

untitled-2
20161003_1223291

Il faut également insérer votre SIM dans le compartiment prévu à cet effet sur le module, comme montré dans la photo ci-dessous. Le sens d’insertion de la carte SIM dans le module à son importance. La carte SIM doit être une micro SIM.

SIM800L

Les AT commands (Commandes Hayes)

Les commandes AT sont définies dans la norme GSM 07.07.AT est l’abréviation de ATtention. Ces 2 caractères sont toujours présents pour commencer une ligne de commande sous forme de texte (codes ASCII). Les commandes permettent la gestion complète du module.

On peut utiliser ces commandes directement dans le moniteur série. Il suffit de compiler, téléverser le programme ci-dessous et d’ouvrir le moniteur série. Vous n’avez plus qu’à entrer les différentes commandes AT pour effectuer ce que vous désirez.

Vous pouvez envoyer ou recevoir des SMS, passer ou recevoir un appel, récupérer des données HTTP en entrant directement dans le moniteur série les commandes nécessaires.

// Connect VCC to +5V
// Connect GND to Ground
// Connect RXD (data into SIM800L) to Digital 8
// Connect TXD (data out from SIM800L) to Digital 7
#include <SoftwareSerial.h>
SoftwareSerial sim800l(7, 8); // RX, TX

void setup() {
 Serial.begin(9600);
 sim800l.begin(9600);
}

void loop(){
 if (sim800l.available())
 Serial.write(sim800l.read());

 if (Serial.available()) {
 while(Serial.available()){
 sim800l.write(Serial.read());
 }
 sim800l.println();
 }
}

Le code PIN

Il se peut que votre carte SIM soit verrouillée à l’aide d’un code PIN. Vous devrez entrer à chaque fois votre code pour déverrouiller votre carte. Ajouter les lignes de commandes suivantes avant le setup() et remplacer les XXXX par votre code PIN.

// Code PIN de la carte SIM

String SIM_PIN_CODE = String( "XXXX" );

Puis, ajoutez dans la boucle setup():

sim800l.print("AT+CPIN=");
sim800l.println( SIM_PIN_CODE );

1er test : Lancer le module et récupérer son IMEI

On peut utiliser les AT commandes pour obtenir l’IMEI. La commande AT+GSN récupère l’IMEI de votre module. Vous pouvez ainsi vérifier que ce que vous obtenez est bien l’IMEI inscrit sur votre module.

On peut trouver dans le logiciel de l’Arduino un programme qui va nous permettre d’afficher l’IMEI de la SIM800L dans le moniteur série. Ce programme se trouve dans Fichier > Exemples > GSM > Tools > TestModem.

Les principales commandes de test :

ATISIM800 R13.08Statut du modem
AT+CREG+CREG : 0,5Statut du réseau.

1er indice : 0 -> GSM

2ème indice : 0 -> pas de réseau

5 -> réseau ok

 

 

AT+CPIN ?+CPIN READYPas de code PIN nécessaire
AT+CSQ+CSQ : <rssi>,<ber>Intensité du signal.

<rssi> : received signal strength indication.

<ber>: bit error rate (%)

0 -> less than 0,2%

AT+COPS ?+COPS : <mode>,<format>,<opérateur>Affiche l’opérateur sélectionné