
arduino-serial-monitor
Read and analyze Arduino or embedded serial output for structured runtime debugging across Arduino IDE, Arduino CLI, PlatformIO, and vendor-specific monitor tools. Use when boot output, sensor data, resets, communication failures, timing symptoms, or field behavior need evidence rather than compile-only reasoning.
- Installs
- 244
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill arduino-serial-monitor- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads arduino-serial-monitor automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Arduino Serial Monitor
For a desktop visualization/bench console, read
desktop-console guidance. Wireless transport
and trace semantics belong to wireless-telemetry; do not duplicate its driver
or measurement workflow here. Native ESP-IDF logs are valid inputs to serial
diagnosis and do not imply an Arduino framework.
This skill provides advanced tools for reading and analyzing serial monitor data from Arduino boards, enhancing the debugging experience beyond the basic Arduino IDE serial monitor.
Features
- Real-time Serial Monitoring: Connect to Arduino serial ports and display data in real-time
- Data Logging: Save serial output to files with timestamps for later analysis
- Filtering & Pattern Matching: Filter output by keywords, regex patterns, or data types
- Error Detection: Automatically highlight common error patterns and warnings
- Multiple Format Support: Handle different data formats (text, JSON, CSV, binary)
- Cross-platform: Works with Windows, macOS, and Linux serial ports
Structured Debugging Workflow
- Record the exact board/revision, firmware/image identifier, toolchain and versions, port, baud, reset cause if known, and timestamp source.
- Prefer one line per event with stable fields such as
t_ms=123 level=INFO event=sensor_read value=...; keep secrets and tokens out of output. - Capture the unfiltered log before filtering. Preserve the first boot lines, reset/brownout/watchdog messages, and the transition that reproduces the symptom.
- Label conclusions as build, upload, hardware, system, or deployment evidence. Report the result by proof stages. A clean serial stream is not proof that pins, power, or the full system are correct.
- Pair with
hardware-tddfor a test matrix andembedded-project-loopwhen the next observation must come from a user-operated board.
Recommended C++ Event Format
Serial.print("t_ms=");
Serial.print(millis());
Serial.print(" level=INFO event=ready board=");
Serial.println(BOARD_ID);
Use a fixed, bounded format appropriate to the board's memory budget. Do not log Wi-Fi passwords, API keys, certificates, tokens, or private data.
Usage
Basic Serial Monitoring
# Monitor serial port with default settings (9600 baud)
uv run --no-project scripts/monitor_serial.py --port COM3
# Specify baud rate and output file
uv run --no-project scripts/monitor_serial.py --port /dev/ttyACM0 --baud 115200 --output debug.log
# Filter for specific patterns
uv run --no-project scripts/monitor_serial.py --port COM3 --filter "ERROR|WARNING"
Advanced Debugging
# Parse JSON data from serial
uv run --no-project scripts/monitor_serial.py --port COM3 --format json --pretty
# Monitor with timestamp and color coding
uv run --no-project scripts/monitor_serial.py --port COM3 --timestamp --color
# Detect common Arduino errors
uv run --no-project scripts/monitor_serial.py --port COM3 --detect-errors
Script Options
--port: Serial port (e.g., COM3, /dev/ttyACM0)--baud: Baud rate (default: 9600)--output: Output file for logging--filter: Regex pattern to filter lines--format: Data format (text, json, csv, binary)--timestamp: Add timestamps to output--color: Enable color-coded output--detect-errors: Highlight common error patterns--timeout: Connection timeout in seconds
Common Arduino Debugging Scenarios
Memory Issues
Filter for: "low memory|stack overflow|heap"
Sensor Data Validation
Filter for: "sensor|reading|value"
Format as: json
Timing Analysis
Enable: --timestamp
Filter for: "start|end|duration"
Communication Errors
Filter for: "timeout|failed|error"
Enable: --detect-errors
Integration with Arduino CLI
# Compile and upload, then monitor
arduino-cli compile --fqbn arduino:avr:uno sketch/
arduino-cli upload -p COM3 --fqbn arduino:avr:uno sketch/
uv run --no-project scripts/monitor_serial.py --port COM3
Troubleshooting
Port Not Found
- Check
arduino-cli board listfor available ports - Ensure Arduino is connected and drivers are installed
- Try different port names (COM1-COM99 on Windows, /dev/ttyACM* on Linux)
No Data Received
- Verify baud rate matches Arduino sketch (
Serial.begin(9600)) - Check USB cable connection
- Reset Arduino board while monitoring
Permission Errors (Linux/macOS)
# Add user to dialout group
sudo usermod -a -G dialout $USER
# Logout and login again
Evidence And Privacy
Record the board, firmware/image version, toolchain, baud, port, reset cause, and timestamp source. Label serial output as hardware or system evidence only when it was captured on the target. Redact Wi-Fi passwords, API keys, certificates, tokens, and personal data before saving logs or sharing them.
Dependencies
- Python 3.8+
uv0.4+ (the script declarespyserialandcoloramainline)- Run the self-contained helper with
uv run --no-project scripts/monitor_serial.py --help.
Examples
Basic Temperature Sensor Monitoring
// Arduino sketch
void setup() {
Serial.begin(9600);
}
void loop() {
float temp = analogRead(A0) * 0.488;
Serial.print("Temperature: ");
Serial.print(temp);
Serial.println(" C");
delay(1000);
}
uv run --no-project scripts/monitor_serial.py --port COM3 --filter "Temperature" --timestamp
JSON Data Parsing
// Arduino sketch with JSON output
#include <ArduinoJson.h>
void setup() {
Serial.begin(115200);
}
void loop() {
StaticJsonDocument<200> doc;
doc["temperature"] = analogRead(A0) * 0.488;
doc["humidity"] = analogRead(A1) * 0.146;
doc["timestamp"] = millis();
serializeJson(doc, Serial);
Serial.println();
delay(2000);
}
uv run --no-project scripts/monitor_serial.py --port COM3 --format json --pretty
Shared Output Contract
Use the shared Arduino skill contract: state assumptions, required tools and versions, implementation steps, tests/evidence by proof stage, known limitations, and recovery/security notes.
FAQ
What does the arduino-serial-monitor skill do?
Read and analyze Arduino or embedded serial output for structured runtime debugging across Arduino IDE, Arduino CLI, PlatformIO, and vendor-specific monitor tools. Use when boot output, sensor data, resets, communication failures, timing symptoms, or field behavior need evidence rather than compile-only reasoning.
How do I install arduino-serial-monitor?
Run npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill arduino-serial-monitor in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/arduino-serial-monitor/ (personal) or .claude/skills/arduino-serial-monitor/ (project).
Which AI agents can use arduino-serial-monitor?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is arduino-serial-monitor safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains arduino-serial-monitor?
It is published by wedsamuel1230 in wedsamuel1230/embedded-engineering-skills. It has 244 recorded installs.
More from wedsamuel1230/embedded-engineering-skills
arduino-project-builder
wedsamuel1230/embedded-engineering-skills
Build complete Arduino and embedded projects across Arduino IDE, Arduino CLI, PlatformIO, and vendor-specific toolchains. Use when users request an application combining firmware, sensors, actuators, networking, power, or deployment rather than a code snippet. The bundled scaffold targets UNO, ESP32, and Raspberry Pi Pico; use the board profile and document limitations for other targets.
arduino-code-generator
wedsamuel1230/embedded-engineering-skills
Generate Arduino and embedded C++ snippets for sensors, actuators, buses, state machines, timing, data logging, and hardware abstraction. Use when a user requests implementation code and provide the exact board, framework, toolchain, pins, voltage, memory, and library versions first. Bundled templates target UNO, ESP32, and RP2040; document unsupported board or vendor-framework behavior instead of guessing.
circuit-debugger
wedsamuel1230/embedded-engineering-skills
Open the skill to read its SKILL.md instructions.
error-message-explainer
wedsamuel1230/embedded-engineering-skills
Open the skill to read its SKILL.md instructions.
enclosure-designer
wedsamuel1230/embedded-engineering-skills
Use when users need a 3D-printable enclosure for an Arduino, ESP32, or RP2040 project and need help with measurements, cutouts, print settings, or environmental protection.
power-budget-calculator
wedsamuel1230/embedded-engineering-skills
Calculates total power consumption and battery life for Arduino/ESP32/RP2040 projects. Use when user asks about battery life, power requirements, current draw, or needs to estimate runtime. Includes sleep mode analysis, power optimization tips, and battery sizing recommendations. Run scripts/calculatepower.py for accurate calculations.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.