Useless Robots

Robotics, Electronics, and Embedded Systems


Calculating Relative Distance with Sound

When lightning strikes the ground we hear the lightning first, followed by the thunder. Using the difference in time, we can calculate the distance.

This served as the inspiration for a project I started three and a half years ago as a freshman in college, called “Radio on/off audio controlled homer”. This project got shelved, but I am now going to continue work from a different angle. Back then I attempted to use analog methods to create a sensor to suit my needs. Now I will go a more digital route that will utilize digital filters implemented on an FPGA. This will lend itself to more rapid development and easier troubleshooting.

This is a rough schematic of what this very rough prototype looks like. I have a 433 MHz transmitter and speaker set up to send out a radio/sound pulse. On the receiving end, I have an FPGA hooked up to a 433MHz receiver and a mic hooked up to an ADC. The FPGA times the difference in arrival times and sends this information over UART so it can be displayed on a terminal.

Here’s a test of the prototype. I hope to eventually implement good filters so I can use sounds in the inaudible range. For now though, there’s annoying clicking.


  • Add more mics to allow calculating relative position of the receiver with respect to the transmitter
  • 3D print a structure to hold all of this together
  • Design FIR filters within FPGA software to select for transmitted sound frequencies
  • Figure out the best way to compare arrival times (threshold + timers or cross-correlation)
  • Write an algorithm to use the difference in arrival time to calculate the relative position

Share this post