Add add-board-v1 skill for adding new boards to WipperSnapper#893
Add add-board-v1 skill for adding new boards to WipperSnapper#893tyeth wants to merge 3 commits intoadafruit:add-skillsfrom
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
.agents/skills/add-board-v1/SKILL.md
Outdated
| Guides adding a new board (microcontroller / development board) to Adafruit IO WipperSnapper v1 | ||
| firmware and the Wippersnapper_Boards companion definition repo. Use this skill whenever the user | ||
| wants to add a new board, port WipperSnapper to a new microcontroller, support a new development | ||
| board, add a new PlatformIO environment, create a board definition for WipperSnapper, or enable | ||
| WipperSnapper on a new piece of hardware — even if they just mention a board name and | ||
| "wippersnapper" in the same breath. Covers the full workflow: platformio.ini environment, | ||
| Wippersnapper_Boards.h board ID and status LED config, network interface selection, provisioning | ||
| method (TinyUSB vs LittleFS), Wippersnapper_Networking.h updates if needed, CI workflow matrix | ||
| additions, Wippersnapper_Boards repo definition.json, build verification, clang-format, and PR | ||
| creation for both repos. |
There was a problem hiding this comment.
should also cover adding support for new wifi coprocessors (w/ existing main mcu or new)
.agents/skills/add-board-v1/SKILL.md
Outdated
| network interface, provisioning, CI matrix | ||
| 2. **Wippersnapper_Boards** — board `definition.json` for CI build/flash tooling | ||
|
|
||
| The user supplies a board name (e.g. "QT Py ESP32-C6"). Research the board, identify its MCU |
There was a problem hiding this comment.
Should mention specifically finding product page, documentation urls, associated schematics / wiki's / examples, and associated datasheets (often not board specific).
| - **Board ID:** A kebab-case string (e.g. `"feather-esp32s3-tft"`) defined in | ||
| `Wippersnapper_Boards.h` that uniquely identifies the hardware to Adafruit IO. |
There was a problem hiding this comment.
lowercase kebab-case, has max length of x, defined in boards repo PR CI validation, ideally match arduino fqbn or pio target name, include manufacturer of board (not mcu).
| 3. Connect to Adafruit IO — the board should appear on the device page | ||
| 4. Verify the board name and type show correctly in the UI | ||
| 5. Test basic I/O: add a digital GPIO component, toggle a pin | ||
| 6. Monitor serial output for initialization and connection success |
There was a problem hiding this comment.
suggest an alternative path via protomq for testing.
At step 3 the alternative path is to get protomq running (lorennorman/protomq gh repo) for wippersnapper v1 (branch/tag), and then apply the secrets file but with io_url defined as machine ip on local network and io_port as 1883. Then use playwright and the protomq web ui manually, or protomq with play-scripts (see readme) to test the new boards functionality (all the while monitoring the serial).
|
@copilot make the requested changes, and if you cannot push then just include the full content of the main file as a single codeblock in the response. |
There was a problem hiding this comment.
Pull request overview
Adds a new agent skill (add-board-v1) intended to guide contributors through the full workflow of adding new hardware boards to Adafruit IO WipperSnapper v1, including companion updates in the Wippersnapper_Boards definition repo.
Changes:
- Added a comprehensive skill guide (
SKILL.md) covering research, firmware updates, CI matrix updates, and companiondefinition.jsoncreation. - Added an evaluations file (
evals.json) with prompts/expected outputs for common “add/port board” scenarios.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
.agents/skills/add-board-v1/SKILL.md |
New skill documentation describing the end-to-end process for adding boards across the two repos. |
.agents/skills/add-board-v1/evals/evals.json |
New eval scenarios to validate the skill’s expected guidance/output. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
.agents/skills/add-board-v1/SKILL.md
Outdated
| - LittleFS boards: flash via esptool or web flasher | ||
| 2. Provide credentials: | ||
| - TinyUSB: drop `secrets.json` on the mounted drive | ||
| - LittleFS: use the web provisioner at https://install.wippersnappper.io |
There was a problem hiding this comment.
Good catch, but it's a made up url, https://io.adafruit.com/devices/new
Also easier to use pio uploadfs -e etc
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35af3c0 to
2cecb9a
Compare
.agents/skills/add-board-v1/SKILL.md
Outdated
| 2. **Wippersnapper_Boards** — board `definition.json` for CI build/flash tooling | ||
| 3. **Auto-config (magic config)** — for onboard components, including any non-user-facing pins | ||
| used by other onboard components (e.g. SPI pins for a WiFi coprocessor, I2C pins for an | ||
| onboard sensor) |
There was a problem hiding this comment.
2+3 join together as both changes needed in boards repo.
Mention folder is in gitgnore so mention git ignored like add sensor skill mentions, so with boards repo if not pushable (like in GH agent sessions) nor via fork then include board def files in summary for user to file manually.
| - **Board definition validation** — `definition.json` must include required fields for | ||
| esptool/build tooling. |
There was a problem hiding this comment.
mention flash offset for bootloader, user FS partition offset + size, flash size etc. Update worked example, after checking an existing board definition to clarify the possible fields (and the schema.json)
760b528 to
efa730d
Compare
…ds, improve git-ignore note, detailed protomq instructions - Merge steps 2+3 in intro, add prominent git-ignore warning for Wippersnapper_Boards folder with fallback for non-pushable envs - Expand definition.json docs with all schema fields (offset, fileSystemSize, blockSize, structure, mcuRefVoltage, displayName, installMethod, components) based on actual boards/schema.json - Update worked example (QT Py ESP32-C6) with real field values - Fix provisioner URL from made-up domain to io.adafruit.com/devices/new, add pio uploadfs note for LittleFS serial provisioning - Replace vague protomq mention with step-by-step setup using wippersnapper-v1 tag, secrets.json config, web UI, and play-scripts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
efa730d to
abe16b0
Compare
|
Interesting to note OpenClaw used an auto email (unset config) based on the SBC linux username particle (using particle@users.gh.blah) which mapped to the real github user |
Testing openclaw access, had a few false starts (running as root 😈 so dangerously-skip-permissions disallowed, gh permissions so via fork)