Status: Active Development 3×3 v1 — PCB Fab Ready 4×4 — Design Phase

Other RF Projects: Antenna / RF Overview — L-Band satellite tracking antenna, HAM radio, radar theory, and the broader RF learning journey that led here.


Overview

Designing a 5.8 GHz electronically-steered phased array antenna system for drone-mounted applications. The array uses digital phase shifters on each antenna element to steer the beam electronically — no moving parts — enabling a drone to maintain signal lock with a ground station even during aggressive maneuvers.

Goal: Replace fixed antennas on FPV drones with a self-steering array that actively tracks the ground station, extending range and link reliability.

Tech Stack: RF Design • Rogers 4350B • KiCad • Python • STM32H743 • SPI • Beamforming • Phased Arrays


Two-Variant Approach

Rather than committing to a full high-performance build immediately, the project uses a two-stage strategy:

  3×3 Low-Cost (v1) 4×4 High-Performance (v2)
Elements 9 16
Phase Shifter MAPS-010145 (4-bit) HMC1133 (6-bit)
Phase Resolution 22.5° 5.625°
Theoretical Gain 9.5 dBi 12 dBi
Board Size 150 × 180 mm 200 × 250 mm
Est. Cost ~$450 ~$2,750
Status Fab Ready Design Phase

The 3×3 version validates the full architecture — RF stackup, control interface, beamforming algorithms, and drone integration — at 83% lower cost before committing to the high-performance build.


PCB Design

Programmatic Generation

The entire PCB — netlist, component placement, and routing — is generated via Python scripts using KiCad’s scripting API. There is no manually drawn schematic.

# Generate netlist and auto-place all components
exec(open('generate_3x3_array.py').read())
exec(open('layout_3x3_pcb.py').read())

This approach makes the design fully reproducible and parameterizable. Changing element count, spacing, or component values is a script edit rather than a manual redraw.

Hybrid RF Stackup

Standard FR4 has unacceptably high dielectric loss at 5.8 GHz. The board uses a hybrid 4-layer stackup:

Layer Material Thickness Purpose
F.Cu Rogers 4350B 0.508 mm RF traces & antenna patches
In1.Cu GND plane
In2.Cu FR4 VCC_5V plane
B.Cu FR4 0.508 mm Digital signals (SPI, GPIO)

Rogers 4350B was chosen for its stable dielectric constant (εr = 3.66 ± 0.05) and low loss tangent (tan δ = 0.0037), critical for maintaining 50Ω impedance at RF frequencies. Using Rogers only on the top layer reduces cost by ~30% compared to a full Rogers build.

RF Trace Design

All RF traces run exclusively on F.Cu (Rogers layer) at 1.077 mm width for 50Ω impedance. Transitions from the distribution network to the phase shifter pads use 0.3 mm neck-downs with impedance-matched taper geometry. All corners are 45° or curved to minimize reflections.

Blind Via Strategy

The hybrid stackup requires blind vias to connect surface components to the inner planes:

  • F.Cu → In1.Cu: GND connections (phase shifters, decoupling caps)
  • F.Cu → In2.Cu: VCC_5V power distribution

Blind vias from both depths originate from F.Cu (top side only), requiring two controlled-depth drilling passes from a single side.


Antenna Elements

Each element is a microstrip patch antenna designed for 5.8 GHz on Rogers 4350B:

  • Patch dimensions: 16.93 × 13.39 mm
  • Element spacing: 25.84 mm (λ/2) — prevents grating lobes
  • Feed: Inset microstrip feed for impedance matching
  • Target return loss: S11 < −10 dB at 5.8 GHz

The patch footprints are generated programmatically with exact dimensions derived from the substrate properties, ensuring repeatable impedance matching across all 9 (or 16) elements.


Phase Shifters & Control

3×3: MAPS-010145

  • 4-bit digital phase shifter (16 states, 22.5° resolution)
  • 3.5–6.0 GHz bandwidth
  • Single +5V supply — no negative rail needed
  • Native SPI interface — no shift registers required
  • 9 individual chip-select lines from STM32 GPIO (PB0–PB8)

4×4: HMC1133LP5E

  • 6-bit digital phase shifter (64 states, 5.625° resolution)
  • 4.8–6.2 GHz bandwidth
  • Parallel control via 74HC595 shift registers (12× daisy-chained)
  • Identical shift register architecture to 3×3 — same firmware structure

Microcontroller

Both versions use the STM32H743VIT6 (480 MHz Cortex-M7, LQFP-100):

  • High-speed SPI up to 150 MHz for fast beam updates
  • Enough GPIO for either control architecture
  • Firmware developed on the 3×3 transfers directly to 4×4

Beamforming

The STM32H7 runs a real-time beamforming algorithm that converts a target angle into individual phase shifts for each element:

def calculate_phase_shifts(target_azimuth, target_elevation):
    k = 2 * pi / wavelength
    phase_shifts = []
    for row in range(N):
        for col in range(N):
            x = (col - (N-1)/2) * element_spacing
            y = (row - (N-1)/2) * element_spacing
            phase = k * (x * sin(target_azimuth) * cos(target_elevation)
                       + y * sin(target_elevation))
            phase_code = int((phase % (2*pi)) / (2*pi) * num_states)
            phase_shifts.append(phase_code)
    return phase_shifts

At >1 kHz update rate, the array can track a moving ground station in real time, compensating for drone pitch, roll, and yaw when paired with an IMU.


Performance

Metric 3×3 Low-Cost 4×4 High-Perf
Gain 9.5 dBi 12 dBi
Beam Width ~30° ~20°
Steering Range ±60° ±60°
Range Improvement 2–3× vs dipole 3–4× vs dipole
Phase Accuracy ±11° ±2.8°
Update Rate >1 kHz >1 kHz

Current Status

3×3 v1 — Fab Ready

  • ✅ Netlist programmatically generated
  • ✅ Components auto-placed via scripting
  • ✅ RF traces routed on Rogers layer (F.Cu)
  • ✅ SPI digital routing on B.Cu
  • ✅ GND plane (In1.Cu) and VCC_5V plane (In2.Cu) complete
  • ✅ Blind vias placed and verified
  • ✅ DRC: 0 unconnected pads, all remaining violations waived by design
  • ✅ Gerbers generated — awaiting quote from RF specialty fab
  • ⏳ Awaiting fabrication

4×4 High-Performance — Design Phase

  • ✅ RF layout complete (antenna array, phase shifters, RF traces)
  • ✅ Shift register architecture defined
  • ⏳ Shift register integration into PCB pending
  • ⏳ Full routing pending

Planned Testing

Once the 3×3 board arrives:

  1. Power-on test — verify 3.3V and 5V rails, current draw
  2. SPI comms — verify all 9 phase shifters respond to individual CS lines
  3. RF characterization — VNA measurement of S11 per patch, insertion loss through phase shifters, phase accuracy per state
  4. Beamforming — program target angles, measure actual beam pattern
  5. Drone integration — mount on drone, measure range improvement vs fixed antenna

Updated: