SIM800L connects to GSM network but doesn't connect to Arduino

Hi everyone! I hope there is a solution... I have been on this project for 3 days...

Sim800L module connects to GSM network (if I dial the number of the SIM from a phone, I hear the sound of connected line), so ok, it's working.

But there is no serial connection to Arduino Uno.

E.g.

Serial.println(gsm.moduleManufacturer());

doesn't return any value. Same thing for AT commands.

Reading on several web sites, I found that the problem is that SIM800L works at 3.3 V and not 5 V, so the module could already be fried; is that plausible?

Indeed, I tried to lower voltage through resistors to 3.3 V (or less) but it still doesn't work (too late??); so either I keep doing something wrong or the module is fried.

What do you think? Do I have to buy a new module? Is there something else wrong?

Here is the code.

#include <GSMSim.h>
#include <SoftwareSerial.h>

#define RX 7
#define TX 8
//#define RESET 2
#define BAUD 9600


//GSMSim gsm(RX, TX, RESET);
GSMSim gsm(RX, TX);


/*
 * Also you can this types:
 * GSMSim gsm;
 * GSMSim gsm(RX, TX);
 * GSMSim gsm(RX, TX, RESET, LED_PIN, LED_FLAG);
 */


void setup() {
  // put your setup code here, to run once:
  
  Serial.begin(9600);

  while(!Serial){}

  Serial.println("GSMSim Library - Module Information");
  Serial.println("");
  delay(1000);

  //gsm.start(); // baud default 9600
  gsm.start(BAUD);
  
  
  Serial.print("Manufacturer:\t\t");
  Serial.println(gsm.moduleManufacturer());
  delay(250);
  Serial.print("Model:\t\t\t");
  Serial.println(gsm.moduleModel());
  delay(250);
  Serial.print("Revision:\t\t");
  Serial.println(gsm.moduleRevision());
  delay(250);
  Serial.print("IMEI:\t\t\t");
  Serial.println(gsm.moduleIMEI());
  delay(250);
  Serial.print("IMSI:\t\t\t");
  Serial.println(gsm.moduleIMSI());
  delay(250);
  Serial.print("ICCID:\t\t\t");
  Serial.println(gsm.moduleICCID());
  delay(250);
  Serial.print("Is Connected?:\t\t");
  Serial.println(gsm.isRegistered());
  delay(250);
  Serial.print("Signal Quality:\t\t");
  Serial.println(gsm.signalQuality());
  delay(250);
  Serial.print("Operator:\t\t");
  Serial.println(gsm.operatorName());
  delay(250);
  Serial.print("Operator From Sim:\t");
  Serial.println(gsm.operatorNameFromSim());
  delay(250);
}

void loop() {
  // put your main code here, to run repeatedly:

}

Double check your connections.

.

ieee488:
Double check your connections.

.

Thank you for your reply, but I thousand-time-checked...
I also tried different tutorials, different codes... but same result... :frowning:

Post your wiring here so we can look at it, but you’re correct... you may well have fried the modem chip.
The easy way is to buy one of the pre-made SIM800 shields, which have the level conversion on board.