MCPInstall

pin-assignment

Use when assigning Arduino, ESP32, ESP32-S3, Pico, or Pico W pins; creating a GPIO map; assigning buttons, LEDs, sensors, buses, or actuators; migrating a pin map; or generating constexpr int declarations. Check the exact board and physical pin constraints before emitting the user's ordered raw declaration format.

Installs
65
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill pin-assignment
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads pin-assignment automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Pin Assignment

Produce a board-aware pin plan without losing the repository's declaration convention. A logical declaration ID is not automatically a physical GPIO number; keep those layers distinct.

Intake

Record the exact board/revision, MCU/module, framework/core version, toolchain, signal names, direction, voltage, current, pull requirements, bus ownership, boot/debug/USB/radio constraints, and whether the user wants declarations, physical wiring, or both. Resolve the target through ../board-support/SKILL.md first; its resolution_status must be resolved for the requested pin-advice purpose. Load the matching file under ../../references/boards/ before selecting a physical pin. If the board is a bounded family with missing identity fields, stop and request them instead of using a similar profile.

Process

  1. Classify every signal as input, output, analog, PWM, bus, interrupt, boot, debug, USB, flash, PSRAM, or radio related.
  2. Reserve board-specific flash, PSRAM, USB, boot-strapping, debug, and default bus pins unless the exact board documentation approves reuse.
  3. Reject a candidate whose direction, pull capability, voltage, current, ADC, PWM, or protocol behavior does not match the signal.
  4. Keep logical IDs stable and allocate them in the requested fixed order.
  5. If the user requests only declarations, emit only the declarations as plain text. Do not add a code fence, heading, explanation, or trailing comment.
  6. If a physical map is requested, provide it separately and label assumptions and source-backed constraints.

Required declaration convention

For the user's custom output mode, use raw C++ declarations in numeric order:

constexpr int btn_esc = 101;
constexpr int btn_enter = 102;
constexpr int led_status = 103;

Use the next sequential logical value for each requested signal. These values are stable logical identifiers unless the user explicitly defines them as physical GPIO numbers. Never replace this format with an enum, macro, array, namespace, explanatory wrapper, or reordered declaration list.

Anti-rationalization

ShortcutResponse
"The pin is probably free."Check the exact board reference and active peripherals.
"GPIO34 works for an LED on every ESP32."Reject classic ESP32 input-only GPIO34-39 for outputs; distinguish ESP32-S3 and verify its module table.
"GPIO0 is just another output."Check its strapping role and reset level before assigning it.
"The compile passed."Keep wiring and target behavior unverified.
"I can explain the declarations around the code."In declarations-only mode, output the raw ordered lines only.

Verification

  • Declaration names and values are constexpr int and strictly increasing from the required starting ID.
  • Every physical output avoids input-only, flash/PSRAM, USB, and unapproved strapping pins for the exact board.
  • Voltage/current and pull-up requirements have a source or explicit unknown.
  • Build proof, upload proof, hardware proof, and system proof are reported separately.

Shared output contract

Use the shared Arduino skill contract: state assumptions, required tools and versions, implementation steps, tests/evidence by proof stage, known limitations, and recovery/security notes.

FAQ

What does the pin-assignment skill do?

Use when assigning Arduino, ESP32, ESP32-S3, Pico, or Pico W pins; creating a GPIO map; assigning buttons, LEDs, sensors, buses, or actuators; migrating a pin map; or generating constexpr int declarations. Check the exact board and physical pin constraints before emitting the user's ordered raw declaration format.

How do I install pin-assignment?

Run npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill pin-assignment in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/pin-assignment/ (personal) or .claude/skills/pin-assignment/ (project).

Which AI agents can use pin-assignment?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is pin-assignment safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains pin-assignment?

It is published by wedsamuel1230 in wedsamuel1230/embedded-engineering-skills. It has 65 recorded installs.

More from wedsamuel1230/embedded-engineering-skills

View all →

arduino-project-builder

wedsamuel1230/embedded-engineering-skills

Build complete Arduino and embedded projects across Arduino IDE, Arduino CLI, PlatformIO, and vendor-specific toolchains. Use when users request an application combining firmware, sensors, actuators, networking, power, or deployment rather than a code snippet. The bundled scaffold targets UNO, ESP32, and Raspberry Pi Pico; use the board profile and document limitations for other targets.

DevOps & Cloud540 installs

arduino-code-generator

wedsamuel1230/embedded-engineering-skills

Open the skill to read its SKILL.md instructions.

407 installs

circuit-debugger

wedsamuel1230/embedded-engineering-skills

Open the skill to read its SKILL.md instructions.

264 installs

arduino-serial-monitor

wedsamuel1230/embedded-engineering-skills

Open the skill to read its SKILL.md instructions.

231 installs

error-message-explainer

wedsamuel1230/embedded-engineering-skills

Open the skill to read its SKILL.md instructions.

180 installs

enclosure-designer

wedsamuel1230/embedded-engineering-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design166 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs