Gyroscope Noise Filter

Apply a noise filter on gyroscope to avoid jitter in head tracking / VR apps such as Google Cardboard, or any other app using the gyroscope. For example useful for Moto G and Huawei Ascend phones, but can be used with any rooted Android phone.

The gyroscope is the main sensor for head tracking / virtual reality apps.

However, it's common for phones' gyroscopes to be noisy, which in practice shows as jitter, and this can create a dizzyness feeling and nausea, particularly when standing still (the "camera" still moves around just like if you were at sea).

Android now offers "virtual" sensors, which use a method known as sensor fusion to avoid those noisy outputs by combining several sensors (usually: gyroscope, accelerometer, magnetometer).

However, it's up to each app dev to use these virtual sensors, and to implement further post-processing to smooth the sensor and reduce the noise.

This module adopts another approach: it hooks directly to the hardware gyroscope and it preprocess every outputs with smoothing filters before relaying the data to the apps.

Therefore, the noise is reduced or even eliminated of the gyroscope's output for every apps.

Licensed under GPLv2+ (GNU General Public License v2 or later at your convenience).

Author(s): 
Package: 
net.kajos.gyronoisefilter
Version name: 
1.6
Release type: 
Stable (low risk of bugs)
Number of downloads: 
66,949 in total · 35 in the last 24 hours
MD5 checksum: 
584d6e50da6ef2cf4d5ea69caa978e0c
Uploaded on: 
Sunday, January 10, 2016 - 21:11
Changes: 

- 1.6:
* fixed youtube not playing videos when module activated.

- v1.5:
* refactoring methods to be modular (to support multiple hooks)
* added hook for apps using Cardboard SDK's orientation provider
* fixed rounding strategy
* fixed minimum value change strategy

- v1.4:
* refactoring and renaming SensorMedianFilter -> GyroscopeNoiseFilter
* support for more apps (TYPE_GYROSCOPE_UNCALIBRATED is now supported in addition to TYPE_GYROSCOPE)
* licensing under GPLv2+

- v1.3:
* all new preferences screen so that options can be switched and tweaked on-the-fly without having to restart the phone, and the new options are applied instantly, allowing to easily tweak and test the settings to your liking.
* more filters: running average, low-pass
* new strategies: minimum value change threshold ; stationary minimum value change ; rounding precision

- v1.2:
* Added some extra support for different Google Cardboard apps containing older versions of the library.
* Now hooks in system, so works with every Android application.
* Fixed drifting issue in some applications.

- v1.0:
* first public release

Version name: 
1.5
Release type: 
Stable (low risk of bugs)
Number of downloads: 
6,561 in total · 4 in the last 24 hours
MD5 checksum: 
8d352764d7573759d30028f942d976c7
Uploaded on: 
Wednesday, September 23, 2015 - 23:31
Changes: 

- v1.5:
* refactoring methods to be modular (to support multiple hooks)
* added hook for apps using Cardboard SDK's orientation provider
* fixed rounding strategy
* fixed minimum value change strategy

Version name: 
1.4
Release type: 
Stable (low risk of bugs)
Number of downloads: 
5,038 in total · 6 in the last 24 hours
MD5 checksum: 
1787af3141e9c1bc3eb5d7916a212c3f
Uploaded on: 
Thursday, September 17, 2015 - 00:22
Changes: 

- v1.4:
* refactoring and renaming SensorMedianFilter -> GyroscopeNoiseFilter
* support for more apps (TYPE_GYROSCOPE_UNCALIBRATED is now supported in addition to TYPE_GYROSCOPE)
* licensing under GPLv2+

- v1.3:
* all new preferences screen so that options can be switched and tweaked on-the-fly without having to restart the phone, and the new options are applied instantly, allowing to easily tweak and test the settings to your liking.
* more filters: running average, low-pass
* new strategies: minimum value change threshold ; stationary minimum value change ; rounding precision

- v1.2:
* Added some extra support for different Google Cardboard apps containing older versions of the library.
* Now hooks in system, so works with every Android application.
* Fixed drifting issue in some applications.

- v1.0:
* first public release