KYMOCORE FÜR PYTHON · 0.1.0 · MIT

Messwerte aus Python, live auf dem Bildschirm.

Nicht jedes Signal kommt vom Mikrocontroller. Ein Raspberry Pi liest Sensoren, ein Prüfstandsskript steuert ein Netzteil, eine Simulation rechnet ein Streckenmodell. kymocore schickt diese Werte an KymoStudio, während sie entstehen – im selben Binärformat wie die Firmware.

KymoStudio
KymoStudio zeigt Messwerte live als Zeitverlauf und XY-Diagramm

Wofür

Überall dort, wo Messwerte in einem Python-Skript entstehen und du sie nicht erst hinterher als CSV ansehen willst.

Raspberry Pi & Einplatinenrechner

Über I²C, SPI oder GPIO gelesene Sensorwerte live plotten – ohne eigene Plot-Oberfläche.

Prüfstand & HIL

Sollwerte des Skripts neben den Messwerten des Prüflings – in derselben Arbeitsfläche, auf derselben Zeitachse.

Simulation

Streckenmodell oder Reglersimulation mit denselben Diagrammen beobachten wie später die echte Hardware.

Daten anderer Programme

Werte von Messgeräten, Logs oder APIs an KymoStudio weiterreichen.

Aufnahme & CSV

KymoStudio zeichnet auf, spielt wieder ab und exportiert CSV – wie bei Daten vom Board.

Analyse inklusive

Cursor, Sprungantwort, FFT und Trigger rechnen auch auf Python-Daten, mit den Zeitstempeln des Senders.

SCHNELLSTART

Ein Aufruf pro Wert

In KymoStudio eine UDP-Quelle auf Port 5025 anlegen, starten und Kanal 0 einem Diagramm zuweisen. Mit x= und z= entstehen XY- und 3D-Bahnen.

pip install kymocore            # UDP, TCP
pip install kymocore[serial]    # + Seriell/USB
pip install kymocore[mqtt]      # + MQTT
import math, time
from kymocore import Sender

with Sender.udp('127.0.0.1', 5025) as sender:
    for i in range(1000):
        sender.send(0, math.sin(i / 20))       # Kanal 0
        sender.send(1, math.cos(i / 20), x=i)  # XY-Punkt
        time.sleep(.01)

Vier Wege zu KymoStudio

Die vorhandenen Quellen in KymoStudio empfangen ohne Änderung.

TransportAufrufQuelle in KymoStudio
UDPSender.udp(host, port)UDP, lauscht auf port
TCPSender.tcp_server(port)Telnet/TCP verbindet sich zu diesem Rechner; ohne verbundenen Client gehen Werte verloren – wie bei einem Gerät
SeriellSender.serial('COM4', 115200)Seriell, gleiche Baudrate
MQTTSender.mqtt(broker, topic)MQTT, topic unter den Empfangs-Topics; eine Nachricht pro Wert

Gleiches Protokoll wie die Firmware

Jeder Wert ist ein kompakter Frame von 9 bis 21 Byte, geprüft gegen die Referenzvektoren des Kymotrace-Protokolls v6.2. Optional mit CRC-8. frame() liefert die Bytes für einen eigenen Transport.

Zeitstempel inklusive

Zeit seit Senderstart aus einer monotonen Uhr, in Mikrosekunden (Standard; Überlauf nach 71,6 Minuten, KymoStudio führt die Zeitachse weiter) oder Millisekunden. Ohne Zeitstempel stempelt KymoStudio beim Empfang.

Teil von Kymotrace

Zwei Bibliotheken, ein Protokoll: KymoCore läuft auf dem Mikrocontroller, KymoCore für Python auf dem PC oder Raspberry Pi. Auf PyPI heißt das Paket kymocore.

FIRMWARE · C++11

KymoCore

Messwerte, Traces und Live-Parameter auf dem Mikrocontroller.

PC · PYTHON

KymoCore für Python

Messwerte aus Skripten senden. Diese Seite.

BEISPIELE

KymoProbe

Fertige Firmware für ESP32, Arduino und STM32.

DESKTOP-APP

KymoStudio

Empfangen, darstellen, aufzeichnen, analysieren.

Kernpunkte

  • Ein Aufruf pro Wert, bis zu 256 Kanäle, XY und XYZ
  • Kern ohne Abhängigkeiten; pyserial und paho-mqtt optional
  • Python 3.10 oder neuer, jedes Betriebssystem
  • MIT-Lizenz, auch für kommerzielle Projekte

Ehrliche Grenzen

  • Nur Senden: keine Laufzeit-Traces, keine Live-Parameter, kein Rückkanal
  • Nur Zahlen, keine Textmeldungen
  • Mikrosekunden-Zeitstempel brauchen KymoStudio 2.5 oder neuer
  • Version 0.1.0 – die API kann sich noch ändern

Mehr zu Aufnahme und Export: Embedded Logging →

Skript starten, KymoStudio öffnen, Kurve sehen.

KymoStudio 2.8.0 laden kymocore auf PyPI