Skip to content

Skynet-Pro-Plus/seriallink-doctor

Repository files navigation

SerialLink Doctor

License: MIT Python PySide6 Platform: Windows

A portable Windows COM/serial diagnostic terminal with live port detection, RX/TX logging, ASCII/HEX sending, loopback testing, auto-baud scanning, Modbus RTU probing, and built-in troubleshooting guidance.


Table of Contents


Overview

SerialLink Doctor is a native Windows desktop tool built for technicians, embedded developers, controls engineers, and anyone diagnosing USB-to-serial adapters, RS-232 links, RS-485 devices, microcontroller UARTs, modems, or Modbus RTU equipment. It provides a comprehensive diagnostic workflow in a single, portable executable — no installer required.

Key Features

  • Live COM port detection — automatically discovers serial ports as devices are connected or removed
  • Configurable serial parameters — baud rate, parity, stop bits, flow control, DTR, and RTS
  • ASCII and HEX send modes — transmit data in either format with toggle flexibility
  • RX/TX terminal logging — capture all sent and received data with timestamps
  • Loopback testing — verify adapter and driver integrity by shorting TX to RX
  • Auto-baud scanning — automatically detect the baud rate of connected devices (12 common rates)
  • Modbus RTU probing — scan slave IDs 1–10 using Read Holding Registers (Function 03)
  • Log export — save captured terminal output via File > Export Log
  • Portable — single EXE, no installation, no admin rights required

Quick Start

Option 1: Download the Executable

Download SerialLink-Doctor.exe from the dist folder or releases page and double-click to run.

Option 2: Run from Source

git clone https://github.com/Skynet-Pro-Plus/seriallink-doctor.git
cd seriallink-doctor
pip install -r requirements.txt
python main.py

Usage

Basic Workflow

  1. Launch the app.
  2. Plug in a USB serial adapter or serial device.
  3. Select the COM port in the sidebar.
  4. Choose baud rate, parity, stop bits, flow control, DTR, and RTS as needed.
  5. Click Connect.
  6. Watch received data in the terminal.
  7. Send ASCII or HEX payloads from the send panel.
  8. Use File > Export Log to save captured terminal output.

Loopback Test

  1. Disconnect the serial adapter from external devices.
  2. Physically short TX to RX on the adapter.
  3. Connect to the COM port in SerialLink Doctor.
  4. Run Tools > Loopback Test.
  5. Confirm that transmitted bytes appear back as received bytes.

Auto-Baud Scan

The auto-baud scanner sends AT\r\n as a trigger and treats any response as a likely baud match. It scans these rates: 9600, 19200, 38400, 115200, 57600, 4800, 2400, 1200, 230400, 460800, 921600, 74880.

Modbus RTU Probe

The Modbus probe scans slave IDs 1–10 using Function 03 (Read Holding Registers) at start address 0, register count 2. Baud and parity are taken from the current settings bar.

Project Structure

seriallink-doctor/
├── main.py                     # Application entry point
├── app/
│   ├── main_window.py          # Main window assembly
│   ├── widgets/                # GUI widget components
│   ├── auto_baud.py            # Auto-baud scanning logic
│   ├── modbus_probe.py         # Modbus RTU probing logic
│   └── utils/
│       └── settings.py         # Settings load/save
├── requirements.txt            # Runtime dependencies
├── build_windows.bat           # Windows build script
├── SerialLink-Doctor.spec      # PyInstaller spec
└── dist/                       # Built executables

Tech Stack

  • Language: Python 3.10+
  • GUI Framework: PySide6 (Qt 6)
  • Serial Communication: pyserial
  • Packaging: PyInstaller (single-file Windows EXE)

Building from Source

.\build_windows.bat

The build script installs dependencies, cleans previous artifacts, and runs PyInstaller in one-file windowed mode. Output is dist\SerialLink-Doctor.exe.

Safety and Limitations

  • The app does not require administrator rights for normal COM port access.
  • The app does not intentionally write to the Windows registry.
  • Terminal sends occur only when the user sends data or runs a diagnostic tool.
  • The Modbus probe does not write registers, but it does transmit read requests.
  • Serial communication can affect connected equipment — use the tool only where probing is safe.
  • Port metadata depends on what Windows and the device driver expose.

Contributing

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -m 'Add your feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License.

About

SerialLink Doctor is a portable Windows COM/serial diagnostic terminal with live port detection, RX/TX logging, ASCII/HEX sending, loopback testing, auto-baud scanning, Modbus RTU probing, and built-in troubleshooting guidance for USB serial and RS-485 devices.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors