Device access skill

Reach RuView sensing hardware from the machine it is attached to — ESP32 CSI nodes (serial + UDP stream), 60 GHz MR60BHA2 / 24 GHz LD2410 mmWave radars, RPLIDAR and iPhone LiDAR — and from other machines over SSH, read-only.

by ruvnet·MIT license·★ 94,702 Stars on the repo·GitHub ↗

Use now

Files of Device access

ruvnet/main1 file shown
SKILL.md
Show the full text54 lines

device-access

Hardware tools must run on the host the device is plugged into. A cloud agent cannot see your USB ports. Run npx @ruvnet/ruview locally, start a local Claude Code session there (claude remote-control in the repo if you want to drive it from the Claude app), or add the machine as an SSH host.

1. Find devices

npx @ruvnet/ruview doctor --group python,serial,devices,remote
npx @ruvnet/ruview devices          # USB VID:PID → likely ESP32 / mmWave / RPLIDAR + confirm command

2. Read each modality

Device Command Confirms
ESP32 node (USB) ruview doctor --port <p> --probe, ruview monitor --port <p> chip id; CSI callbacks in the serial log (the monitor never resets the node; C6/S3 USB-Serial/JTAG builds log on the native USB port)
ESP32 / Realtek node (network) ruview esp32 --seconds 10 [--udp-port 5005] per-node CSI rate, sequence loss, RSSI, CSI shapes, device vitals; Realtek RAC1 CSI and heartbeat-only senders
Realtek RTL8721Dx (USB, PL2303) ruview monitor --port <p> --baud 1500000 RUVIEW_CSI: frame # lines in the Ameba log
Live CSI → kernel ruview esp32 --seconds 45 --analyze [--node-id N] [--backend napi] kernel vitals summary at the measured frame rate (no reference measurement)
60 GHz MR60BHA2 ruview mmwave --port <p> --model mr60bha2 valid frames, checksum errors, presence/distance/device HR+BR
24 GHz LD2410 ruview mmwave --port <p> --model ld2410 target state and distances
RPLIDAR ruview lidar --source rplidar --port <p> [--baud 115200] points, revolutions, range, angular coverage
iPhone LiDAR export RUVIEW_LIDAR_TOKEN=…; ruview lidar --source iphone --url ws://HOST:8787/ws/lidar depth frame rate, confident fraction, median depth

The UDP capture cannot share port 5005 with a running sensing server; stop the server or have the nodes target another port.

3. Other machines (SSH, read-only)

npx @ruvnet/ruview hosts add --name lab-pi --ssh [email protected]
ssh [email protected] true                       # pin the host key once
npx @ruvnet/ruview hosts run --host lab-pi --tool ruview_devices_scan
npx @ruvnet/ruview hosts run --host lab-pi --tool ruview_mmwave_read --args-json '{"port":"/dev/ttyUSB0"}'

Remote hosts run a pinned @ruvnet/ruview and accept only read-only tools. Flash, train, and calibrate on the host itself.

Evidence

Device readouts are MEASURED readings, not accuracy results. mmWave heart/breathing values are the radar's own estimates. Hardware validation still means a captured log or stream from real silicon, recorded with the command that produced it.

1---
2name: device-access
3description: Reach RuView sensing hardware from the machine it is attached to — ESP32 CSI nodes (serial + UDP stream), 60 GHz MR60BHA2 / 24 GHz LD2410 mmWave radars, RPLIDAR and iPhone LiDAR — and from other machines over SSH, read-only.
4---
5 
6# device-access
7 
8Hardware tools must run **on the host the device is plugged into**. A cloud
9agent cannot see your USB ports. Run `npx @ruvnet/ruview` locally, start a
10local Claude Code session there (`claude remote-control` in the repo if you
11want to drive it from the Claude app), or add the machine as an SSH host.
12 
13## 1. Find devices
14 
15```
16npx @ruvnet/ruview doctor --group python,serial,devices,remote
17npx @ruvnet/ruview devices # USB VID:PID → likely ESP32 / mmWave / RPLIDAR + confirm command
18```
19 
20## 2. Read each modality
21 
22| Device | Command | Confirms |
23|---|---|---|
24| ESP32 node (USB) | `ruview doctor --port <p> --probe`, `ruview monitor --port <p>` | chip id; CSI callbacks in the serial log (the monitor never resets the node; C6/S3 USB-Serial/JTAG builds log on the native USB port) |
25| ESP32 / Realtek node (network) | `ruview esp32 --seconds 10 [--udp-port 5005]` | per-node CSI rate, sequence loss, RSSI, CSI shapes, device vitals; Realtek RAC1 CSI and heartbeat-only senders |
26| Realtek RTL8721Dx (USB, PL2303) | `ruview monitor --port <p> --baud 1500000` | `RUVIEW_CSI: frame #` lines in the Ameba log |
27| Live CSI → kernel | `ruview esp32 --seconds 45 --analyze [--node-id N] [--backend napi]` | kernel vitals summary at the measured frame rate (no reference measurement) |
28| 60 GHz MR60BHA2 | `ruview mmwave --port <p> --model mr60bha2` | valid frames, checksum errors, presence/distance/device HR+BR |
29| 24 GHz LD2410 | `ruview mmwave --port <p> --model ld2410` | target state and distances |
30| RPLIDAR | `ruview lidar --source rplidar --port <p> [--baud 115200]` | points, revolutions, range, angular coverage |
31| iPhone LiDAR | `export RUVIEW_LIDAR_TOKEN=…; ruview lidar --source iphone --url ws://HOST:8787/ws/lidar` | depth frame rate, confident fraction, median depth |
32 
33The UDP capture cannot share port 5005 with a running sensing server; stop
34the server or have the nodes target another port.
35 
36## 3. Other machines (SSH, read-only)
37 
38```
39npx @ruvnet/ruview hosts add --name lab-pi --ssh [email protected]
40ssh [email protected] true # pin the host key once
41npx @ruvnet/ruview hosts run --host lab-pi --tool ruview_devices_scan
42npx @ruvnet/ruview hosts run --host lab-pi --tool ruview_mmwave_read --args-json '{"port":"/dev/ttyUSB0"}'
43```
44 
45Remote hosts run a pinned `@ruvnet/ruview` and accept only read-only tools.
46Flash, train, and calibrate on the host itself.
47 
48## Evidence
49 
50Device readouts are `MEASURED` *readings*, not accuracy results. mmWave
51heart/breathing values are the radar's own estimates. Hardware validation
52still means a captured log or stream from real silicon, recorded with the
53command that produced it.
54 

Discussion