<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wavey | WiFi CSI Sensing System on Wavey</title><link>https://waveyhq.dev/</link><description>Recent content in Wavey | WiFi CSI Sensing System on Wavey</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 31 Jul 2026 12:00:00 +0000</lastBuildDate><atom:link href="https://waveyhq.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Device-Free Occupancy Detection with WiFi CSI</title><link>https://waveyhq.dev/use-cases/occupancy-detection/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/use-cases/occupancy-detection/</guid><description>&lt;p>The most useful sensing question is also the easiest to answer reliably: &lt;strong>is anyone here?&lt;/strong> Binary occupancy
asks for a single bit — empty or occupied — which tolerates noise far better than counting people or
classifying pose.&lt;/p>
&lt;h2 id="change-point-detection-on-a-baseline">Change-point detection on a baseline&lt;/h2>
&lt;p>Wavey learns an &lt;strong>empty-room baseline&lt;/strong>: the mean amplitude profile, typical subcarrier variance, and phase
structure when no one is in the space. Live CSI compared against this reference uses &lt;strong>change-point
detection&lt;/strong> — when the deviation exceeds a threshold sustained over a window, occupancy is declared.&lt;/p></description></item><item><title>WiFi Sensing vs Cameras for Occupancy &amp; Motion</title><link>https://waveyhq.dev/comparisons/wifi-sensing-vs-cameras/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/comparisons/wifi-sensing-vs-cameras/</guid><description>&lt;p>Cameras and WiFi CSI solve overlapping but not identical problems. The choice is about what data you need
from the sensor, not just privacy preferences.&lt;/p>
&lt;h2 id="sensing-mechanism">Sensing mechanism&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;/th>
 &lt;th>Camera&lt;/th>
 &lt;th>WiFi CSI&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Signal&lt;/td>
 &lt;td>Visible light (photons)&lt;/td>
 &lt;td>Radio channel (amplitude + phase per subcarrier)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Output&lt;/td>
 &lt;td>Image frames (pixels)&lt;/td>
 &lt;td>Channel measurements (complex vectors)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Identity&lt;/td>
 &lt;td>Trivial (face recognition)&lt;/td>
 &lt;td>Not available by design&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Pose&lt;/td>
 &lt;td>Direct (keypoint models)&lt;/td>
 &lt;td>Research frontier; not on commodity ESP32&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>A camera answers &amp;ldquo;what does this look like?&amp;rdquo; CSI answers &amp;ldquo;how did the radio channel change?&amp;rdquo;&lt;/p></description></item><item><title>WiFi Motion &amp; Activity Detection</title><link>https://waveyhq.dev/use-cases/motion-activity-detection/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/use-cases/motion-activity-detection/</guid><description>&lt;p>Movement is the strongest signal in CSI. Limb acceleration creates broadband energy in the 1–5 Hz band,
