Would be happy to answer any question.
Would be happy to answer any question.
You can try my Android app [1] to reproduce the experiments for short transmissions.
[1] https://play.google.com/store/apps/details?id=bit.zeyde.audi...
Something you might consider is to write a web camera backend for it and use the screen/webcam. That has a lot more bandwidth and has higher SNR as the selector effect of the web camera is so much better than that of a microphone.
I’ve found all the phase modulation schemes work poorly across the room. DSSS works ok but is very slow. I would be curious how reliable FSK is in that situation.
[1] https://ggerganov.github.io/jekyll/update/2018/05/31/data-ov...
Your post mentions not finding any reliable modem libraries. I'm curious what issues you had with mine, if you tried it?
I am willing to sacrifice bandwidth to achieve better reliability of the communication and I believe I was able to achieve it. Although, I haven't done tests with many other devices/conditions than my own, so my result might be biased.
How long would it take to transmit a 3MB jpeg and then encode it,?
Using an audio cable (for better SNR), I have managed to achieve and sustain 60kbps for long periods time - so 3MB file should take ~7 minutes to transmit.
The initial use-case was performing air-gapped communication for signing Bitcoin transactions [1] on an offline machine.
[1] https://en.wikipedia.org/wiki/Orthogonal_frequency-division_...
[2] https://en.wikipedia.org/wiki/Quadrature_amplitude_modulatio...
I = amplitude*cos(phase)
Q = amplitude*sin(phase)
[1] http://whiteboard.ping.se/SDR/IQI guess it should also work on MacOS, since it depends on `numpy` [1] and `portaudio19-dev` [2] Debian packages (which should be installable via Pip/Homebrew).
Please take a look at https://github.com/quiet/quiet-js for an ultrasonic data transmission.