Embedded telemetry · live

Watch your microcontroller think.

Kymotrace streams measurements from Arduino, ESP32 and STM32 to your desktop – compact, non-blocking and live. Plot them as curves, XY traces or in 3D, analyse them and export them.

Windows installer · direct download · SHA256 checksum

  • 9–21bytes per data point
  • 256channels, own rate each
  • 0heap, RTOS or blocking

01

Serial.print is not a measuring instrument.

Text over serial
  • Formatting costs CPU time and blocks the loop
  • One number per line, one curve at best
  • Parsing on the PC breaks on every typo
Kymotrace frames
  • Binary float32 – 9 bytes, sent without waiting
  • Up to 256 channels with X, Y, Z and time
  • Self-synchronising, optional CRC

02

From sensor to screen in three parts.

Each part works on its own – together they form a complete measurement chain.

  1. A

    KymoCore

    Library in your microcontroller

    Portable C++11 with a C API. Schedules your channels, encodes them into 9–21 byte frames and hands them to any transport – without heap, RTOS or blocking.

    kymocore on GitHub →PlatformIO Registry →
  2. B

    KymoProbe

    Ready-made firmware

    Examples for ESP32, Arduino Uno/Nano/Mega and STM32 – over UART, USB or Wi-Fi with MQTT. Flash it, connect, see data within minutes.

    kymoprobe on GitHub →
  3. C

    KymoStudio

    Desktop workbench

    Receives several sources at once, draws time series, XY and 3D charts, analyses raw data and exports CSV and PNG. Windows installer; runs from source on Linux and macOS.

    Download Windows installer →SHA256 checksum

Transport UART · USB · TCP · MQTT · CAN / Frame A5 5A · 41 · 07 · 00 00 80 3F · 00

03

KymoStudio – precise, calm, honest.

A workbench that feels like a good measuring instrument: it always shows whether data arrives, whether anything is lost and what you are looking at.

KymoStudio
KymoStudio workbench with a time series of three signals and an XY chart with circle and Lissajous figure

Many sources at once

Serial, TCP, MQTT, CAN and a built-in test generator – each started and stopped on its own.

Six chart types

Time series, XY line, XY scatter, XYZ in 3D, runtime trace and function flow for KymoTrace v2 sessions.

Understands your data

Kymotrace binary, plain numbers or JSON – detected automatically.

Analysis on raw data

Count, min, max, mean, RMS and standard deviation – computed from the stored raw data, not the decimated display.

Pause, keep recording

Freeze the display while acquisition keeps running. Buffers are bounded – the status bar counts anything dropped.

Export everything

Raw data as CSV, the workspace as PNG, the configuration as JSON.

Your workspace

Tile charts, focus one or arrange them freely. Drag signals into charts and save layouts, sources and assignments.

Inspect every detail

Zoom, pan, fit the view and read values with a crosshair. Set axis ranges and time windows manually.

See acquisition status

Start and stop sources independently. Counters show invalid packets, overload and values replaced in bounded buffers.

XY
XY chart in KymoStudio with a circle and a Lissajous figure

Real XY traces, not just curves over time.

When a frame carries X and Y, KymoStudio draws the path itself: characteristic curves, robot trajectories, phase portraits or Lissajous figures – live, zoomable, with crosshair readout.

04

Made for the bench, the lab and the workshop.

05

Every byte earns its place.

Build a frame yourself. Toggle the optional fields and watch layout, length and checksum change – these are the exact bytes on the wire.

SYNCDESCID XYZTIMECRC / 00

06

Two calls. That's the API.

Describe your channels once, call Kymo_Init() at start-up and Kymo_Main() in your loop. KymoCore decides which channel is due, asks your callback for the value and never waits for the interface.

  • Arduino Uno · Nano · Mega
  • ESP32 · S3 · C3
  • STM32 F1 · F4
  • C99 / C++11

Install from the PlatformIO Registry:

lib_deps = codename666/KymoCore@^6.2.3
KymoCore on PlatformIO →
// kymo_config.cpp – your measurement
static uint8_t sample(void *, uint8_t id, KymoSample *out)
{
    out->value = id == 0 ? readTemperature() : readPressure();
    return 1;
}

static const KymoChannel channels[] = {
    {20,  0, 0},   // channel 0 every 20 ms
    {100, 1, 0}    // channel 1 every 100 ms
};

// main.cpp
static KymoContext kymo;
void setup() { Serial.begin(115200); Kymo_Init(&kymo, &kymo_config); }
void loop()  { Kymo_Main(&kymo); }

KymoStudio · Windows

Your installer. Directly from here.

Download the latest published Windows installer from this website. No GitHub account is needed. Use the SHA256 checksum to verify the downloaded file.

Verify the download

Run this command in PowerShell in your Downloads folder and compare the result with the SHA256 checksum:

Get-FileHash .\KymoStudio_Setup.exe -Algorithm SHA256

SHA256 of the current installer

Loading checksum…

07

Live data in three steps.

  1. 1

    Install KymoStudio

    Download the Windows installer here, verify its SHA256 checksum and install KymoStudio.

    Download installer SHA256 checksum
  2. 2

    Flash a board

    Clone KymoProbe and upload the ESP32 example – or add KymoCore from the PlatformIO Registry to your own project.

    pio run -e nodemcu-32s -t upload
  3. 3

    Connect

    Open a serial connection at 115200 baud, 8N1. Frames are detected automatically – assign a channel to a chart and watch.

    No board yet? Start the demo inside KymoStudio.

08

Free for makers. Fair for companies.

Hobby · learning · open source

GPLv3

Free

  • All three projects, full source
  • Use, modify and share
  • Distributed derivatives stay open source (GPLv3)
Download KymoStudio

Companies · products

Commercial

On request

  • Ship devices without disclosing your firmware
  • Use in proprietary products
  • Support and invoice on request
Licensing details

KymoStudio uses PySide6 and Qt Quick with custom renderers for 2D and 3D charts. Optional OpenGL acceleration can be enabled in the display settings.

Licenses & corresponding source code