programming/arduino/SKILL.md
Build, review, debug, and scaffold professional Arduino projects across classic AVR boards (`Uno`, `Nano`, `Mega`), Renesas-based R4 boards (`Uno R4 Minima`, `Uno R4 WiFi`, `Nano R4`), ESP32-based Arduino boards, and other common Arduino-family targets. Use when asked for sketches, `.ino` files, Arduino IDE 2, Arduino CLI, PlatformIO, or Arduino Cloud workflows, board-specific pin maps, wiring/BOM notes, unit tests, debug plans, upload/serial monitor troubleshooting, or refactors that must stay practical on real hardware.
npx skillsauth add aeondave/malskill arduinoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill is for end-to-end Arduino work that must survive contact with real hardware: board selection, wiring, firmware structure, PlatformIO, testing, debugging, and troubleshooting.
If the task is mainly about choosing sensors or dealing with noisy detection in robotics/domotica, also load sensors.
Lock the target board, toolchain, and capability profile.
Arduino Uno, Uno R4 WiFi, Nano ESP32, ESP32 Dev Module, etc.Arduino IDE 2, Arduino CLI, PlatformIO, or Arduino Cloud.Plan hardware and wiring before code structure.
Choose the right project shape.
.ino only for small sketches or fast experiments.PlatformIO with src/, lib/, include/, and test/..ino preprocessing disappears: add #include <Arduino.h>, proper headers, and forward declarations.Write firmware for bring-up, maintenance, and testability.
millis() scheduling, finite-state machines, or task-style loops over long blocking delay() chains.Define a verification ladder before finishing.
build, upload, monitor, and test steps.Deliver complete output.
Load references/board-families.md for full details. Minimum awareness without loading the reference:
String abuse and large buffers; D0/D1 are serial-sensitive.3.3V logic; be explicit about radio constraints and boot-sensitive pins.while (!Serial) {} blocks autonomous boot; serial port can disappear on reset.Arduino IDE 2, Arduino CLI, or PlatformIO)delay() use is justified or removedPlatformIO config, if present, matches the board and monitor assumptionsPlatformIO board ID, upload protocol, or debugger choice.while (!Serial) {}.Uno R4 WiFi, mention board-specific caveats when they matter: Qwiic is 3.3V on Wire1, HID can change the USB port, and direct ESP32 programming can break the default bridge firmware.lib_deps when the project needs reproducibility.references/project-patterns.md for project shape, architecture, OTA guidance, bring-up flow, and deliverables.references/pin-planning.md when assigning GPIOs, documenting wiring, or checking bus and voltage constraints.references/board-families.md when selecting a board, comparing families, or explaining board-specific caveats.references/platformio-testing-debugging.md when the request mentions PlatformIO, tests, upload issues, serial monitor issues, or debugging.references/project-patterns.md — project intake, architecture, deliverable bundles, and first-power-on workflow.references/pin-planning.md — GPIO planning, voltage-domain checks, bus mapping, and wiring-output format.references/board-families.md — practical differences between AVR, R4, ESP32-based, and native-USB Arduino targets.references/platformio-testing-debugging.md — PlatformIO structure, migration guidance, unit testing, debugging, and troubleshooting.development
Auth/lab ref: Unicorn Engine CPU-only emulation for shellcode, decryptors, custom VM handlers, instruction tracing, memory hooks, and register-level experiments.
development
Auth/lab ref: Renode board and SoC simulation for MCU/RTOS firmware, UART/GPIO/peripheral modeling, GDB remote debugging, REPL platforms, and RESC scripts.
development
Auth/lab ref: Qiling OS-layer binary emulation for PE/ELF/Mach-O/UEFI/shellcode with rootfs, syscall/API hooks, filesystem mapping, and runtime patching.
databases
Auth/lab ref: QEMU user-mode and full-system emulation for cross-arch binaries, firmware, kernels, disks, serial consoles, networking, and GDB stubs.