variance spikes across subcarriers, and the channel changes within a single packet window. Detecting &lt;em>that
something moved&lt;/em> is straightforward. Classifying &lt;em>what&lt;/em> happened is where a decade of published systems
disagree on approach.&lt;/p>
&lt;h2 id="from-motion-to-activity">From motion to activity&lt;/h2>
&lt;p>&lt;strong>Motion detection&lt;/strong> is a threshold on variance or spectral power — binary, fast, environment-agnostic within
a single deployment.&lt;/p></description></item><item><title>WiFi CSI Sensing vs mmWave Radar</title><link>https://waveyhq.dev/comparisons/wifi-sensing-vs-mmwave-radar/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/comparisons/wifi-sensing-vs-mmwave-radar/</guid><description>&lt;p>Both are non-visual RF sensors. The tradeoff is &lt;strong>dedicated ranging hardware vs commodity WiFi reuse&lt;/strong>.&lt;/p>
&lt;h2 id="rf-front-end">RF front-end&lt;/h2>
&lt;p>mmWave radar uses a purpose-built transceiver (typically 60 GHz) with chirp modulation designed for
range-Doppler processing. Resolution: centimeter-range distance, sub-Hz Doppler for micro-motion.&lt;/p>
&lt;p>WiFi CSI uses the existing 2.4/5 GHz WiFi PHY. Resolution: limited by wavelength (~6 cm at 5 GHz) and
packet-rate sampling. Fine-ranging is not the design goal.&lt;/p>
&lt;hr>&lt;h2 id="fine-motion-snr">Fine-motion SNR&lt;/h2>
&lt;p>Radar front-ends are optimized for detecting sub-millimeter chest displacement — breathing and heartbeat
are first-class signals. ESP32 CSI can detect breathing after phase sanitization, but the hardware noise
floor is higher and SNR is placement-dependent.&lt;/p></description></item><item><title>Presence &amp; Breathing Detection with WiFi CSI</title><link>https://waveyhq.dev/use-cases/presence-detection/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/use-cases/presence-detection/</guid><description>&lt;p>The hardest sensing case for conventional sensors is a person who is not moving. PIR reports empty. Cameras
work but raise privacy concerns. CSI can detect &lt;strong>micro-presence&lt;/strong> — a still body whose chest rises and
falls with respiration.&lt;/p>
&lt;h2 id="micro-doppler-physics">Micro-Doppler physics&lt;/h2>
&lt;p>Breathing displaces the chest wall by a few millimeters at 0.1–0.5 Hz (6–30 breaths per minute). This
creates a &lt;strong>micro-Doppler&lt;/strong> modulation on the CSI phase — a narrowband periodic signal far weaker than
footstep energy but structurally distinct from an empty room.&lt;/p></description></item><item><title>WiFi CSI Sensing vs PIR Motion Sensors</title><link>https://waveyhq.dev/comparisons/wifi-sensing-vs-pir/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/comparisons/wifi-sensing-vs-pir/</guid><description>&lt;p>PIR and WiFi CSI both detect people without cameras. They measure completely different physical quantities.&lt;/p>
&lt;h2 id="sensing-mechanism">Sensing mechanism&lt;/h2>
&lt;p>&lt;strong>PIR&lt;/strong> detects changes in infrared radiation within a ~120° cone. A motionless person emits constant IR —
no change, no trigger. After a timeout, the sensor reports empty. This is the &amp;ldquo;lights off while I&amp;rsquo;m sitting
still&amp;rdquo; failure mode — a fundamental property of differential IR sensing, not a firmware bug.&lt;/p>
&lt;p>&lt;strong>WiFi CSI&lt;/strong> detects changes in radio channel state across the whole room. A still person modulates phase
via breathing (micro-Doppler at 0.1–0.5 Hz). Macro-motion variance may be near zero while periodic
phase modulation confirms presence.&lt;/p></description></item><item><title>Elder-Care Monitoring with WiFi Sensing</title><link>https://waveyhq.dev/use-cases/elder-care-monitoring/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/use-cases/elder-care-monitoring/</guid><description>&lt;p>Aging in place needs continuous awareness without cameras in bedrooms and without wearables that get left on
the nightstand. WiFi CSI offers ambient monitoring — presence, movement patterns, and fall-like events —
from nodes already in the home.&lt;/p>
&lt;h2 id="why-fall-is-not-a-classification-problem">Why fall is not a classification problem&lt;/h2>
&lt;p>Most early RF fall detectors train a classifier: fall vs walk vs sit. That assumes falls produce reproducible
CSI signatures you can label and match. In practice, falls are accidents — impact varies with surface, body
angle, and what they hit. Labeling enough real elderly falls to train a classifier is ethically and practically
hard; most training data is simulated.&lt;/p></description></item><item><title>WiFi CSI Sensing vs Wearables &amp; Phone Tracking</title><link>https://waveyhq.dev/comparisons/wifi-sensing-vs-wearables/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/comparisons/wifi-sensing-vs-wearables/</guid><description>&lt;p>Wearables and phone tracking sense &lt;strong>devices&lt;/strong>. WiFi CSI senses &lt;strong>bodies&lt;/strong>. The coverage and data models
are fundamentally different.&lt;/p>
&lt;h2 id="what-gets-detected">What gets detected&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;/th>
 &lt;th>Wearable / phone tracking&lt;/th>
 &lt;th>WiFi CSI&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Signal source&lt;/td>
 &lt;td>BLE beacon, UWB tag, WiFi probe/MAC&lt;/td>
 &lt;td>Body perturbation of radio channel&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Requires cooperation&lt;/td>
 &lt;td>Yes — person carries device&lt;/td>
 &lt;td>No — device-free&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Misses&lt;/td>
 &lt;td>Anyone without the device&lt;/td>
 &lt;td>No one in RF coverage&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Identity&lt;/td>
 &lt;td>Device ID (often personal data)&lt;/td>
 &lt;td>Anonymous — no identifiers&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>A guest, child, intruder, or elder who forgot their pendant is invisible to device tracking. CSI detects
