Conceptual Design Sketch
Robots are increasingly being developed for use in more extreme/hazardous environments. Many potential applications of robotics involve operating in low-visibility environments, including search and rescue operations, heavy dust, sandstorms, thick smoke, etc. In these environments, LiDAR or cameras are less effective at mapping an environment for navigation; however, ultrasonic sensing works in all these scenarios. Our Ultrasonic Mapper project will provide environmental data that can generate a reliable map of the area, enabling navigation for robots whether they are autonomous or human-operated.
The Ultrasonic Phased Array transmit and receive circuitry was based off the HC-SRO4 module to decrease research and development time, allowing our team to create a phased array proof of concept in a week (needed for project approval by Purdue faculty). To start, I studied the HC-SR04 documentation and probed the device to understand how the module works.
Basically the HC-SR04 runs a microcontroller (MCU) that interfaces the Ultrasonic transmit and received signals to an external controller via a "Trigger" signal and a "Echo" pulse. The trigger signal, a 10 microsecond TTL pulse, just tells the MCU that its time to transmit. The MCU then creates an 8 cycle burst at 40kHz that is differentiated before driving the transducer. At the end of this burst, the MCU sets the Echo pin high, starting the Echo Pulse. When a reflected ultrasonic signal is received, the MCU sets the Echo pin low. Thus, the Echo Pulse length is proportional to the distance the ultrasonic wave traveled so you can calculate distance the wave traveled or, in other words, how far away is a barrier.
HC-SR04 Module
HC-SRO4 Drive Pulse with Transducer Load (Yellow) & Echo Signal (Green)
HC-SRO4 Raw Receive Signal
For this proof of concept, we needed to show that beamforming would be possible. To do this, I set up four HC-SR04s with a pitch of 2 times the wavelength (the closest multiple of half wavelength the modules could physically be). The pitch of the transducers will be better on the final version and there will be more transmitters, but this was the best we could do without ordering anything new. By putting a time delay on the Trigger signals, these four would act as the transmitter array. For a receiver, I took a fifth HC-SR04 and soldered wires to the receive transducer to read the raw receive signal. I did not use the Echo signals of either the transmitters and receiver and the receiver was not powered. I then made a grid of 5inx5in squares on our desk to space out measurement points.
For software, we ran tests on an ESP32 module. I set up five angles: +30, +15, 0, -15, -30. This meant I only had to calculate 2 time delays (+30, +15) and just flip the order of transmitters for their negative angle (-30, -15). (0 degrees has no time delay). I calculated the time delay with the equation listed below. To make sure our data made sense and that our measurement ranges would show beamforming, I also calculated a far-field distance. Past this point, the main beam and grating lobes should stand out. The equation I used is also listed below.
HC-SR04 Beamforming Test Set Up
Our tests showed Beamforming!!! When moving the receiver around in the far-field there were clear grating lobes and a strong main lobe. The grating lobes were kinds strong, but we expected that with such few transmitters in our array spaced out so far. Showing the main lobe being in multiple positions live turned out to be enough for the Purdue Faculty to approve our project. However, to have solid documentation of the beam steering we did a full set of mapping for 0 degrees and for 15 degreees. This is what is pictured below, with an expected lobe shape overlaid on top which matches our data.
Beam Steered 0 degrees
Beam Steered 15 degrees
Phased Array Subsystem Block Diagram
As state before, the transmit circuit was based off the HC-SR04 module design. The HC-SR04 uses the same CUSA ultrasonic transducer and MAX232 chip for signal differentiation. However, on the HC-SR04 a MCU is used to create the 8 cycle 40kHz pulse that is differentiated. For our design, we determined that having our MCU create 8 (one for each transmitter) of these 8 cycle 40kHz pulses simultaneously would be difficult and potentially would have overlapping tasks. Thus, I designed a 555 timer circuit that generates a 40kHz signal for as long as the reset pin is set high. For a 8 cycle pulse, this is ~205uS. This means that our MCU has to time the setting high of the reset pins and then the setting back low of the reset pins with a 205uS delay in between these tasks.
Transmit Circuitry Schematic
Breadboard testing was done to prove out the transmit circuit design before the circuit was duplicated 8 times and a proper PCB was designed. The initial 205uS transmit pulse is shown in the first image. The second signal shows the 8 cycle ~40kHz generated by the 555 timer. The last two images show the final differentiated signal with the ultrasonic transducer both disconnected and connected.
MCU Transmit Signal
Transmit Drive Pulse (Pre-differential)
Transmit Signal (no load)
Transmit Signal under Load
Receive Circuitry Schematic
As state before, the receive circuit was based off the HC-SR04 module design. The CUSA ultrasonic transducer selected for the project is the same transducer. The LM324 amplifier is the same as the HC-SR04 with the exception of the voltage divider which I modified to fit the 3V3 voltage range our MCU uses. I then removed the rest of the HC-SR04's signal processing and replaced it with a simple envelope detector. This envelope will be read by the MCU's ADC and then the signal processing can be done with software. This was done to allow for integration flexibility and detailed signal processing/tuning that the analog signal processing wouldn't allow.
Breadboard testing was done to prove out the receive circuit design before a proper PCB was designed. The signal was tested at each of the phased array block diagram's signal arrows: raw ultrasonic transducer signal, signal before the envelope detector and the envelope signal. These tests were done twice, once with the receiver close to a single transmitter (~1cm away) and once with the single transmitter 30cm away (approximately 1/8 * 2.5 meters, 2.5m being the desired minimum operating range). The following images show these signal tests with the closer set-up on the left and the farther set-up on the right.
Raw Received Signal (Close)
Raw Received Signal (Far)
Amplified Received Signal (Close)
Amplified Received Signal (Far)
Amplified Received Signal Envelope (Close)
Amplified Received Signal Envelope (Far)
This full schematic has 8 copies of the transmit circuit all with shared 5V and GNDs. There is a single receive circuit onboard as well. A 14 pin Molex connector will connect the Ultrasonic Phased Array with our main computing & power board. 8 pins are for the 8 transmit circuits 555 timers, 1 pin is for the receive envelope, 3 pins are for GND and 2 pins are for 5V.
Ultrasonic Phased Array PCB designed on KiCad!
Following successful breadboard testing, I developed a PCB to hold the full array. I am currently awaiting the PCB's fabrication and a finalized PCB design of the control/power board. The Phased Array PCB should be arriving early-mid November with board testing planned to be done by Thanksgiving!