Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add iot-forge/m5stack-skills --skill cap-lora-1262git clone --depth 1 https://github.com/iot-forge/m5stack-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/iot-forge/m5stack-skills/cap-lora-1262)<a href="https://agentmods.dev/skills/iot-forge/m5stack-skills/cap-lora-1262"><img src="https://agentmods.dev/badge/skills/iot-forge/m5stack-skills/cap-lora-1262.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00254 | $0.04679 |
| Opus 5 | $0.00127 | $0.02339 |
| Sonnet 5 | $0.00051 | $0.00936 |
| Haiku 4.5 | $0.00025 | $0.00468 |
Grade A, and why
m5stack-cap-lora-1262 scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 354 lines — stays where its author put it; the contents beside it link to each section on GitHub.
M5Stack Cap LoRa-1262 (SKU U214)
A snap-on Cap for the M5Stack Cardputer Adv (K132-Adv) and CardputerZero that adds two independent radios in one accessory:
- LoRa: Semtech SX1262 sub-GHz transceiver, 868–923 MHz, +22 dBm TX, −147 dBm RX (LDR mode), FSK/GFSK/MSK/GMSK/LoRa/OOK, external RP-SMA antenna (3 dBi, 108×9.3 mm, included).
- GNSS: ATGM336H-6N@AT6668 multi-constellation receiver (GPS/QZSS/ BeiDou-2/BeiDou-3/Galileo/GLONASS), 50 channels, up to 10 Hz update, <1.5 m CEP50, built-in ceramic patch antenna. UART interface, default 115200 baud, 8N1.
Official docs: https://docs.m5stack.com/en/cap/Cap_LoRa-1262 Product page/SKU: https://docs.m5stack.com/en/products/sku/U214
Read this first — three things that will kill the cap or your bring-up
- Never power on without the LoRa antenna installed. M5Stack's docs are explicit: "the device hardware may be permanently damaged." An SX1262 driving +22 dBm into no load reflects power back into its PA. This is not a warning that can be softened — the antenna is a prerequisite, not an accessory.
- The RF antenna switch is gated by an I/O expander pin, not by the
SX1262 itself. SDA/SCL on the cap connector go to a PI4IOE5V6408
I/O expander whose P0 must be driven high to enable the RF path.
If your first
transmit()/receive()calls do nothing (RadioLib returning no error but no packets on the air / no packets received), you almost certainly never enabled P0. See the "Enabling the RF switch" section below. - The LoRa SPI bus is the microSD SPI bus. On the Cardputer Adv,
LoRa_SCK=G40,LoRa_MOSI=G14,LoRa_MISO=G39are the same pins used by the microSD slot (SD_CLK=G40,SD_MOSI=G14,SD_MISO=G39). Only the chip-select is separate (LoRa_NSS=G5vsSD_CS=G12). This works — SPI is designed for exactly this — but you must not init the SD bus and the LoRa bus as two independentSPIClassinstances with different clock/mode settings. Share oneSPIClass, or accept that accessing SD and LoRa concurrently requires bus mediation.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 354 lines · 254 tokens per session scan A 6c6d8c12d6a9
m5stack-cap-lora-1262 is a skill published in the GitHub repository iot-forge/m5stack-skills (2 stars, last pushed 12d ago), licensed MIT. It adds 254 tokens to every session and 4,679 once invoked, about $0.0013 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
sticky-device
Hardware facts, ESP-IDF firmware patterns, ePaper/touch APIs, and Playground publishing rules for the Seeed Studio reTerminal Sticky (ESP32-S3, 3.97" 800x480 e-ink). Use when working on reTerminal Sticky or "Sticky" firmware, apps, pin assignments, display refresh, touch gestures, deep sleep, ESPHome/Home Assistant…
ble
Operate ESP-Claw BLE: initialize BLE, advertise, handle connections, process events, and inspect module state.
cap_router_mgr
Manage router automation rules: list/get/add/update/delete/reload with strict rulejson format.
light_switch
Turn a board light on or off, set LED strip color or brightness, and control GPIO lights. Requires boardhardwareinfo skill.
skills_lab_downloader
Download a skill from the ESP-Skill hub by exact skill name, verify required peripherals against boardhardwareinfo, and save it into the on-device skills directory.
take_picture
Take one photo with the board camera and save it as a JPEG file. Requires boardhardwareinfo skill.