Search code examples
iosaudioheadphones

Is it feasible to transfer data with iphone's headphone jack


Question 1: Is it feasible? (As far as I know [info get from google], it is feasible. However, I need a more affirmative answer.)

Question 2: Say I have a device that generates square wave, how can I get the message?

As a beginner, I want to know to which class I should pay my attention to?

Thanks, any info will be appreciated.


Solution

  • This is a great question. I've put together a C library which does this, so you might be able to adapt it for iOS.

    Library: https://github.com/quiet/quiet Live Demo: https://quiet.github.io/quiet-js/lab.html

    With a sound port, you want to avoid square waves. Those make inefficient use of the range of amplitudes you have available, and they're not very spectrally efficient. The most basic modulation people typically use here is frequency shift keying. My library offers that (as gaussian minimum shift keying) but also more advanced modes like phase shift keying and quadrature amplitude shift keying. I've managed to reach transfer speeds of 64kbps using this library.