@github/arduino-azure-iot-edge-integration
ADesign and implement Arduino integration with Azure IoT Hub and IoT Edge, including secure provisioning, resilient telemetry, command handling, and production guardrails.
Install
agr install @github/arduino-azure-iot-edge-integration --target claudeWrites 3 files into .claude/skills/, pinned to git-62793a15.
- .claude/skills/arduino-azure-iot-edge-integration/SKILL.md
- .claude/skills/arduino-azure-iot-edge-integration/references/arduino-iot-checklist.md
- .claude/skills/arduino-azure-iot-edge-integration/references/arduino-official-best-practices.md
Document
name: arduino-azure-iot-edge-integration description: 'Design and implement Arduino integration with Azure IoT Hub and IoT Edge, including secure provisioning, resilient telemetry, command handling, and production guardrails.'
Arduino Azure IoT Edge Integration
Use this skill when the user needs to connect Arduino-class devices to Azure IoT, especially in edge-heavy scenarios (gateways, intermittent networks, offline buffering, and local actuation).
When to use it
Use this skill for requests such as:
- "I want to connect Arduino sensors to Azure"
- "How do I send MQTT telemetry to IoT Hub?"
- "I need an edge gateway for field devices"
- "I want cloud-to-device commands and OTA configuration updates"
Mandatory documentation review
Before recommending an IoT Edge topology or runtime behavior, review:
If documentation cannot be consulted, proceed with explicit assumptions and highlight them in a dedicated section.
Official Arduino references and best practices (required)
Before proposing firmware, wiring, or communication implementation details, consult official Arduino sources first:
- https://www.arduino.cc/en/Guide
- https://docs.arduino.cc/
- https://docs.arduino.cc/language-reference/
- references/arduino-official-best-practices.md
When choosing between implementation alternatives, prioritize official Arduino guidance over community snippets unless there is a clear technical reason to deviate.
Objectives
- Produce a secure end-to-end reference path from the Arduino device to cloud insights.
- Handle unstable links (store-and-forward, retries, idempotency).
- Define an actionable device and cloud backlog.
Integration patterns
Pattern A: Arduino direct to IoT Hub
Use when connectivity is stable and cloud latency is acceptable.
- Protocol: MQTT over TLS.
- Identity: per-device credentials (SAS or X.509).
- Telemetry payload: compact JSON with timestamp, device ID, metrics, and optional quality flags.
Pattern B: Arduino to local gateway, then IoT Edge
Use when links are constrained, local control is required, or batching improves cost/reliability.
- Arduino communicates with a local gateway (serial, BLE, local MQTT, RS-485, Modbus bridge).
- The gateway publishes upstream through the IoT Edge runtime and routes data to IoT Hub.
- Local modules can filter, aggregate, and trigger actions even during cloud outages.
Design flow
1) Device contract
Define:
- Sensor catalog and units.
- Sampling frequency and expected throughput.
- Message schema versioning strategy.
- Desired/reported device twin properties to control runtime behavior.
2) Security baseline
Require:
- Unique identity per device.
- No hardcoded secrets in source code or firmware artifacts.
- Credential rotation strategy.
- Signed firmware and a controlled update process when possible.
3) Reliability and offline behavior
Plan and document:
- Backoff with jitter.
- Local queue/buffer strategy with bounded size.
- Duplicate suppression or downstream idempotent processing.
- Fallback to last-known-good configuration.
4) Cloud and edge routing
Define routes for:
- Raw telemetry to cold storage.
- Curated telemetry to hot analytics.
- Alerts to operations channels.
- Commands and configuration back to edge/device.
5) Observability
Specify minimum operations telemetry:
- Device heartbeat and firmware version.
- Connectivity state transitions.
- Message send success/error counters.
- Gateway module health and restart reasons.
Reuse other skills
When relevant, combine with:
azure-smart-city-iot-solution-builderfor city-wide architecture and phased rollout.azure-resource-visualizerfor relationship diagrams.appinsights-instrumentationfor app and service telemetry patterns.
Also use references/arduino-official-best-practices.md as a quality baseline for firmware and hardware recommendations.
Required output
Always provide:
- Chosen connectivity pattern and rationale.
- Message contract (fields, units, sample payload).
- Security checklist for identity/credentials/updates.
- Reliability plan (retry, buffering, dedupe).
- Implementation backlog (firmware, gateway, cloud).
Output template
- Scenario and assumptions
- Recommended architecture
- Device and gateway contract
- Security and reliability controls
- Deployment plan and validation tests
Guidelines
- Do not propose production deployments with shared credentials across devices.
- Do not assume always-on connectivity in field deployments.
- Do not omit command authorization and auditing in actuator scenarios.
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- passType matchnot applicable to this artifact type
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-62793a1500182026-08-04