Help. Mobile phone, audio jack, arduino and DTMF?

Hi,

I've been wanting for a way to have my phone communicate with arduino and back using a hardwired connection and not using bluetooth. And keeping in mind not to break open the phone.

My hypothesis is, I might be able to set something up via a 2.5mm headphone jack, communicate to a Speaker Jet chip, communicate to arduino, and then back again.

I only have a days worth of DTMF knowledge atm. If say the arduino sent a signal to the mobile phone, can the phone decode the signal?

I'm using a Nokia e71 and the headphone jack, seems to have 4 pins. I assume, L/R audio, button, and ground?

Any thoughts would be appreciated.

Kind Regards.

My hypothesis is, I might be able to set something up via a 2.5mm headphone jack, communicate to a Speaker Jet chip, communicate to arduino, and then back again.

there is nothing new in this it has been done many times all you need is a dtmf decoder like the 8870 which can convert the dtmf into a four bit digital output goolge on 8870 and arduino to know more

I'm using a Nokia e71 and the headphone jack, seems to have 4 pins. I assume, L/R audio, button, and ground?

might not be so what about the inbuilt microphone ? i dont know about this ;) just try randomly ;D ;D

You can make a sketch in arduino communicate with a suitable application in your smartphone using audio channel and DTMF as data transport, provided that the symbian environment (the operating system of the phone) allows a (user created? unsinged perhaps?) user space application to use the headset resource. I'm really not familiar with symbian development at all.

On the arduino side you can set up hardware and/or software to generate and decode DTMF tones. I think that a recent version of Tone library supports more than one simultaneous tone outputs and even (parts of) decoding can be arranged to be handled by software. Having said that, DTMF is not the best, eaasiest or faster way to achive that communication (for example DTMFchips have guard times aligned with their original use at fixed line telephony of tens of msec limiting the number of symbols that can decoded in a given time frame). My choice would be in the direction of simple asynchronous FSK which you can relatively easily implement in arduino software - and suspectedly in symbian as well.

What you can't do is to produce DTMF tones in arduino and use them to dial numbers or send texts. The reason is that DTMF in not used for signalling in mobile telephony, which is purely digital and message based and the DTMF tones are transmitted only after the speach path is established.(there might be slight exceptions to this). You can still use them to control say appliances on the other end but after dialled and got answered by some other way.

You probably can do much more with AT commands over the digital connection the phone has but again goes to the specifics of the device and the os (though usb host functionality is not to be taken as granted at the arduino side)

I hope this helps

ps. it's L-R-mic-GND (1=L=tip) http://pinouts.ru/CellularPhones-Nokia/nokia_handsfree_pinout.shtml

Thanks for the informative input, punk.

After having a search around for FSK, i'm left confused about this setup of FSK. What i'm about to say, is based on the following link, which I only half understand. http://www.bertos.org/use/examples-projects/arduino-aprs/ To implement FSK, is this pushing into the realm of radio? Like two way radio? or still similiar in implementation to DTMF? or am I just way off. :-?

In terms of DTMF, i'm not really looking to control the phone itself. In my mind, a program is running on the phone, to which it reads the incoming audio from the mic, processes it, and out displays the message sent from the arduino.

Thanks for the pinouts site. What an awesome site.

Conceptually is far simpler. APRS is an application that is transported over AX.25, a packet networking (that is, there can be more than 2 nodes) protocol, which itself is transferred over VHF radio with FSK modulation.
DTMF is a representation of 16 values on one symbol but rather a signalling system than a modulation method

Frequncy Shift Keying is a digital modulation method. The output is a wave. An incoming bit will make the output frequency to be f0 if it is 0 and f1 if it is 1. This output is sent over the ‘channel’ (VHF FM radio, audio cable, …) to the other side physical entity, where it is demodulated, i.e converted to the original bit stream - or at least attempted to since noise and gremlins never leave the channel. Then, bits are gathered to form bytes, bytes to form … everything. I’m certain that wikipedians have alraedy written up the staff and far better than me. :wink:

The channel and its gremlins is the thing that separates and joins you with the other side. The task is to tame the channel by feeding it with the properly tailored signal for efficient, error-free and appropriately fast communication. In the case of the audio cable connection for a low(-ish) data rate the things are much more comfortable than radio or telephony.

In fact perhaps you can do a pretty quick start by using the Tone library and a circuit similar to the one in bertos site (ommit the three of the four resistors R1-R4 since you have one output pin). Define your f0 and f1, and “send” a myfsk.play(1200,3) or a myfsk.play(1800,3) for a 0 or a 1. At the smart phone, have your application to discriminate between the two frequencies, set a bit upon the outcome, shift it in and wait for the next. (at 3msec bit duration, you are at 333.33 baud - already higher than the Bell 103 and V.21 but behind 202 and V.22 :slight_smile: )