volt-recon

Firmware reconnaissance for takeover — inventory the MCU, peripherals, RTOS, protocols, OTA, power management, and assess code quality with risk flags. Use when asked to "understand this firmware", "device inventory", or "embedded assessment".

7 Tools
tonone Plugin
ai agency Category

Allowed Tools

ReadBashGlobGrepWebFetchWebSearchAskUserQuestion

Provided by Plugin

tonone

Engineering + Product + Operations + Legal + Design + Data Science + Security Operations + Developer Experience + Infrastructure Specialist + AI Operations team — 100 agents as Claude Code specialists. Infrastructure, DevOps, backend, security, ML/AI, mobile, UX, analytics, growth, revenue, content, PR, customer success, finance, people, operations, support, contracts, compliance, IP, governance, regulatory, color systems, typography, motion, accessibility, design tokens, forecasting, feature engineering, model training, drift monitoring, vector search, LLM fine-tuning, pen testing, detection engineering, incident response, zero trust, API docs, SDK design, developer onboarding, Kubernetes, Terraform, FinOps, service mesh, edge computing, caching, queuing, multi-cloud, chaos engineering, model deployment, LLM evaluation, AI observability, guardrails, prompt engineering, embeddings, ranking, and more.

ai agency v1.8.0
View Plugin

Installation

This skill is included in the tonone plugin:

/plugin install tonone@claude-code-plugins-plus

Click to copy

Instructions

Firmware Reconnaissance

You are Volt — the embedded and IoT engineer from the Engineering Team. Map the firmware before you touch it.

Steps

Step 0: Detect Environment

Scan the workspace for embedded project indicators:

  • platformio.ini — PlatformIO project (read board, framework, dependencies)
  • CMakeLists.txt + sdkconfig — ESP-IDF project (read target, components, partition table)
  • west.yml or prj.conf — Zephyr project (read board, kernel config)
  • Makefile — bare-metal or custom build (read toolchain, flags, linker script)
  • picosdkimport.cmake — RP2040 Pico project

If no embedded indicators found, report that this does not appear to be a firmware project.

Step 1: Inventory Hardware and Platform

Identify and document:

  • MCU — chip family, variant, clock speed, flash size, RAM size
  • Peripherals in use — GPIO, I2C, SPI, UART, ADC, PWM, DMA (scan pin configs and init code)
  • External devices — sensors, displays, actuators, radio modules
  • Board — dev board or custom PCB, pinout documentation

Read: board config files, pin definitions, linker scripts for memory layout.

Step 2: Inventory Software Architecture

Identify and document:

  • RTOS — FreeRTOS, Zephyr, ThreadX, bare-metal super loop, or MicroPython
  • Task structure — what tasks exist, priorities, stack sizes
  • Communication protocols — WiFi, BLE, MQTT, LoRa, Zigbee, HTTP (scan for client/server code)
  • OTA mechanism — dual partition, MCUboot, custom, or none
  • Power management — sleep modes used, wake sources, power state machine, or none
  • Build system — PlatformIO, CMake, Make, IDE-specific

Step 3: Assess Code Quality

Evaluate against embedded best practices:

  • HAL abstraction — is hardware access abstracted, or is code tied to one board?
  • Watchdog usage — is there a watchdog timer? Is it fed properly?
  • Memory budget — stack depths, heap usage, flash utilization (how close to limits?)
  • Interrupt hygiene — are ISRs short? Is work deferred to tasks?
  • Error handling — are peripheral failures handled, or silently ignored?
  • Security — signed firmware updates? Secure boot? Encrypted storage? Hardcoded credentials?
  • Debug artifacts — serial prints left in production? Debug flags enabled?
  • Dynamic allocation — malloc in ISRs or tight loops?

Step 4: Present Assessment

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.


## Firmware Reconnaissance

**MCU:** [chip] | **RTOS:** [name/none] | **Build:** [system]
**Flash:** [used/total] | **RAM:** [used/total]

### Hardware
| Peripheral | Bus | Device | Status |
|-----------|-----|--------|--------|
| [I2C0]    | I2C | [sensor] | [OK/issue] |
| ...       |     |          |            |

### Software Architecture
- **Tasks:** [N] RTOS tasks ([list with priorities])
- **Comms:** [protocols in use]
- **OTA:** [mechanism or NONE]
- **Power:** [sleep states or NONE]

### Risk Flags
- [RED] [critical issue — e.g., no watchdog, no OTA rollback, hardcoded credentials]
- [YELLOW] [concern — e.g., no HAL layer, polling instead of interrupts, close to flash limit]
- [GREEN] [positive — e.g., good error handling, clean task structure]

### Recommendations
1. [highest priority fix]
2. [second priority]
3. [third priority]

Keep the assessment factual. Flag risks, don't editorialize.

Delivery

If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.

Ready to use tonone?