[HN Gopher] Transmitting data via ultrasound without any special...
___________________________________________________________________
Transmitting data via ultrasound without any special equipment
Author : todsacerdoti
Score : 132 points
Date : 2025-06-27 17:02 UTC (1 days ago)
(HTM) web link (halcy.de)
(TXT) w3m dump (halcy.de)
| adzm wrote:
| The web tool is fun! I decided to give it a harder test and
| turned up some fans and background music up pretty loud and it
| still managed to decode the message.
|
| Though after a certain point it stops recognizing it, I was still
| surprised how well it did with noise. I'm sure noise in higher
| frequencies (or the right harmonics) would be much harder to
| handle, but solvable in interesting ways too
| ac29 wrote:
| See also: https://github.com/ggerganov/ggwave
| blensor wrote:
| GGWave is a really great tool and does support audible and
| inaudible versions.
|
| We are using it in XRWorkout to automatically sync up ingame
| recordings with external recordings, we are using the audible
| version instead of the ultrasound version so a human can sync
| it up too if they are using a regular video editor instead of
| doing it automatically in our own tools
|
| Here is an example how that sounds
| https://xrworkout.nyc3.digitaloceanspaces.com/data/video/036...
| noman-land wrote:
| This seems like such a fun way to work out but not with a VR
| helmet on.
| thijson wrote:
| It might be useful to study the techniques that modems used to
| transmit data over phone lines. I seem to recall trellis coded
| modulation being used:
|
| https://en.wikipedia.org/wiki/Trellis_coded_modulation
|
| The acoustic channel is bound to suffer from multipath too, so
| some equalization may be needed too.
|
| https://en.wikipedia.org/wiki/Equalization_(communications)
| https://www.ti.com/lit/an/spra140/spra140.pdf
|
| In order to receive the signal far from the transmitter, some
| form of spread spectrum encoding could be used, like CDMA. The
| spreading factor could be negotiated.
|
| https://en.wikipedia.org/wiki/Direct-sequence_spread_spectru...
| cogman10 wrote:
| Another step to look into if you really want to have fun is
| implementing some sort of QAM.
| ghurtado wrote:
| Did somebody say Spectrum?
|
| https://softspectrum48.weebly.com/notes/tape-loading-routine...
|
| I always assumed that PWM was the go-to method for this kind of
| low bandwidth / high noise medium, I wonder why the author
| didn't go that route and used FM instead
| nomel wrote:
| > Tape data is encoded as two 855 T-state pulses for binary
| zero, and two 1,710 T-state pulses for binary one.
|
| Is that not FM, more specifically FSK, just with some extra
| harmonics?
| ghurtado wrote:
| keep in mind I don't know much about waves, so all of this
| could be wrong, but I think PWM works by modulating the
| width of the pulse, in other words, the "duration of the
| note" if you will, so the frequency of the square wave
| remains constant. You have a high pulse of width t to
| represent a zero and a high pulse of t*2 to represent 1.
| The human ear might hear this as a modulating frequency,
| but that's only because the pulses are changing faster than
| our brains can recognize pitch, if that makes any sense . I
| don't know what a t state is, but I suspect the number is
| the duration of the pulse in microseconds or something of
| the sort.
|
| I believe IR remotes work on a similar principle: a series
| of blinks of two different durations, which represent 0 and
| 1
| MobiusHorizons wrote:
| What you are describing is basically CW which is how
| Morse code is transmitted over radio. It works well at
| the low data rates of Morse code. The higher the symbol
| rate, however, the higher resolution you need for
| measuring pulse length, which requires sharper edges from
| off to on. In practice it is usually easier to use
| different tones for each symbol (fsk) since the pulse
| length is less critical in that case. Quadrature
| modulation like bpsk is more efficient at the cost of
| additional complexity, and spread spectrum techniques
| allow for much better performance in noisy environments
| at the cost of using more bandwidth. So as usual in
| engineering, it's a trade off that has to be decided on a
| case by case basis.
| echoangle wrote:
| Isn't the "Illustrated for zoomers" version of the frequency
| domain wrong? I'm pretty sure the bars over the timeline show
| volume over time, not intensity over frequency. So the middle bar
| doesn't represent a specific frequency but a specific time
| interval in the song.
| bigiain wrote:
| I dunno, but as a almost-boomer (57 years old) I felt seen by
| the "Illustrated for boomers" pic. I had almost exactly that
| display in the headunit/cd player I installed in my '72 VW
| Beetle back in the early 90s...
| benji-york wrote:
| Same experience here, I owned this exact piece of equipment
| as a teen (I'm ~50).
|
| Aside: I know "boomer" is just slang for "not young", but I
| can't help but think that only the most tech-savvy Baby
| Boomer would identify with that EQ; Gen-X would be more
| applicable.
| jnwatson wrote:
| Chromecast has used ultrasound in lieu of pairing code for a
| while now.
| jayknight wrote:
| Webex on a laptop can know which conference room it is in by
| ultrasound, which allows quick screen sharing to the
| screen/meeting.
| TrackerFF wrote:
| IIRC, there was some commercial product - years ago - that worked
| by using ultrasonic data transfer.
|
| It went something like this: You install some app on your phone,
| which then listens for incoming audio in the ultrasonic range.
| The audio is coded instructions, which then would do things like
| blink a light on your phone or whatever. The idea was that this
| could be used at events (sport, music, whatever) to create light
| shows on the mobiles, without relying on good wifi coverage or
| similar in the avenue. As you could use the PA for the data
| transmission.
| avsm wrote:
| We demonstrated this in 2003 using the smartphones of the era
| (they didn't have good filters, so you could detect ultrasound
| quite easily).
|
| See https://anil.recoil.org/papers/audio-networking.pdf sec 2.1
| for the 2003 paper and some ancient videos at
| https://anil.recoil.org/projects/ubiqinteraction if you want
| some Nokia nostalgia :-)
| tanepiper wrote:
| I wrote a very similar web implementation 12 years ago as a
| proof of concept - if it got the go-ahead, the plan was to test
| it with some commercial TV broadcasting in the UK where a
| ultrasonic short code could be sent to phones using an app with
| a Web view, or possibly native app.
|
| Sadly never got picked up, although we proved the concept could
| work - but it certainly had it's challenges.
|
| https://github.com/tanepiper/adOn-soundlib
|
| https://github.com/tanepiper/adon-ad-platform
| mgraczyk wrote:
| Google explored doing this with devices that connect to each
| other, specifically Chromecast and their early Google Home
| devices. I don't think it ever launched but Google did some
| interesting experiments to test the ultrasonic transfer
| functions on millions of consumer devices. (I worked in audio
| research at Google at the time but not on this).
|
| I believe the main problem is that it makes dogs go crazy
| pests wrote:
| I might be misremembering but I am 99% sure the early
| Chromecasts had this. It was a "Guest Mode" for when you
| wanted to share access to a device not on the network. I
| don't think it lasted for long.
| mgraczyk wrote:
| Ah you are correct:
|
| https://techcrunch.com/2014/06/26/how-can-chromecast-
| connect...
|
| I couldn't remember if it actually shipped in anything, but
| looks like it did!
| tkanarsky wrote:
| The official Blackpink (kpop group) light sticks from one of
| their tours have this functionality built in. The annoying part
| is that one of their Spotify albums have this 18-20khz control
| track present, and (when I was younger) I could hear it and it
| annoyed the heck out of me.
| lxe wrote:
| 18-20khz is not really ultrasound. Many people can still hear
| this range, and it's very unpleasant when played (at least to
| me).
|
| For comparison, medical imaging ultrasound is 2-20 MHz (that's
| MEGA hertz) I think,
| thfuran wrote:
| Yeah, 18 kHz isn't really ultrasound, but 50 kHz definitely is
| and nobody's hearing that. You definitely don't need to go up
| into the MHz range and can't if the goal is to use existing
| audio equipment.
| lxe wrote:
| They are using the 18-20Khz range though
| (https://halcy.de/blog/images/2025_06_27_fsk.png)
| dylan604 wrote:
| would the stock equipment be able to produce MHz? consumer gear
| is targeted specifically at making sounds humans can hear.
| Since the 18-20kHz is within the 44.1-48kHz audio tends to
| playback, it makes since why it would be near-ultrasound
| frequencies. The headline specifically mentions without any
| special equipment
| lxe wrote:
| Theoretically, yes! With 192kbps sample rantes you can
| probably render up to 96khz, but the limitation is the
| speaker and amp components all the way from your DAC to the
| main amp to the speaker.
| dylan604 wrote:
| bitrate isn't really what we're concerned with here, though
| is it? if you use 96kHz sampling rate, you can reproduce
| 48kHz frequencies according to Nyquist. the bitrate would
| then be the sampling rate * bit depth * #channels. your
| 192kbps would potentially be the 96kHz * 2 channels, but
| you've left out the bit depth or using a 1-bit sample???
| madaxe_again wrote:
| You can also produce UHF sound with hardware other than the
| speaker. For instance, you can overdrive caps in various
| systems - most commonly LCD display drivers - and make them
| squeak in the audible or inaudible range.
|
| Can't find much out there on the topic, but here's a Reddit
| thread touching on it:
|
| https://www.reddit.com/r/InternetIsBeautiful/comments/2ruq45.
| ..
| sneak wrote:
| Sure, but he's using computer/phone speakers and mics and audio
| interfaces. These can't generally produce or sample frequencies
| above 24kHz.
| mordae wrote:
| 20kHz, actually. They tend to have really sharp filters with
| -3dB @ ~0.4 fS.
| sneak wrote:
| All frequencies above 24kHz are also above 20kHz. :)
| polotics wrote:
| what is it about websites that can't be zoomed? do the authors
| not realise their choice of fonts won't always fit with mobile
| phone screens?
| nine_k wrote:
| IIRC mobile Firefox ignores the "can't be zoomed" setting,
| which I find the right thing to do.
| amelius wrote:
| Speaking for all the dogs and other pets with hearing abilities
| above 20kHz ... please don't do this.
| velcrovan wrote:
| So that's how Bobby Tables got his start
| vishnuharidas wrote:
| Reminded me of LG Smart Diagnosis. Almost every LG appliances
| come with an audio-based diagnosis system. Look for "LG Smart
| Diagnosis" on YouTube and you will find hundreds of videos of LG
| washing machines, AC, Fridges, and other devices using a music-
| like audio for diagnosis.
| kragen wrote:
| No _special_ equipment--except a laptop capable of running a web
| browser that can do Web Audio, and microphones and speakers.
| Which, as the article explains, isn 't novel. But it's still a
| nice introduction to the space.
|
| I would argue that microphones and speakers _are_ special
| equipment: most microcontrollers don 't have them, most computers
| are microcontrollers, and most non-microcontroller computers
| already have better ways to transmit data. I was hoping for an
| ultrasound codec for an Arduino using the microphonics of the X5R
| bypass capacitors included on the board, or something like that.
| Plausibly that is a thing you could do, but nobody has managed it
| so far that I know of.
| achairapart wrote:
| A few years ago I made a digital audio-guide for an interactive
| exhibition in the form of a Progressive Web App, using a modified
| version of Quiet.js[0] for proximity, e.g. You enter a room, the
| phone mic picks up a signal playing in this room and starts an
| audio track synced with video projected in the room.
|
| Screenshots of the app:
|
| https://pino.ceniccola.it/portfolio/img/diconodilei-1.jpg
|
| https://pino.ceniccola.it/portfolio/img/diconodilei-4.jpg
|
| Sadly, Safari iOS Web Audio API filtered out everything above
| ~16khz, so instead of playing the audio at full volume in the
| room I had to make a few points of contact where you had to place
| your phone near enough a little speaker (actually a tweeter) to
| pick the (now) audible whisper but at much lower volume.
|
| By the way, everyone was already wearing their headphones anyway,
| and it worked like a charm with many people wondering what and
| how was going on!
|
| [0]: https://github.com/quiet/quiet-js
| kiicia wrote:
| This reminded me of ,,Ultrasonic investigations in shopping
| centers"[1]
|
| > Ultrasonic pilot tones, commonly used in PA systems to monitor
| speaker connections, are often modulated by background noise or
| movement. These tones can be used for various purposes, such as
| speed detection, escalator monitoring, positioning codes, ad
| delivery, and finding quiet areas in shopping centers.
|
| [1] https://www.windytan.com/2024/06/ultrasonic-
| investigations-i...
___________________________________________________________________
(page generated 2025-06-28 23:02 UTC)