Arduino GSM Module from ITead Studio

Hello all,

I am using the GSM Module from Itead studio. I cannot get it to register on the GSm network,

This is the module:

http://iteadstudio.com/produce/sim900-gprs-shield-icomsat-preview/

The response I get in the serial window is:

system startup GSM doesn't response Registration 0

and in the arduino software:

Error inside Serial.serialEvent() java.io.IOException: Bad file descriptor in nativeavailable at gnu.io.RXTXPort.nativeavailable(Native Method) at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1532) at processing.app.Serial.serialEvent(Serial.java:215) at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732) at gnu.io.RXTXPort.eventLoop(Native Method) at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)

it seems that its not able to register on the gsm network.

Any help would be great. I am giving up and consider the SIM900 package on the module to be broken and i dont think its worth buying another.

Stupid question #1: Does the module work? (Please describe the status of the LED's on the GSM shield)

Stupid question #2: Does the shield work / respond if you load a simple sketch that redirect data from the serial bus to the module.

LOL Those questions should have been answered in the original post. The LED’s are working and the GSM module does power on.

Once connnected the PWR light is on.

One the power button is pushed:

  • The NET light is solid green for a second

Then it goes to a communications state:
-Status light is solid green

  • Net light is 64ms On/300ms Off (GPRS communication is established)

Then after registration failure (or at least I assume is the problem):

  • Status light si still solid green
  • the Net light flashes 64ms On/800ms Off (SIM900 not registered the network)

I called Rogers my service provider adn they said as long as the SIM900 Module is unlocked it should register automatically.

In the serial window I still get:

system startup
GSM doesn’t response
Registration 0
GSM doesn’t response
Registration 0 (Repeats this way)

I connected through the Debug Port last night using a MAX232 chip and a USB to RS232 cable and I get the same response in Hyperterminal:

system startup
GSM doesn’t response
Registration 0
Registration 0
GSM doesn’t response
Registration 0 (Repeats this way)

I’ve tried the commands in hyperterminal but I get no response from the module.

AT+CPIN?
AT+GSN
AT+CSQ
AT+CREG?
AT+COPS?
AT+GMR

If I can receive data from the GSM module then I know I have the TX and RX port connected correctly for the debug communication throught the Debug port. But the maybe I dont have the right Hyperterminal setting.

Thanks for you response,

ecave

I have a GSM module from Seeed Studios up and running fine. It uses the SIM900 as well. For initial testi I used simple serial pass thru sketch that allows me to use a terminal program to communicate with the shield via

I am using a DMTS SIM. DMTS is a small Canadian GSM carrier.

Hmmm, more stupid questions:

Does you SIM work and is is unlocked (no lock code)?

Is your power supply good enough (can it supply enough current to support the transmit bursts needed to register to the network?)

Is your antenna OK?

It seems like something phony on the module, I would have expected it to end up with a led sequence of a short blink every three seconds or so...

Its LED blinks close to every three seconds, but Im sure its the "Not Registered" timing.

I couldn't get a hold of an ITead Studio representative to find out if its unlocked, but when I called Rogers Wireless they said that if the SIM900 module isn't manufactured for a specific carrier it shouldn't be lock. And I assume they would provide me with an unlock code if it was locked.

The antenna should be fine, it was the one supplied by ITead studio. I even tried connecting with an external SMB connector and a cable to bring the antenna further away from the module in case of any interference with the SIM900 module as Boris Landoni recommended in another forum.

I am using a 9V 1.5 A power adapter so it should be giving me about 13.5 Watts. It should be enough power.

I tried connecting to the module via MAX232N serial to Serial 232 connection. I have the MAX232N IC in this connection:

http://sodoityourself.com/max232-serial-level-converter/

and I had a serial 232 to usb cable on the other end. I was able to receive message from the SIM900 module, but any AT commands I sent the other way seemed to have no effect.

I was wondering if I need a new SIM card with a new account to register the unique IMEI number but Rogers Wireless said that it should automatically register my module on their network.

I tried adding data to my plan in case that would work, but it did nothing. Tried multiple Arduino boards and now I now of another person with the same problem using the same Module. Theres a new GSM library version, I think Im going to try that next.

Either that or try ordering a seeed studio module instead.

Ecave

ecave: Its LED blinks close to every three seconds, but Im sure its the "Not Registered" timing.

I couldn't get a hold of an ITead Studio representative to find out if its unlocked, but when I called Rogers Wireless they said that if the SIM900 module isn't manufactured for a specific carrier it shouldn't be lock. And I assume they would provide me with an unlock code if it was locked.

The antenna should be fine, it was the one supplied by ITead studio. I even tried connecting with an external SMB connector and a cable to bring the antenna further away from the module in case of any interference with the SIM900 module as Boris Landoni recommended in another forum.

I am using a 9V 1.5 A power adapter so it should be giving me about 13.5 Watts. It should be enough power.

I tried connecting to the module via MAX232N serial to Serial 232 connection. I have the MAX232N IC in this connection:

http://sodoityourself.com/max232-serial-level-converter/

and I had a serial 232 to usb cable on the other end. I was able to receive message from the SIM900 module, but any AT commands I sent the other way seemed to have no effect.

I was wondering if I need a new SIM card with a new account to register the unique IMEI number but Rogers Wireless said that it should automatically register my module on their network.

I tried adding data to my plan in case that would work, but it did nothing. Tried multiple Arduino boards and now I now of another person with the same problem using the same Module. Theres a new GSM library version, I think Im going to try that next.

