This is the manual for the CFDR Home app — viewing your system over the internet from anywhere. For on-site setup over the hub's own WiFi, use the CFDR Roaming app and its own manual.
Home vs Roaming. Your system runs in one of two modes and switches between them automatically. Home mode means the hub is connected to your home WiFi — it can reach the internet, so you watch live from anywhere in the CFDR Home app. Roaming mode means the hub isn't connected to any WiFi — it makes its own CFDR-Radar network instead, and you view it on-site in the CFDR Roaming app with no internet needed.
A WiFi movement-detection system. Your kit is a hub+node unit — the hub with its first node wired to it (sharing power), covering its own area — plus an additional node for another room, with the option to add more nodes anytime. Each node passively listens to your WiFi and detects movement in its area, then reports wirelessly over Bluetooth to the hub, which shows the live picture.
What Home mode is. When the hub can reach your home WiFi it connects to the internet and streams everything to the cloud. The CFDR Home app then shows your live system from anywhere — on the same WiFi, or out of the house on mobile data.
One-time WiFi setup. The hub has to be placed on your home WiFi once. That single step is done on-site through the hub's own network using the CFDR Roaming app: join the hub's CFDR-Radar WiFi (password cfdrradar), open the Roaming app, and use CONNECT HUB TO WIFI to pick your home network and enter its password. The hub saves it and restarts onto your WiFi — from then on the Home app reaches it from anywhere. (Full steps are in the Roaming manual.)
Switching to a different WiFi. The hub remembers the last network it joined and tries to rejoin it on power-up, so if you've moved it somewhere new it may keep looking for that old WiFi. If it can't find it, it drops to Roaming after about 30 seconds and you can pick a new network with CONNECT HUB TO WIFI. To make it forget the old network completely, open the CFDR Roaming app and press CLEAR ALL ROOMS & NETWORK — this also clears your room names, which you can re-add afterwards.
Tell the nodes what to sense. On the ROOMS tab set the TARGET WIFI NETWORK to the WiFi you want the nodes to listen to (usually your home network). No password is needed — the nodes only listen. The hub passes this to every node over Bluetooth and they start sensing within seconds.
Name your rooms — one node at a time. The hub assigns the next node that powers on. With only the hub running, add a room and name it first — that's the hub's built-in node. Then power up each additional node one at a time, adding and naming its room before you power the next, so the hub can tell them apart.
The hub+node unit is the hub with its first node wired to it — they share power (5V and ground) and come on together, so the hub covers its own area straight away. Each additional node is a small sensor for another room, powered separately from its own USB. Add more nodes anytime. Each node has its own unique number assigned automatically — so when naming nodes, power up additional ones one at a time to tell them apart. Place one per room — roughly central for whole-room coverage, or right beside an object for spot detection (see PLACEMENT). Power each from any USB source or power bank.
Each node senses movement in roughly the room it is in — about a 5–8 metre radius in open space, less through walls. Place one per room you want covered, and keep every node within WiFi range of your router (anywhere in a normal home is fine). Nodes also report to the hub over Bluetooth, so each node must be within Bluetooth range of the hub — roughly 10 metres indoors, less through walls. Keep the hub reasonably central to your nodes.
Sensitivity sets how much signal disturbance counts as movement. Turn it down and only strong, obvious movement registers (someone walking through) — fewer false alarms. Turn it up and even faint movement registers.
Spot vs zone sensing — placement is your range control. A node reacts far more strongly to movement near it than far away, so where you place it decides its focus. For a zone (whole-room presence) put a node centrally at moderate sensitivity. For a spot (a specific object — a drawer, a safe, a doorway) put a node right beside it and turn sensitivity up: the close disturbance dominates, so it flags that object being touched while largely ignoring movement across the room.
The ROOMS tab is your main view — a map of every room that lights up on movement. The other tabs zoom into one node in detail: when you open one, a VIEWING selector appears under the sensitivity slider to choose which room, or "Strongest (all)" to auto-follow the busiest room.
RADAR — a sweeping scope. Each detected movement drops a blip; stronger movement sits nearer the centre. A quick "is anything moving?" view.
WATERFALL — a scrolling history of activity that reads right-to-left over time. Brighter, taller bands mean more movement at that moment.
MOVEMENT — the current signal disruption level in plain words (NONE → VERY HIGH): how strongly movement is disturbing the WiFi right now. It measures the amount of movement, not distance — it cannot tell how far away something is.
HISTORY — a graph of movement over roughly the last 2 minutes, so you can spot patterns and spikes. Resets when the page reloads.
RECON — the raw sensor read-out: STATE (MOTION/CLEAR), ENERGY (movement strength), THRESHOLD (the trip level), FRAMES/s (how much WiFi traffic it's reading — higher is better) and the locked CHANNEL.
ROOMS — a presence map. Add a room by typing a name and pressing ADD — the next node to power on is detected and assigned automatically (shown as a NODE badge) — so power up additional nodes one at a time so each lands in the right room. Its light turns on when movement is detected there. If no node is powered, ADD tells you. Rename or remove rooms with the buttons; names are saved in this browser.
SENSITIVITY (per node) — each node has its own setting. Open a detail tab, choose the node in the VIEWING selector, and move the slider: it sets that node's sensitivity and applies live. Higher reacts to smaller movements (more false alarms); lower only triggers on strong movement. Each room in ROOMS shows its node's current level (e.g. S:5), which updates once the node has adopted the change. On the ROOMS screen the slider locks once you have more than two nodes (so you can't change them all at once) — set each node from a detail tab instead.
Node not detecting? Re-calibrate it. Each node learns its own “still” baseline when it powers on; if it calibrated during a busy moment its threshold can sit too high and miss movement. To reset: unplug the node, keep the area still, plug it back in and let it sit undisturbed for about 30 seconds so it learns a clean, quiet baseline — then raise its sensitivity if needed. Remember it also needs live WiFi traffic to sense — on a very quiet network the reading stays weak, so point it at a busy network (or generate some traffic on it).
The sensor unit passively listens to a chosen WiFi access point and measures Channel State Information — the fine detail of how the radio signal arrives. People moving through the space disturb that signal; the unit turns the disturbance into a movement figure and broadcasts it to the hub over Bluetooth.
It needs the target network to be active (carrying traffic) — a silent network gives a weak reading. It senses movement, not still objects or people, and it cannot measure distance.
If the hub can't reach your home WiFi — you've taken the kit out, or the router is off — it automatically makes its own CFDR-Radar network instead, and there is no internet path to the cloud. The Home app can't see it then. To view it on-site, join the hub's CFDR-Radar WiFi and use the CFDR Roaming app. It returns to Home mode by itself next time it powers on within home-WiFi range.
The hub and nodes run on ordinary USB power. You can leave them plugged into a mains USB adaptor (a normal phone-charger plug) indefinitely — that is the recommended way to run the system long-term, and it is completely fine to do so. Use a good-quality adaptor and cable.
Running from a power bank: handy for portability, but a power bank will drain over time — often overnight or sooner, depending on its capacity and the number of devices. If your power bank died overnight, that is normal and expected, not a fault. A power bank also can't recharge itself while powering the device, so for anything more than a few hours, mains USB is the better choice. For all-night or always-on use, run everything from mains adaptors.
The hub and every node quietly watch their own chip temperature. The hub's temperature is shown in cyan at the top of the ROOMS view; each node's temperature appears as a small coloured badge on its row (green = fine, amber = warm, red = hot). This is handy when leaving the kit running for a long stretch. Warm is completely normal; only a sustained red reading suggests a device needs better airflow or a better power supply.
If a node ever gets genuinely hot, it puts itself into standby automatically — it pauses sensing to cool down, shows a STANDBY badge, and resumes on its own once it has cooled. You don't need to do anything. In normal use on USB power this is very unlikely to happen; it's simply a safety backstop.
Now close this pop-up with the blue X at the top right of this manual, and get scanning. You can reopen this manual anytime with the MANUAL link at the bottom of the page.
WiFi motion-sensing radar by Cyber Fitness - Discipline Rewired (CFDR).
This device detects movement by passively observing WiFi signals. You are solely responsible for how you use it. Use it only on networks and premises you own or are explicitly authorised to assess.
Using it to monitor people or property without consent or lawful authority may breach privacy, surveillance, computer-misuse and radio regulations, which vary by country and state. It is provided for lawful research, education and authorised security testing only.
The creators accept no liability for misuse or for any damage, loss or legal consequence arising from its use. No warranty is given as to accuracy or fitness for any purpose.
CFDR accepts no liability for any misuse of this device or for any loss, damage or legal consequence arising from its use. By using it you accept that you alone are responsible for ensuring your use is lawful, and you agree to hold CFDR harmless against any claim resulting from your use.
This product's firmware is built on the open-source CSIght project and is distributed under the MIT Licence:
MIT License Copyright (c) 2026 CSIght contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Built on CSIght (MIT Licence). Runs on Espressif ESP-IDF (Apache-2.0). Hardware platform: Waveshare ESP32-C6-LCD-1.47.
The experimental features live here, hidden behind the diagnostics code. They are for fun, learning and personal use.
Hidden in the diagnostics area is an experimental Vitals view that can sense breathing. To reach it, triple-tap the build number at the very bottom of the page and enter the access code. Then pick a single node in the VIEWING list, sit or lie still within about two metres of it, and wait fifteen to thirty seconds. A breathing rate and a live breathing waveform will appear. Both breathing and heart rate are experimental — breathing works well when you're still and close; heart rate is a research experiment and usually shows as searching. Moving resets the readings. This is a novelty and learning feature, not a medical device — never rely on it for anything health-related.
Triple-tap the build number at the bottom of the page and enter the diagnostics code to reveal this section and the Vitals tab. It stays unlocked until the hub restarts.
In Roaming mode the hub occasionally scans for nearby networks (to keep the "connect to WiFi" list current). Because the hub has a single radio, it briefly drops its own CFDR-Radar network during that scan. Your phone sees CFDR-Radar vanish for a moment and, if it is set to auto-join, jumps back to your home or mobile WiFi — so you lose the hub.
This is a limitation of the hardware, not a fault. To avoid it while using Roaming:
• Tell your phone to forget or not auto-join your other networks while you're using the hub, or turn other saved networks off temporarily.
• On iPhone: after joining CFDR-Radar, turn on Auto-Join for CFDR-Radar and off for your home network in WiFi settings.
• If you do get bumped off, simply re-join CFDR-Radar and carry on.
• Pressing RESCAN triggers the same brief drop on purpose — only use it when you actually need to refresh the network list.
On the ROOMS screen the slider locks once you have more than two nodes. Open a detail tab (RADAR, MOVEMENT…), pick the node in VIEWING, and adjust it there.
• Set the TARGET WIFI NETWORK in the ROOMS tab first — nodes do nothing until it is set.
• A node adopts the network within about 15 seconds, or power-cycle it to apply now.
• Check the node is powered and its screen is not stuck on "waiting for network".
• Make sure the room's node number matches the actual node.
• The node must be within Bluetooth range of the hub (~10 m indoors, less through walls) — move it closer to the hub, or place the hub more centrally.
• Confirm you joined CFDR-Radar and stayed connected past any "no internet" warning.
• Turn your phone's mobile data off briefly so it stops jumping back to cellular.
• Forget the network and rejoin.
• Power the display unit from a solid source — a weak power bank can drop the WiFi under load.
• Close the page and reopen http://192.168.4.1.
• Check the sensor unit's screen shows MOTION/CLEAR, not "Searching".
• If it says Searching, its target network name is wrong or out of range.
• Make sure both units are powered.
• Power-cycle the node to re-calibrate. Each node learns what "still" looks like when it powers on. Over time, or if it first calibrated in busy conditions, that baseline can drift and movement stops registering well. Unplug the node, plug it back in, and let it sit undisturbed for about 30 seconds so it sets a clean, quiet baseline. This fixes most cases of a node that has gone quiet.
• The target network may be idle — readings improve when it's carrying traffic.
• Move the sensor closer to the area you're watching.
• Raise SENSITIVITY.
• Reload the page.
• Power-cycle both units (off, then on).
• Re-join the WiFi.
The hub remembers the last network it joined and tries to rejoin it on power-up. If you've moved it somewhere new, it may keep searching for that old WiFi.
• If the old network isn't around, the hub drops to Roaming after about 30 seconds — then use CONNECT HUB TO WIFI to pick the new one.
• To make it forget the old network completely, press CLEAR ALL ROOMS & NETWORK in the Roaming app. This also clears your room names, which you can re-add.