any body that perturbs the channel.&lt;/p></description></item><item><title>WiFi Sensing for Security &amp; Intrusion Detection</title><link>https://waveyhq.dev/use-cases/security-intrusion-detection/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/use-cases/security-intrusion-detection/</guid><description>&lt;p>Security sensing needs to work when lights are off, cameras are blind, and the intruder carries nothing. WiFi
CSI detects bodies by how they disturb the radio field — device-free, darkness-invariant, and effective
through many interior walls.&lt;/p>
&lt;h2 id="nlos-motion-through-building-materials">NLOS motion through building materials&lt;/h2>
&lt;p>WiFi at 2.4 and 5 GHz penetrates drywall, plaster, and wooden doors. An intruder moving in an adjacent
room perturbs multipath paths that traverse the wall — amplitude shifts propagate to the receiver even
without line of sight.&lt;/p></description></item><item><title>Smart-Home Automation with WiFi Presence Sensing</title><link>https://waveyhq.dev/use-cases/smart-home-automation/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/use-cases/smart-home-automation/</guid><description>&lt;p>The most common smart-home failure is lights switching off while you are sitting still. The root cause is
using &lt;strong>motion pulses&lt;/strong> where &lt;strong>presence holds&lt;/strong> are needed. WiFi CSI provides the hold signal.&lt;/p>
&lt;h2 id="presence-hold-vs-motion-pulse">Presence-hold vs motion-pulse&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Event type&lt;/th>
 &lt;th>Semantics&lt;/th>
 &lt;th>Good for&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Motion pulse&lt;/td>
 &lt;td>Something moved, now&lt;/td>
 &lt;td>Triggering on entry, security alerts&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Presence hold&lt;/td>
 &lt;td>Someone is here, still&lt;/td>
 &lt;td>Keeping lights on, HVAC running&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Absence clear&lt;/td>
 &lt;td>Space is empty&lt;/td>
 &lt;td>Shutting down scenes, energy savings&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>PIR emits motion pulses. When motion stops, the pulse ends and the automation assumes empty. CSI occupancy
