SIM900 Borrar todos SMS de la SIM

Hola de nuevo.

No hago mas que mirar y rebuscar alguna manera de poder borrar automaticamente todos los SMS que me entran en la SIM del SIM900, pero por mas que introduzco los comandos, no borra nada.

Se me hace un poco lioso, ya que tengo que desconectar la placa SIM900, retirar la tarjeta e instalarla en un telefono para comprobar si borró los mensajes.
Pero por desgracia continúan ahí.

Os dejo el código.
Copié uno que vi donde le mando un “H” y enciende un Led y si le mando “L” lo apaga.
Pretendía, ya de paso, y aprovechando la ocasión, que borrase todos los SMS que tuviera la tarjeta.

#include <SoftwareSerial.h>
SoftwareSerial SIM900(2,3);//Configarión de los pines serial por software
char caracter=0;// Variable para guardar los caracteres mensajes entrantes
int led=13;

String estado="";

void setup() {
   SIM900.begin(19200);//Arduino se comunica con el SIM900 a una velocidad de 19200bps
   Serial.begin(19200);//Velocidad del puerto serial de arduino 
   delay(20000);//Tiempo prudencial para el escudo inicie sesión de red con tu operador
 pinMode(led, OUTPUT);
  SIM900.print("AT+CMGF=1\r");// comando AT para configurar el SIM900 en modo texto
  delay(200);
  SIM900.print("AT+CNMI=2,2,0,0,0\r");//Configuramos el módulo para que muestre los SMS por el puerto serie.
  delay(200);
}

void loop() {  
  if(SIM900.available() >0) {//Verificamos si hay datos disponibles desde el SIM900
    caracter=SIM900.read(); // Leemos los datos y los almcanamos en la variable mensaje
    Serial.print(caracter); //Imprime los datos entrantes uno a uno en el terminal serial
    if(caracter=='H'){
      Serial.println("-->enviando mensaje");
      digitalWrite(led, HIGH);
      estado="led encendido";
      envioMensaje(estado);
      }
    if(caracter=='L'){
      Serial.println("-->enviando mensaje");
      digitalWrite(led, LOW);
      estado="led apagado";
      envioMensaje(estado);
      }  
      //Borra_SMS();  //Si lo activo no borra nada. Solo escribe texto en el Monitor
  }
    
}

void envioMensaje(String estado) {
  SIM900.println("AT + CMGS = \"+3469900000\"");//reemplazar por el número a enviar el mensaje
  delay(200);
  SIM900.println("Estado:" + estado);// Reemplazar por el texto a enviar
  delay(200);
  //Finalizamos este comando con el caracter de sustitución (→) código Ascii 26 para el envio del SMS
  SIM900.println((char)26); 
  delay(200);
  SIM900.println();
  delay(100);
 
 //SIM900.println("AT+CMGL=\"ALL\",0"); 
 SIM900.print("AT+CMGD=1,4");
 SIM900.print("AT+CMGD=?");
 //SIM900.println("DEL ALL\"");
  }
  
void Borra_SMS() {  // Delete All messages

  //SIM900.print("AT+CMGDA=\"");
  SIM900.println("AT+CMGL=\"ALL\",0 ");
  //SIM900.println("DEL ALL\"");
  delay(500);
  Serial.println("All Messages Deleted");

Seguro que no tiene porque ser tan dificil

Solo debes mirar los comandos AT del SIM900 y verás que existe un comando que borra los SMS.

Google: sim900 delete all sms y salen cosas como esta

https://www.developershome.com/sms/cmgdCommand.asp

Solo debes mirar los comandos AT del SIM900 y verás que existe un comando que borra los SMS.

Pues, aunque no te lo creas, llevo 15 días mirando, leyendo y probando códigos.
Hasta me descargue los de la SIM800L. Me acordé de la 800L, porque en una ocasión me comentaste que la sim900, le queda poco de vida.

Si te fijas en el código, hice varias pruebas:

SIM900.print("AT+CMGD=1,4");

No funcionó.

SIM900.println("AT+CMGL=\"ALL\",0");

Tampoco funcionó

Hasta hice un void, para ejecutarlo al margen y luego comprobar si los borraba.

void Borra_SMS() {  // Delete All messages

  //SIM900.print("AT+CMGDA=\"");
  SIM900.println("AT+CMGL=\"ALL\",0 ");
  //SIM900.println("DEL ALL\"");
  delay(500);
  Serial.println("All Messages Deleted");

Continúo teniendo 30 SMS en la bandeja de entrada de la SIM.

No creo que la causa del porque no los borra, sea que estoy usando una SIM duada, y al estar activa en dos telefonos no pueda borrarlos, ya que si lo hago a mano si los borra en las dos SIM´s.

¿Se os ocurre alguna otra solución?

Si. Entonces tu problema no era borrar los SMS sino borrar los SMS de una SIM doble.

Lo que leo es que hay un SIM900/DS Dual SIm y sin el creo que no podrás hacerlo.