Arduino DTMF tutorial using SIM900/SIM800 modules - LIVE DEMO


Hello bro,
I have watched your Arduino DTMF tutorial several times. And I am trying once and again. Everything is going on fine. But at last when I called the module > module receive my call after two ring > and I press 1 and 0 several times but no response.

My working list is given bellow:

Connections of (SIM800L, ARDUINO UNO and 3.7V Battery)

SIM800L VCC -> 3.7V Battery (+)
SIM800L GND -> GND with 3.7V Battery (-) and Arduino UNO GND
SIM800L TX -> UNO D7
SIM800L RX -> UNO D8

After that I have uploaded Serial Communication Code to UNO and give some AT Commands which is just given bellow:





After that I have uploaded your code from here:

then Serial Monitor show:
GSM DTMF Tutorial, Valetron Systems
Any tech queries to be posted to

After that I called the module and the module receive my call after two ring. Then I pressed 1 and 0 many many times but no response.

Will you please help me about it??


You should observe the response for the command AT+DDET=1
Are the command and response you show above from your module?
If yes, then you are getting OK means your module firmware supports DTMF detection.

If you are getting OK then DTMF detection is supported by your module firmware.
But if you are getting ERROR as response, then your module firmware doesn’t support DTMF detection. You have to upgrade the firmware.

I am using SIM800C, It comes with DTMF enabled firmware by default.

My code is for guideline only. You should tune it to work properly.
You can put large delay before the first AT command to let module initialize and get ready to accept AT Commands.


Thanks bro for your kind reply…

when I give command AT+DDET=1
and ATS0=2

and then I called the module. module receive my call after two ring. and then I press 1-9 and */# buton serial monitor showes that it got DTMF.

But when I upload relay controlled code and I call the module it receive my call after two ring. after that I press 1-9 and */# button. serial monitor doesn’t response and nothing have done. :frowning:


Then, your code is unable to process the DTMF command. Make sure the Arduino and GSM module baud rate match.
You can put a RS232 probe and see whats happening between Arduino and module when code is running to find out the exact problem.


Thanks for your kind reply bro…

My module is working now… :slight_smile:

Is it possible to get location by SIM800L

if possible can you help??