v2.2.0 - Gain Lock, Low-Pass Filter & ML Data Collection #44
francescopace
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This release focuses on signal stability and noise reduction. A new two-phase calibration process locks the WiFi automatic gain control before NBVI calibration, ensuring clean and consistent CSI data across devices. The new low-pass Butterworth filter effectively removes high-frequency RF noise, dramatically reducing false positives in challenging environments. Additionally, new CLI tools for labeled data collection lay the foundation for machine learning capabilities in the upcoming 3.x series.
Gain Lock (AGC/FFT Stabilization)
Automatic gain control locking for stable CSI measurements, based on Espressif esp-csi recommendations.
gain_controller.h,gain_controller.cppBaseline Variance Normalization
Automatic attenuation for consistent thresholds across devices and environments.
scale = 0.25 / baseline_variancenormalization_enabledandnormalization_targetparametersLow-Pass Filter
New 1st order Butterworth IIR filter to reduce high-frequency RF noise.
lowpass_enabled: trueNBVI Improvements
Optimized parameters and restricted search range for better subcarrier selection:
alphamin_spacingwindow_sizeGUARD_BAND_LOWGUARD_BAND_HIGHDynamic null subcarrier detection replaces hardcoded lists - adapts to local RF conditions.
Performance
Lazy Variance Evaluation: Moving variance calculated only at publish time.
csi_processor_update_state()(C++),seg.update_state()(Python)Automatic sdkconfig
The ESPHome component now auto-configures all required sdkconfig options:
CONFIG_ESP_WIFI_CSI_ENABLED,CONFIG_PM_ENABLE, AMPDU settings, buffer sizes, tick rateML Data Collection
New infrastructure for building labeled CSI datasets (groundwork for 3.x):
me collectCLI subcommand for recording labeled samples.npzformat for ML-ready datasetscsi_utils.pymodule withCSIReceiver,CSICollector,MVSDetectorConfiguration Changes
Removed options (now automatic):
normalization_enabled,normalization_target, manual sdkconfig optionsDefault values: All filters disabled, normalization always active.
Enhanced logging: Movement logs now include WiFi channel and RSSI:
Testing & Documentation
test-pythonjob)micro-espectre/ALGORITHMS.mdwith scientific documentation of MVS, NBVI, Hampel filterThis discussion was created from the release v2.2.0 - Gain Lock, Low-Pass Filter & ML Data Collection.
Beta Was this translation helpful? Give feedback.
All reactions