and &lt;a href="https://waveyhq.dev/use-cases/presence-detection/">presence detection&lt;/a> emit holds — the space remains &amp;ldquo;occupied&amp;rdquo; while a
still person breathes in it.&lt;/p></description></item><item><title>Privacy-First Occupancy Analytics with WiFi CSI</title><link>https://waveyhq.dev/use-cases/occupancy-analytics/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/use-cases/occupancy-analytics/</guid><description>&lt;p>Facilities teams need to know how spaces are actually used — peak hours, dead zones, desk utilization — without
installing cameras or tracking employee devices. CSI analytics provides &lt;strong>anonymous utilization signals&lt;/strong>
from the radio environment.&lt;/p>
&lt;h2 id="what-to-measure">What to measure&lt;/h2>
&lt;p>Binary occupancy over time is the robust foundation. Aggregate it:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Utilization rate&lt;/strong> — fraction of time a zone was occupied during business hours.&lt;/li>
&lt;li>&lt;strong>Peak occupancy periods&lt;/strong> — when does this room actually fill up?&lt;/li>
&lt;li>&lt;strong>Dwell time&lt;/strong> — how long does occupancy persist once triggered?&lt;/li>
&lt;li>&lt;strong>Zone comparison&lt;/strong> — which floors, wings, or desks see traffic?&lt;/li>
&lt;/ul>
&lt;p>These metrics drive real decisions: rightsizing meeting rooms, adjusting HVAC schedules, reallocating desk
inventory. None require knowing &lt;em>who&lt;/em> was present.&lt;/p></description></item><item><title>IEEE 802.11bf and the WiFi Sensing Privacy Gap</title><link>https://waveyhq.dev/posts/ieee-80211bf-privacy-gap/</link><pubDate>Fri, 31 Jul 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/ieee-80211bf-privacy-gap/</guid><description>&lt;p>IEEE 802.11bf was ratified in September 2025. It standardizes WiFi sensing — making CSI-based occupancy,
motion, and activity detection a first-class capability in commercial WiFi hardware. For the sensing industry,
this is a milestone. For RF privacy, it is an escalation: the attack surface just became standardized.&lt;/p>
&lt;p>This post covers what 802.11bf enables, what privacy protections it includes (and omits), and what
organizations evaluating WiFi sensing should demand from vendors.&lt;/p></description></item><item><title>RF Privacy Defenses: Obfuscation, Metasurfaces, and Their Limits</title><link>https://waveyhq.dev/posts/rf-privacy-defenses-and-limits/</link><pubDate>Thu, 30 Jul 2026 14:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/rf-privacy-defenses-and-limits/</guid><description>&lt;p>The defense literature for unauthorized WiFi sensing is almost entirely about &lt;strong>preventing sensing&lt;/strong>, not
&lt;strong>detecting surveillors&lt;/strong>. This post surveys the major approaches, what each achieves in published
evaluations, and where the practical limits sit for real deployments.&lt;/p>
&lt;p>For the attacks these defenses target, see
&lt;a href="https://waveyhq.dev/posts/wifi-sensing-attacks-leakybeam-bfid/">WiFi sensing attacks&lt;/a> . For detection alternatives, see
&lt;a href="https://waveyhq.dev/posts/detecting-unauthorized-rf-sensing/">detecting unauthorized RF sensing&lt;/a> .&lt;/p>
&lt;h2 id="two-defense-philosophies">Two defense philosophies&lt;/h2>
&lt;p>Defenses fall into two categories that mirror the attack taxonomy:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Type&lt;/th>
 &lt;th>Mechanism&lt;/th>
 &lt;th>Who acts&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Active defense&lt;/strong>&lt;/td>
 &lt;td>Manipulate transmitted signals so eavesdroppers get wrong CSI&lt;/td>
 &lt;td>Transmitter, AP, or dedicated obfuscation device&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Passive defense&lt;/strong>&lt;/td>
 &lt;td>Third party alerts users or protects sensing results&lt;/td>
 &lt;td>Monitoring system, RF privacy platform&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>Active defense is mature in research — multiple papers with real-world evaluations. Passive defense (detection
and alerting) is barely explored. An RF privacy platform needs both.&lt;/p></description></item><item><title>Detecting Unauthorized RF Sensing: A Layered Approach</title><link>https://waveyhq.dev/posts/detecting-unauthorized-rf-sensing/</link><pubDate>Thu, 30 Jul 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/detecting-unauthorized-rf-sensing/</guid><description>&lt;p>If someone is using WiFi signals to observe your space, can you detect them? The answer depends heavily on
&lt;strong>what kind of attacker&lt;/strong> — active emitters are tractable; pure passive receivers may be undetectable. This
post maps five detection layers, assesses each against published research, and identifies what is shippable
on commodity hardware today.&lt;/p>
&lt;p>For the attacks these layers defend against, see
&lt;a href="https://waveyhq.dev/posts/wifi-sensing-attacks-leakybeam-bfid/">WiFi sensing attacks&lt;/a> . For the obfuscation-based alternative,
see &lt;a href="https://waveyhq.dev/posts/rf-privacy-defenses-and-limits/">defenses and limits&lt;/a> .&lt;/p></description></item><item><title>WiFi Sensing Attacks: LeakyBeam, BFId, and the BFI Side Channel</title><link>https://waveyhq.dev/posts/wifi-sensing-attacks-leakybeam-bfid/</link><pubDate>Wed, 29 Jul 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/wifi-sensing-attacks-leakybeam-bfid/</guid><description>&lt;p>Two papers published in late 2025 moved WiFi sensing from a research curiosity to a documented privacy
threat at top security venues. Both exploit the same side channel: &lt;strong>Beamforming Feedback Information (BFI)&lt;/strong>
— plaintext packets that WiFi 5 and 6 clients transmit to help access points steer signals.&lt;/p>
&lt;p>This post summarizes the attacks, what they demonstrate, and why they matter for RF privacy research.&lt;/p>
&lt;h2 id="what-bfi-is-and-why-it-leaks">What BFI is and why it leaks&lt;/h2>
&lt;p>WiFi 5 (802.11ac) introduced explicit beamforming: the AP sends sounding frames, the client measures the
channel, and the client responds with &lt;strong>compressed beamforming feedback&lt;/strong> describing how the signal arrived
at each antenna. The AP uses this to compute a steering matrix for directional transmission.&lt;/p></description></item><item><title>RF Privacy: The Flip Side of WiFi Sensing</title><link>https://waveyhq.dev/posts/rf-privacy-the-flip-side-of-wifi-sensing/</link><pubDate>Tue, 28 Jul 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/rf-privacy-the-flip-side-of-wifi-sensing/</guid><description>&lt;p>Wavey reads WiFi Channel State Information to infer occupancy, motion, and presence — device-free and
camera-free. That is the legitimate use case. The same physics works in reverse: anyone who can observe the
radio environment can infer the same things about you, often without your knowledge and without specialized
hardware.&lt;/p>
&lt;p>This post is the first in a research series on &lt;strong>RF privacy&lt;/strong> — detecting, auditing, and mitigating
unauthorized RF sensing. It covers why the problem exists, what current wireless security products miss, and
where the research frontier sits.&lt;/p></description></item><item><title>Privacy Policy</title><link>https://waveyhq.dev/legal/privacy/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><guid>https://waveyhq.dev/legal/privacy/</guid><description>&lt;p>&lt;strong>Effective date: 23 July 2026&lt;/strong>&lt;/p>
&lt;p>This Privacy Policy explains how the Wavey project team (&amp;quot;&lt;strong>Wavey&lt;/strong>&amp;quot;, &amp;ldquo;&lt;strong>we&lt;/strong>&amp;rdquo;, &amp;ldquo;&lt;strong>us&lt;/strong>&amp;rdquo;, or &amp;ldquo;&lt;strong>our&lt;/strong>&amp;rdquo;) collects, uses, discloses, and otherwise processes information when you visit &lt;a href="https://waveyhq.dev/" target="_blank" rel="noopener">waveyhq.dev&lt;/a> (the &amp;ldquo;&lt;strong>Site&lt;/strong>&amp;rdquo;) or submit feedback through it.&lt;/p>
&lt;p>The Wavey project team operates the Site from India. For privacy questions or requests, contact &lt;a href="mailto:mail@waveyhq.dev">mail@waveyhq.dev&lt;/a> .&lt;/p>
&lt;h2 id="1-scope">1. Scope&lt;/h2>
&lt;p>This Policy applies only to the public Site. It does not govern:&lt;/p>
&lt;ul>
&lt;li>the Wavey Console at &lt;a href="https://console.waveyhq.dev" target="_blank" rel="noopener">console.waveyhq.dev&lt;/a> ;&lt;/li>
&lt;li>data collected by a Wavey software or hardware deployment;&lt;/li>
&lt;li>third-party websites, repositories, communities, or services linked from the Site; or&lt;/li>
&lt;li>information processed by a person or organization that deploys Wavey independently.&lt;/li>
&lt;/ul>
&lt;p>Those products and services may have separate terms and privacy notices. A person or organization deploying WiFi sensing is independently responsible for its data practices and legal obligations.&lt;/p></description></item><item><title>Terms of Use</title><link>https://waveyhq.dev/legal/terms/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><guid>https://waveyhq.dev/legal/terms/</guid><description>&lt;p>&lt;strong>Effective date: 23 July 2026&lt;/strong>&lt;/p>
&lt;p>These Terms of Use (&amp;quot;&lt;strong>Terms&lt;/strong>&amp;quot;) govern your access to and use of &lt;a href="https://waveyhq.dev/" target="_blank" rel="noopener">waveyhq.dev&lt;/a> (the &amp;ldquo;&lt;strong>Site&lt;/strong>&amp;rdquo;), operated by the Wavey project team (&amp;quot;&lt;strong>Wavey&lt;/strong>&amp;quot;, &amp;ldquo;&lt;strong>we&lt;/strong>&amp;rdquo;, &amp;ldquo;&lt;strong>us&lt;/strong>&amp;rdquo;, or &amp;ldquo;&lt;strong>our&lt;/strong>&amp;rdquo;).&lt;/p>
&lt;p>Please read these Terms carefully. By accessing or using the Site, you agree to these Terms to the extent permitted by applicable law. If you do not agree, do not use the Site.&lt;/p>
&lt;h2 id="1-scope">1. Scope&lt;/h2>
&lt;p>The Site publishes documentation, technical articles, project information, public discovery metadata, and links relating to Wavey, an open-source WiFi Channel State Information (&amp;ldquo;CSI&amp;rdquo;) sensing project.&lt;/p></description></item><item><title>WiFi CSI Detection Ladder: Tasks, Feasibility, and Limits</title><link>https://waveyhq.dev/detection/</link><pubDate>Fri, 26 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/detection/</guid><description>&lt;p>Not every sensing task is equally reachable with commodity WiFi CSI. This page is the authoritative map:
what each detection level requires in the signal, what breaks it in practice, and where Wavey sits on the
ladder.&lt;/p>
&lt;p>For how signals are processed before inference, see the &lt;a href="https://waveyhq.dev/sensing-pipeline/">sensing pipeline&lt;/a> . For the
underlying physics, see &lt;a href="https://waveyhq.dev/how-it-works/">how it works&lt;/a> .&lt;/p>
&lt;h2 id="the-ladder">The ladder&lt;/h2>
&lt;p>Detection difficulty increases as you move from coarse environment change to fine per-person detail. Each
level builds on the ones below it.&lt;/p></description></item><item><title>WiFi CSI Sensing Pipeline: Signal Processing and ML</title><link>https://waveyhq.dev/sensing-pipeline/</link><pubDate>Fri, 26 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/sensing-pipeline/</guid><description>&lt;p>Raw CSI from a commodity WiFi link is not inference-ready. The gap between a research demo and a deployment
that works in someone&amp;rsquo;s living room is almost entirely signal processing and honest ML engineering. This page
covers that layer — what happens between packet capture and a detection event.&lt;/p>
&lt;p>For the physics of &lt;em>why&lt;/em> bodies show up in CSI, see &lt;a href="https://waveyhq.dev/how-it-works/">how it works&lt;/a> . For what tasks are
feasible at each difficulty level, see the &lt;a href="https://waveyhq.dev/detection/">detection ladder&lt;/a> .&lt;/p></description></item><item><title>Commodity CSI: Capture Limits and Calibration</title><link>https://waveyhq.dev/posts/esp32-csi-explained/</link><pubDate>Wed, 24 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/esp32-csi-explained/</guid><description>&lt;p>Research papers often use USRPs, Intel 5300 NICs (3×3 MIMO, 9 antenna pairs), or dense WiFi grids.
Person-in-WiFi used 2× Intel 5300 sets with 30 subcarriers per link — 270 scalar measurements per frame.
WiVi pushed 100 pkt/s with custom OpenWrt firmware on TP-Link routers, producing 100×114 CSI frames.
Wavey uses a $5 ESP32. This post is about what that hardware actually delivers, where it falls short, and
when it is enough.&lt;/p></description></item><item><title>Baselines, Drift, and Generalization</title><link>https://waveyhq.dev/posts/device-free-occupancy-sensing-explained/</link><pubDate>Mon, 22 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/device-free-occupancy-sensing-explained/</guid><description>&lt;p>Every occupancy system depends on knowing what &amp;ldquo;empty&amp;rdquo; looks like. This post covers how baselines are built,
how they drift, why models trained in one room fail in another, and when to reset.&lt;/p>
&lt;p>For the detection mechanism, see &lt;a href="https://waveyhq.dev/use-cases/occupancy-detection/">occupancy detection&lt;/a> . This is the
stability engineering layer.&lt;/p>
&lt;h2 id="building-an-empty-room-fingerprint">Building an empty-room fingerprint&lt;/h2>
&lt;p>During a known-empty period (nights, scheduled away times, or initial setup), collect CSI for 5–30 minutes.
Compute:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Mean amplitude profile&lt;/strong> per subcarrier: \(\bar{A}[k] = \text{mean}_t(|CSI[k,t]|)\)&lt;/li>
&lt;li>&lt;strong>Variance envelope&lt;/strong> per subcarrier: typical fluctuation range when empty&lt;/li>
&lt;li>&lt;strong>Phase reference&lt;/strong> (sanitized): mean phase structure after CFO/SFO removal&lt;/li>
&lt;li>&lt;strong>Shape similarity (STI)&lt;/strong> — for each subcarrier, how much does the amplitude curve&amp;rsquo;s shape change when
someone enters? Greedy subcarrier selection picks the most responsive frequencies. This is the FreeDetector
/ WiFree approach; WiFree reported 99.1% occupancy on building-scale deployments.&lt;/li>
&lt;/ul>
&lt;p>This fingerprint is the &lt;strong>baseline&lt;/strong>. Live CSI compared against it powers change-point detection: if the
current window&amp;rsquo;s statistics deviate beyond the empty-room envelope, declare occupied.&lt;/p></description></item><item><title>WiFi CSI Sensing FAQ</title><link>https://waveyhq.dev/faq/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/faq/</guid><description>&lt;p>Practical questions about &lt;strong>WiFi CSI sensing&lt;/strong> and &lt;strong>Wavey&lt;/strong>. For technical depth, see
&lt;a href="https://waveyhq.dev/how-it-works/">how it works&lt;/a> , the &lt;a href="https://waveyhq.dev/sensing-pipeline/">sensing pipeline&lt;/a> , the
&lt;a href="https://waveyhq.dev/detection/">detection ladder&lt;/a> , and &lt;a href="https://waveyhq.dev/posts/">technical deep-dives&lt;/a> .&lt;/p></description></item><item><title>Getting Started with Wavey</title><link>https://waveyhq.dev/getting-started/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/getting-started/</guid><description>&lt;p>Wavey is an open-source WiFi CSI sensing system. This page covers deployment architecture — for signal
processing detail, see the &lt;a href="https://waveyhq.dev/sensing-pipeline/">sensing pipeline&lt;/a> . For what to detect first, see the
&lt;a href="https://waveyhq.dev/detection/">detection ladder&lt;/a> .&lt;/p>
&lt;blockquote>
&lt;p>Setup steps live in the &lt;a href="https://github.com/waveyhq" target="_blank" rel="noopener">GitHub repository&lt;/a> — they change as the project matures.&lt;/p>&lt;/blockquote>
&lt;h2 id="three-layer-architecture">Three-layer architecture&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>[ ESP32 CSI nodes ] -&amp;gt; [ Python pipeline ] -&amp;gt; [ console / automations ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> capture CSI preprocess + features visualize + emit events
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol>
&lt;li>&lt;strong>Sensing nodes (ESP32).&lt;/strong> Capture &lt;a href="https://waveyhq.dev/glossary/">CSI&lt;/a> from ambient WiFi traffic. See
&lt;a href="https://waveyhq.dev/posts/esp32-csi-explained/">commodity CSI limits&lt;/a> for hardware constraints.&lt;/li>
&lt;li>&lt;strong>Analysis pipeline (Python).&lt;/strong> Outlier rejection, amplitude features (primary on ESP32), phase
sanitization for micro-motion, baseline learning, inference. See the
&lt;a href="https://waveyhq.dev/sensing-pipeline/">sensing pipeline&lt;/a> for the processing stack.&lt;/li>
&lt;li>&lt;strong>Console and integrations.&lt;/strong> Live visualization at &lt;a href="https://console.waveyhq.dev" target="_blank" rel="noopener">console.waveyhq.dev&lt;/a> ;
events for &lt;a href="https://waveyhq.dev/use-cases/smart-home-automation/">automation&lt;/a> and &lt;a href="https://waveyhq.dev/use-cases/occupancy-analytics/">analytics&lt;/a> .&lt;/li>
&lt;/ol>
&lt;hr>&lt;h2 id="before-you-begin">Before you begin&lt;/h2>
&lt;ul>
&lt;li>One or more CSI-capable ESP32 modules (any ESP32 family chip)&lt;/li>
&lt;li>A WiFi environment with traffic the nodes can sniff&lt;/li>
&lt;li>A host machine for the Python stack&lt;/li>
&lt;/ul>
&lt;hr>&lt;h2 id="pick-your-first-detection-task">Pick your first detection task&lt;/h2>
&lt;p>Start at the bottom of the &lt;a href="https://waveyhq.dev/detection/">detection ladder&lt;/a> — the most robust tasks first:&lt;/p></description></item><item><title>WiFi Sensing Glossary</title><link>https://waveyhq.dev/glossary/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/glossary/</guid><description>&lt;p>Definitions for terms used across the Wavey documentation. For how they connect, start with
&lt;a href="https://waveyhq.dev/how-it-works/">how it works&lt;/a> , the &lt;a href="https://waveyhq.dev/sensing-pipeline/">sensing pipeline&lt;/a> , and the
&lt;a href="https://waveyhq.dev/detection/">detection ladder&lt;/a> .&lt;/p>
&lt;h2 id="channel-state-information-csi">Channel State Information (CSI)&lt;/h2>
&lt;p>A per-subcarrier measurement of how a WiFi signal traveled from transmitter to receiver — amplitude and
phase at each OFDM frequency slice. The core sensing signal. See &lt;a href="https://waveyhq.dev/how-it-works/">how it works&lt;/a> .&lt;/p>
&lt;hr>&lt;h2 id="rssi-received-signal-strength-indicator">RSSI (Received Signal Strength Indicator)&lt;/h2>
&lt;p>A single scalar: total received power. Too coarse for micro-motion or activity recognition. CSI preserves
the per-subcarrier detail RSSI discards.&lt;/p></description></item><item><title>How WiFi CSI Sensing Works</title><link>https://waveyhq.dev/how-it-works/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/how-it-works/</guid><description>&lt;p>Every WiFi link already measures the radio channel between transmitter and receiver. &lt;strong>Channel State
Information (CSI)&lt;/strong> is that measurement, kept at full resolution: amplitude and phase across dozens of
frequency slices. When a body moves in the space, it perturbs those measurements in predictable ways. This
page explains the physics. For signal processing and ML, see the &lt;a href="https://waveyhq.dev/sensing-pipeline/">sensing pipeline&lt;/a> .
For what can be detected, see the &lt;a href="https://waveyhq.dev/detection/">detection ladder&lt;/a> .&lt;/p>
&lt;h2 id="csi-vs-rssi">CSI vs RSSI&lt;/h2>
&lt;p>&lt;strong>RSSI&lt;/strong> is one number — total received power. It answers &amp;ldquo;how strong is the signal?&amp;rdquo; and nothing else.&lt;/p></description></item><item><title>Building an Activity Classifier on CSI</title><link>https://waveyhq.dev/posts/wifi-motion-detection-without-camera/</link><pubDate>Thu, 18 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/wifi-motion-detection-without-camera/</guid><description>&lt;p>Detecting that something moved is a threshold problem. Classifying &lt;em>what&lt;/em> happened is a machine learning
problem. This post walks through building an activity classifier on CSI — from the simplest baseline to a
spectrogram CNN — and explains why the hard part is not the model.&lt;/p>
&lt;p>For the use-case framing, see &lt;a href="https://waveyhq.dev/use-cases/motion-activity-detection/">motion &amp;amp; activity detection&lt;/a> . This is
the engineering walkthrough.&lt;/p>
&lt;h2 id="level-0-variance-threshold">Level 0: variance threshold&lt;/h2>
&lt;p>Compute subcarrier variance over a 1-second sliding window. If variance exceeds a threshold tuned on empty-room
data, declare motion. No labels needed. No ML framework needed.&lt;/p></description></item><item><title>About Wavey</title><link>https://waveyhq.dev/about/</link><pubDate>Sat, 13 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/about/</guid><description>&lt;p>&lt;strong>Wavey&lt;/strong> is an open-source &lt;strong>RF sensing&lt;/strong> system that uses &lt;strong>WiFi Channel State Information (CSI)&lt;/strong> to
observe physical environments - occupancy, motion, and presence - without cameras, wearables, or active
participation from the people being sensed.&lt;/p>
&lt;h2 id="our-mission">Our mission&lt;/h2>
&lt;p>Spatial awareness usually means installing cameras (a privacy problem), buying expensive radar or LiDAR
(a cost problem), or asking people to carry phones and tags (a friction problem). Wavey takes a different
path: it reads the WiFi signals that already fill our spaces and turns their tiny disturbances into useful
information.&lt;/p></description></item><item><title>Contact Us</title><link>https://waveyhq.dev/contact/</link><pubDate>Sat, 13 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/contact/</guid><description>&lt;p>If you have questions, contributions, or ideas for Wavey, we&amp;rsquo;d love to hear from you!&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Discord&lt;/strong>: &lt;a href="https://discord.gg/sxh9r9UTtW" target="_blank" rel="noopener">Hang out with us!&lt;/a> &lt;/li>
&lt;li>&lt;strong>GitHub&lt;/strong>: &lt;a href="https://github.com/waveyhq" target="_blank" rel="noopener">Wavey Project&lt;/a> &lt;/li>
&lt;li>&lt;strong>GitLab&lt;/strong>: &lt;a href="https://gitlab.com/waveyhq" target="_blank" rel="noopener">WaveyHQ&lt;/a> &lt;/li>
&lt;li>&lt;strong>Email&lt;/strong>: &lt;a href="mailto:mail@waveyhq.dev">mail@waveyhq.dev&lt;/a> &lt;/li>
&lt;/ul></description></item><item><title>The WiFi Channel as a Distributed Sensor</title><link>https://waveyhq.dev/posts/introduction-to-wifi-csi/</link><pubDate>Sat, 13 Jun 2026 12:00:00 +0000</pubDate><guid>https://waveyhq.dev/posts/introduction-to-wifi-csi/</guid><description>&lt;p>Most explanations of WiFi sensing stop at &amp;ldquo;CSI measures amplitude and phase.&amp;rdquo; This post goes one level deeper:
what a single CSI snapshot actually contains, how multipath superposition works as a concrete model, and why
collapsing that into RSSI throws away the information you need.&lt;/p>
&lt;p>For the full physics treatment, see &lt;a href="https://waveyhq.dev/how-it-works/">how it works&lt;/a> . This is the worked-example version.&lt;/p>
&lt;h2 id="one-packet-one-matrix">One packet, one matrix&lt;/h2>
&lt;p>When an ESP32 receives a WiFi frame, the PHY layer reports CSI as a complex vector:&lt;/p></description></item></channel></rss>