DTMF Decoder Board

What is DTMF?

DTMF stands for dual-tone multi-frequency. The most common place you can find this is on any phone. Press a number, and a corresponding beep plays. That beep is the DTMF.


I wanted to design some kind of wireless transmission device that isn't limited by range - and I found cell phones to be the perfect choice. With the fancy smartphones these days, it wouldn't be too difficult to write up a quick script, however I wanted this system to be cost-effective and disposable. Decoding the DTMF back to a digital output was the perfect choice.


The heart of this device is the MT8870, which is a DTMF to BCD decoder chip. It takes an analog audio input, and converts that to a 4-bit binary output. Those 4 bits are put into a BCD decoder, and that converts that into the corresponding 0-9 output. Various other devices were needed to complete the board, and can be seen in the board layout below.

Schematic: (click for larger)

Final Product

Before I jump into details, lets see the final product. The PCBs were manufactured by BatchPCB.

The PCBs turned out great. Now it's time to go into detail.

I am using a fairly large 3.5mm audio jack from SparkFun. There is an error on my board - I placed the jack too far on the inside of the board - the right way to mount it is to have the metal ring completely hanging off the side. Mine was partially on the board, so that resulted in a angled audio jack, but it still works. Also, only the right (or is it the left?) audio signal is being decoded.

This audio feeds to a 50k potentiometer wired in series with a 10k resistor. This can be adjusted so that the MT8870 receives the proper signal voltage, since various devices will have different signal levels. For some reason, using the Chocolate phone, the board does not take the lower-DTMF tones very well, so I may have to reduce the 10k resistor to 5k to help it out.

So now the signal is at the MT8870, and that chip requires a small amount of components for it to run, such as the 3.570mhz crystal and an assortment of capacitors and resistors. I added a 100uF capacitor and power LED.

Next the output of the MT8870 has to go to the CD4028 for decoding - but the MT8870 doesn't have pull down resistors on its outputs, so a resistor network of 100k resistors was used. From the CD4028, each output is put through a ULN2803 darlington array to boost up the sinking current considerably. Status LEDs indicate the status of each port.

Also note the 3 pin headers for the jumper. There are 3 positions - Off, Auto, and unconnected. Off disables all outputs, auto turns off the outputs when no signal is present, and no jumper at all remembers the last output even if the signal disappears.

Source File

Eagle Source Files