← 返回 Skills 市场
arsatyants

LoRa CAD air scanner

作者 Andrey Arsatyants · GitHub ↗ · v1.0.5 · MIT-0
cross-platform ✓ 安全检测通过
164
总下载
0
收藏
0
当前安装
6
版本数
在 OpenClaw 中安装
/install lora-cad-scanner
功能描述
LoRa Channel Activity Detection (CAD) scanner for LilyGo T3 v1.6 (ESP32-PICO-D4 + SX1276) with HackRF One support. Scans a configurable frequency range using...
使用说明 (SKILL.md)

LoRa CAD Scanner

Turns a LilyGo T3 v1.6 + Pi into a persistent LoRa scanner with live OLED display and Telegram alerts.

Hardware

Component Spec
MCU ESP32-PICO-D4 (LilyGo T3 v1.6.1)
LoRa SX1276
Display SSD1306 128×64 OLED
Optional SDR HackRF One (wideband RF recon)

Pin assignments (T3 v1.6.1):

  • LoRa: SCK=5, MISO=19, MOSI=27, SS=18, RST=23, DIO0=26
  • OLED: SDA=21, SCL=22, addr=0x3C (software I2C)

Dependencies

arduino-cli lib install "LoRa"   # v0.8.0+
arduino-cli lib install "U8g2"   # v2.35+
# Core: esp32:esp32 v3.3.7+
pip install pyserial numpy
  • scripts/parse_sweep.py requires: numpy
  • scripts/lora_monitor.py requires: pyserial

Quick Deploy

# 1. Flash the Arduino sketch
cd /path/to/skill
cp scripts/LoRaCADScan.ino ~/Arduino/LoRaCADScan/LoRaCADScan.ino
arduino-cli compile --fqbn esp32:esp32:esp32 ~/Arduino/LoRaCADScan
arduino-cli upload  --fqbn esp32:esp32:esp32 --port /dev/ttyACM0 ~/Arduino/LoRaCADScan

# 2. Start the Pi monitor (background)
nohup python3 scripts/lora_monitor.py > lora_monitor.log 2>&1 &

# 3. Set up Telegram alert cron (OpenClaw)
# See references/setup.md for cron job configuration

Scan Parameters

Defaults (edit in sketch):

  • Range: 433–445 MHz
  • Step: 50 kHz
  • BW: 62.5 / 125 / 250 / 500 kHz
  • SF: 6–12
  • CAD timeout: 400 ms per combination

To change range, edit in LoRaCADScan.ino:

#define FREQ_START   433000000UL
#define FREQ_END     445000000UL
#define FREQ_STEP      50000UL

Limitations and Notes

  • All output/log paths and cron scripts are hardcoded for the default OpenClaw workspace structure (/home/admin/.openclaw/workspace/). For non-standard setups, adjust the path variables in code/sketch before deploying.
  • Requires access to /dev/ttyACM0 (or another LilyGo T3 serial port), and to SDR devices (hackrf_sweep requires hackrf-tools and udev access rights).
  • Telegram alerting is performed via an external OpenClaw cron pipeline; this skill does not integrate a Telegram client or store the token itself.
  • Radio frequency monitoring may be regulated by local law. User is responsible for compliance and consequences.

OLED Layout

┌────────────────────────┐
│ LoRa CAD Scanner       │
├────────────────────────┤
│ 433.150 MHz            │  ← current freq (big)
│ BW: 62k  SF:7  -141dBm │  ← current params + RSSI
│ Pass:3  Ch:2  Hit:12   │  ← stats
├────────────────────────┤
│ HIT 434.950 125k SF9   │  ← last hit
│████████░░░░░░░░░░░░░░░░│  ← progress bar
└────────────────────────┘

Serial Protocol

All output at 115200 baud.

Scan data (continuous):

FREQ_HZ,BW_HZ,SF,RSSI_dBm,CAD(0=clear/1=hit)
433150000,125000,7,-141,0
434950000,62500,9,-138,1   ← hit

15-minute report block:

