Problem with GPRS shield (no communication at all)

Thanks for purchasing our product.

You can try the following AT commands, and see if this can fix your problem.
ATQ0 /r/n //TA transmits result code
ATE1 /r/n //echo mode on
AT&W /r/n //store the current configuration in profile 0

OK, I have tried those commands.

I created two test sketches in Arduino:

  1. Send ATQ0, ATE1, etc., then send an SMS to my regular phone. (I have a version with both hardware UART and for newsoftserial, and they both work.)
  2. Send ATQ0, ATE1, etc., then start the serial relay.

What happens: it can send SMS fine, but the serial relay doesn’t seem to work.

I have attached my Saleae logic analyzer to pins 7 and 8, put the jumpers in softwareserial mode, then recorded a logic analyzer session for each program. I have attached a zip file with these sessions in both Saleae and CSV formats. I have also attached the Arduino sketches I’ve been using.

What seems to happen: I can send whatever commands I want to SIM900, and the SMS program works, but I never receive a response on pin 7.

I am close to the edge of my technical abilities in debugging this, but I’m willing to follow whatever suggestions you guys have. I do have my logic analyzer that can work up to about 16 MHz, and a pocket digital oscilloscope if that helps.
arduino-sketches.zip (1.57 KB)
gprs-logic.zip (7.45 KB)

OK, no real new information, but I just received a Bus Pirate (what product btw!), and again I can successfully send SMS messages in 19200 8N1, but I never receive any data back from the GPRS shield.

Sorry about the inconvenience. I think you can try to upgrade the firmware of SIM900, please down load the firmware and tool (including how) from : garden.seeedstudio.com/images/8/ … d_tool.zip

I can try to update the firmware, thanks.

To be clear: TX and RX go to pins 3 and 2 of RS-232, and I can provide power from the Arduino as normal during the upgrade process? Any other connections that must be made?

Thanks for the suggestion. I can’t quite get it to work, I get various different error messages and I’ve attached two.

I have connected pin 5 of the DB-9 RS-232 to ground, and pin 2 to the SIM900 board’s TX and pin 3 to the SIM900 board’s RX. (These pin numbers are looking into the male connectors on the computer end.)

Question: Is it ok to use the GPRS_TX and GPRS_RX pins on the SIM900 board, or do I need to use the actual TXD and RXD pins on the SIM900 chip itself?

Question: What is the exact procedure? I have tried various variations, but here’s what I am doing now:

  1. Power on SIM900 board.
  2. Press the power key, wait for the lights to be normal.
  3. Press Start button in firmware update program.

I was not able to use the power key at all when GPRS_TX and GPRS_RX are connected.
Screen Shot 2011-07-28 at 15.43.42 .png
Screen Shot 2011-07-28 at 15.30.10 .png

You can use the use the GPRS_TX and GPRS_RX pins with UartSBee or equal.
GPRS_TX and GPRS_RX should disconnect from other purpose. After you connect the wire(here PWRKEY(PIN 1) of SIM900 should be connected to GND during the whole process), first press START of Simcom - sim900 Customer flash loader V1.01;(before this process the module is power down, completely disconnect from any power) ;then power up the module( connect to power ).

Thank you so much for your patience!

I am still trying to upgrade firmware. I connected the GPRS Shield to a USB to TTL UART cable that I obtained here. To test that my UART cable works, I used a terminal emulator to send an SMS. This worked, I received the SMS, but again (as usual) I never receive a response from the GPRS Shield to AT commands.

Things are now connected like this:

  • GPRS Shield power provided from a Seeduino
  • TX and RX directly to the USB/TTL cable from the GPRS_TX and GPRS_RX pins. I assume these go through the level shifter.
  • Separate jumper wire that I use to connect GND directly to pin 1 on the SIM900 chip.

For the various baud rates up to 115200, I do this:

  • Disconnect +5V from GPRS shield.
  • Reconnect +5V to GPRS shield.
  • Connect GND to pin 1 (PWRKEY) on SIM900 with jumper wire, hold it there (at this point the board starts powering up normally, netlight and status light up as if I had just preseed the button).
  • While PWRKEY is still connected to GND, press START in the updater.

Every time I get the message “Please power up the target”, at which point nothing happens.

I have also tried this procedure:

  • Disconnect +5V from GPRS shield.
  • Reconnect +5V to GPRS shield.
  • Pres START in the updater, wait for “Please power up the target” message.
  • Connect GND to pin 1 (PWRKEY), hold it there.

Every time, no reaction from the firmware updater. Also in every case, the Netlight and Status LEDs light up like they would normally do, and Netlight does off after 10-15 seconds.

Is there a different sequence of steps I should try?

Can I ask which baud rate you use for firmware updates?

