mcpField
E
esp32-serial-logging

esp32-serial-logging

github.com/h1d開発11181 回インストール40 週間前に更新
リポジトリ

esp32-serial-logging について

esp32-serial-loggingは、マイクロコントローラーのシリアル出力をファイルに記録するデバッグ用スキルです。ESP32などの開発や障害調査に向けて、ログのリアルタイム監視、絞り込み、エラーや再起動の検索方法を説明します。

主な機能

  1. 01シリアル出力をログファイルに追記
  2. 02ログのリアルタイム監視
  3. 03キーワードによるログ絞り込み
  4. 04クラッシュやエラーの検索
  5. 05デバイス再起動記録の確認

活用シーン

  1. 01ESP32の問題再現中にログを記録
  2. 02デバイスの動作状態をリアルタイムで確認
  3. 03エラー、クラッシュ、アサーションの検出
  4. 04デバイス再起動の原因調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/h1d/agent-skills-esp32 --skill esp32-serial-logging

インストール後、Claude Code で/esp32-serial-loggingを入力して読み込まれたか確認します。

詳細

ESP32 シリアルログの監視

概要

ESP32(または任意のマイクロコントローラー)のシリアル出力をファイルに記録し、リアルタイムで監視・分析します。

ESP32 のセットアップ(デバイス側)

ESP-IDF フレームワーク
#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 フレームワーク
void setup() {
    Serial.begin(115200);
}

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

ホスト側 — ログの記録

# 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: $!)"

ログの監視

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

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

エラーの検索

# 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

デバッグのワークフロー

  1. 問題を再現する前にログを消去します:

    > /tmp/device.log
    
  2. 問題を再現します

  3. 記録したログを分析します:

    cat /tmp/device.log
    

一般的なボーレート

デバイスボーレート
ESP32(デフォルト)115200
ESP32(高速)460800
Arduino9600
STM32115200

ログ記録の停止

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

トラブルシューティング

  • ポートが見つからない:USB 接続を確認し、ls /dev/cu.* /dev/tty.* を試してください
  • アクセスが拒否されました:ユーザーを dialout グループに追加してください(Linux)
  • 文字化けした出力:ボーレートが正しくありません

コメント