Sim 800L funktioniert nicht mehr

Moin, für ein Projekt habe ich ein SIM 800L breakout board benutzt. Mit eurer Hilfe habe ich es ja auch zum laufen bekommen. Es funktionierte einige Tage. seit gestern geht es nicht mehr und ich weiß nicht wo ich noch nach dem Fehler suchen soll.
Das Modul verbindet sich mit dem Mobilfunknetz und der Arduino wartet darauf das die SMS raus geht. Da bleibt alles hängen. Eine SMS wird nicht gesendet.

#include <Servo.h>
#include <ServoPlus.h>

int ZU = 0 ;
int AUF = 0 ;
int z = 0 ;
#include <Sim800l.h>

#include <SoftwareSerial.h> //is necesary for the library!!

Sim800l Sim800l;  //to declare the library

boolean __ardublockDigitalRead(int pinNumber)
{
  pinMode(pinNumber, INPUT);
  return digitalRead(pinNumber);
}


void auf();
//libraries at http://duinoedu.com/dl/lib/grove/EDU_ServoPlus_GroveDupont/ 
ServoPlus monServoPlus3;
void zu();

void setup()
{
  pinMode( A1 , OUTPUT);
  pinMode( 13 , OUTPUT);
  Sim800l.begin(); // initializate the library.

  Serial.begin(9600);
  pinMode( 2 , OUTPUT);
  pinMode( 8 , OUTPUT);
  monServoPlus3.brancher(3,0,180);

  ZU = 90 ;

  AUF = 0 ;

  z = 0 ;

  digitalWrite(A1 , LOW);

  digitalWrite(13 , LOW);




}

void loop()
{
  Serial.print("z:");
  Serial.print(z);
  Serial.print(" ");
  Serial.println();
  z = ( z + 1 ) ;
  if (( ( z ) == ( 1 ) ))
  {
    zu();
    Serial.print("Falle zu!");
    Serial.print(" ");
    Serial.println();
    digitalWrite(2 , HIGH);
  }
  if (( ( z ) == ( 8 ) ))
  {
    auf();
    Serial.print("wieder scharf stellen!");
    Serial.print(" ");
    Serial.println();
  }
  if (( ( z ) == ( 20 ) ))
  {
    digitalWrite(A1 , HIGH);
    digitalWrite(8 , HIGH);
    Serial.print("SMS senden");
    Serial.print(" ");
    Serial.println();
    Sim800l.sendSms("XXXXXXXXXXX","Falle 1 kontrollieren!");
    Serial.print("SMS gesendet");
    Serial.print(" ");
    Serial.println();
    digitalWrite(2 , LOW);
    digitalWrite(8 , LOW);
    digitalWrite(A1 , LOW);
  }
  if (__ardublockDigitalRead(5))
  {
    zu();
    Serial.print("Schalter 1");
    Serial.print(" ");
    Serial.println();
    delay( 1000 );
  }
  if (__ardublockDigitalRead(6))
  {
    auf();
    Serial.print("Schalter 2");
    Serial.print(" ");
    Serial.println();
    delay( 1000 );
  }
  delay( 1000 );
}

void auf()
{
  digitalWrite(8 , HIGH);
  monServoPlus3.ecrireAngle(AUF,500);
  digitalWrite(8 , LOW);
}

void zu()
{
  digitalWrite(8 , HIGH);
  monServoPlus3.ecrireAngle(ZU,400);
  digitalWrite(8 , LOW);
}

Auf den Fotos sieht man
Das Modul, meinen Schaltplan und ArduBlock.

Hallo,

lade doch mal sowas auf den Arduino

#include <SoftwareSerial.h>

SoftwareSerial GSM_Serial(D2, D7); // RX, TX

// -------------------------------------------------------------------
void setup(void)
{
  Serial.begin(74880);
  GSM_Serial.begin(19200);                                // GSM-Port

  Serial.println("Terminal von Serial 1 nach Serial 2 ");
  Serial.println("Achtung, unten <Sowohl NL als auch CR> einstellen.....");
}
// -------------------------------------------------------------------
void loop()                                                // Schleife Serial <-> GSM-Serial zum testen der AT-Befehle
{
  //Read SIM800 output (if available) and print it in Arduino IDE Serial Monitor
  if (GSM_Serial.available()) {
    Serial.write(GSM_Serial.read());
  }
  //Read Arduino IDE Serial Monitor inputs (if available) and send them to SIM800
  if (Serial.available()) {
    GSM_Serial.write(Serial.read());
  }
}
// -------------------------------------------------------------------

Ports für Serial musst du noch anpassen.
Damit kannst als Terminal mal gezielt AT-Befehle zum SIM800 schicken und schauen ob und was zurückkommt (AT rein, OK als Antwort). Hat mir schon manchmal geholfen.
Du verbindest TX Arduino direkt mit RX SIM. Mein SIM800L ist nicht unbedingt 5V-tolerant, sieht aber auch anders aus als deines.
Ich habe da einen Spannungsteiler dazwischen....