ELX-Terminal
A terminal for COM ports, raw TCP and TCP through an SSH tunnel
Four kinds of connection in one window, a tab for each: serial port, TCP client, TCP server, and TCP reached through an SSH gateway. Text, hexadecimal dump and frame parsing switch on the fly and redraw from the raw history, so nothing is lost by changing your mind.
Four connections, one window
A serial port, a TCP client, a TCP server accepting several clients at once, and TCP through an SSH gateway — each in its own tab, all open at the same time.
The serial port in full
A live list of ports with their descriptions, rates up to three megabaud, data bits, parity, stop bits, flow control, manual DTR and RTS, and BREAK. Rate and parity change on the fly without reopening the port.
An SSH tunnel without plink
Reach an address on a remote network through an SSH gateway, by password or an OpenSSH key. The session goes straight to the target over the SSH channel — a local port is a separate option, for when other programs need the same tunnel.
Text, hex and parsed frames
All three views redraw from the raw history, so switching does not lose what already arrived. Millisecond timestamps, sent and received separated by colour, and a configurable end-of-line rule.
Quick commands
A panel of buttons you can rearrange by dragging, each with a dialog that previews the exact bytes it will send. The commands you type keep a history on the up and down arrows.
The workspace comes back
Close it and open it again: the same tabs with the same properties, the same active tab, theme, macros, collapsed panels, window size and position. Nothing is reconstructed by hand.
The four connection types
| Type | What it is for |
|---|---|
| COM port | A device on a serial line or a USB adapter — controllers, meters, modules on RS-485 |
| TCP client | A device or service that listens; with TCP_NODELAY and reconnection after a configurable pause |
| TCP server | Something that connects to you; several clients at once, sending to all of them or only to the last |
| TCP over SSH | A device on a remote network, reached through a gateway you can log into |
Instead of running plink by hand
plink -ssh -batch -P 22 -pw <password> -N -L 1824:192.168.1.226:1824 user@gateway
The SSH tab replaces that: the gateway on the left — host, user, password or key file — and the target address and port below. The panel shows the equivalent command so that the settings can be checked against something familiar.
The session itself goes to the target directly over the SSH channel; no local port is involved. “Open a local port” is a separate option that raises 127.0.0.1:<port> through the same connection when other programs must share the tunnel.
Reading what arrives
- Text — UTF-8, Windows-1251 or ASCII, chosen from the bar above the output.
- Hex dump — for a protocol that is not text, or for finding the byte that is not what you expected.
- Frame parsing — structured decoding for the supported frame format, with the fields named.
- Timestamps to the millisecond, which is what you need to answer “did it reply within the timeout?”
- Sent and received in different colours, with an option to echo what you send into the same stream.
Sending
- Text, or bytes written in hexadecimal.
- A history of what you sent, on the up and down arrows.
- A byte counter, and optional CR, LF or CRLF appended.
- “Keep what was typed” selects the sent text instead of clearing it: Enter repeats it, typing replaces it — which is how you send the same frame twenty times with a changing byte.
At a glance
- Operating system
- Windows 10 and 11, 64-bit
- Connections
- COM port, TCP client, TCP server, TCP over SSH
- Serial rate
- Up to 3 000 000 baud
- Views
- Text (UTF-8, Windows-1251, ASCII), hex dump, parsed frames
- Authentication
- SSH password or OpenSSH key
- Workspace
- %APPDATA%, with a backup of the previous state
- Built with
- Flutter
Frequently asked questions
Can I keep several devices open at once?
Does changing the baud rate close the port?
Will switching to hex lose what already arrived?
Can other programs use the SSH tunnel?
Where is the workspace stored?
%APPDATA%\ru.elxdevice\elxterminal\workspace.json, with a copy of the previous state beside it. A file that cannot be read is set aside rather than overwritten with an empty one.