# REPORT_START
# PASS=12 TOTAL_HITS=5 UNIQUE_CHANNELS=2
NEW,434950000,62500,9,-141,-138,3
OLD,433150000,250000,7,-145,-143,2
# REPORT_END

NEW = first seen since last report. OLD = previously known.

Alert Pipeline

LilyGo serial → lora_monitor.py → lora_alert.txt → OpenClaw cron → Telegram
  • Monitor parses REPORT_START/END blocks
  • Writes lora_alert.txt with formatted message
  • OpenClaw cron (every 2 min) reads the alert file, sends a Telegram notification, and deletes the file
  • Extracted parameters may include DevEUI, DevAddr, frequency coordinates, and other unique LoRa device identifiers; all data is only written inside the local workspace and never sent to external services except by explicit user configuration (Telegram).
  • Known channels are persisted to lora_hits.json

CAD Implementation Note

The LoRa library v0.8.0 does not expose CAD or channelActivityDetection(). CAD is implemented via direct SX1276 register writes:

  • REG_OP_MODE (0x01)0x87 (CAD mode)
  • Poll REG_IRQ_FLAGS (0x12) bit 2 (CadDone) + bit 0 (CadDetected)
  • Timeout: 400 ms

See references/sx1276-cad.md for register details.


Security & Privacy

  • All alerts, log files, and intermediate results are only written within the local workspace.
  • Device unique identifiers (DevEUI, DevAddr, LoRa addresses) may appear in reports—user is responsible for their handling and privacy.
  • Telegram notification is configured and triggered only by explicit user cron script—no token or user credential is stored by this skill.
  • All device addresses discovered are only stored locally and never transmitted unless user configures external delivery.

False Positive Rate

At the noise floor (~−140 dBm), expect ~0–5% false CAD positives per pass. A hit is considered reliable if it appears in ≥2 consecutive passes at the same freq/BW/SF. The monitor tracks count per channel — low-count hits are likely noise.

HackRF Companion Workflow

Use HackRF for initial wideband survey, then focus LilyGo on confirmed bands:

# Wideband sweep with HackRF
hackrf_sweep -f 430:445 -w 25000 -l 32 -g 40 > sweep.csv

# Parse peaks, set FREQ_START/FREQ_END in sketch accordingly
python3 scripts/parse_sweep.py sweep.csv

See references/hackrf-workflow.md for full HackRF + LilyGo workflow.

