IoT Device Sensor Access

Device access

by ruvnet · MIT license · ★ 94,702 on GitHub · updated Sep 22

Device access cover

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.

---
name: device-access
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.
---

# 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
```

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add ruvnet/RuView --skill device-access -g -a claude-code
Claude Code (degit)npx degit ruvnet/RuView/harness/ruview/.claude/skills/device-access#main ~/.claude/skills/device-access
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md2.9 KB
Read SKILL.md here
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 ruv@lab-pi.local
ssh ruv@lab-pi.local 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 ruv@lab-pi.local
40ssh ruv@lab-pi.local 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 
View all files on GitHub →

Details

Updated
Sep 22, 2026
License
MIT
Stars on the repo
★ 94,702
Checked
Source
ruvnet/RuView ↗
Creator
ruvnet · 8 listings
View creator

Similar skills

See all →

More from ruvnet

SkillAgentDB Advanced Featuresruvnet/RuView · by ruvnetMaster advanced AgentDB features including QUIC synchronization, multi-database management, custom distance metrics, hybrid search, and distributed systems integration. Use when building distributed AI systems, multi-agent coordination, or advanced vector search applications.★ 94.7k GitHub starsSkillBrowser Automationruvnet/RuView · by ruvnetWeb browser automation with AI-optimized snapshots for claude-flow agents★ 94.7k GitHub starsSkillGitHub Code Reviewerruvnet/RuView · by ruvnetComprehensive GitHub code review with AI-powered swarm coordination★ 94.7k GitHub starsSkillGitHub Release Orchestratorruvnet/RuView · by ruvnetComprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management★ 94.7k GitHub starsSkillHooks Automation Systemruvnet/RuView · by ruvnetAutomated coordination, formatting, and learning from Claude Code operations using intelligent hooks with MCP integration. Includes pre/post task hooks, session management, Git integration, memory coordination, and neural pattern training for enhanced development workflows.★ 94.7k GitHub starsSkillRuView Hardware Setupruvnet/RuView · by ruvnetESP32-S3 / ESP32-C6 firmware build, flash, WiFi provisioning, and serial monitoring for RuView CSI sensing nodes. Use when setting up physical hardware, reflashing a node, or debugging a device that isn't streaming CSI.★ 94.7k GitHub stars