frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Transmitting data via ultrasound without any special equipment

https://halcy.de/blog/2025/06/27/transmitting-data-via-ultrasound-without-any-special-equipment/
77•todsacerdoti•6h ago

Comments

adzm•5h ago
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•4h ago
See also: https://github.com/ggerganov/ggwave
blensor•3h ago
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•42m ago
This seems like such a fun way to work out but not with a VR helmet on.
thijson•4h ago
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•4h ago
Another step to look into if you really want to have fun is implementing some sort of QAM.
ghurtado•4h ago
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•3h ago
> 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•1h ago
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

echoangle•4h ago
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.
jnwatson•4h ago
Chromecast has used ultrasound in lieu of pairing code for a while now.
jayknight•1h ago
Webex on a laptop can know which conference room it is in by ultrasound, which allows quick screen sharing to the screen/meeting.
TrackerFF•3h ago
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•3h ago
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•2h ago
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•1h ago
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

lxe•3h ago
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•3h ago
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•1h ago
They are using the 18-20Khz range though (https://halcy.de/blog/images/2025_06_27_fsk.png)
dylan604•2h ago
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•1h ago
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•1h ago
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???
polotics•2h ago
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•2h ago
IIRC mobile Firefox ignores the "can't be zoomed" setting, which I find the right thing to do.
amelius•55m ago
Speaking for all the dogs and other pets with hearing abilities above 20kHz ... please don't do this.
velcrovan•40m ago
So that’s how Bobby Tables got his start

Show HN: I'm an airline pilot – I built interactive graphs/globes of my flights

https://jameshard.ing/pilot
944•jamesharding•10h ago•155 comments

Normalizing Flows Are Capable Generative Models

https://machinelearning.apple.com/research/normalizing-flows
44•danboarder•2h ago•2 comments

Learn OCaml – Exercises

https://ocaml-sf.org/learn-ocaml-public/#activity=exercises
37•smartmic•2h ago•4 comments

Structuring Arrays with Algebraic Shapes

https://dl.acm.org/doi/abs/10.1145/3736112.3736141
46•todsacerdoti•3h ago•3 comments

A Brief History of Children Sent Through the Mail

https://www.smithsonianmag.com/smart-news/brief-history-children-sent-through-mail-180959372/
64•m-hodges•3h ago•42 comments

SymbolicAI: A neuro-symbolic perspective on LLMs

https://github.com/ExtensityAI/symbolicai
64•futurisold•4h ago•17 comments

Qwen VLo: From "Understanding" the World to "Depicting" It

https://qwenlm.github.io/blog/qwen-vlo/
150•lnyan•8h ago•44 comments

10 Years of Pomological Watercolors

https://parkerhiggins.net/2025/04/10-years-of-pomological-watercolors/
155•fanf2•8h ago•26 comments

Transmitting data via ultrasound without any special equipment

https://halcy.de/blog/2025/06/27/transmitting-data-via-ultrasound-without-any-special-equipment/
77•todsacerdoti•6h ago•26 comments

bootc-image-builder: Build your entire OS from a Containerfile

https://github.com/osbuild/bootc-image-builder
8•twelvenmonkeys•3d ago•0 comments

Spark AI (YC W24) is hiring a full-stack engineer in SF (founding team)

https://www.ycombinator.com/companies/spark/jobs/kDeJlPK-software-engineer-full-stack-founding-team
1•juliawu•2h ago

nimbme – Nim bare-metal environment

https://github.com/mikra01/nimbme
29•michaelsbradley•4h ago•6 comments

James Webb Space Telescope Reveals Its First Direct Image of an Exoplanet

https://www.smithsonianmag.com/smart-news/james-webb-space-telescope-reveals-its-first-direct-image-discovery-of-an-exoplanet-180986886/
55•divbzero•5h ago•28 comments

The Journey of Bypassing Ubuntu's Unprivileged Namespace Restriction

https://u1f383.github.io/linux/2025/06/26/the-journey-of-bypassing-ubuntus-unprivileged-namespace-restriction.html
5•Bogdanp•1h ago•0 comments

Reinforcement learning, explained with a minimum of math and jargon

https://www.understandingai.org/p/reinforcement-learning-explained
13•JnBrymn•3d ago•0 comments

Show HN: Do you know RGB?

https://maxwellito.github.io/do-you-know-rgb/
54•maxwellito•3d ago•38 comments

Slightly better named character reference tokenization than Chrome, Safari, FF

https://www.ryanliptak.com/blog/better-named-character-reference-tokenization/
34•todsacerdoti•22h ago•7 comments

Weird Expressions in Rust

https://www.wakunguma.com/blog/rust-weird-expr
134•lukastyrychtr•8h ago•105 comments

A New Kind of Computer (April 2025)

https://lightmatter.co/blog/a-new-kind-of-computer/
30•gkolli•3d ago•15 comments

Glass nanostructures reflect nearly all visible light, challenging assumptions

https://phys.org/news/2025-06-glass-nanostructures-visible-photonics-assumptions.html
18•bookofjoe•3d ago•3 comments

Whitesmiths C compiler: One of the earliest commercial C compilers available

https://github.com/hansake/Whitesmiths-C-compiler
90•todsacerdoti•4d ago•23 comments

New Process Uses Microbes to Create Valuable Materials from Urine

https://newscenter.lbl.gov/2025/06/17/new-process-uses-microbes-to-create-valuable-materials-from-urine/
11•gmays•4h ago•3 comments

Project Vend: Can Claude run a small shop? (And why does that matter?)

https://www.anthropic.com/research/project-vend-1
165•gk1•7h ago•68 comments

Rust in the Linux kernel: part 2

https://lwn.net/SubscriberLink/1025232/fbb2d90d084368e3/
9•chmaynard•1h ago•0 comments

Parameterized types in C using the new tag compatibility rule

https://nullprogram.com/blog/2025/06/26/
123•ingve•17h ago•58 comments

PJ5 TTL CPU

https://pj5cpu.wordpress.com/
76•doener•16h ago•1 comments

US Supreme Court limits federal judges' power to block Trump orders

https://www.theguardian.com/us-news/2025/jun/27/trump-supreme-court-birthright-citizenship-scotus
266•leotravis10•5h ago•385 comments

Show HN: Sink – Sync any directory with any device on your local network

https://github.com/sirbread/sink
108•sirbread•17h ago•78 comments

Sailing the fjords like the Vikings yields unexpected insights

https://arstechnica.com/science/2025/06/this-archaeologist-built-a-replica-boat-to-sail-like-the-vikings/
133•pseudolus•4d ago•50 comments

Alternative Layout System

https://alternativelayoutsystem.com/scripts/#same-sizer
353•smartmic•1d ago•60 comments