Engineering documentation for the GPS beacon tracking gimbal system
The following white papers document the design, implementation, and measured performance of the MicroRobo Systems GPS beacon tracking gimbal — a three-component system spanning airborne embedded firmware, brushless motor control, and a Python ground station. The papers are written for senior embedded systems engineers and are honest about prototype status and known limitations.
Full system architecture covering all three hardware components, the end-to-end latency budget (73–138 ms pre-filter, ~650 ms CDF dominant), EKF design rationale for both the airborne and ground station filters, gimbal tracking architecture including critically-damped setpoint filtering and lead compensation, and measured steady-state position hold accuracy (0.46° RMS elevation, 0.47° RMS azimuth under camera load).
ICM-20948 DMP integration via SPI1, u-blox NEO-M9N UBX binary parsing with CFG-PRT flash-save ordering, BMP581 barometric altitude on Wire2, QMC5883L magnetometer, 9-state NED EKF with bias estimation, 34-byte CRC-16 protected telemetry frame design, and simultaneous 3-axis gyroscope stabilizer for the carrier aircraft via S.Bus and six servo outputs.
Differential control mode selection (cascaded vs. direct-voltage), 25 kHz PWM for audible noise elimination, FlexPWM register conflict analysis explaining the exclusion of center-aligned 3PWM, D-term zeroing rationale for AS5048A quantization noise, 2 kHz loop rate cap, second-order IIR notch filter design for 4.9 Hz structural resonance, three-tier runaway fault state machine, and measured Bode plots with plant characterization data.
Multi-threaded architecture with single IPC module, Van Loan process noise for irregular-interval EKF execution, three-gate GPS outlier rejection (Mahalanobis, acceleration plausibility, range), critically-damped setpoint filter design and tuning, VISCA zoom rate limiting, MRSLOG binary log format evolution (V1→V2→V3), replay engine design, and loop timing diagnostics with missed-tick detection.
The source code is open for noncommercial use. Commercial licensing and consulting engagements are available.
Get In Touch