Agent skill
arduino-serial-monitor
Tools for reading and analyzing Arduino serial monitor output for enhanced debugging. Provides real-time monitoring, data logging, filtering, and pattern matching to help troubleshoot Arduino sketches using arduino-cli or Arduino IDE.
Install this agent skill to your Project
npx add-skill https://github.com/wedsamuel1230/arduino-skills/tree/main/skills/arduino-serial-monitor
SKILL.md
Arduino Serial Monitor
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
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
Dependencies
- Python 3.8+
- pyserial
- colorama (for colored output)
- Install via:
uv add pyserial colorama
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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
battery-selector
Helps choose the right battery type and charging solution for Arduino/ESP32/RP2040 projects. Use when user asks about battery options, charging circuits, power source selection, or says "what battery should I use". Covers chemistry selection, safety, voltage regulation, and charging circuits.
circuit-debugger
Systematic hardware debugging guide for Arduino/ESP32/RP2040 circuits. Use when user reports: circuit not working, components getting hot, no power, intermittent failures, unexpected behavior, sensor not responding, LED not lighting, motor not spinning. Guides through power checks, continuity testing, signal tracing, and component isolation using multimeter techniques.
bom-generator
Generates Bill of Materials (BOM) from project descriptions for Arduino/ESP32/RP2040 projects. Use when user needs component lists, parts shopping lists, cost estimates, or asks "what parts do I need". Outputs formatted BOMs with part numbers, quantities, suppliers (DigiKey, Mouser, Amazon, AliExpress), and compatibility warnings. Run scripts/generate_bom.py for xlsx/csv export.
readme-generator
Auto-generates professional README.md files for Arduino/ESP32/RP2040 projects following open-source best practices. Use when user wants to document their project for GitHub, needs help writing a README, or says "make my project shareable". Follows awesome-readme standards with sections for Overview, Hardware, Software, Setup, Usage, Troubleshooting, and Contributing.
power-budget-calculator
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/calculate_power.py for accurate calculations.
freertos-patterns
Didn't find tool you were looking for?