Tell me more ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

I'm looking for open source, simple (simple enough for arduino, for example) protocol for transfer of some messages over audio (eg. in the apartment environment, not by analog line, but between speaker and mic, via air). It should be noise resistant and not binary (not Morse) - it's a art project, the idea is to make controllers to communicate like r2d2's

share|improve this question
Echos will kill you. – Ignacio Vazquez-Abrams Aug 22 '12 at 3:56
3  
Are you more interested in the efficiency and reliability of the data communication, or how it sounds to eavesdropping humans? – Chris Stratton Aug 22 '12 at 13:06
@ChrisStratton Good question. FWIW that radio modulation I linked in the answer is actually pleasant to an human ear. Well, sort-of pleasant... it sounds like a bird chirp, nothing noisy or annoying. Most peoples that listen to radio don't even know about its existence. – Axeman Aug 22 '12 at 13:53
I think that slow enough DTFM would actually sound quite nice. Probably a lot like R2D2. If you demarked each note with a gap of silence, then you could probably make each tone a different length to give it some character. – Rocketmagnet Aug 22 '12 at 20:19
1  
Slow DTMF would sound like someone dialing a phone. – Chris Stratton Aug 23 '12 at 2:32

3 Answers

This question was asked right before I joined the site, so I didn't see it until just now, when it was brought to my attention for review.

You can use any of various "audio watermark" techniques to embed a low-speed (tens of bps) data signal into any sort of audible "cover" signal. This means that what a human hears does not necessarily need to be related to the actual content of the communication (but it can be).

As for simplicity and low cost, I once built a prototype watermark decoder that was intended for embedding in interactive toys, which is an extremely cost-constrained market. It was based on a 6502 microcontroller clone along with a simple opamp-based analog signal chain for gain and filtering. The demo system, using a low-cost electret microphone, could reliably pick out watermarks across a conference room from a laptop computer driving cheap speakers.

Your question as it currently stands is really not a good fit for EE or the SE format in general. The question about existing protocols you could use is probably better suited to the DSP site. But to get a meaningful answer, you need to be more specific about the kinds and amounts of information you actually want to exchange among the various units of your project.

share|improve this answer

Here in Italy, there are some radio stations that send time of day encoded on a low bandwidth audio signal. I can decode that signal almost always, with a microphone and the radio receiver speaker in the same room. This is the encoding scheme, unfortunately is in italian, and I haven't found an english translation.

enter image description here

http://www.inrim.it/res/tf/src_i.shtml

share|improve this answer

I think what you want is something like Dual-tone multi-frequency signaling. This is what they use on touch tone telephones. When you dialed the number, it would generate tones which would be recognised as numbers at the other end of the line.

You can convert your string of text into numbers, and send them out through a speaker.

To generate the DTMF signals, you'll need something which can generate the two tones and add them together, either in software or in the analog domain. A microcontroller can do this, and I know that the PSoC3 can do it in hardware (as usual).

To decode the data, use a MT8870D chip. See DTMF decoder using MT8870DE.

share|improve this answer
...and here's a blog article which shows a waterfall plot (spectrogram) of the dialup handshake. – Nick Alexeev Feb 5 at 4:11

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.