Right library or reassigning RX and TX pins for M95 Quectel GSM-Module?

Hi guys,

I am currently trying to send text messages through the GSM-board (M95 Quectel by SOS electronics). Unfortunately it does not seem to be initializing through the code example I am using. However, the module seems to work properly since the red LED is flashing every two seconds which means that there is an established connection to the network.

The code example I am using is:

/*
 SMS sender

 This sketch, for the Arduino GSM shield,sends an SMS message
 you enter in the serial monitor. Connect your Arduino with the
 GSM shield and SIM card, open the serial monitor, and wait for
 the "READY" message to appear in the monitor. Next, type a
 message to send and press "return". Make sure the serial
 monitor is set to send a newline when you press return.

 Circuit:
 * GSM shield
 * SIM card that can send SMS

 created 25 Feb 2012
 by Tom Igoe

 This example is in the public domain.

 http://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS

 */

// Include the GSM library
#include <GSM.h>

#define PINNUMBER "6060"

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

void setup() {
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // set GSMON to HIGH (necessary for communication)
  pinMode(10, HIGH);

  Serial.println("SMS Messages Sender");
 
  
  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected) {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
      notConnected = false;
    } else {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
}

void loop() {

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);

  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);

  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS();
  Serial.println("\nCOMPLETE!\n");
}

/*
  Read input serial
 */
int readSerial(char result[]) {
  int i = 0;
  while (1) {
    while (Serial.available() > 0) {
      char inChar = Serial.read();
      if (inChar == '\n') {
        result[i] = '\0';
        Serial.flush();
        return 0;
      }
      if (inChar != '\r') {
        result[i] = inChar;
        i++;
      }
    }
  }
}

I already asked for help in another part of the forum (the german section) and was told to use SoftwareSerial because my issue might be that the module cannot be reached through the default pins 0 and 1 for RX and TX because the Arduino board is already using both of them. However the GSM-module has the pins 2 and 3 in it's specifications for SW RX and SW TX. Because I am new to the world of Arduino and microcomputers in general, I urgently need your help!

If you are using the Serial Monitor, it uses pins 0 and 1, so those pins cannot be used to communicate with the GSM module.

I am not sure why you are refusing to believe this!

Buy a Mega if you want another hardware serial port, or use SoftwareSerial library.
.

Hi,

I am not refusing to accept it, you probably misunderstood what I meant :slight_smile:

I asked if there’s a possibility to reassign the pins with whose the Arduino communicates to the GSM module since the module supports using the pins 2 and 3 for software RX and TX. The problem is that I don’t know if it’s possible through coding and if yes I don’t know how to code.

jpfor3:
Hi,

I am not refusing to accept it, you probably misunderstood what I meant :slight_smile:

I asked if there’s a possibility to reassign the pins with whose the Arduino communicates to the GSM module since the module supports using the pins 2 and 3 for software RX and TX. The problem is that I don’t know if it’s possible through coding and if yes I don’t know how to code.

You would need to modify the GSM library if you want to use pins other than 2 and 3.
Though what you have against pins 2 and 3 is baffling.
.

ieee488:
You would need to modify the GSM library if you want to use pins other than 2 and 3.
Though what you have against pins 2 and 3 is baffling.
.

I am not sure if my approach is the right one :confused:

The GSM-Module connects to all pins on the Arduino and already communicates through the pins 0 and 1 but when using my sketch I am stuck at the point where the serial monitor prints „SMS Messages Sender“. What you would you suggest I could try?

I don't have that module so I am not sure why it doesn't work if you are using the same code as whatever tutorial you are reading and have the same exact hardware.

If the hardware is different, then I suggest getting the same hardware.
.