Either that or try ordering a seeed studio module instead.

Ecave

Unfortunately I'm the "other person" who is getting the EXACT same problem with this shield and an Arduino UNO.

I'm reluctant to try anything else as I'm convinced they are selling a dodgy product. I am going to contact them and demand a refund. Not happy at all.

I don't actually have a 9V DC power supply to actually try it with. Maybe I should give that a go. I'm just trying to power it with a USB cable plugged directly into my Mac.

One blink every three seconds or so indicates the device is connected to the network and ready to use - so far so good…

What happens if you use a simple passthrough code like this>

//Serial Relay - Arduino will patch a 
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART 
 
#include <NewSoftSerial.h>
 
NewSoftSerial mySerial(7, 8);    // You must change these port numbers to reflect the serial pins you're using
 
void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate
  Serial.begin(19200);                 // the GPRS baud rate   
  Serial.println("Turning on");
  

}
 
void loop()
{
    if(Serial.available())
    {
       mySerial.print((unsigned char)Serial.read());
     }  
    else  if(mySerial.available())
    {
       Serial.print((unsigned char)mySerial.read());
     }   
 
}

If you load this code then you should be able to communicate with the modem froam a terminal program

It can be recommended not to use use the built-in terminal program in Arduino, as this have problems passing the and signals through, use the bray terminal instead

If you cannot make this work you could try different (slower) baudrates. The SIM900 module most likely will be set to ‘autobauding’, so it should adapt by itself - at least in theory :astonished:

remove pin code first

anon10500: remove pin code first

The sim card doesn't have a pin code!

well, insert sim card before powering the module, I did this mistake.

anon10500: well, insert sim card before powering the module, I did this mistake.

What you're saying makes no sense. I've always got the sim card in there before I power it on.

fulvio: I don't actually have a 9V DC power supply to actually try it with. Maybe I should give that a go. I'm just trying to power it with a USB cable plugged directly into my Mac.

For your info when the usb cable and device is connected it tells the computer how much power it will need and the usb connection is then limited to that.

That's how I understand it atm, I'm learning . When connecting other modem devices I have found I must supply extra power for the device by plugging in the 9V battery to the power inlet of the arduino board.

Hi,

Any more news on this??

I'm considering handling these Itead modules and I'd like to keep up on the problems you're having..

I don't have my hands on one yet, but soon....

Thanks!

Did you hold down the SIM900 power button after power up, as described in the data sheet?

SIM900-POWER: After the IcomSat power on, you need to press the SIM900-POWER button for a moment to power on the SIM900 module. The pin 9 of Arduino interface is connecting to PWRKEY, and a high pulse with 400us wide can power on/off it.

Not sure if this is just for v1.1, but it solved the problem for me

Found it works very well with the library from http://code.google.com/p/gsm-shield-arduino/

Hi all, problem module On per software

GSM_Shield.h

//#define GSM_ON 8 // connect GSM Module turn ON to pin 77 original

define GSM_ON 9 // connect GSM Module turn ON to pin 77 my changes (from net !!!)

//#define GSM_RESET 9 // connect GSM Module RESET to pin 35 original

define GSM_RESET 8 // connect GSM Module RESET to pin 35 my changes but I'm not shure for pin to RESET

on: http://www.seeedstudio.com/wiki/GPRS_Shield pinMode(9, OUTPUT);

thet's all, power now On at start the test program

testet with icomsat 1.1 and used SoftwareSerial (latest version) instead NewSoftSerial (changes in GSM_Shield.h and ---.cpp)

Regards Waldschrat

The library http://code.google.com/p/gsm-shield-arduino/ can control the SIM900 and is shield http://www.open-electronics.org/arduino-gsm-shield/ The library control SMS, CALL and also the GPRS function. I think that is compatible with ITead Studio (that is a clone) but pay attention because the library that they suggest is our old version.

Now we are developing a new shield for also the the SIM908 module.

The main problem with the SIM900 is the power supply. The module doesn't drink a lot of current, but the are some spikes when it does some operation. So the power supply must be 12V 1A (more important is the current)

I know this is an old thread but I had just come across it troubleshooting this same shield, and I discovered on page 7 of their published datasheet that the Reset pin is connected to Pin 10.

So the line waldschrat was unsure about should be:

define GSM_RESET 10 // connect GSM Module RESET

Just figured I should mention.

David

Hi, I am starting my first GSM/GPRS project and about to buy this board. Hence just wanted to confirm that the library from openelectronics (http://code.google.com/p/gsm-shield-arduino/) does work with it, right? And that over all the board is good to use? Apart from the changes mentioned in the past posts, rest is good to go? My project will be majorly using GPRS to post sensor data online.

Thanks.

It took me a good few hours of tinkering to get the jumpers right, and it meant having to change the pins in the library a number of times until I got it right, but yes it does work with that library and the ITead Studio board. I used "GSM Shield GPRS Library V3.08 (IDE 1.0) beta" and an Arduino Uno R3.

On the board I am using RXD as pin 4, and TXD as pin 5, and then in GSM.cpp I am using:

define GSM_TXPIN 5

define GSM_RXPIN 4

One further thing I had to do to get it to work, also in GSM.cpp, is on line 41 I added:

pinMode(GSM_ON, OUTPUT);

because a few lines further down they were pulsing the pins to get the modem to power on except the pin was never set as output. Mixing that in with figuring out what every jumper should be set to led to a frustrating evening. Hope I can save you some headache.

-David Beauchamp