2026-06-14

Amusing bugs: "Robot calibration is interfering with my headphones"

At work, we build liquid handling robots for biology labs. Once, a coworker reported this (paraphrased):

The weirdest thing keeps happening and I can’t believe it’s a coincidence anymore. Every time I run calibration, and I put on or take off the calibration probe, it pauses the music in my headphones?!?

The calibration probe is a small piece of metal. You temporarily screw it onto a nozzle:

(Animation source)

And then the robot uses it to help with capacitive sensing, calibrating its sense of position in 3D space:

(Animation source)

So why would this interrupt somebody’s music?

The hypothesis that we all hoped was true,1 because it would have been hilarious, was that the calibration probe was accidentally acting as a wireless antenna and interfering with Bluetooth. Like how microwaves used to knock out Wi-Fi.2 The actual cause turned out to be more mundane, but I still think it’s funny.

When my coworker calibrated the robot, he controlled it from his laptop, running our desktop app. Throughout the calibration process, the desktop app plays various explanatory animations, like the ones above.

Meanwhile, Bluetooth has some kind of limitation where it can only play audio from one device at a time. You might have experienced this if you’ve ever gotten a call on your phone while listening to music on your computer, with both devices connected to the same headphones. One of the devices has to take priority. That’s basically what happened here.

The animations are silent—but for some reason, instead of not having any audio tracks, they had empty audio tracks. An artifact of how they were exported, I suppose. Apparently, this is enough to count as “playing audio.”

And so, whenever one of these animations popped up on my coworker’s laptop, it would appear to his heaphones as if he had just played some new media on his laptop, and that media would take priority over whatever was previously playing from his phone.3

To fix it, we just had to make sure that whenever we played an animation, it was well and truly muted. In this case, an Electron app, we just had to set the muted attribute on the relevant <video> tags. Stripping out the empty audio tracks also would have worked.

Footnotes

  1. Well, all of us who didn’t have a hand in EMC testing.

  2. Is this an obscure reference? I tried using it once to explain why software cannot assume that the network is reliable, but I got blank stares. Or should I say I got…lukewarm reception. :3

  3. It’s unclear to me exactly how the prioritization works—how much of it is up to the application vs. the OS vs. the headphone firmware, and what heuristics decide which stream to prioritize.