We’re suckers for alternative data transmission methods, and [Georgi Gerganov]’s ggwave made us smile. At its core, it’s doing what the phone modems of old used to do – sending data encoded as different audio tones. But GGwave does this with sophistication!
It splits the data into four-bit chunks, and uses 16 different frequency offsets to represent each possible value. But for each chunk, these offsets are added to one of six different base frequencies, which allows the receiving computer to tell which chunk it’s in. It’s like a simple framing concept, and it makes the resulting data sound charmingly like R2-D2. (It also uses begin and end markers to be double-sure of the framing.) The data is also sent with error correction, so small hiccups can get repaired automatically.
What really makes ggwave shine is that it’s ported to every platform you care about: ESP32, Arduino, Linux, Mac, Windows, Android, iOS, and anything that’ll run Python or JavaScript. So it’ll run in a browser. There’s even a GUI for playing around with alternative modulation schemes. Pshwew! This makes it easy for a minimalist microcontroller-based beeper button to control your desktop, or vice-versa. An ESP32 makes for an IoT-style WiFi-to-audio bridge. Write code on your cell phone, and you can broadcast it to any listening microcontroller. Whatever your use case, it’s probably covered.
Now the downside. The data rate is slow, around 64-160 bits per second, and the transmission is necessarily beepy-booopy, unless you pitch it up in to the ultrasound or use the radio-frequency HackRF demo. But maybe you want to hear when your devices are talking to each other? Or maybe you just think it’s cute? We do, but we wouldn’t want to have to transmit megabytes this way. But for a simple notification, a few bytes of data, a URL, or some configuration parameters, we can see this being a great software addition to any device that has a speaker and/or microphone.
Oh my god, check out this link from pre-history: a bootloader for the Arduino that runs on the line-in.
Oh good, yet another way to exfiltrate the corporate crown jewels without plugging an unapproved device into the tightly controlled corporate laptop or the tightly controlled corporate network. I thought I was going to have to blink morse code down in a screen corner.
Considering that the same has been done by altering fan speeds, this doesn’t worry me much.
Sounds like the Sens8 security camera setup app. It must use a similar idea. You set the wifi info in the phone, then it beeps at the camera to set it up.
Sounds like Wonka pioneered this tech to send bars of chocolate.
Has anyone run the movie through this decoder yet?
Woahh it DOES sound like R2-D2!
IMHO the chosen audio frequencies are less than ideal. It would be interesting how this 96-level FSK compares to V.21, DTMF and Eurosignal, especially on distorted or noisy channels.
I like how un-harsh it sounds. I could actually probably tolerate using this, which I can’t necessarily say for most of the other audio-frequency transmission methods.
The bps is on par with typical Morse code rates so it’s plenty usable.
It’s a bit fast for R2 but I’m sure C3PO could translate it for him.
I do love it though, it reminds me of the sound of the “computer mainframes” from the 80’s sci-fi movies, they always played sounds like this as they showed the old tape reels spinning back and forth.
Sounds like MFSK https://www.sigidwiki.com/wiki/Multi_Frequency_Shift_Keying_(MFSK)
I love this so much!