Gsm M590 Module Error

Hello I'm trying to figure out how to program the M590 i found somewhere online how to wire it up and solder all the parts in. I got a network blinking and a power light which is great. this is the Sketch I'm using to check in serial monitor.

#include <SoftwareSerial.h> 
SoftwareSerial M590(7, 8);  // Rx, Tx


void setup() {
  // initialize both serial ports:
  Serial.begin(9600);

//  M590.begin(115200);
M590.begin(9600);
}

void loop() {
// while(Serial2.available()) Serial.write(Serial2.read());
 while(M590.available()) Serial.write(M590.read());
//while(Serial.available()) Serial2.write(Serial.read());
while(Serial.available()) M590.write(Serial.read());
}

When i try to put AT or at in the serial monitor i get out â when i put in AT+GMR? and i get BB. I'm not sure what I'm doing wrong I'm getting something from the module at least. But not the correct information can someone please help me? Thank you.

Are you sure you connected pin 7 to Tx of the M590 and pin 8 to the Rx of the M590? (I.e. Ensure you did not connect Tx to Tx and Rx to Rx)

How are you powering the M590? Spec is 3.3~4.5V, 3.9V recommended and it draws way more current in operation than your arduino can supply so needs to be powered separately.

If it is powered separately, Have you ensured you have common grounds for your arduino and the M590?

do you have an interface 5V/3V between Arduino TX/RX and M590 RX/TX?

Are you sure your unit is set on auto bauding? Some ship by default at 115200 hard set, so You might want On first use to set the Serial port baud rate to 115200, in case auto-bauding is not the modem’s default setting. Note that some arduino Do not support software serial at 115200 though. If you have a Mega, consider using a physical serial at least for the trial.

When things work You may choose to leave the modem setting to ‘autobaud’ or you may set its baud rate to a specific baud rate permanently using commands. The command ‘AT+IPR?’ is a query that informs you if the modem is set to auto-baud

Hello i didn't change nothing in the sketch this is how i found it online i tired the 115200 and not going from it. As far and the wiring goes if i flip the wires tx and rx around i get nothing from it at all.

I know my sim is working because i can use my sim900 module and it works with no problem. This module is not.

Also sorry yes i have a common ground. I have a external 5v 2a power adapter on it. I'm running a arduino uno.

What about the other questions? How are you powering the unit? Common Ground? Are you Level shifting between the 3 and 5v for the Tx/Rx lines?

Hello yes I'm level shifting 3.3v logic and the Power side is 5v.

Ok our posts crossed

If you are not level shifting between the arduino and the GSM module, you might get weird results. That is because the max level you should send to Rx pin is < 3.3V and Tx will issue a 1 (high) at 2.85V

this is a challenge because

  • you might blow/have blown the Rx pin and/or the GSM module by sending 5v from the arduino

  • your Arduino Atmega will report HIGH if a voltage greater than 3 volts is present at the pin (for a 5V board which is the case for the Uno) but the Tx pin of the GSM only sends 2.85V, so your arduino will read it as a low

Sorry typing as you are as well

Ok. That should be good on hardware side unless unit is damaged

Have you tried using different baud rates in case the unit is set to fix baud rate ? Try with multiple of 9600

Hmm maybe. i do have another gsm module untouched. I also have a 4.4v 3.3v logic ch340 i can use and just go straight ch340 to gsm module so that way everthing is even.

The other possibility is that your unit is really set at 115200 bauds and that software serial just does not manage to deliver this. If you have an arduino mega, really worth eliminating that possibility by using hardware serial

I got something. I just went straight 3.3v ch340 on the rx and tx with the external 5v for power and i got this message.

MODEM:STARTUP
then got this message a few seconds later
+PBREADY

when i put AT it said OK. So it looks like i can get something now.
Meaning that my 3.3v logic converter something wrong with it.

How can i make my own logic level to replace the one i got now? Because it takes a long time for shipping to get here.

Making progress :slight_smile:

Well there are many options - cheap and unreliable ones would be to just drop voltage on Tx from arduino to GSM by adding a diode (not great, can be slow) and using a transistor circuit to boost the 2.85v just a bit do that it is seen as a high by the uno.

You can look at This simple level shifter using general purpose NPN transistors or That single-transistor-level-up-shifter

Don't push baud rate too high

Hello I'm also making some progress but for some odd reason the M590 is not accepting my Tmobile sim card. But if i put on my Sim900 module that works with no problem. This is strange.

The sim900 is quad band by default and not the M590

Investigate if you need to find the right band (XBANDSEL) on the m590 for your sim

I been trying to figure that out. I have no clue its a prepaid sim from Tmobile here in the US

I am also trying to connect gsm network but it doesn't >:( . Here is the chat between m590 and me:

AT ---> OK
AT+CREG? ---> +CREG: 0,3
AT+COPS? ---> ERROR

Can it be because of non-registered IMEI?

HI,
DOES m590 SUPPORT DTMF?IF YES CAN ANY BODY TELL WHAT IS REQUIRED AT COMMANDS FOR DTMF?