SerialTest
Data transceiver(monitor)/realtime plotter/shortcut/file transceiver over serial port/Bluetooth/network on Windows/Linux/Android/macOS | 跨平台串口/蓝牙/网络调试助手,带数据收发/实时绘图/快捷发送/文件收发面板,可在PC和Android设备上使用
Install / Use
/learn @wh201906/SerialTestREADME
SerialTest
A versatile test tool running on Windows/Linux/macOS/Android.
Works as data transceiver/realtime plotter/shortcut/file transceiver.
Supports serial port, Bluetooth SPP client/server, Bluetooth LE client, TCP client/server, UDP.
<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">
<img src="https://flathub.org/assets/badges/flathub-badge-en.png"
alt="Download on Flathub"
height="60">
Features
<details> <summary>Cross-platform</summary>- Supports Windows 7 and later
- Supports most Linux distros
- Supports macOS 10.13 (High Sierra) and later
- Supports Android 5.0 (Lollipop) and later
- Show all available serial ports with parameters. No need to check Device Manager or dmesg
- Set baud rate, data bits, stop bits, parity scheme, flow control and change them on the fly
- Modify DTR/RTS signals, Show CTS, DSR, DCD, RI(RNG)signals
- Save the parameters of the last connection
- Save connection parameters by port name or device ID then reuse them quickly
- (Android: support hardware serial port only, like
/dev/ttyXXX) - (Android: Workaround for USB serial devices)
- Supports commonly used Bluetooth modules(HC-05, HC-06, JDY-34, ...)
- Supports communication between PC and smartphone
- Supports client mode and server mode
- The server can be connected by multiple devices. You can enable/disable the Tx/Rx function of them.
- Supports multiple local Bluetooth adapters (Experimental)
- Client: Supports specifying service UUID
- Show all services(primary and included services), characteristics and descriptors of connected device
- Specify different service for Rx/Tx
- Supports IPv4/IPv6
- Client:Supports spceifying local address and port
- Client:The remote address can be a IP address or a website
- Client:Supports storing connection parameters with user specified name then reuse them quickly
- Server:Supports listening on all NICs or specified NIC
- Server:The server can be connected by multiple devices. You can enable/disable the Tx/Rx function of them.
- Supports IPv4/IPv6
- Supports listening on all NICs or specified NIC
- Supports storing connection parameters with user specified name then reuse them quickly
- Change remote address and port on the fly
- Fast response:UI update is separated from Data reception. Disable "Realtime" option in "data" tab for higher speed
- Fast response:Time-consuming works run in dedicated threads
- Low memory cost:Received bytes to memory consumption is about 1:1, if the plot and "Realtime" option are disabled.
- Show data in hexadecimal
- Show timestamp of received data
- Show packets split by timeout with timestamp
- Export raw data or selected text
- Add suffix behind each sending(\r, \r\n, string, hex data)
- Repeat
- Rich encoding support
(UTF8/16/32, GB2312/GB18030, BIG5, KOI8-R, Shift_JIS, EUC-KR, ...... ) - Unescape user input
(\r, \n, \t, \0, \123, \xFF, \uABCD, ...) - Enable/disable echo
- Show sended/received data only
- Human-readable data format
- Drag or scroll the canvas by mouse
- Drag or scroll the canvas on touchscreen
- Showing the latest data or holding on
- Show up to 99 graphs
- Multiple X-axis mode
- Legends with customizable name and color
- Show/hide graphs
- Clear the canvas by specified data or "Clear" button
- Demos of STM32/Arduino/STC8
- Send spedified data by one click
- Send a number quickly by slider
- Send data in hexadecimal
- Unescaping support
- Add prefix/suffix
- Import/Export the whole panel
- Calculate CRC32 checksum quickly
- Send with throttle
- Stop receiving after specified number of bytes
- CRC32 and file IO are handled in separated threads for better performance
- Show multiple panels with your preferred layout on a single window
- Show panel as separated windows
- PC: Stays on top
- PC: Opacity
- PC: Start multiple instances with different modes, which are shown on the title bar
- Check connection parameters and disconnect/reconnect on status bar
- Customize font
- Select language
- Change theme(dark theme)
- The app generates one single config file only
- Never touchs Windows Registry
- Use config file in current working directory or system default config directory
- Export/Import/Clear config
- Clear history
- Set maximum history count
- Small screen support: Force landscape mode
- Small screen support: Show sended/received data only
- Small screen support: Full screen mode
- Drag/Scale gesture support on Plotter
- Share text/file to SerialTest then send it
Previews
| Data Panel | Plotter&Data(GIF) | Control Panel(GIF) | Serial Port, Dark Theme |
| --- | --- | --- | --- |
|
|
|
|
|
| Bluetooth, Windows | Serial Port, Android | TCP Client, Linux | TCP Server |
| --- | --- | --- | --- |
|
|
|
|
|
Tutorials[WIP]
1.Connect
2.Send&Receive Data
3.Plot
Demos
You can write programs on MCU according to the demos in the demo/ folder
Demo README
Binaries for Windows, Android and macOS
You can download pre-built binaries and Android APK in release page.
You can also download them in SourceForge
The Android app is available on F-Droid as well.
<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">
Build on Linux
<details> <summary>Steps</summary>1. Install depencencies
# sudo add-apt-repository universe
sudo apt-get update
# sudo apt-get install git build-essential
sudo apt-get install qtbase5-dev qt5-qmake libqt5serialport5-dev qtconnectivity5-dev
2. Get the source code
cd ~
git clone https://github.com/wh201906/SerialTest.git --depth=1
cd SerialTest
mkdir build && cd build
3. Choose how to import QCustomplot
Use QCustomPlot source file(recommended)
You need to download QCustomPlot archive, extract the qcustomplot.cpp and qcustomplot.h in the /src folder(replace the existing qcustomplot.h), then build.
wget https://www.qcustomplot.com/release/2.1.1/QCustomPlot-source.tar.gz
tar -xzf QCustomPlot-source.tar.gz
cp qcustomplot-source/qcustomplot.* ../src
Use QCustomPlot library
If the qcustomplot.cpp doesn't exist in the src/ folder, the qmake will try to find the library file(xxx.so/xxx.dll) in the building directory(where you call the qmake command) and the default library directory.
4. Build and run
export QT_SELECT=qt5
qmake ../src
make -j4 && make clean
./SerialTest
</details>
Install from the Linux software repository
Flathub
flatpak install flathub io.github.wh201906.serialtest
# run this app
flatpak run io.github.wh201906.serialtest
Arch Linux
# Install the release
yay -S serialtest
# Install the development version
yay -
Related Skills
node-connect
327.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
80.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
327.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
80.7kCommit, push, and open a PR
