firmware

Builds PlatformIO firmware and reports compilation results, memory usage, artifacts, and pin plans.

465|41|Updated Aug 4, 2026
One-click install
npx skills add https://github.com/autonomous-ai/openharness --skill firmware-autonomous-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: firmware
Source: https://github.com/autonomous-ai/openharness/tree/main/store/agents/firmware-studio/skills/firmware
Command: npx skills add https://github.com/autonomous-ai/openharness --skill firmware-autonomous-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Compiling embedded firmware and verifying the results requires running PlatformIO, parsing memory reports, locating binaries, and documenting pin assignments, all without accidentally touching real hardware. This Skill automates that compile-and-inspect loop while enforcing a strict boundary against unauthorized device access. ## Core Features & Use Cases - PlatformIO Build Automation: Selects the requested environment, default_envs, or the first [env:name] from platformio.ini and runs pio run exactly once, capturing the full compiler log. - Structured Build Reporting: Publishes build-status.html, .harness/build.json, and .harness/build.log with parsed RAM/flash usage, build duration, and copied firmware artifacts under out/. - Pin Plan Documentation: Reads pins.json to display intended GPIO assignments in an interactive dashboard, with validation of pin, role, direction, and note fields. - Use Case: You are developing an ESP32 Arduino project and want to verify that a code change compiles, check static RAM and flash consumption against the partition budget, and share a build report, all without flashing the board. ## Quick Start Ask the agent to build the firmware for the esp32dev environment and show the compilation results and memory usage.

Frequently Asked Questions about firmware

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build PlatformIO firmware for a specific environment?

Run the build script with the environment name as an argument, for example build-firmware.sh esp32dev. Without an argument it uses default_envs from platformio.ini or the first [env:name] section, then runs pio run once for that environment.

How do I document GPIO pin assignments for an ESP32 project?

Create a pins.json file with a pins array where each entry has pin, role, and optional direction and note fields. The build dashboard renders these as a pin plan, but it documents intent only and does not validate against real board hardware.

Does this build process flash or connect to the device?

No, it only compiles. Upload, erase, debugger connections, and serial access are separate actions requiring explicit user authorization, and a successful build never claims the firmware works on hardware.

Why does the build report show memory as unavailable?

Memory figures are parsed from the compiler log's RAM and Flash lines; if those lines are missing the dashboard shows them as unavailable rather than fabricating zeroes. RAM is static allocation, not runtime peak, and flash reflects the partition budget.

What happens when the PlatformIO build fails?

A failed compile, missing binary, or invalid pin plan clears readiness and publishes a failure page with the error summary. The full compiler log remains available in the dashboard and .harness/build.log so you can fix the cause and rebuild.