Solo
Mini-Circuits Power Sensor Wrapper
Python wrapper around a USB power sensor, bridging vendor .NET DLLs into a clean Pythonic API for lab automation scripts.
The problem
Mini-Circuits USB power sensors ship with a .NET SDK — fine for Windows GUI apps, inconvenient when the lab runs on Python automation scripts. The workflow kept requiring tiny wrapper scripts glued together in incompatible ways.
What I built
A clean Python wrapper around the vendor .NET DLL. Exposes a Pythonic API for the measurements the lab actually cares about: average power, peak power, burst averaging, calibration offsets. One pip-installable module replaces the glue.
Highlights
- .NET DLL interop via
pythonnet— no shelling out to vendor executables. - Typed API — every reading is a
float, every status is a real exception. - Context-managed connection —
with PowerSensor(sn=...) as ps:guarantees we release the device.
What I learned
Cross-runtime interop is mostly about defensively mapping the failure modes. The .NET side loves raising generic exceptions; the Python side needs something specific to catch. Half the value of this wrapper is the translation layer in the middle.