Skip to content

This project is a cross-platform serial port assistant. It can run on WINDOWS, linux、android、macos system.

License

Notifications You must be signed in to change notification settings

KangLin/SerialPortAssistant

Repository files navigation

Serial Port Assistant

Author: Kang Lin (kl222@126.com)


🇨🇳 中文

GitHub stars star

GitHub forks GitHub issues

Release Download SerialPortAssistant

All releases downloads Download SerialPortAssistant

build Build status


Introduction

Download

  • Github release
  • Download from SerialPortAssistant
  • Download from Flathub

Donate

If you are satisfied, you can donate to me

donation

If it cannot be displayed, please open:

Developer

Dependence

Compile

  • Download source code

      git clone https://github.com/KangLin/SerialPortAssistant.git
    
  • Compiled with QtCreator

    • Open the project file CMakeLists.txt with QtCreator
    • The RabbitCommon can be downloaded to the same directory of the project. If it is a different directory, Set the parameter RabbitCommon_ROOT
    • Direct compilation can generate programs
  • Compile with the command line

    • Download source code and the deplendence in same directory

      git clone https://github.com/KangLin/RabbitCommon.git
      git clone https://github.com/KangLin/SerialPortAssistant.git
      
    • Make the build directory in the project root directory

      cd SerialPortAssistant
      mkdir build
      cd build
      # cmake configure
      cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`pwd`/install [-DRabbitCommon_ROOT=...]
      # compiling
      cmake --build . --config Release --target install
      cd install  # The program is installed in the install/bin directory
      

Script

  • build_debpackage.sh

    • This script generates the deb package under linux. Before use, please make sure the following programs are installed

      sudo apt-get install debhelper fakeroot build-essential cmake
      
    • Use system qt

      • qt6

        sudo apt-get install \
          qt6-tools-dev qt6-tools-dev-tools qt6-base-dev qt6-base-dev-tools \
          qt6-l10n-tools qt6-translations-l10n qt6-scxml-dev \
          qt6-webengine-dev qt6-webengine-dev-tools libqt6serialport6-dev
        

      See: ubuntu.yml

      • qt5

        sudo apt-get install qttools5-dev qttools5-dev-tools \
            qtbase5-dev qtbase5-dev-tools qttranslations5-l10n \
            libqt5scxml5-dev libqt5svg5-dev libqt5serialport5-dev \
            qtwebengine5-dev qtwebengine5-dev-tools qtwebengine5-private-dev
        
  • build_appimage.sh

    build AppImage. See: https://github.com/linuxdeploy/linuxdeploy/

  • deploy.sh: This script is used to generate new release version numbers and tag. Used only by the program publisher.

Test

  • Ubuntu
    • Install socat

      $ sudo apt update
      $ sudo apt install socat
      
    • Create a pair of virtual serial ports

      $ sudo socat -d -d pty,raw,echo=0 pty,raw,echo=0
      
      • After running, it will display:

        2025/12/03 14:09:27 socat[31902] N PTY is /dev/pts/5
        2025/12/03 14:09:27 socat[31902] N PTY is /dev/pts/6
        2025/12/03 14:09:27 socat[31902] N starting data transfer loop with FDs [5,5] and [7,7]
        
      • Create symbolic links (optional, for better naming).

        $ sudo ln -sf /dev/pts/2 /dev/ttyVCOM0
        $ sudo ln -sf /dev/pts/3 /dev/ttyVCOM1
        
      • The above two steps can be combined into the following command.

        $ sudo socat -d -d pty,link=/dev/ttyVCOM0,raw,echo=0 pty,link=/dev/ttyVCOM1,raw,echo=0 
        
    • You can now use this program to open the serial port. /dev/pts/5(/dev/ttyVCOM0) and /dev/pts/6(/dev/ttyVCOM1).
      Because these serial port names are non-standard, this program cannot find them. You can enter the following in the "Serial Port" field: /dev/pts/5
      Because the virtual serial port was created with root privileges, this program also needs to be run with root privileges.

      $ sudo serialportassistant
      

      Alternatively, authorize the serial port to the current user:

      $ sudo chown $USER:tty /dev/pts/5
      $ sudo chown $USER:tty /dev/pts/6
      $ serialportassistant