6 ms·
If you are interested in transmitting data over sound between airgapped devices, make sure to also checkout ggwave [0]. I've been working on this library on and
by ggerganov 5y ago
If you are interested in transmitting data over sound between airgapped devices, make sure to also checkout ggwave [0]. I've been working on this library on and off during the past year in my free time. I focused on making a FSK protocol that is robust in noisy environments at the cost of low bandwidth. Found some fun applications in various hobby projects.
[0] https://github.com/ggerganov/ggwave https://github.com/ggerganov/ggwave
- sydthrowaway 5y agoIs it possible to use ML to have greater bandwidth at lower SNR?
- danuker 5y agoI'd imagine training data would be the limiting factor.
- ggerganov 5y agoProbably, but I suppose you would need lots of training data in various surrounding conditions and hardware (mic, speakers). I wanted to experiment with using a mic-array in order to improve the SNR. Got a 4 Mic ReSpeaker [0] some time ago, but haven't played with it yet. My expectation is that capturing the audio simultaneously with multiple mics should reduce the noise and thus improve the robustness of the transmission allowing to increase the bandwidth. [0] https://respeaker.io/4_mic_array/ https://respeaker.io/4_mic_array/
- westurner 5y agoCould this be used to embed e.g. the sports "game clock" clock time(s) in broadcast TV/audio/video streams; in order to synchronize an air-gapped device next to the media signal reproduction unit? For example at a grille during the game. FWIU, e.g. Chromecast have ultrasonic pairing.
- ggerganov 5y agoYes absolutely! (Edit: or maybe not :-) see sibling comment for more info) Actually, the "Waver" youtube video linked at the top of the README has an embedded ultrasound transmission at around 0:36. I can for example decode the message on my iPhone by simply running the Waver app and playing the video on my PC. Some people have already done some work for AV sync in the issues of the project [0]. [0] https://github.com/ggerganov/ggwave/issues/46 https://github.com/ggerganov/ggwave/issues/46
- westurner 5y agohttps://www.adafruit.com/product/3421 https://www.adafruit.com/product/3421 https://learn.adafruit.com/adafruit-i2s-mems-microphone-breakout/raspberry-pi-wiring-and-test https://learn.adafruit.com/adafruit-i2s-mems-microphone-brea... : > The I2S is a small, low-cost MEMS mic with a range of about 50Hz - 15KHz, good for just about all general audio recording/detection. From https://en.wikipedia.org/wiki/Ultrasound https://en.wikipedia.org/wiki/Ultrasound : > Ultrasound devices operate with frequencies from 20 kHz up to several gigahertz. Raspberry Pi Pico (RP2040), Pi Zero [2 W]: $5+ Power supply, case, wall-mount: Mic: ~$6 Huge [red] 7-segment display with I2C and voltage regulator components taped to the wall next to the sports bar TVs:
- throwaheyy 5y agoDigital broadcasting adds significant latency so it would be in sync with the TV but still out of sync with the actual game (and other broadcast receivers). The same issue affects radio time signal (e.g. https://en.wikipedia.org/wiki/Greenwich_Time_Signal https://en.wikipedia.org/wiki/Greenwich_Time_Signal, last beep is the exact top of the hour), so some broadcasters will no longer play them on internet streams/digital radio, rather than be inaccurate.
- westurner 5y agoSo live TV could broadcast [ultrasonic] timecodes during ad breaks such that the gameclock would be synchronized even when the viewer initially tunes in during ad breaks, but "Video On Demand" would be fine because it's not the current time timecode, it would be a game time timecode? Selecting between multiple audible [sports bar TVs, radios] might imply need for a sonewhat-unique signal code, or only over e.g. USB would work with more than one game on; because there's naturally noise in that airgap channel.
- marcodiego 5y agoPlease, submit it to f-droid!