Who needs this?
You want to use a pulse dialing telephone, but your SLIC (such as a VOIP-interface) doesn't support pulse dialing. Instead of building the project described here, you could make things easy for yourself by replacing your SLIC by one that supports pulse dialing, e.g. the Grandstream HT801 (untested) or others.
Description
Has this kind of thing been done already? Oh yes, many times. But this device will be cheaper to build and solve some shortcomings of the converters around today by being:
- insensitive to line polarity
- open source
- readily available & cheap parts (no bulky audio transformer needed)
- plug and play immediately, no 15mins pre-charging time needed
- doesn't steal power from the telephone line when the telephone horn is on-hook
- no modifications to rotary phone required
Sources
There's little more annoying on Hackaday.io than people "sharing" their project, but keeping the source files to themselves. So here you go:
- Firmware source code can be found on : GitHub.
- Production data (hex-files, gerber files, schematics, ...) can be found on : GitHub project's releases
- PCB design files are online on EasyEda. The PCB design files have also been exported to Altium format and have been added to the repository on GitHub. The contents of these Altium files has not been checked.
DTMF-generator standard
ETSI ES 201 235-2 V1.1.1 (2000-09) describes some rules DTMF-generators should comply to.
- Maximum signal amplitude : HF + LF = (-9,0 dBV, +2,0 dB) + (-11,0 dBV, +2,5 dB) = -7dBV + -8dBV = 1.26Vpp + 1.13Vpp = 2.39Vpp. Practical signal amplitudes will be much lower.
- Tone duration : 65-90ms
- Pause duration : > 65ms
- Frequency tolerance : +/-1.5%. This implies using an external oscillator or crystal because the internal RC-oscillator is too dependent on power supply voltage and temperature.
References
Pulse to tone converters that require modifications inside the telephone:
- Boris Cherkasskiy : Rotary Dial for digital age
- Frits Kieftenbelt : T65, W65, Ericsson en Heemaf telefoon genereert DTMF tonen (dutch language)
- Anton Meyer : ArduinoDTMF
Thanks for this design and all explanations. I just finished building a modified version of this design and it works great.
I have an Ericsson 1951 rotary phone, plugged into the VoIP port of my Internet router. I need a pulse-to-tone converter to make calls. An extra challenge in my case is that my VoIP router seems to freak out and switch to its error tone as soon as it detects rotary dial pulses.
I came up with the following solution: Dial the number while the router goes insane (just ignore it). Then hang up the phone and wait a few seconds until the router has calmed down. Then pick up the phone again and let the ATtiny send the DTMF tones right away.
This means I have to keep my ATtiny powered for several seconds without loop current. I upgraded C1 to 680 uF, but that still puts me on a 100 uA idle power budget. So I removed the active filter to get rid of its quiescent supply current, and replaced it with a passive RC filter. Not a very good filter, but I can live with it.
I tried to find other aspects of your design that could be simplified. But the more I thought about it, the more clear it became to me how minimalistic your circuit already is and how clever it all fits together. The trick with the shunt regulators is just brilliant.
I'm not a professional electronic engineer by the way, so don't read too much into my comments. While building my modified circuit, I made all the usual mistakes. I fumbled the footprints of the TLV431 so I had to solder them upside down on my PCB. But in the end it works, and that is what matters!