MagCalCockpit (magcc) aims to make magnetometer calibration
easier in non-ideal conditions, with a real-time display that guides the
operator through the calibration and shows what data has been collected and
what is still missing.
It is experimental and in active development: it works and is in use, but expect breaking changes between 0.x releases.
What it does
- Real-time adaptive calibration. A recursive least-squares sphere fit updates as data arrives. For the current roll and pitch, the expected field must lie on a ring on the sphere, and the ring is drawn live so the operator can fill the sphere deliberately.
- Gyro gating. Samples are logged only while the sensor is rotating.
- Data inspection, trimming and pruning. Slice the timeline, disable segments, limit roll and pitch, and inspect individual points.
- Saving and revisiting. Each export stores the raw data, the calibration and the full session, so a calibration can be reopened later.
- LSE-seeded Levenberg–Marquardt calibration.
- Local field reference. Field intensity, inclination and declination from NOAA's WMMHR at the operator's location.
- Level-frame diagnostics. Inclination and field-intensity error per sample, relative to the local reference.
- Sensor-agnostic input. Any AHRS that sends a 13-field UDP packet works, and logged CSVs can be replayed.
Getting it
pip install magcc
Python 3.11 or newer. GPL-3.0. Source on GitHub.
People
Lead: Raymond Turrisi