DTMF To Your Computer, With A Gamepad

Though many of us will never have experimented with it, most readers should be familiar with DTMF as the tones used by the telephone system for dialling. If your youth was not misspent mashing 4-4-2-6-4-6-2, 4-4-2-6-4-1 into a keypad, then you haven’t lived!

As you might expect there are a variety of chipsets to handle DTMF, and one of them has been used by [ackerman] in a slightly unusual way. Many desktop computers do not have a convenient array of GPIOs upon which to hang a piece of hardware, but a constant among them is to support some form of gaming controller. Hence he’s taken a commodity joypad and interfaced a MT8870 DTMF decoder to its switch lines with a simple transistor buffer, and is able to pull the resulting information out in the host operating system. So far there are versions for Windows, DOS, Amstrad CPC, Arduino, and even PSX ( the original PlayStation console ).

One might ask why on earth you might want a DTMF input for your desktop PC, but to do so is to miss the point. We are surrounded by computing devices from our mobile phones upwards that do not have any form of interface that can easily be used by our electronic projects, and this serves as an example of how with a bit of ingenuity that can be overcome. It’s a subject we’ve touched upon before, when we asked why people aren’t hacking their cellphones.

21 thoughts on “DTMF To Your Computer, With A Gamepad

  1. Okay, I guess I’m an ignorant guy who never lived, but for the sake of all others who are unfamiliar with this sequence I’ll be the goober who asks: What does “4-4-2-6-4-6-2, 4-4-2-6-4-1” represent and what use did it have?

      1. The more I think about this, the more I’m impressed with how clever it really is.

        In older times (cue “Pepperidge Farm Remembers” meme image) computers with morherboard-resident parallel ports could be readily persuaded, because of how that circuitry was implemented, to somewhat badly abuse said circuitry to achieve a similar aim… all you needed back then, other than a bit of programming that was just coherent enough to not make DOS choke up and die, was a spare printer cable and (unless you were far too cocky… or inexperienced) a couple buffer chips.

        Alas, modern USB “IEEE1284” adapters are designed (because cheap!) to be far too stupid for that to work. They generally work for old printers, somewhat less so for LPT scanners and the like, probably not at all for LPT ZIP drives (!) although I’d have to test that (IIRC those came with their own adapters… I’d imagine there’s a rwason for that), etc. But they *definitely* can’t do what the old ports did.

        For a time, if your PC had a COMport, you could at least use that with a MAX232 or clone and an Arduino… but now, almost everything like that is straight USB, which (or so I’m told) can present timing issues, if it thinks traffic is better balanced by sending the wrong thing first… ugh.

        But this… it’s hard to see this *not* working as desired. Well done!

  2. I toyed with the idea to build my own pulse to DTFM box for my ancient rotary phone, but there already existed a ready made product with nice extra functions and with some better odds of not frying my modem. So I whimped out,

  3. So a DTMF transmitter is needed to transmit to a decoder to simulate keypress on game controller all needed to be wired together. Cheapo board being used needs a microphone and amplifier to lose one of the wires. There are wireless versions of many game controllers including classic 2600 Atari interface. Might be a bit of trouble to find the actual working Atari 2600 wireless joystick controller and sticks.
    Game controller hack for a few inputs is likely the most ancient home PC hack there is. I feel this project is a long way ’round using an DTMF decoder ASIC. Definitely recognize the work in providing program to hardware interface. That is terrific.

  4. Nice project !

    We did a lot of DTMF decoding “in the old ages”, with the 8870 chip (and others) with a C-64 and also via the PC joystick port and the Centronics parallel printer interface.

    If I had to do it nowadays, I think I would hack a cheap PC keyboard so the digits, letters and symbols from the 8870 are seen as normal keystrokes (bonus: you can hardwire also a PF and Enter, to input the data directly to the software even if it only supports user input).

    Best regards,

    A/P Daniel F. Larrosa
    Montevideo – Uruguay

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.