A serial monitor TUI with protocol testing capabilities
Project description
serial-tui
A TUI serial monitor built with Python and Textual.
Features
- Serial port connection management (baud, data bits, parity, stop bits)
- Live RX display with timestamps, toggle between ASCII and HEX modes
- TX input with escape sequence support (
\n,\r,\t,\xHH) - Transmit history with up/down arrow navigation (mode-preserving)
- ? help screen, Ctrl+L clear RX display
- Ctrl+O port configuration screen
- Pattern matching engine with greedy backtracking wildcards (
*,+) - Checksum verification (LRC, MOD256, CRC-8/16/32) integrated into matching
Quick Start
pip install -e .
serial-tui
Or without installing:
python src/serial_tui/cli.py
Keybindings
| Key | Action |
|---|---|
| Ctrl+O | Configure serial port |
| Ctrl+K | Disconnect |
| Ctrl+D | Toggle HEX/ASCII display |
| Ctrl+L | Clear RX display |
| Ctrl+E | Toggle TX echo |
| Ctrl+Y | Copy RX log |
| ? | Help |
| F3 | Sequence editor |
| F4 | Trigger editor |
| F5 | Overview |
| Up/Down | Cycle transmit history |
Project Layout
src/serial_tui/
├── cli.py — Main app & entry point
├── checksum.py — LRC, MOD256, CRC-8/16/32
├── data_model.py — FieldDefinition, SequenceDefinition, JSON
├── matcher.py — Pattern matching engine
├── serial_manager.py — pyserial wrapper
├── session.py — Session persistence
├── screens/
│ ├── help_screen.py — Keyboard shortcuts reference
│ ├── history_screen.py — Transmit history modal
│ ├── overview_screen.py — Combined sequences + triggers
│ ├── port_screen.py — Port config modal
│ ├── sequence_screen.py — Sequence editor
│ └── trigger_screen.py — Trigger editor
└── widgets/
└── rx_pane.py — Scrollable RX display
Development
pip install -e ".[dev]"
pre-commit install
pytest tests/ -v
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
serial_tui-1.1.0.tar.gz
(35.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file serial_tui-1.1.0.tar.gz.
File metadata
- Download URL: serial_tui-1.1.0.tar.gz
- Upload date:
- Size: 35.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58ae2bef038732b437b9f20bf4116a866dd297c90d1ca19f75fb5caa7c145c12
|
|
| MD5 |
b93b798d7a8fa14ff341ee5cc0a1c0fa
|
|
| BLAKE2b-256 |
e924da4f28b61cd926a162b3c5b947d6e086b20393f953d55b9c2087f76b3d57
|
File details
Details for the file serial_tui-1.1.0-py3-none-any.whl.
File metadata
- Download URL: serial_tui-1.1.0-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4380315f13e1fd4edebb8d3551120370cc3dd17725130551e21199248eeed23
|
|
| MD5 |
94d039e95e3a6a31d21dc12a6973cc16
|
|
| BLAKE2b-256 |
8908cb30ffd0b4906ce16282ed44d2cffa1e2f4a183eacee100905fa2b7ba435
|