h1d/agent-skills-esp32

esp32-serial-logging

Real-time serial log monitoring for ESP32 and microcontrollers. Capture device output to a file and monitor logs in real-time. Use when debugging embedded devices, investigating crashes, or monitoring device behavior.

First seen Jan 29, 2026

Installation

$ npx skills add h1d/agent-skills-esp32 --skill esp32-serial-logging

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from h1d/agent-skills-esp32.

npx skills add h1d/agent-skills-esp32

Browse all from h1d/agent-skills-esp32

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 8
License MIT
Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
CompatibilityRequires access to serial port (macOS/Linux). Device must be connected via USB.
More metadata
author
H1D
version
1.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,457 B
  • docs SUMMARY.md 245 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 160 installs

SKILL.md

ESP32 Serial Log Monitoring

Overview

Capture serial output from ESP32 (or any microcontroller) to a file for real-time monitoring and analysis.

ESP32 Setup (Device Side)

ESP-IDF Framework

#include "esp_log.h"

static const char* TAG = "MyComponent";

void my_function() {
    ESP_LOGI(TAG, "Info message");
    ESP_LOGW(TAG, "Warning: value=%d", some_value);
    ESP_LOGE(TAG, "Error occurred");
    ESP_LOGD(TAG, "Debug details");
}

Arduino Framework

void setup() {
    Serial.begin(115200);
}

void loop() {
    Serial.println("Status: running");
    Serial.printf("Sensor: %d\n", analogRead(A0));
    delay(1000);
}

Host Side - Capture Logs

# Find serial port
PORT=$(ls /dev/cu.usbmodem* /dev/ttyUSB* /dev/ttyACM* 2>/dev/null | head -1)
echo "Found port: $PORT"

# Configure and start capture
stty -f "$PORT" 115200 raw -echo 2>/dev/null || stty -F "$PORT" 115200 raw -echo
cat "$PORT" >> /tmp/device.log &
echo "Logging to /tmp/device.log (PID: $!)"

Monitor Logs

# Real-time monitoring
tail -f /tmp/device.log

# Filter specific patterns
tail -f /tmp/device.log | grep -E "ERROR|WiFi|Button"

Search for Errors

# Find crashes and errors
grep -E "ERROR|crash|overflow|panic|assert|Backtrace" /tmp/device.log

# Find reboots (look for boot messages or uptime resets)
grep -E "boot:|rst:|Uptime: [0-9] sec" /tmp/device.log

Debug Workflow

  1. Clear log before reproducing issue:

``bash > /tmp/device.log ``

  1. Reproduce the issue
  1. Analyze captured logs:

``bash cat /tmp/device.log ``

Common Baud Rates

Device Baud Rate
ESP32 (default) 115200
ESP32 (fast) 460800
Arduino 9600
STM32 115200

Stop Logging

pkill -f "cat /dev/cu.usbmodem"
pkill -f "cat /dev/ttyUSB"

Troubleshooting

  • Port not found: Check USB connection, try ls /dev/cu. /dev/tty.
  • Permission denied: Add user to dialout group (Linux)
  • Garbled output: Wrong baud rate