Serial Debug Tool
Note: 15 February 2014. This has had some usefulness but was developed in response to a specific need. It may be useful as the basis for a more comprehensive tool for use where putty or minicom might be too clumsy to use.
This utility is a simple GUI serial testing tool using the QT framework and C++. Its purpose is to provide a means to compose a string of characters in ASCII or binary format, and transmit them at a specified baud rate to a target device. Any response is displayed in hexadecimal and ASCII form. This has been successfully used with the AVR microcontrollers to test the packet protocol and bootloader protocol. Doxygen documentation is provided.
The Tool begins by opening the PC default serial port /dev/ttyUSB0 (first Linux port for a USB) for use with a Prolific compatible USB-serial converter. This can be changed as necessary (for example to /dev/ttyS0 if you are using a classical serial port) by calling the GUI in a command line with the port specified as a parameter, or within the GUI at any time. The programmer communicates with the device using no parity, 1 stop bit and 8 bit data.
Select the baudrate from the
drop-down box. The serial port can also be selected. Then enter the string into the line edit at the top
of the window. Any printable character, including spaces, will be
transmitted as plain 8-bit ASCII except for a backslash. This is
used as an escape character. The two characters following will be
interpreted as a hexadecimal representation of an 8-bit binary
number. If these two characters do not form a valid hexadecimal
number, the entire sequence of backslash and two characters will
be transmitted as ASCII. A backslash alone can be transmitted by
escaping it with another backslash.
The transmitted line is displayed in the response box. This can be copied back to the line edit for retransmission by double-clicking on it. However the line is displayed as a binary string. The following image shows the tool communication with an AVRPROG type programmer or bootloader.
A button has been added to allow the string to be transmitted continuously with a delay in milliseconds between consecutive transmissions selectable by a spin box. The program must be killed to stop this process. This will allow oscilloscope observations of the send and receive lines.
Ensure that QT5, qt4-designer, qt5-qmake and under Ubuntu install libqt5serialport5-dev and libudev-dev to ensure that all libraries are present. To compile, unpack into a directory which by default will be serial-debug-tool. Execute:
$ make clean
This will build the application. Copy the binary to a suitable place and invoke with:
$ sudo serial-debug-tool
There is a command line
parameter -P that allows a different default port to be specified, and
-b that specifies a different baudrate.
First created 6 April 2010
Last Modified 14 February 2016