Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to transmit binary through a single waveform
    primarykey
    data
    text
    <p>The project I'm working on poses a curious technical challenge.</p> <p>A digital device needs to transmit data to the iPhone via the microphone jack socket.</p> <p>I need to code an interface from both the microcontroller and from the iPhone end.</p> <p>Is there any established protocol for this particular problem? I don't have the luxury of twin clock and data line (ala PS/2 protocol <a href="https://en.wikipedia.org/wiki/PS/2_connector" rel="nofollow">https://en.wikipedia.org/wiki/PS/2_connector</a> ).</p> <p>I am aware of F2F ( <a href="https://en.wikipedia.org/wiki/Biphase_mark_code" rel="nofollow">https://en.wikipedia.org/wiki/Biphase_mark_code</a> ) but this is a royal PITA to decode.</p> <p>There is also an issue of optimising bandwidth (to some sensible balance between efficiency and algorithmic complexity). The iPhone samples at 44.1 kHz; in theory each sample could transmit at least one bit depending on whether it is high or low (ie which side of zero -- theoretically of course each sample is 16 bits but trying to really optimise bandwidth to a theoretical maximum would be... what is the word... mad?), realistically I might need to use 3 sample lengths for each bit just to make sure everything gets received and a bit doesn't fall between 2 consecutive samples.</p> <p>Is there some open source code I can lift to do this? I would imagine software engineers have been cracking this problem since the early days of digital. I don't really want to reinvent the wheel here.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload