While many of us have banished land line telephones from our houses, there are still quite a few people who utilize POTS lines today. These analog phone systems use Dual Tone Multi Frequency (DTMF) signals in order to audibly represent all of the keys on a telephone keypad and place calls. [Brad] over at LucidScience decided that it would be useful to have a DTMF decoder on hand, and got busy building one.
His DTMF decoder box uses a CM8870 DTMF decoder chip, which you might assume is all you need to get the job done. This chip performs its duties very well, outputting a 4-bit binary code for each button press it registers, but that doesn’t do a whole lot of good without being able to represent those codes in a meaningful fashion. He first built a breadboard decoder circuit that would light 1 of 16 LEDs depending on the detected button press. This was well and good, but he decided that an Arduino-driven LCD display would work far better.
When he was finished, he had a compact decoder box with an LCD display, which accepts input from either an RJ-11 cable or an audio jack. He says that the audio jack is particularly useful for decoding tones from computer audio, such as YouTube clips. [Brad] praises the CM8870 chip, stating that it can pull phone numbers from pretty much any audio or phone signal you throw at it, regardless of quality. We think it would make a great basis for a telephone-based security system, if that was something that appealed to you.
Be sure to stick around to see his DTMF decoder circuit in action.
[youtube=http://www.youtube.com/watch?v=2gIwB_pdb00&w=470]
something like this would be useful in Ham radio too, for listening to the repeater access codes.
Domotic+This = Win
You pick up ur phone,dial **001 and your garage door opens up. nifty.
THIS HAS BEEN DONE A THOUSAND TIMES OVER SINCE THE 1970’s. THERE ARE A THOUSAND OF THESE PROJECTS POSTED ON THE ‘NET.
PLEASE, for the LOVE OF GOD, post something NEW for once. My God.
if you are going to involve a Arduino then why not make it do the decoding from the start.
i am sure they can run software or have to be programmed.
so in theory software tone decoder could be written making the process only a single piece of hardware.
also i think there are some parallel to serial decoder chips out there.
one option may be a usb parallel converter used to add usb to a parallel printer or parallel to usb printer.
“THIS HAS BEEN DONE A THOUSAND TIMES OVER SINCE THE 1970′s. THERE ARE A THOUSAND OF THESE PROJECTS POSTED ON THE ‘NET.”
Yes there are a lot of these out there. You can even buy kits and commercial versions. But that doesn’t mean that this wasn’t a good implementation
and it might spark someone’s imagination to use it to create something new.
Stop bitching. You aren
“THIS HAS BEEN DONE A THOUSAND TIMES OVER SINCE THE 1970′s. THERE ARE A THOUSAND OF THESE PROJECTS POSTED ON THE ‘NET.”
Yes there are a lot of these out there. You can even buy kits and commercial versions. But that doesn’t mean that this wasn’t a good implementation
and it might spark someone’s imagination to use it to create something new.
Stop bitching. You aren’t paying for Hack A Day. If you don’t like a project move on.
@ Kyle
I think you should start your own website and post ONLY new projects! You seem to be an authority on everything! :)
Stop bitching and just move on…. thank you.
@ejonesss
“so in theory software tone decoder could be written making the process only a single piece of hardware.”
Here’s a start at doing this.
http://scottrharris.blogspot.com/2010/07/arduino-fast-fourier-transform.html
It’s a Fast Fourier Transform for arduino. Just add a little more programing to do the touch tone decode.
It probably won’t have the sensitivity of the chip he used though.
Thanks again for posting one of my projects here!
Yes, it has been done many times before, but I sometimes like to revive oldskool jems like the 8870. This IC is much more robust then most software based uC DTMF decoders, and for $5.00, you can’t go wrong.
Maybe next time I will dig into my vacuum tube collection for a project!
Thanks to HAD for creating such a great resource and thanks to all who have sent in their projects.
Brad
Ps…
The final version (in the black box) has only the 8870 connected to an Atmega328. The code was done in assembly and includes many other features, but I wanted to keep the online project as basic as possible, focusing mainly on the operation of the 8870.
Having used the Fast Fourier Transform code on both an Atmega324 and FPGA, I can vouch that the 8870 is a much more robust solution, and can pull a tone out of even the most noisy signal.
Brad
http://www.motron.com
Nice implementation. Hadn’t thought of the idea to dial in, detect your tone, and make something happen. I’d love to see that implemented.
@whiners: Yeah it’s been done before, but who really cares. It was a good implementation.
POTS is a digital network with analog trunks, there isn’t much left to do with it these days..
Who besides 4chan type trolls would want numbers from youtube videos?
kinda silly to use a hardware device to decode sounds from youtube. this could just be a piece of software.
(yeah i know it is portable and accepts other sources, but this was mentioned)
@Fred
So your, and other’s, point it seems is that since you can buy one for 200 bucks a project that uses parts we all probably have sitting around plus a 5 dollar chip is superfluous?
Dear mr. brad,
Well that is a fantastic little contraption. Not for it’s function but for it’s design and implementation. Robust, thoughtful and clean. It is what KISS looks like when things are pulled off right.
Makes me remember what the hacking community’s virtues used to be. That is to start with anything be it an abstract idea or object; and make it better, usually through the magic of efficiency and design refinement.
Usually when I see projects I can instantly make an improvement that is economically and time supportive. My gut reaction when I saw the headline was ‘oh great another little trinket with clunkety microcontroller code and interface, at the least it could have a univesal audio input’ lo’ and behold it has TWO. Nice to see my stinky guts be wrong. Very impressive.
Hey, I STILL USE POTS; POTS AND POTS OF LOT!!
Whiners – this is a great example of a hack.
TouchTone is not a obsolete protocol. Hams have used it for years to control repeaters and remote sites from many miles away. The protocol is great – simple, noise resistant, robust and allows 16 channels of control.
Want to control something from 1/4 away? Grab some FRS radios and hook an encoder on one and a decoder on the other. Simple and cheap. Add some logic or a microcontroller and you have 16 channels of RC. Unlimited control channels if you use sequences of tones.
Want to monitor some remote value? Have a micro at one end encode the value in TT and a micro at the other decode it.
Bear in mind that you can also send 4 bits per tone using touch tone. Not sure what the decode rate of this chip is but that could easily be used to send low speed data in a noisy environment. No modem needed.
‘Not sure what the decode rate of this chip is but that could easily be used to send low speed data in a noisy environment.’
MY GOD.
Frabjous day, didn’t think of that -and I happen to have some obnoxious noise and propagation issues I’m dealing with.
I hate to jump on this bandwagon, but using a relatively difficult to acquire “all-in-one” chip for it’s intended purpose is not much of a hack.
That said he did a great job on the finish.
@silvester
KISS would be doing this without an “arduino”. This is definitely not anywhere near being the most simple solution. What would that be? Do all decoding AND display driving with a single, small MCU. Forget the extra circuitry, huge cumbersome (and overpriced) third party dev board, etc.
Just sayin’
@kyle
your time may be free, resilience and expandability may not be a priority as well. my time is not free..unless i’m on HAD and /.
why spend dozens of hours tweaking code that is proven to be inferior to a 5 dollar solution and minutes of coding. why not use and arduino, throw on the i/o, program it; done and done. i don’t really enjoy designing a board and reinventing the wheel for one off projects, that comes later with production.
@silverster
You can’t fight these trolls. They used to be special because they were a very small group that could design circuit boards and build embedded items. Now a much larger group can do it thanks to tools like the arduino so they are bitter about it so they aren’t as special.
Yes we wish they would quit posting their negative comments, but they will keep fighting until they become completely irrelevant.
I’ve already done this in software. A hardware implementation is good for ham radio.
Why are you all ganging up on me? I haven’t said a word about this project.
Nice job!
But can someone tell me where the DTMF codes are in YouTube videos?
I’ve used a DTMF decoder to get phone numbers from TV shows and movies and half the time they DON’T start with 555!!!
I have one bitch with this article, what’s this crap about land lines?
We have 3 lines here 2 for voice, 1 for the fax.
Damn city slickers!
Cell reception can be “spotty” at best here in them thar hills!
SMS and data works, mostly, but forget voice calls!
It’s like saying “nobody drinks tap water anymore, they just buy bottled water”
I have found that people that trip on other peoples’ projects usually are just talking a bunch of jargon. They couldn’t possibly pull it off themselves in any configuration. They just know a bunch of technical words that they like to throw out to look smart. And their anger comes from jealousy.
Just like the sissy on the block that can’t fight is always the loudest and most obnoxious. Oh, and why chihuahas (sp?) have one of the meanest sounding barks. I just ignore them. Deal with these kinds of people all the time at my work.
Reminds me of when I was younger and there was an intermission in a music album where they called someone and talkied to them. They recorded the tones while dialing. I held the phone up to the speaker and amazed my friends when it dialed the number and someone answered.
I was disappointed because I thought it would be some secret number that would win me something for figuring it out.
@YT2095
Yes, it would certainly be useful if you use old gear.