<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Router CSI Lab</title><link>https://okwujun.pw/en/</link><description>Hands-on Wi-Fi CSI (channel state information) on a GL-MT6000 / MT7986 router: full reproduction guide, 256-subcarrier measurements, Python tooling and engineering troubleshooting.</description><language>en</language><item><title>About Router CSI Lab: author, lab environment and editorial principles</title><link>https://okwujun.pw/en/about/</link><description>Router CSI Lab is an independent project maintained by Wu Jun, focused on reproducible GL-MT6000 / MT7986 Wi-Fi CSI. Covers author responsibility, hardware, public data, commercial independence, AI disclosure, privacy and contact.</description></item><item><title>Corrections and data revisions: what changed and why</title><link>https://okwujun.pw/en/corrections/</link><description>A public record of substantive corrections to Router CSI Lab: demo group counts, sampling-rate denominators, Home Assistant capability claims, Raspberry Pi/Nexmon requirements, ESP32 evaluation, links and 404 navigation.</description></item><item><title>Browser-local CSI capture quality checker (GL-MT6000 / mt76)</title><link>https://okwujun.pw/en/csi-capture-checker/</link><description>Load a .bin capture produced by this project&apos;s csi_capture script and check framing, closed measurement groups, chain consistency, subcarriers, timestamp gaps and I/Q integrity in the browser. Files stay local and reports can be exported as JSON or Markdown.</description></item><item><title>Wi-Fi CSI chain selection: 8-chain health and missing-chain audit</title><link>https://okwujun.pw/en/csi-chain-health/</link><description>A reproducible Wi-Fi CSI chain selection audit across two GL-MT6000 captures: 6,714 of 7,609 ten-minute groups contain all eight chains, while all 347 sixty-second groups do. A fixed best chain does not transfer across sessions.</description></item><item><title>From eight parts to a heatmap: parsing the 10-minute CSI dataset</title><link>https://okwujun.pw/en/csi-dataset-parsing/</link><description>A hands-on Python walkthrough of the 10-minute router CSI dataset on Zenodo: verify eight parts, reassemble, parse the 24-byte header, build an amplitude heatmap and validate 57,293 records.</description></item><item><title>Do 256 CSI subcarriers mean 256 independent dimensions? A two-capture GL-MT6000 redundancy audit</title><link>https://okwujun.pw/en/csi-subcarrier-redundancy/</link><description>A reproducible PCA audit of two public GL-MT6000 captures: on the 10-minute data, 6 components explain 90% of variance, 9 explain 95% and 20 explain 99%, while adjacent bins have a median correlation of 0.901. The result is limited to amplitude correlation structure, not physical frequency mapping or human-sensing performance.</description></item><item><title>The spectral cost of CSI timestamp gaps: a controlled test on real sampling times</title><link>https://okwujun.pw/en/csi-timestamp-gaps-spectrum/</link><description>Do not disguise an average group rate as a uniform clock. A reproducible audit of the public GL-MT6000 capture quantifies long gaps, interpolation error and estimator disagreement, with explicit limits on what the data cannot prove.</description></item><item><title>GL-MT6000 Wi-Fi CSI dataset: samples, full capture and usage boundaries</title><link>https://okwujun.pw/en/datasets/</link><description>A real GL-MT6000 / MT7986 CSI dataset: 10-second sample, 60-second browser-demo source, 10-minute Zenodo capture, data dictionary, 57,293 records, 7,609 measurement groups, SHA-256, statistics, privacy and citation.</description></item><item><title>Live demo: playback of a real 256-subcarrier CSI heatmap</title><link>https://okwujun.pw/en/demo/</link><description>No install required: replay a real GL-MT6000 CSI capture with 347 complete measurement groups, an amplitude heatmap, a rate-limited Doppler view and a motion curve. Includes the anonymised source, SHA-256, parameters and limits.</description></item><item><title>ESP32 CSI human detection: capture, robust features, session calibration and false-alarm evaluation</title><link>https://okwujun.pw/en/esp32-csi-human-detection/</link><description>Use ESP32 CSI as a motion/presence proxy: choose a transmitter, validate packet rate and CSI length, normalize per subcarrier, smooth time series, calibrate with hysteresis and evaluate real-room failures.</description></item><item><title>ESP32 CSI and Wi-Fi sensing: one-board, two-board and experiment design</title><link>https://okwujun.pw/en/esp32-csi/</link><description>Use ESP32 CSI for Wi-Fi sensing with Espressif&apos;s esp-csi and ESP-IDF docs: single-board and two-board paths, LLTF/HT-LTF/STBC, sampling limits and MT6000 tradeoffs.</description></item><item><title>GL-MT6000 CSI firmware pre-flight: six checks before the first flash</title><link>https://okwujun.pw/en/gl-mt6000-csi-firmware-preflight/</link><description>A reproducible pre-flash audit of the OpenWrt CSI image: board identifier, sysupgrade SHA-256, stock rollback hash, MT7986 Wi-Fi firmware MD5/SHA-256, mt7915e CSI symbols, userspace daemon and installed package versions.</description></item><item><title>GL-MT6000 CSI lab log: what we ran and what failed in October</title><link>https://okwujun.pw/en/gl-mt6000-csi-lab-log/</link><description>A reproducible GL-MT6000 lab log: image preflight and rollback, first CSI, ten-minute capture acceptance, daemon fault injection, a misdiagnosed 100 Mbps link, ATF and 40/80 MHz client traps, data de-identification and evidence limits.</description></item><item><title>How to get Wi-Fi CSI data from a GL-MT6000 router (256 subcarriers, no extra hardware)</title><link>https://okwujun.pw/en/gl-mt6000-csi/</link><description>A reproducible Wi-Fi CSI tutorial for a CSI-capable GL-MT6000 router: build OpenWrt with the mt76 patch, flash, enable CSI and validate the UDP stream.</description></item><item><title>Methodology and evidence grading: sources, scope, AI disclosure and corrections</title><link>https://okwujun.pw/en/methodology/</link><description>How this site binds claims to A–E evidence, checks DOI metadata and primary documents, separates source grade from applicability, publishes first-party data, discloses AI assistance and corrects errors by severity.</description></item><item><title>mt76 rate control: why a client gets pinned at MCS0 (and how to prove it)</title><link>https://okwujun.pw/en/mt76-rate-control-mcs0/</link><description>A measured investigation into mt76 firmware rate adaptation: which counters matter, why last-tx-bitrate misleads, the vow_atf bug that prevents recovery, and the A/B test that proves it.</description></item><item><title>Nexmon CSI in practice: 80 MHz / 256 subcarriers on Raspberry Pi, Pi 5 compatibility and safe rollback</title><link>https://okwujun.pw/en/nexmon-csi/</link><description>A source-checked Nexmon CSI guide: supported Broadcom chips, legacy and modern Raspberry Pi installation paths, Pi 5 kernel requirements, UDP format, capture settings, failure checks and rollback.</description></item><item><title>OpenWrt Wi-Fi slow after idle: a 10-minute diagnostic and reversible tests</title><link>https://okwujun.pw/en/openwrt-wifi-slow-after-idle/</link><description>One client slow, downlink pinned at MCS0, a WAN that only looks 100 Mbps, or a 40 MHz client inside an 80 MHz BSS? Follow direction tests, rate sampling, byte accounting and two reversible A/B experiments.</description></item><item><title>Privacy Policy</title><link>https://okwujun.pw/en/privacy/</link><description>Router CSI Lab&apos;s privacy policy: what we collect and what we deliberately do not, how cookies and Google AdSense advertising work here, and how to opt out of personalised ads.</description></item><item><title>A 10-minute router CSI quality audit: 12.68 Hz average, 2.37 s maximum gap</title><link>https://okwujun.pw/en/router-csi-capture-quality-audit/</link><description>We grouped 57,293 raw GL-MT6000 CSI records by chain_info bit 15 and audited 7,608 usable measurements: timing percentiles, 4/8-chain groups, RSSI, SNR, long gaps and the limits for respiration or fall analysis.</description></item><item><title>Terms of Service</title><link>https://okwujun.pw/en/terms/</link><description>Router CSI Lab terms of service: delivery and license of digital products, pricing and third-party checkout platforms, refunds and withdrawal rights, disclaimers, liability and governing law.</description></item><item><title>Wi-Fi CSI tools and datasets: GitHub scripts, Python analysis and OpenWrt capture</title><link>https://okwujun.pw/en/tools/</link><description>Open-source Wi-Fi sensing tools, GitHub releases, capture scripts, Python analysis, the UDP data format and the 10-minute raw I/Q dataset.</description></item><item><title>Wi-Fi CSI explained: from channel state information to human sensing</title><link>https://okwujun.pw/en/what-is-wifi-csi/</link><description>What CSI is, how it differs from RSSI, what it can and cannot do, five hardware routes compared, and how to get 256-subcarrier CSI from a home router.</description></item><item><title>2.4 GHz vs 5 GHz for Wi-Fi CSI: coverage, subcarriers and interference</title><link>https://okwujun.pw/en/wifi-csi-2.4ghz-vs-5ghz/</link><description>Band choice changes propagation, subcarriers and interference, but &apos;2.4 GHz penetrates and 5 GHz is fast&apos; is not enough. Here are our measurements, a reproducible A/B protocol, channel scans and why our 2.4 GHz anomaly remains unresolved.</description></item><item><title>80 MHz vs 40 MHz for Wi-Fi CSI: resolution, snapshot rate and a real compatibility trap</title><link>https://okwujun.pw/en/wifi-csi-80mhz-vs-40mhz/</link><description>Bandwidth controls CSI frequency resolution. We explain range bins, MT7986 measurements, why 95.5 chain records/s is not a 95.5 Hz timeline, and the 40 MHz client inside an 80 MHz BSS failure.</description></item><item><title>ESP32-S3 CSI: yes it works — and when you need a 5 GHz chip instead</title><link>https://okwujun.pw/en/wifi-csi-esp32s3/</link><description>Does the ESP32-S3 support Wi-Fi CSI? Yes, and Espressif documents the exact payload. Here is what you get (2.4 GHz, 20/40 MHz), the S3-specific gotcha, and when to move to an ESP32-C5 or a router.</description></item><item><title>Wi-Fi CSI fall detection: low-frequency features, false alarms and evidence limits</title><link>https://okwujun.pw/en/wifi-csi-fall-detection/</link><description>Fall detection is not presence detection, and eight chains do not turn 12.64 Hz snapshots into 95 Hz micro-Doppler. This guide covers event envelopes, context, recovery, capture protocols, event-level metrics and compliance.</description></item><item><title>Wi-Fi CSI privacy and dataset de-identification: MACs, timestamps and behaviour</title><link>https://okwujun.pw/en/wifi-csi-privacy-anonymization/</link><description>Wi-Fi CSI has no camera, but it is not automatically anonymous. Peer-reviewed evidence, ICO/NIST guidance and this project&apos;s public capture are used to explain direct identifiers, quasi-identifiers, behavioural inference, MAC replacement and time shifting.</description></item><item><title>Wi-Fi CSI in Python: parsing, grouping, phase cleaning and motion metrics</title><link>https://okwujun.pw/en/wifi-csi-python/</link><description>A verified pipeline from raw I/Q to useful features: parse 24/28-byte headers, group on chain_info bit 15, select a valid chain, resample by timestamp, clean phase, build amplitude heatmaps and a real one-second motion metric.</description></item><item><title>Wi-Fi CSI radar: what it really measures, and where the marketing stops</title><link>https://okwujun.pw/en/wifi-csi-radar/</link><description>A radar analogy for CSI sensing, separated into motion envelopes, presence, range, low-frequency Doppler, angle and imaging. We explain why a 12.64 Hz GL-MT6000 snapshot rate cannot claim full gait micro-Doppler or through-wall imaging.</description></item><item><title>Wi-Fi CSI on a Raspberry Pi: capture node, analysis host, Pi 5 compatibility and capacity planning</title><link>https://okwujun.pw/en/wifi-csi-raspberry-pi/</link><description>A Raspberry Pi can be a Nexmon CSI capture node or the analysis host for router CSI. Compare the roles, Pi 5 requirements, real data-rate formulas, storage and network budgets, deployment checks and rollback.</description></item><item><title>Wi-Fi respiratory monitoring and heart rate from CSI: what works</title><link>https://okwujun.pw/en/wifi-csi-respiration/</link><description>A runnable Wi-Fi respiratory monitoring and heart-rate pipeline: phase processing, spectral estimation, sampling and window requirements, quality gates and failure conditions.</description></item><item><title>Wi-Fi CSI sensing in Home Assistant: ESPHome, MQTT and router REST</title><link>https://okwujun.pw/en/wifi-sensing-home-assistant/</link><description>Connect Wi-Fi CSI sensing to Home Assistant through ESPectre ESPHome entities, native MQTT Discovery, or this project&apos;s router REST service. Covers entity semantics, calibration, availability and privacy.</description></item><item><title>Can Wi-Fi sense through walls? Physics, experiments and privacy</title><link>https://okwujun.pw/en/wifi-sensing-through-walls/</link><description>Through-wall Wi-Fi can detect motion, but it is not wall-penetrating imaging. Separate motion, presence, localisation, pose and identity; understand wall/multipath effects; and run a home experiment that reports misses and false alarms.</description></item><item><title>Wi-Fi sensing vs mmWave radar for the home</title><link>https://okwujun.pw/en/wifi-sensing-vs-mmwave/</link><description>Compare Wi-Fi CSI and millimetre-wave radar by physics, coverage, occlusion, privacy, cost and evaluation protocol. Learn what FMCW range/velocity/angle really means, why one radar is not a whole-home sensor, and how to fuse sensors in Home Assistant.</description></item><item><title>Why Wi-Fi slows after CSI is enabled: a measured vow_atf and 40 MHz client investigation</title><link>https://okwujun.pw/en/wifi-slow-troubleshooting/</link><description>A reproducible investigation: one Mac&apos;s downlink fell from about 400 Mbps to 6–10 Mbps. The evidence covers A/B tests, byte accounting, a vow_atf repair switch and a 40 MHz client inside an 80 MHz BSS.</description></item></channel></rss>