安全使用建议
This skill appears to do what it says (LoRa CAD scanning + optional HackRF pre-sweep + Telegram alerts via OpenClaw). Before installing: 1) Be aware of legal/regulatory constraints on RF monitoring in your region. 2) The monitor decodes and stores device identifiers (DevEUI, DevAddr) and may expose location-like fields (TTN Mapper); treat lora_hits.json, lora_scan.log and lora_alert.txt as sensitive. 3) The scripts hardcode /home/admin/.openclaw/workspace — either run/copy the scripts into that workspace or edit paths to match your environment. 4) OpenClaw cron is responsible for sending alerts to Telegram; verify the cron job and Telegram token are configured securely (the skill does not store tokens itself). 5) Review the included decoder if you do not want packet contents or identifiers to be parsed/stored; you can disable decoding or redact fields before writing alerts. If you want extra assurance, run the monitor in an isolated environment first and inspect the files it creates.
功能分析
Type: OpenClaw Skill Name: lora-cad-scanner Version: 1.0.5 The bundle is a functional LoRa Channel Activity Detection (CAD) scanner and packet decoder designed for LilyGo T3 hardware and Raspberry Pi. It includes an Arduino sketch (LoRaCADScan.ino) for hardware-level RF scanning, a Python monitor (lora_monitor.py) for data logging, and a protocol decoder (lora_decoder.py) that identifies LoRaWAN, Meshtastic, and other common IoT protocols. All behaviors, including the creation of local alert files for Telegram notifications, are transparently documented and strictly aligned with the stated purpose of RF monitoring and reconnaissance.
能力评估
Purpose & Capability
Name/description match the included files and runtime instructions: Arduino sketch for SX1276 CAD scanning, Pi monitor + decoder scripts, and optional HackRF support. Required tools (arduino-cli, pyserial, numpy, hackrf tools) are appropriate for the described functionality.
Instruction Scope
Runtime instructions stay within the declared purpose (flash sketch, read serial, parse CAD/packets, write local alerts). Two points to watch: (1) many paths and cron behavior are hardcoded to /home/admin/.openclaw/workspace and the OpenClaw cron pipeline — the operator must configure OpenClaw/cron to actually deliver Telegram alerts; (2) the monitor decodes LoRa payloads (including DevEUI/DevAddr and TTN Mapper coords) and writes logs/alerts locally. These actions are expected for a scanner but are sensitive from a privacy/regulatory perspective.
Install Mechanism
No automated install/spec; this is an instruction-only skill with source files. It asks users to use arduino-cli and pip to install common libraries (LoRa, U8g2, pyserial, numpy) — a proportional and standard approach. No arbitrary downloads or extract-from-URL steps are present.
Credentials
The skill requests no credentials or environment variables, which is appropriate. However it persistently stores decoded identifiers and may include geolocation (TTN Mapper) in alerts and lora_hits.json inside the workspace. Although the skill does not itself send data externally, the OpenClaw cron (user-configured) will forward lora_alert.txt to Telegram — treat these artifacts as sensitive.
Persistence & Privilege
always:false and no special platform privileges are requested. The monitor expects access to /dev/ttyACM0 and optionally to HackRF devices (udev permissions). The skill does not modify other skills or system configs; it writes only into the (hardcoded) OpenClaw workspace.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install lora-cad-scanner
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /lora-cad-scanner 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.5
lora-cad-scanner 1.0.5 - No file changes detected in this release. - No functional, documentation, or dependency updates.
v1.0.4
No changes detected in this release. - Version 1.0.4 does not introduce any file or documentation changes. - All features and usage remain the same as in the previous version.
v1.0.3
v1.0.3 — No user-facing changes. - No file changes detected in this version. - Skill functionality and documentation remain unchanged.
v1.0.2
- All Russian text in documentation replaced with English for broader accessibility. - Requirements and usage notes clarified with consistent use of English terms. - No changes to functionality or code—documentation only update.
v1.0.1
- Added requirements for numpy (for parse_sweep.py) and explicitly stated pyserial (for lora_monitor.py) in the dependencies section. - Updated dependencies example to include both pyserial and numpy. - Added a new "Limitations and Notes" section describing workspace path requirements, device permissions, lack of built-in Telegram client, and legal responsibility disclaimer. - Added a "Security & Privacy" section outlining local data storage, identifier handling, and Telegram alert privacy. - Some alert pipeline explanations now mention that some extracted LoRa identifiers may appear and are saved locally. - Minor language changes (some phrasing in Russian) for improved clarity regarding setup and operation details.
v1.0.0
LoRa CAD Scanner v1.0.0 - Initial release of lora-cad-scanner for LilyGo T3 v1.6 (ESP32-PICO-D4 + SX1276) with HackRF One support. - Scans configurable frequency bands with multiple LoRa BW/SF settings; results displayed live on OLED. - Detected channels stored in device RAM and reported via Serial (continuous+15 min report blocks). - Telegram alerts for new detections via OpenClaw cron pipeline. - Includes CAD implementation via direct SX1276 register access for compatibility. - Companion workflow integrates HackRF wideband sweeps for targeted scanning.
元数据
Slug lora-cad-scanner
版本 1.0.5
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 6
常见问题

LoRa CAD air scanner 是什么?

LoRa Channel Activity Detection (CAD) scanner for LilyGo T3 v1.6 (ESP32-PICO-D4 + SX1276) with HackRF One support. Scans a configurable frequency range using... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 164 次。

如何安装 LoRa CAD air scanner?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install lora-cad-scanner」即可一键安装,无需额外配置。

LoRa CAD air scanner 是免费的吗?

是的,LoRa CAD air scanner 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

LoRa CAD air scanner 支持哪些平台?

LoRa CAD air scanner 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 LoRa CAD air scanner?

由 Andrey Arsatyants(@arsatyants)开发并维护,当前版本 v1.0.5。

💬 留言讨论