I have a Nano (328P) set up to connect to an Ooma Telo VOIP box to dial a number. I'm using the DTMFgen.h library which uses an R-2R ladder on Port D. The code generates tones which are similar to legit DTMF samples, but to my ear not exactly the same. The Ooma terminates dial tone when the DTMF output starts, so the tones apparently are loud enough, but after completing the 10 digits, I get fast busy immediately, and the call isn't initiated.
https://github.com/dilshan/dtmfgen
The method used in the library does not produce exactly the right frequencies, and no adjustment is made to make the higher tone louder than the lower tone (which may or may not matter). But the author says his code has worked with a variety of devices, including the MT8880 decoder chip, so it's possible the Ooma is a bit too picky.
Anyway, I just wondered if anyone here as any experience with DTMFgen, or if anyone could suggest things to try to get it to work.
My schematic is what's shown in the library, with the ouput feeding into a 600/600 1:1 transformer that's connected to the line. When I listen in on another extension, everything sounds fine, so I think everything is working electronically, but maybe the Ooma doesn't like the waveform.
#include "dtmfgen.h"
// Create new instance of DTMF generator.
DTMFGenerator dtmf;
char number[] = "3034997111"; // WWV time service
unsigned char ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
delay(3000);
// Generate DTMF tone with 500ms duration.
digitalWrite(ledPin, HIGH);
for (int i = 0; i < 10; i++) {
dtmf.generate(number[i], 500);
delay(500);
}
digitalWrite(ledPin, LOW);
}
void loop()
{
}