Metadata-Version: 2.4
Name: tauno-serial-plotter
Version: 1.21.6
Summary: A simple serial plotter.
Author-email: Tauno Erik <sedumacre@gmail.com>
Project-URL: Homepage, https://github.com/taunoe/tauno-serial-plotter
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyserial
Requires-Dist: pyqtgraph
Requires-Dist: PyQt6
Dynamic: license-file

<img src="https://raw.githubusercontent.com/taunoe/tauno-serial-plotter/refs/heads/master/data/art.taunoerik.tauno-serial-plotter.svg" align="center">

# Tauno Serial Plotter

[![tauno-serial-plotter](https://snapcraft.io/tauno-serial-plotter/badge.svg)](https://snapcraft.io/tauno-serial-plotter)

Serial Plotter for Arduino and other embedded devices.

## Features

- Simple user interface
- Plotting of multiple variables, with different colors for each
- Can plot both integers and floats
- Can plot negative values
- Auto-scrolls the Time scale (X axis)
- Auto-resizes the Data scale (Y axis)
- Selectable line and scatter graph styles (line by default)
- Labels

## Example Arduino code

Do not add new line between multiple data items. Only in the end.

Label names cannot contain numbers.

If all data is not labelled. Then the labels will not be displayed.

```C++
Serial.print("Label");
Serial.print(data1);
Serial.print("Label");
Serial.print(data2);
Serial.println();
```

To stop the plotter from auto-scaling add a 'min' and 'max' line.

```C++
Serial.print("Label1");
Serial.print(data1);
Serial.print("Label2");
Serial.print(data2);
Serial.println("Min:0,Max:1023");
```

## Install

### Snap

[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-white.svg)](https://snapcraft.io/tauno-serial-plotter)

Install Snap:

```Bash
sudo snap install tauno-serial-plotter
```

Run Snap:

```Bash
snap run tauno-serial-plotter
```

If no ports show up. Then close the app and run these commands. And open the app again:

```Bash
sudo usermod -a -G dialout $USER

sudo snap connect tauno-serial-plotter:raw-usb
```

Uninstall Snap:

```Bash
sudo snap remove tauno-serial-plotter
```

### Flatpak

[<img src="https://flathub.org/assets/badges/flathub-badge-en.png" width="25%" height="25%">](https://flathub.org/apps/details/art.taunoerik.tauno-serial-plotter)

Install Flatpak:

```Bash
flatpak install flathub art.taunoerik.tauno-serial-plotter
```

Run Flatpak:

```Bash
flatpak run art.taunoerik.tauno-serial-plotter
```

Uninstall Flatpak:

```Bash
flatpak uninstall art.taunoerik.tauno-serial-plotter
```

### Windows

?

## Plot settings

Once the plot (graph) is created it is possible to change the additional plot settings. Like to disable auto-resize on x or-axis y-axis. Or to export data.

Use the **Graph** selector to switch between line and scatter styles. Line is selected by default.

**Right-click** on the plot area.

![Graph settings](img/graph-settings.png)

## Screenshots

Light theme

![Screenshot on ubuntu](./img/art.taunoerik.tauno-serial-plotter_light.png)

Dark theme

![Screenshot on ubuntu](./img/art.taunoerik.tauno-serial-plotter_dark.png)


## Dialout group

In order to access USB devices on Linux, you need to add your user to the dialout group. Open a terminal window, run the following command and reboot your computer.

```Bash
sudo usermod -a -G dialout $USER
```

## udev.rules

Linux users have to install 99-platformio-udev.rules to accesse serial devices.

```Bash
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
```

Restart “udev” management tool:

```Bash
sudo service udev restart
```

More info: https://docs.platformio.org/en/latest/faq.html#faq-udev-rules

## Run from Python

### Requirements

Python 3.7 or newer is required. The recommended installation uses a virtual
environment and installs the project with its declared dependencies.

```Bash
sudo apt install python3-pip
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install .
```

Start the installed application with:

```Bash
tauno-serial-plotter
```

For development, the source launcher can be run directly after installing the
dependencies:

```Bash
python3 -m pip install -r requirements.txt
python3 src/tauno-serial-plotter.py
```

 ___

Copyright 2021-2026 Tauno Erik https://taunoerik.art
