Arduino

Develop Arduino projects avoiding common wiring, power, and code pitfalls.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
5 · 1.2k · 5 current installs · 5 all-time installs
byIván@ivangdavila
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name and description (Arduino troubleshooting and best practices) align with the SKILL.md content. The skill does not request unrelated binaries, environment variables, or access to external services.
Instruction Scope
SKILL.md contains static advice about voltage, wiring, timing, memory, serial debugging, and uploads. It does not instruct the agent to read files, run shell commands, call external endpoints, or access secrets beyond its stated scope.
Install Mechanism
No install spec and no code files — instruction-only skills write nothing to disk and do not install software, so installation risk is minimal.
Credentials
The skill declares no required environment variables, credentials, or config paths. Nothing in the instructions implies a need for secrets or unrelated service access.
Persistence & Privilege
Skill is not marked always:true and does not request persistent/system privileges. It is user-invocable and allowed to be called autonomously (platform default), which is reasonable for a read-only instruction skill.
Assessment
This skill is a read-only reference of Arduino best practices and is low-risk to install. Before relying on its advice, double-check specifics against your exact board model and datasheets (e.g., ESP32 is 3.3V, UNO is 5V), especially for power and current requirements. Remember that physical-hardware safety (motors, batteries, mains connections) requires additional precautions not covered here—do not assume advice replaces electrical-safety procedures. If you later enable features that let the agent run tools (Arduino CLI, avrdude) or access your machine/ports, re-evaluate because those capabilities require additional permissions and carry more risk.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk97esejz92rsbghhtc6x7b8qt980w5a8

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🔌 Clawdis
OSLinux · macOS · Windows

SKILL.md

Voltage and Power Traps

  • 3.3V vs 5V logic mixing damages boards — ESP32 is 3.3V, Uno is 5V, level shifter required
  • USB provides max 500mA — not enough for motors, servos, or many LEDs
  • Never power motors from Arduino 5V pin — use external supply with common ground
  • Brown-out causes random resets — looks like code bugs, actually insufficient power
  • Decoupling capacitors (0.1µF) near sensor power pins — reduces noise-related glitches

Wiring Mistakes

  • Floating inputs read random values — always use pullup or pulldown resistor
  • All components must share common ground — separate grounds = nothing works
  • Long wires pick up noise — keep analog sensor wires short
  • LEDs need current limiting resistors — direct connection burns LED and pin
  • Reversed polarity destroys components — double-check before powering on

Pin Conflicts

  • RX/TX pins (0, 1) conflict with Serial — avoid for GPIO when using Serial Monitor
  • Some pins have special functions — check board pinout for I2C, SPI, interrupt-capable pins
  • PWM only on pins marked with ~ — analogWrite() on wrong pin does nothing
  • Internal pullup available — INPUT_PULLUP eliminates external resistor for buttons

Timing Traps

  • delay() blocks everything — nothing else runs, no input reading, no interrupts serviced
  • millis() for non-blocking timing — compare against last action time
  • millis() overflows after ~50 days — use subtraction: millis() - lastTime >= interval
  • Interrupts for time-critical events — attachInterrupt() responds immediately

Memory Constraints

  • Uno has only 2KB RAM — large arrays fail silently with weird behavior
  • F() macro keeps strings in flash — Serial.println(F("text")) saves RAM
  • PROGMEM for constant arrays — keeps data out of RAM
  • String class fragments heap — prefer char arrays for stability

Serial Debugging

  • Baud rate must match — mismatch shows garbage, not an obvious error
  • Serial.begin() required in setup — output before this goes nowhere
  • Serial printing slows execution — remove or reduce for production code

Upload Problems

  • Wrong board selected — uploads but doesn't run correctly
  • Serial Monitor holds port — close before uploading
  • USB cable might be power-only — some cheap cables don't carry data
  • Bootloader corrupted — reflash using another Arduino as ISP

Sensor Communication

  • I2C devices share bus — check for address conflicts with scanner sketch
  • 5V sensors on 3.3V boards give wrong readings or damage — check operating voltage
  • SPI needs separate CS per device — can't share chip select lines

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…