Sending serial data from an Arduino to a caller id

Recently I purchased the serial enabled lcd kit as my first foray into Arduino. I’ve been having a lot of fun with it, and it gave me an idea for a project. I have an [Olympia caller id Infoglobe, but don’t have a land line anymore. I would rather not open up the unit itself, so I was wondering if anyone knows how to take serial data and turn it into a signal the caller id can use (making the caller id think it’s receiving a phone call).

I’ve modified a phone cable so that I can plug in one end into the caller id and the other into the free pins on the serial kit, but I’m having trouble finding info online on how to send the data in a way that can be read by an existing device. I have found lots of projects and sketches for receiving an fsk signal from a phone line, but nothing for sending it.](Amazon.com)

You must emulate the phone line, with the proper voltages and fsk signals. If no one has done that already, you will have to read the specifications closely, design the circuitry and write the code.

It’s not a beginner project.

IIRC, caller ID data is presented between the first and second rings. The phone needs 100VAC at 20Hz to ring (although it will probably ring with 60Hz), so you need to inject the caller ID fsk signal onto the line (48VDC) after ringing it once. While I remember a lot of caller ID decoder chips from when I used to do phone stuff, I don’t remember any encoder ones, so you’d have to design it yourself as jremington says. The good news is that it should not be hard.

In the end, it might be easier to just open up the unit :slight_smile:

There is some source code available for generating fsk and DTMF caller ID codes. Asterisk was written for Linux to handle a complete private telephone exchange, and includes caller ID generation: http://doxygen.asterisk.org/asterisk1.0/files.html

CIDmaker writes a sound file to test CID systems: http://www.nailed-barnacle.co.uk/callerid/homepage.html

In either case, all you would get is a caller ID on your box. Is that interesting enough to justify a lot of work?