Project · Uhnder
PySCOTT: a scan configuration tool for radar
At Uhnder I wrote and owned a tool called PySCOTT, short for Scan COnfiguraTion Tool: a Python package for predicting how the company’s digital-code-modulation (DCM) radar should perform for any combination of antenna array and scan preset, before anyone put a sensor on a bench.
The problem
A radar-on-chip ships with dozens of scan presets. Each one trades range, Doppler and angular resolution against dwell time and power, and each customer’s antenna arrangement changes the picture again. Systems engineers, applications engineers and the production line all needed the same answer to the same question: for this sensor, in this configuration, what signal-to-noise ratio should I expect at this range, this speed, and this angle? Before PySCOTT that answer lived in scattered spreadsheets and MATLAB scripts that disagreed with each other.
What it does
- Link-budget model. Computes theoretical SNR as a function of range, Doppler, azimuth and elevation for a given antenna configuration and scan preset, including the processing gain of the DCM waveform.
- Simulated or measured antennas. Runs the same model on an antenna pattern from simulation or on a pattern measured in the chamber, so a design in CAD and a module on the bench are compared like for like.
- Gain vs. angle and SNR vs. range. Combined curves across scan presets, exported as plots and tables that engineers could drop straight into reports.
- A GUI for non-programmers. A Dash front end (with dash-bootstrap-components) so anyone on the team could explore configurations without writing Python.
Where it went
- Production test limits. Outgoing-quality-control SNR checks for modules were derived from PySCOTT’s theoretical curves rather than from hand-set thresholds, which made limits explainable and easy to regenerate when a preset changed.
- Customer coverage maps. 2D and 3D coverage visualizations built on the model were used in customer engagements to show what a proposed sensor placement would actually see.
- A shared reference. It became the one place where the antenna, waveform and DSP assumptions were written down as code, which settled a lot of arguments.
Stack
Python with NumPy, SciPy, pandas and Plotly; Dash for the interface; measured antenna data from the test chamber; results cross-checked against MATLAB models and bench measurements on turntables and in interference simulations.