Navigation / Embedded systems

IMU Electronic Compass

Role
Electronic compass hardware and firmware
Period
Aug. 2023 — Apr. 2025
Outcome
TODO(berk): a measurable result — e.g. heading accuracy, update rate, sea-state conditions tested under.
  • IMU sensor fusion
  • Mahony filter
  • STM32
  • GNSS
  • CAN bus

Developed as part of professional work. Architecture is described at a high level; proprietary schematics, source code and client details are omitted.

The problem

OKHAN, an unmanned surface vehicle, needs a reliable heading reference even when the GNSS compass alone is degraded — multipath near shore, GNSS dropout, or vessel dynamics that outpace GNSS update rate. TODO(berk): confirm and sharpen this framing.

My role

I developed the hardware and embedded firmware for an IMU-based electronic compass that supports the vessel’s GNSS compass system, and contributed to the wider navigation and positioning electronics as part of system integration and maritime field testing.

Constraints

TODO(berk): update-rate requirement, accuracy target, vibration/shock environment on the vessel, power budget.

System architecture

MEMS IMU feeding a Mahony sensor-fusion filter running on an STM32, producing a heading estimate that backs up and cross-checks the GNSS compass. TODO(berk): block diagram (SVG) of the compass board and its interface to the vessel’s navigation computer.

Firmware design

Mahony filter tuned for a marine vibration/motion environment. TODO(berk): filter update rate, calibration routine, how heading is arbitrated against the GNSS compass when they disagree.

Communication

TODO(berk): how the compass reports heading to the rest of the vessel — CAN, NMEA-2000, serial — and why.

Hardest problem

TODO(berk): the specific failure — e.g. an early filter divergence under vessel vibration, a calibration drift issue — how it was diagnosed and fixed.

Result

TODO(berk): measured outcome from field testing — heading accuracy, drift over time, performance vs GNSS-only.

What I’d do differently

TODO(berk)