Skip to main content
GNSS HAT Library Documentation
Shop GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Dynamic Models

The dynamic model tells the u-blox receiver what kind of motion to expect. It affects the navigation filter — choosing the right model improves position accuracy and fix stability.

Available Models

ValueC++CPythonMax AltitudeMax SpeedDescription
0PortableJP_GNSS_DYNAMIC_MODEL_PORTABLEPORTABLE12 km310 m/sGeneral purpose, no assumptions about motion
2StationaryJP_GNSS_DYNAMIC_MODEL_STATIONARYSTATIONARY9 km10 m/sFixed position — tightest filter, best accuracy
3PedestrianJP_GNSS_DYNAMIC_MODEL_PEDESTRIANPEDESTRIAN9 km30 m/sWalking speed
4AutomotiveJP_GNSS_DYNAMIC_MODEL_AUTOMOTIVEAUTOMOTIVE5.5 km100 m/sCars, trucks
5SeaJP_GNSS_DYNAMIC_MODEL_SEASEA500 m25 m/sMarine — low altitude, low dynamics
6Airborne1GJP_GNSS_DYNAMIC_MODEL_AIRBORNE_1GAIRBORNE_1G50 km100 m/sLow-dynamics airborne (balloon, glider)
7Airborne2GJP_GNSS_DYNAMIC_MODEL_AIRBORNE_2GAIRBORNE_2G50 km250 m/sMedium-dynamics airborne
8Airborne4GJP_GNSS_DYNAMIC_MODEL_AIRBORNE_4GAIRBORNE_4G50 km500 m/sHigh-dynamics airborne (rocket, fast UAV)
9WristJP_GNSS_DYNAMIC_MODEL_WRISTWRIST9 km30 m/sWrist-worn device — accounts for arm swing
10BikeJP_GNSS_DYNAMIC_MODEL_BIKEBIKE9 km50 m/sBicycle
11MowerJP_GNSS_DYNAMIC_MODEL_MOWERMOWER9 km10 m/sRobotic lawn mower — low speed, tight turns
12EscooterJP_GNSS_DYNAMIC_MODEL_ESCOOTERESCOOTER9 km30 m/sElectric scooter

Usage

config.dynamicModel = EDynamicModel::Automotive;
config.dynamic_model = JP_GNSS_DYNAMIC_MODEL_AUTOMOTIVE;
config['dynamic_model'] = gnsshat.DynamicModel.AUTOMOTIVE
Note
Choosing the Right Model — When in doubt, use Portable — it works in all scenarios but provides less filtering. For fixed installations (base stations, time servers), use Stationary for the tightest position filter.