Building a ground penetrating radar (GPR) requires four core subsystems: a pulse transmitter or signal generator, a wideband antenna pair, a receiver with high-speed sampling, and signal processing software to turn raw data into a readable image. The concept is straightforward: send a short burst of electromagnetic energy into the ground, then measure the reflections that bounce back from buried objects, voids, or changes in soil composition. The engineering challenge is in the details, particularly generating extremely short pulses, capturing faint return signals, and staying within legal emission limits.
Choosing an Architecture: Pulse vs. FMCW
The two main GPR architectures are impulse-based and frequency-modulated continuous wave (FMCW). An impulse GPR works in the time domain by generating, transmitting, and receiving a single very short pulse with a large instantaneous bandwidth. You fire a pulse, then listen for echoes. The time delay between transmission and reception tells you how deep a reflector is. This approach is conceptually simpler and is the more common starting point for DIY builds.
An FMCW GPR instead sweeps a continuous signal across a range of frequencies (a “chirp”) and measures the frequency difference between what it transmitted and what bounced back. That frequency difference, called the beat frequency, corresponds to the distance of the reflecting object. FMCW systems can achieve better signal-to-noise ratios at lower peak power, but they require more complex RF circuitry, including a voltage-controlled oscillator with a clean linear sweep and a mixer to extract the beat frequency. For a first build, impulse GPR is typically the more accessible choice.
Building the Transmitter
The transmitter’s job is to produce an extremely short electrical pulse, on the order of one to a few nanoseconds wide. Shorter pulses mean wider bandwidth, which translates to finer depth resolution. The most common approach for DIY and research GPR uses avalanche transistors arranged in a Marx bank circuit. A Marx bank charges several capacitor stages in parallel, then discharges them in series through the rapid avalanche breakdown of the transistors, multiplying the voltage with each stage. A two- or three-stage Marx bank using common avalanche transistors can produce pulses in the range of 50 to 200 volts with sub-nanosecond rise times.
The key components are the avalanche transistors themselves (devices like the 2N2222 or FMMT413 are popular in hobby builds), small ceramic capacitors for energy storage, and resistors to set the bias and charge rate. The circuit layout matters enormously at these speeds. Keep all traces as short as possible, use a solid ground plane, and avoid stray inductance from long leads. The pulse repetition rate is typically set between a few kilohertz and several hundred kilohertz, fast enough to collect dense data as you move the antenna across the ground.
Antenna Design and Shielding
Bowtie antennas are the standard choice for GPR because they are easy to manufacture and offer reasonably ultra-wideband performance. A bowtie is essentially two triangular copper elements facing each other tip-to-tip, fed at the gap between them. The length of each triangular arm determines the lowest operating frequency: for a 500 MHz center frequency, each arm is roughly 15 cm long, while a 1 GHz antenna has arms closer to 7 to 8 cm. You can etch or cut these from copper-clad FR-4 circuit board material.
A GPR system uses two antennas, one for transmitting and one for receiving. The spacing between them affects performance. Research systems typically place the transmitter and receiver 10 to 14 cm apart for antennas in the 800 MHz to 1 GHz range. Too close and the direct signal between antennas overwhelms the receiver. Too far and you lose sensitivity to shallow targets.
Shielding is critical. Without it, the antennas radiate energy upward and sideways, picking up reflections from everything above ground. The standard approach is to enclose the antennas in a metal back-cavity, essentially a copper or aluminum box open only on the ground-facing side. Lining the inside of this cavity with absorber material prevents internal reflections from corrupting the signal. Traditional builds use ferrite-loaded foam absorbers. More advanced designs use metamaterial absorbers made from patterned copper on FR-4 substrate backed by a resistive film (carbon conductive paste), which can achieve wideband absorption in a thinner profile. For a first build, commercially available microwave absorber sheets placed inside a copper-lined box will work.
Receiver and Sampling Strategy
The reflected signals returning from the ground are extremely fast, often occupying bandwidth from hundreds of megahertz to several gigahertz. No affordable analog-to-digital converter (ADC) can sample a single pulse at that speed directly. The solution is equivalent time sampling, a technique that exploits the fact that GPR pulses are highly repetitive.
Because the transmitter fires thousands of identical pulses per second into ground that isn’t changing between pulses, you can treat each pulse as a copy of the same signal. On the first pulse, you sample at time zero. On the next pulse, you sample a tiny fraction of a nanosecond later. Over hundreds or thousands of pulses, you reconstruct the entire waveform one point at a time. This lets a relatively slow ADC (even one running at only a few megahertz) capture signals with effective bandwidths in the gigahertz range.
Implementing this requires precise timing control. An FPGA or fast microcontroller generates a trigger signal for the transmitter and a progressively delayed sampling clock for the ADC. The delay increment between successive samples determines your effective sampling rate. A programmable delay line or a digital delay generator built from an FPGA works well for this. Each captured sample point is stored and assembled into a single trace representing one pulse’s round trip into the ground.
Signal Processing and Display
Raw GPR data collected at a single position produces an “A-scan,” a one-dimensional trace of signal amplitude versus time (which corresponds to depth). As you move the antenna along a line and collect many A-scans side by side, you build a “B-scan” or radargram: a two-dimensional cross-section image of the subsurface.
The raw radargram is rarely usable without processing. The most important step is background removal. The direct signal traveling straight from the transmitter to the receiver, plus reflections from the ground surface, create a strong horizontal band that masks everything else. The simplest technique is mean subtraction: average all the A-scans together and subtract that average from each individual scan. This removes any signal that appears consistently at the same time across all positions, revealing the localized reflections from buried objects.
Additional processing steps that improve image quality include time-zero correction (aligning all traces so the ground surface appears at the same depth), bandpass filtering (removing frequencies outside your antenna’s useful range to reduce noise), and gain compensation (amplifying deeper signals that have been attenuated by the soil). All of this can be done in Python, MATLAB, or open-source GPR processing tools like GPRPy.
Calibrating Depth Measurements
A GPR measures time, not depth directly. Converting time to depth requires knowing how fast electromagnetic waves travel through the specific soil you’re scanning. That speed depends on the soil’s relative dielectric constant: dry sand might have a dielectric constant around 3 to 5, wet clay can exceed 25. Higher dielectric constants mean slower wave propagation and shallower effective penetration.
The most practical calibration method uses hyperbola fitting. When your scan line crosses perpendicular to a buried pipe or cable, the radargram shows a characteristic hyperbolic shape because the antenna detects the object before it’s directly overhead and continues detecting it after passing. The opening angle of that hyperbola is determined by the wave velocity in the soil. By fitting a mathematical curve to the hyperbola’s shape, you can solve for the wave velocity and then calculate the object’s true depth. Research using synthetic data shows this method achieves depth errors under 1% in uniform soils and around 5% in more variable ground conditions.
If you don’t have a convenient buried pipe to calibrate against, you can bury a known object at a measured depth, scan over it, and use the resulting hyperbola to back-calculate the soil’s dielectric constant for your site.
FCC Regulations for GPR Devices
In the United States, GPR falls under FCC Part 15, Subpart F, which governs ultra-wideband devices. The rules permit GPR operation without a license, but with strict emission limits. The entire UWB bandwidth of the system must stay below 10.6 GHz. Radiated emissions are capped at specific levels depending on frequency band: the most permissive band is 3.1 to 10.6 GHz, where the limit is -41.3 dBm EIRP (measured in a 1 MHz bandwidth). Below 3.1 GHz, limits are significantly tighter, dropping to -51.3 dBm or lower. GPS protection bands near 1.2 GHz and 1.6 GHz have an even stricter limit of -75.3 dBm.
The peak emission limit is 0 dBm EIRP within any 50 MHz window centered on the frequency of highest emission. These limits are not suggestions. Operating a homemade GPR that exceeds them is illegal and can interfere with GPS, cellular, and aviation systems. If you’re building for personal experimentation, keep your pulse amplitudes low, use shielded antennas pointed at the ground, and consider testing your emissions with a spectrum analyzer before field use. Operating the device only in contact with or very near the ground surface, as the regulations intend, significantly reduces the effective radiated power seen at a distance.
Practical Build Considerations
A minimal impulse GPR can be built around a two-stage avalanche transistor Marx bank, a pair of copper bowtie antennas on FR-4, an FPGA development board for timing control, a 12- to 16-bit ADC, and a laptop running Python for processing. Total component cost for a basic system typically falls in the range of $100 to $500, depending on the ADC and FPGA board you choose. Open-source projects and university thesis designs published online provide schematics and code that can serve as starting points.
Expect the first version to have limited depth penetration (perhaps 0.5 to 1 meter in dry soil) and coarse resolution. Performance improves with better antenna shielding, cleaner pulse generation, lower-noise receiver front ends, and more sophisticated signal processing. The soil itself is your biggest variable: dry sandy soil lets radar energy penetrate several meters, while wet clay can limit you to tens of centimeters regardless of how good your hardware is.

