DTMF Tone decoder for PC


In a old answering machine, I discovered a very interesting IC: the CD22204. It is a DTMF (Dual Tone Multi Frequency) decoder. DTmF is a standard using combination of different frequencies, assotiated to numbers and letters (0-9, A-D, * and #) as in the following table:

The idea

I decided to use this IC to send the decoded characters to a computer using a serial port. This can be used for many things, such as controlling lights remotely with a phone or radio.

At the moment, I use the decoder with my Phone audio interface to log the places where I call, and collect statistics about who are call the most, etc. Just for fun ;)

The main components are:
  • CD22204 (DTMF Decoder)
  • At90s2313 (Microcontroller to communicate with the host)
  • MAX232 (To get rs232 voltage levels ~(+-12Volts))
How it works:
Each time a tone is recognized by the CD22204, the MCU translates it to an ascii value, and sends it to the computer via the serial link, at 9600 Bauds, 8N1.

The protocol is really simple right now, but one day I might enhance it and make the circuit communicate on a rs485 bus.


Here are a few pictures of my decoder:


I wrote a progam to log the calls I do. It is a simple daemon running under Linux. It is named dtmflogd.

Here is the source code:


I am not responsible if you use this for any reprehensible actions.
I cannot be held responsible for any damages that could occur to you or your equipment while following the procedures present on this page. Also, I GIVE ABSOLUTELY NO WARRANTY on the correctness and usability of the informations on this page. Please note, however, that the procedures above have worked in my case without any damages or problems.

Now you cannot say that I did not warn you :)