1

I've connected a SIM900A GSM module to Arduino and the circuit works standalone on a 12V power supply. The problem is when I provide the 12V power supply, both GSM module and Arduino starts but the Arduino don't initializes the program for GSM module and hence the send or receive message functions don't work. Also when I first power on the GSM module and let it initialize first and then power on the Arduino, everything works fine. How to deal with this problem?

1

It sounds like your problem is that the GSM module needs time to initialize before it is ready to be talked to by the Arduino.

A crude way of providing this would be to use the delay() function in the Setup() of your sketch. The argument to that is an unsigned long number of milliseconds (thousandths of a second) so it can produce delays far longer than you need.

But a more sophisticated solution would be to repeatedly try to talk to the module and check for an expected response. Apparently, with at least some of these, if you disable baud rate detection they will announce themselves with a prompt when they are ready - you could wait for that. But I think repeatedly trying until you get a response is going to be the most robust.

  • Yes! Got that after posting this status. The delay I had mentioned earlier was less than the delay required to initialise the GSM. How to disable baud rate and how will they themselves prompt when they will be ready? I've different modules too connected with the same circuit. I cannot disable it. – Sshankar7 May 17 '15 at 5:57
1

Let the 12 V charge a large capacitor over a resistor. The time to charge to 63% is RxC. Place a 5 V zener diode parallel to the capacitor, so that doesn't damage the microcontroller. Then either connect to the microcontroller's reset, or, and this is "nicer", use a MAX809 reset controller. The latter will keep the output low until a precise threshold is reached, there's for instance a 4.00 V version. Use that output to keep the microcontroller reset for some time.

Not sure how much delay you want, but a 10 uF capacitor and a 100k resistor will give you (from the top of my head) about half a second before the voltage on the capacitor reaches 4 V.

  • 1
    Why not just do the delay in software?? – Chris Stratton May 15 '15 at 19:15
  • @Chris: Oh dear... Er, because that was too obvious? Well, in my defense, OP looked like a Real Problem at first sight. :-) – Joris Groosman May 16 '15 at 8:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.