I want to make software for transmitting binary data over 3.5mm audio cables, but I'm not sure where to begin. Does anyone here have signal processing experience? .. or otherwise have ideas as to how I might interpret a high-sample-rate two-tone signal with potential noise?
7 months ago
I mean, if you really wanted, you can always toss something like a W65C51S and use charge pumps (or related chips like MAX232) to bring it up to RS-232 levels. A TRS jack could then be tx/rx/ground.
Which then you're just doing a serial port on 3.5mm audio cable. Again, you just have to watch for maximum bandwidth issues for given lengths of cable, the voltages on the wire, etc. But it doesn't HAVE TO be beeps and boops transmitted on audio cable. You can have digital serial data going across. 路 7 months ago
As @istvan has indicated, you do not need to have an analog signal it can be a digital signal no DAC/ADC required. Just UART on both ends. You can look at this thread (https://stackoverflow.com/questions/2181476/bandwidth-from-headphone-microphone-jack) to look at a discussion about what kind of bandwidth you might get.
Biggest thing is that the more you try to squeeze out, the more error correction/signal processing you're going to need. So if you want to keep it simple, you'll aim for low bandwidth utilization. But you can build it up as complex as you like up to the maximum the media allows for. 路 7 months ago
https://stackoverflow.com/questions/2181476/bandwidth-from-headphone-microphone-jack
@ditheez Looking for a bit more speed than Morse could do - one of my goals is decent IP over aux audioo That said, Morse is very resistant against loss and could be a good fallback transport 路 7 months ago
@istvan Thanks for the wisdom, though I'm stuck a bit more fundamentally than that. What's a reliable way to interpret audio as a data stream? The tones won't always be 100% clean and there will be errors 路 7 months ago
Made me think of Morse code. 路 7 months ago
My physical setup: given computer A and B, an aux cable runs from A's LINE OUT to B's LINE IN, and another from B's LINE OUT to A's LINE IN. 路 7 months ago
I've explored minimodem, and in concept it's what I need. However, it's missing a few things I want: 1) C or Rust or Py API/bindings, 2) full duplex communication, and 3) multiple carriers 路 7 months ago