Technology

Why laser. How it locks.

RF communications are jammed, licensed, and bandwidth-limited. Laser is unjammable, undetectable, and orders of magnitude denser. The only hard problem is pointing — and that is exactly what the PAT system solves.

PAT System

Three states. One lock.

The pointing, acquisition, and tracking algorithm runs entirely on-module — STM32H7, C++17, zero heap allocation.

SEARCHING
ACQUIRING
TRACKING
SEARCHING

Archimedean Spiral Scan

01

Starting from coarse GPS pointing, the module sweeps an Archimedean spiral pattern — 0.15° step, 2° max radius — at 30 Hz. No prior alignment needed.

  • GPS coarse estimate within ±2°
  • Spiral step: 0.15° radial gap per loop
  • Max scan radius: 2.0°
  • 30 Hz scan rate
ACQUIRING

Kalman Filter Convergence

02

When the QPD beacon is detected, a 4-state constant-velocity Kalman filter initialises. PID drives the gimbal toward the filtered estimate. Lock confirmed after 50 consecutive frames within 0.08°.

  • 4-state Kalman (pos + velocity, az + el)
  • Lock threshold: 0.08°
  • LOCK_FRAMES: 50 frames
  • IMU body-rate feed-forward active
TRACKING

Dual-Loop Closed Control

03

Coarse gimbal handles slow drift (wind, platform motion). FSM fine-corrects high-frequency vibration at 1 kHz. A 5 Hz IIR filter separates the two regimes. 10-step Kalman prediction compensates control loop latency.

  • Gimbal loop: PID kp=20, ki=1.5, kd=0.8
  • FSM loop: alpha=0.98, 1 kHz
  • 5 Hz IIR low-pass separates coarse/fine
  • 10-step lookahead prediction

Wire Protocol

UART framing with CRC-8/MAXIM

Compact packed structs. SPI and shared-memory variants use raw structs directly. Python lct_interface.py mirrors the C headers with size assertions at import.

Frame: [0xA5][0x5A][TYPE][LEN][...][CRC8]
LCTConfig44 bytes11 floats — gains, thresholds
LCTInput30 bytesGPS + IMU + timestamp
LCTStatus21 bytesstate + error + gimbal cmd
LCTTelemetry34 bytes8 floats + diagnostics
Simulation Results

Numbers that don't lie.

Validated in dual-terminal bilateral Python simulation — wind, 45 Hz vibration, colored turbulence. C++ library matches result within 1%.

0.00s
Bilateral Lock Time
Full two-terminal link acquisition from cold start
0.00 mdeg
RMS Tracking Error
Steady-state pointing error in TRACKING mode
0.0%
Link Availability
Uptime across simulated wind + vibration + turbulence
0 Hz
Control Rate
FSM fine-correction loop — STM32H7 FPU native
Competitive Landscape
SOLUTIONLOCK TIMEUNIT COST
Traditional LCT10–60 s€50k–500k
RF / Tactical Radio< 1 s€2–20k
LCT-1 Moduleours< 3 sTBD