The ROACH beacon will send out brief 24kHz pulses of sound and a radio signal that will be received by the ROACH module. The ROACH module will have 3 microphones arranged in a triangle (for the 2D version) and eventually 4 microphones arranged in a pyramid (for the 3D version). Pulses of sound from the beacon will arrive at these microphones at different times after the radio signal arrives. The module can then use these varying times of arrival to trilaterate the position the beacon.
When a radio signal arrives at the module from the beacon. The microcontroller (TBD) on the module will start a timer. When the sonic pulse arrives at the microphones they are converted to electrical signals. These signals will first be filtered with a Hi-Q bandpass filter, then put through an envelope detector and Schmitt trigger to get a clean digital signal. These three signals will be connected to the hardware interrupts of a microcontroller that will time the arrival of these signals. The microcontroller will then either calculate the position of the beacon or reject the signals if it determines they are problematic (i.e.: sound that was bounced off a wall before arrival). This module will communicate with the robotics it is integrated into over i2c or a similar protocol.
@Joseph Primmer have you managed to test your PCBs? I'd love to contribute to the effort if I can. But I appreciate if you want to keep this solo. Either way, please keep us up to date on the latest progress!