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:

goto top Up

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:
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.

goto top Up


Here are a few pictures of my decoder:

goto top Up


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:

goto top Up


I am not responsible if you use this for any reprehensible actions.

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

goto top Up

Copyright © 2002-2017, Raphaël Assénat