{
  "schemaVersion": "1.0",
  "item": {
    "slug": "arduino",
    "name": "Arduino",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/arduino",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/arduino",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/arduino",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=arduino",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/arduino"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/arduino",
    "agentPageUrl": "https://openagent3.xyz/skills/arduino/agent",
    "manifestUrl": "https://openagent3.xyz/skills/arduino/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/arduino/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Voltage and Power Traps",
        "body": "3.3V vs 5V logic mixing damages boards — ESP32 is 3.3V, Uno is 5V, level shifter required\nUSB provides max 500mA — not enough for motors, servos, or many LEDs\nNever power motors from Arduino 5V pin — use external supply with common ground\nBrown-out causes random resets — looks like code bugs, actually insufficient power\nDecoupling capacitors (0.1µF) near sensor power pins — reduces noise-related glitches"
      },
      {
        "title": "Wiring Mistakes",
        "body": "Floating inputs read random values — always use pullup or pulldown resistor\nAll components must share common ground — separate grounds = nothing works\nLong wires pick up noise — keep analog sensor wires short\nLEDs need current limiting resistors — direct connection burns LED and pin\nReversed polarity destroys components — double-check before powering on"
      },
      {
        "title": "Pin Conflicts",
        "body": "RX/TX pins (0, 1) conflict with Serial — avoid for GPIO when using Serial Monitor\nSome pins have special functions — check board pinout for I2C, SPI, interrupt-capable pins\nPWM only on pins marked with ~ — analogWrite() on wrong pin does nothing\nInternal pullup available — INPUT_PULLUP eliminates external resistor for buttons"
      },
      {
        "title": "Timing Traps",
        "body": "delay() blocks everything — nothing else runs, no input reading, no interrupts serviced\nmillis() for non-blocking timing — compare against last action time\nmillis() overflows after ~50 days — use subtraction: millis() - lastTime >= interval\nInterrupts for time-critical events — attachInterrupt() responds immediately"
      },
      {
        "title": "Memory Constraints",
        "body": "Uno has only 2KB RAM — large arrays fail silently with weird behavior\nF() macro keeps strings in flash — Serial.println(F(\"text\")) saves RAM\nPROGMEM for constant arrays — keeps data out of RAM\nString class fragments heap — prefer char arrays for stability"
      },
      {
        "title": "Serial Debugging",
        "body": "Baud rate must match — mismatch shows garbage, not an obvious error\nSerial.begin() required in setup — output before this goes nowhere\nSerial printing slows execution — remove or reduce for production code"
      },
      {
        "title": "Upload Problems",
        "body": "Wrong board selected — uploads but doesn't run correctly\nSerial Monitor holds port — close before uploading\nUSB cable might be power-only — some cheap cables don't carry data\nBootloader corrupted — reflash using another Arduino as ISP"
      },
      {
        "title": "Sensor Communication",
        "body": "I2C devices share bus — check for address conflicts with scanner sketch\n5V sensors on 3.3V boards give wrong readings or damage — check operating voltage\nSPI needs separate CS per device — can't share chip select lines"
      }
    ],
    "body": "Voltage and Power Traps\n3.3V vs 5V logic mixing damages boards — ESP32 is 3.3V, Uno is 5V, level shifter required\nUSB provides max 500mA — not enough for motors, servos, or many LEDs\nNever power motors from Arduino 5V pin — use external supply with common ground\nBrown-out causes random resets — looks like code bugs, actually insufficient power\nDecoupling capacitors (0.1µF) near sensor power pins — reduces noise-related glitches\nWiring Mistakes\nFloating inputs read random values — always use pullup or pulldown resistor\nAll components must share common ground — separate grounds = nothing works\nLong wires pick up noise — keep analog sensor wires short\nLEDs need current limiting resistors — direct connection burns LED and pin\nReversed polarity destroys components — double-check before powering on\nPin Conflicts\nRX/TX pins (0, 1) conflict with Serial — avoid for GPIO when using Serial Monitor\nSome pins have special functions — check board pinout for I2C, SPI, interrupt-capable pins\nPWM only on pins marked with ~ — analogWrite() on wrong pin does nothing\nInternal pullup available — INPUT_PULLUP eliminates external resistor for buttons\nTiming Traps\ndelay() blocks everything — nothing else runs, no input reading, no interrupts serviced\nmillis() for non-blocking timing — compare against last action time\nmillis() overflows after ~50 days — use subtraction: millis() - lastTime >= interval\nInterrupts for time-critical events — attachInterrupt() responds immediately\nMemory Constraints\nUno has only 2KB RAM — large arrays fail silently with weird behavior\nF() macro keeps strings in flash — Serial.println(F(\"text\")) saves RAM\nPROGMEM for constant arrays — keeps data out of RAM\nString class fragments heap — prefer char arrays for stability\nSerial Debugging\nBaud rate must match — mismatch shows garbage, not an obvious error\nSerial.begin() required in setup — output before this goes nowhere\nSerial printing slows execution — remove or reduce for production code\nUpload Problems\nWrong board selected — uploads but doesn't run correctly\nSerial Monitor holds port — close before uploading\nUSB cable might be power-only — some cheap cables don't carry data\nBootloader corrupted — reflash using another Arduino as ISP\nSensor Communication\nI2C devices share bus — check for address conflicts with scanner sketch\n5V sensors on 3.3V boards give wrong readings or damage — check operating voltage\nSPI needs separate CS per device — can't share chip select lines"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/arduino",
    "publisherUrl": "https://clawhub.ai/ivangdavila/arduino",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/arduino",
    "downloadUrl": "https://openagent3.xyz/downloads/arduino",
    "agentUrl": "https://openagent3.xyz/skills/arduino/agent",
    "manifestUrl": "https://openagent3.xyz/skills/arduino/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/arduino/agent.md"
  }
}