edited to attach a photo of the setup; the TX and RX pins are only connected to my USB/TTL thing at the top left:

sim900-setup.jpg

You can try to solder a wire to PIN1 of SIM900, and wire it to GND. In this way, you don’t need to pushing button all the time. By the way, when push the PWRKEY button PIN1 and PIN2 of SIM900 are connect together.

Yes, I noticed that in the schematic. I did actually connect PIN1 directly to GND and nothing else, as I described. I did not use the button for the upgrade process.

This afternoon I will probably try to connect the logic analyzer again to see exactly what the update tool sends over the wire.

OK, as I said, I didn’t use the PWRKEY button, I used a jumper to connect pin 1 directly to GND.

I have now tried to run the updater in 19200 and 115200 bauds, and listened in. In 19200 baud, the firmware updater keeps sending decimal 255 and never receives a response. In 115200, the firmware updater keeps sending decimal 22, and never receives a respond. I’ve attached the logs.

By the way, this document suggests that there is a different debug port UART on the SIM900 and that this should be used for debugging and firmware updates. Are you sure the firmware updater will work with the regular UART?
updater-logic-logs.zip (15.7 KB)

About the UART, it is the right one。 I have confirm it with our supplier.

Here is a new Firmware: 1137B09SIM900M64_ST garden.seeedstudio.com/images/f/ … M64_ST.zip

Any one tested 1137B09SIM900M64_ST firmware? I installed here but cant use AT command, whats default baud rate for it? and where can we locate more doc about it?

======= EDIT =======

I solved here:

  • We must write 1137B09SIM900M64_ST.cla file, not .rar or .zip
  • After FW updated sim900 go to auto baud rate mode, use 38400 bps as baud rate to communicate, and send commands, using upper case: like ATI
  • You can setup default baud rate using AT+IPR=19200

During firmware update error occurred.
After that shield will not turn on (LEDs status and netlight not illuminated).
Is at sim900 firmware restoration mode?

You must write 1137B09SIM900M64_ST.cla file, not .rar or .zip … :smiley:

Hi @all!

I have the same issue: Sending SMS works, but I never receiver anything on the RX-line.
(verified by probing with a scope)

So I tried an firmware-update:

  1. wire pwr(pin1) to GND
  2. connect usb-TTL-seriell-adapter
  3. start software, select COM, press “START”
  4. connect the GPRS-Shield with 5V USB (with an 220uF elko).

But it failed the same way as guan’s “Screen Shot 2011-07-28 at 15.30.10 .png” descripted it.
I tried 19200,115200 and the default value (4…).

Maybe Offtopic:
After reading this: viewtopic.php?f=4&t=2444&p=9019 Does it only looks for me like dry soldered joint at the small 1206-NFETs (both problems!)

Hi all,
I have/had the same problem with my GPRS shield (no answer on Rx).

  • Using GPRS Shield with Stalker v2
  • OK_READ Jumper on my Stalker is dismounted
  • Both Jumpers are on “SWSerial” mode
  • I haven’t done any firmware updates
  • Red status LED on, Net flashing every 3 secs
  • NewSoftSerial v10c

My workaround in detail:

  • Modify the Code from seeedstudio.com/wiki/GPRS_Shield#Support (section “Usage”-Step1 - 7.)
    -> Paste following into the loop section “mySerial.print(“AT”);”
    -> Upload this code into your arduino
  • If I connect via terminal (19200 8-N-1), I can see the GPRS Shield answers (wait a few seconds)
  • Then modify the code back by deleting the line “mySer…” and upload the code again
  • Make sure you don’t turn the gprs shield or the arduino off during the whole process
  • Voila, if I then connect again via Terminal the GPRS Shield answers on all AT commands
    BUT:
  • If I turn the GPRS Shield (or the Arduino) off and on again and connect via terminal afterwards, I don’t get any answer from the GPRS Shield again

Maybe someone from the seeed team has an idea why the GPRS shield is behaving like this?!

Thanks

I believe that tannek is right and there are some bad soldering with Q3 and Q5 (maybe bad lot?), so I tried to resolder Q3 and Q5. They are very small and it seems that I killed them with heat. Power led is working status and net light blinking at start, but still no response via terminal. Any ideas how I can test that I soldered Q3 and Q5 right or not right?

What are the numbers of Q3 and Q5 so I can change them with new?

Thank you,
Nick

I had the same problem with the softserial RX not responding.

in the end the fix was quite easy: increase the buffer size for newSoftSerial.

in NewSoftSerial.h on line 38 a constant for the RX buffer is defined:

#define _NewSS_MAX_RX_BUFF 256 // RX buffer size

default size is 64. this is not enough. I increased it to 256 and it worked.

cheers