Skip to content
Switch branches/tags


Failed to load latest commit information.

Simple Kalman Filter Library - GitHub license GitHub stars GitHub issues


This is a basic kalman filter library for unidimensional models that you can use with a stream of single values like barometric sensors, temperature sensors or even gyroscope and accelerometers.

  • Take a look at this youtube video to see the Kalman Filter working on a stream of values!

Special thanks to Professor Michel van Biezen and his amazing work in

Repository Contents

  • /examples - Example sketches for the library (.ino). Run these from the Arduino IDE.
  • /src - Source files for the library (.cpp, .h).
  • keywords.txt - Keywords from this library that will be highlighted in the Arduino IDE.
  • - General library properties for the Arduino package manager.

Basic Usage

  • e_mea: Measurement Uncertainty - How much do we expect to our measurement vary
  • e_est: Estimation Uncertainty - Can be initilized with the same value as e_mea since the kalman filter will adjust its value.
  • q: Process Variance - usually a small number between 0.001 and 1 - how fast your measurement moves. Recommended 0.01. Should be tunned to your needs.
 SimpleKalmanFilter kf = SimpleKalmanFilter(e_mea, e_est, q);

 while (1) {
  float x = analogRead(A0);
  float estimated_x = kf.updateEstimate(x);
  // ...

Example Briefs

  • BasicKalmanFilterExample - A basic example reading a value from a potentiometer in A0 and SimpleKalmanFilter class to generate estimates.
  • AltitudeKalmanFilterExample - Uses a BMP180 barometric sensor and the SimpleKalmanFilter class to estimate the correct altitude.

Additional Documentation

Version History

License Information

This is an open source project!

Please review the file for license information.

If you have any questions or concerns on licensing, please contact


A basic implementation of Kalman Filter for single variable models.




No packages published