[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)