EMBEDDED DATA LOGGING · TRACING

Embedded Logging für Messdaten und Firmware-Traces.

Messwerte von ESP32, STM32, Arduino oder aus Python-Skripten aufzeichnen, live ansehen, später wieder abspielen und als CSV exportieren. KymoStudio empfängt und speichert auf dem PC; KymoCore ergänzt die Firmware um Gerätezeit, Binär-Frames und Laufzeit-Traces.

KymoStudio
KymoStudio-Arbeitsfläche mit Quellen, einem Zeitverlauf aus drei Signalen und einem XY-Diagramm

Welches Logging meinst du?

„Embedded Logging“ steht für drei verschiedene Aufgaben. Kymotrace übernimmt zwei davon – und sagt klar, welche nicht.

✓ ENTHALTEN

Messdaten-Logging

Sensorwerte, Regelgrößen, ADC-Kanäle: mit Zeitstempel aufnehmen, ansehen, wieder abspielen und als CSV exportieren.

✓ ENTHALTEN

Ablauf-Tracing

Funktionen, FreeRTOS-Tasks und Interrupts auf der Zeitachse: Laufzeiten, Hotspots und Jitter, exportierbar als CSV oder Chrome-Trace.

– NICHT ENTHALTEN

Textlogging mit Levels

Meldungen wie ERROR: sensor timeout mit INFO/WARN/ERROR und Filtern. Dafür gibt es eigene Logging-Bibliotheken; Kymotrace verarbeitet Zahlen, keine Textmeldungen.

Vom Board in die CSV-Datei

  1. 1Werte sendenWie für den Serial Plotter: temp:23.5,hum:40. Oder Binär-Frames mit KymoCore – aus der Firmware oder aus Python.
  2. 2Aufnahme startenJeder empfangene Wert landet in der Aufnahmedatei – über den RAM-Puffer hinaus und nach einem Absturz lesbar bis zum letzten vollständigen Block.
  3. 3Abspielen und exportierenAufnahme öffnen, Bereich analysieren, als CSV exportieren. Marker mit Notiz landen mit in der Aufnahme.

Drei Wege zu deinen Messdaten

Alle drei landen in derselben Arbeitsfläche, derselben Aufnahme und demselben CSV-Export.

OHNE BIBLIOTHEK

Serial.print

Bestehende Firmware bleibt, wie sie ist. Beschriftete Werte, Teleplot oder CSV-Spalten.

temp:23.5,hum:40
FIRMWARE · C++11

KymoCore

Gerätezeit, Binär-Frames mit CRC, Laufzeit-Traces und Live-Parameter auf dem Mikrocontroller.

lib_deps = codename666/KymoCore
NEU · PYTHON

KymoCore für Python

Raspberry Pi, Prüfstand, Simulation: Werte aus Skripten senden, im selben Format wie die Firmware.

pip install kymocore

OHNE BIBLIOTHEK

Zwei Messwerte, zwei benannte Kurven

Bestehende Firmware muss nicht umgebaut werden. Jede Bezeichnung wird zu einem Signal mit eigenem Namen. Eine Zeile wird ganz oder gar nicht übernommen – Spalten verrutschen nie.

  • Arduino AVR
  • ESP32 / S3 / C3
  • STM32
  • jede MCU mit UART
void loop()
{
    // Bezeichnung wird zum Signalnamen
    Serial.print("temp:");
    Serial.print(readTemperature());
    Serial.print(",hum:");
    Serial.println(readHumidity());
    delay(100);
}

Wann KymoCore sinnvoll ist

Textzeilen tragen keine Gerätezeit. Für exakte Zeitstempel, hohe Datenraten, CRC-geschützte Frames oder Laufzeit-Traces bindest du die MIT-lizenzierte Bibliothek KymoCore ein – heap-frei, C++11 mit C-API.

lib_deps = codename666/KymoCore @ 7.2.1

Nichts verschwindet still

CRC-Fehler, ungültige Frames, unlesbare Bytes und Pufferüberlauf werden je Quelle gezählt und in der Aufnahme vermerkt. Lücken in der Gerätezeit zeigt KymoStudio als Schätzung an – Frames tragen keine Sequenznummer, deshalb kein Beweis.

Funktionsumfang im Überblick

Stand KymoStudio 2.8.0 und KymoCore 7.2.1.

FunktionStatusDetails
Aufnahme & WiedergabejaEigenes Aufnahmeformat, Wiedergabe nur lesend
ExportjaCSV (live oder aus Aufnahme); Traces auch als Chrome-Trace-JSON
ZeitbasisjaGerätezeit (ms/µs), aus Abtastrate oder Empfangszeit – sichtbar gekennzeichnet
QuellenjaFirmware per Textzeilen oder KymoCore; PC-Skripte per KymoCore für Python
VerbindungenjaSeriell, TCP, UDP, MQTT, CAN
DatenverlustteilweiseZähler je Quelle; Lücken nur geschätzt
Tasks, ISRs, FunktionenjaInstrumentierung mit KymoCore; FreeRTOS-Adapter
MarkerjaIn KymoStudio mit Notiz; aus der Firmware als Zahlenwert
Textmeldungen, Log-LevelsneinNicht vorgesehen

Ehrliche Grenzen

  • KymoStudio läuft auf Windows und Linux (x86_64), nicht auf macOS
  • Kein Textlogging, keine Log-Levels
  • Aufnahmen landen auf dem PC, nicht auf SD-Karte oder Flash des Geräts
  • Das Python-Paket ist ein reiner Sender (Version 0.1.0): keine Traces, keine Live-Parameter

Probier es mit der eingebauten Demo aus – ohne Board.

KymoStudio 2.8.0 laden Schnellstart