Ian Cleary
Projects

Engineering tools, built in the open.

I build RF libraries to move recurring analysis out of Excel into reusable, testable code. My projects also cover schematic checking and lab automation, alongside my professional work in spacecraft systems.

Oct 29, 2025

Schematic Checking

Turn Schematic Checking Tool netlists into Python records for dataframe analysis and interface checks.

Problem
A schematic netlist is useful evidence for interface review, but its text format needs to become structured data before it can be queried in an analysis workflow.
My contribution
I wrote a parser that reads Schematic Checking Tool netlists and returns records, with symbol selection kept in the parsing interface.
Result
Those records can be loaded into a dataframe or exported to CSV. The parser returns records rather than requiring a particular Pandas version.
Schematic reviewAutomationPython
Source and examples

Oct 20, 2025

Rigol Oscilloscope Driver

Python control of Rigol DS1000Z oscilloscopes, with explicit USB and Ethernet backend choices.

Problem
I wanted to learn how to control an oscilloscope and capture its data through Python, while choosing the VISA backend that suited the connection.
My contribution
I continued MIT-licensed drivers from jeanyvesb9/Rigol1000z and amosborne/rigol-ds1000z, removed automatic resource search, separated optional connection dependencies, and added examples.
Result
The driver supports scope control and data capture over USB or Ethernet. Users can install the backend they need, and the repository retains upstream attribution.
Lab automationOscilloscopesPython
Source and examples

Sep 9, 2025

Gain Lineup

RF signal-chain analysis moved from Excel into reusable Rust models, with stage-by-stage gain, noise, and linearity results.

Problem
Managing RF signal-chain analysis through Excel means carrying the calculation logic in workbooks. I wanted that logic in reusable code, with explicit inputs and tests.
My contribution
I built Rust models for the input signal, hardware blocks, and cascade results, plus a CLI that reads a chain from TOML.
Result
The model reports results at each stage. The CLI produces an HTML table, so the analysis can be inspected alongside its input assumptions.
RF analysisSignal chainsRust
Source and examples

May 18, 2025

RF Conversions

Shared Rust functions that replace spreadsheet formulas for RF power, frequency, noise, and compression calculations.

Problem
Power, frequency, and noise conversions get repeated throughout RF analysis. I wanted shared functions to replace copied Excel formulas and keep unit assumptions visible.
My contribution
I collected scalar conversions and RF equations into small Rust modules for power, frequency, noise, and compression points.
Result
Analysis code can call named conversion functions instead of repeating formulas. The repository documents the units and includes examples and tests.
RF analysisUnit conversionsRust
Source and examples

May 11, 2025

Link Budget

Reusable Rust link-budget models that move transmitter, propagation, receiver, and modulation analysis out of Excel.

Problem
I wanted end-to-end link-budget calculations in reusable code instead of Excel workbooks. The transmitter, propagation, receiver, and waveform assumptions need to remain explicit as inputs change.
My contribution
I built Rust models for transmitters, receivers, path loss, and modulation, with calculations for signal quality, error rates, and coding.
Result
The same model can calculate C/No and Eb/No, estimate BER, and compare available performance with a target to determine link margin.
RF analysisLink budgetsRust
Source and examples