Overview
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:
| 1209Hz | 1336Hz | 1477Hz | 1633Hz |
697Hz | 1 | 2 | 3 | A |
770Hz | 4 | 5 | 6 | B |
852Hz | 7 | 8 | 9 | C |
941Hz | * | 0 | # | D |
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.
Software
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:
dtmflogd.tar.gz
Disclaimer
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 :)