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 ↗
npx degit ruvnet/RuView/harness/ruview/.claude/skills/device-access#main ~/.claude/skills/device-accessChecked ·commit main
Files of Device access
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 | |
| 2 | name device-access |
| 3 | description 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 | |
| 8 | Hardware tools must run **on the host the device is plugged into**. A cloud |
| 9 | agent cannot see your USB ports. Run `npx @ruvnet/ruview` locally, start a |
| 10 | local Claude Code session there (`claude remote-control` in the repo if you |
| 11 | want to drive it from the Claude app), or add the machine as an SSH host. |
| 12 | |
| 13 | ## 1. Find devices |
| 14 | |
| 15 | |
| 16 | npx @ruvnet/ruview doctor --group python,serial,devices,remote |
| 17 | npx @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 | |
| 33 | The UDP capture cannot share port 5005 with a running sensing server; stop |
| 34 | the server or have the nodes target another port. |
| 35 | |
| 36 | ## 3. Other machines (SSH, read-only) |
| 37 | |
| 38 | |
| 39 | npx @ruvnet/ruview hosts add --name lab-pi --ssh [email protected] |
| 40 | ssh [email protected] true # pin the host key once |
| 41 | npx @ruvnet/ruview hosts run --host lab-pi --tool ruview_devices_scan |
| 42 | npx @ruvnet/ruview hosts run --host lab-pi --tool ruview_mmwave_read --args-json '{"port":"/dev/ttyUSB0"}' |
| 43 | |
| 44 | |
| 45 | Remote hosts run a pinned `@ruvnet/ruview` and accept only read-only tools. |
| 46 | Flash, train, and calibrate on the host itself. |
| 47 | |
| 48 | ## Evidence |
| 49 | |
| 50 | Device readouts are `MEASURED` *readings*, not accuracy results. mmWave |
| 51 | heart/breathing values are the radar's own estimates. Hardware validation |
| 52 | still means a captured log or stream from real silicon, recorded with the |
| 53 | command that produced it. |
| 54 |
Discussion
Browse more free Claude skills.