Releases: alithon/serial-port-utility
Releases · alithon/serial-port-utility
Release list
v6.6.4
6.6.4 (2026-08-21)
中文版
新特性
- 云中继(Cloud Relay)——使用另一台计算机上的串口: 现场机器在"云 > 允许云中继"打开开关,操作端在端口列表选择"远端串口 (云中继)",从账户下在线的计算机中挑一个串口,按下连接后它就像本地串口一样可用:波特率、数据位、校验、停止位、流控与 DTR/RTS 可远程设置,远端 CTS/DSR/RI/DCD 状态同步显示,X/YMODEM 文件传输与 Modbus 照常工作。两端只需能访问互联网,不需要公网地址、端口映射或 VPN。选择对话框会说明每台机器是否在线、是否允许中继;一个串口同一时刻只接受一个中继会话,串口被远程使用时本机会在状态栏提示;链路断开后不会自动重连,需要手动重新连接。中继流量计入账户的云流量额度
- 桥接端口被远程使用时会提示: 对外提供 RFC 2217 或 TCP 服务的桥接端口,现在会在客户端接入和离开时给出状态消息,面板徽标显示"正被 <客户端> 使用"并变为琥珀色,远程客户端修改串口参数或控制线也会逐条记录——与云中继遵循同一条原则:被别处驱动的串口必须让人看得出来
界面改进
- 远端串口显示"远端当前"参数: RFC 2217 与云中继页面勾选"沿用远端串口的现有配置"时,不再显示灰掉的五行本地参数(容易把灰色的"115200"误读成远端实情),改为一行只读的"远端当前",显示远端服务器报告的实际波特率、数据格式、流控及其签名
- 云菜单分组: "云控制台"总开关与三个"允许…"开关分组显示,云控制台关闭时三个开关一并置灰——它们都经由云控制台通道生效,此前平铺的菜单让人误以为彼此独立
修复
- 日志被写进名为 NULL 的文件: 日志文件名在首次成功打开前只是一个占位符,而暂停、停止或自动重连打开端口后触发的写入没有识别它,于是在程序工作目录里生成了一个名叫 "NULL" 的文件;现在这些写入会先按配置的文件名模板解析,再写入正确的文件
- DTR 指示灯变灰后不恢复: 在连接编辑器里选过 RFC 2217 或云中继后切回本地串口,DTR 灯一直保持灰色(意为"未置位"),而 RTS 灯会正常恢复;现在两者一致恢复为绿色
- RFC 2217 客户端的 DTR/RTS 灯整个连接期间都是灰色: 勾选"沿用远端串口的现有配置"时客户端从不下发 DTR/RTS,服务端也就无从确认,两盏灯始终显示"未询问";现在首次同步时会查询远端的当前电平,RFC 2217 与云中继两种模式下都能看到确认后的状态
- 云控制台 HTTP 回退路径的命令延迟: 服务端未提供 WebSocket 通道时,排队的命令现在随心跳应答一起下发,最长等待从 30 秒缩短到一次 20 秒心跳;云端快照缺失或过期时也会按服务端提示立即重传,选择中继目标时不必再等一轮快照请求
English
Features
- Cloud Relay — use a serial port on another computer: The site machine turns on Cloud > Allow Cloud Relay; the operator picks Remote Serial (Cloud Relay) in the port list, chooses a port on one of the account's online computers and presses connect — from there it behaves like a local port: baud rate, data bits, parity, stop bits, flow control and DTR/RTS can be set remotely, the remote CTS/DSR/RI/DCD states are shown, and X/YMODEM transfers and Modbus work as usual. Both ends need nothing more than outbound Internet access — no public address, port forwarding or VPN. The picker says whether each computer is online and whether relay is allowed there; a port accepts one relay session at a time, the sharing side shows a status line while its port is in remote use, and a dropped relay is never redialled silently — connect again deliberately. Relayed traffic draws on the account's cloud traffic quota
- Remote use of a bridged port is visible on the sharing side: A bridge port served over RFC 2217 or plain TCP now announces clients arriving and leaving, the pane badge reads "in use by " and turns amber, and the serial parameters or control lines a remote client sets are logged line by line — the same rule Cloud Relay follows: a port driven from somewhere else must say so
Interface
- Remote serial shows what the remote is running: With "Keep the remote port's own config" ticked on the RFC 2217 and Cloud Relay pages, the five greyed-out local parameter rows are hidden — a disabled "115200" was too easy to read as a fact about the remote — and a read-only "Remote now" row shows the baud rate, data format, flow control and server signature the remote actually reports
- Cloud menu grouping: The Cloud Console master switch and the three Allow… consents are grouped, and the consents are disabled while the console is off — they all ride the Cloud Console channel, which the flat menu made look independent
Fixes
- Log written to a file called NULL: Until the first successful open the log file name is only a placeholder, and flushes triggered by pause, stop or a port opened by the reconnect supervisor did not recognise it, creating a file literally named "NULL" in the working directory. Those flushes now resolve the configured file name template first and log to the right file
- DTR lamp stuck grey: After selecting RFC 2217 or Cloud Relay in the connection editor and switching back to a local port, the DTR lamp stayed grey — which reads as "not asserted" — while RTS recovered; both now return to green
- DTR/RTS lamps grey for the life of an RFC 2217 client connection: With "Keep the remote port's own config" ticked the client never set DTR or RTS, so the server had nothing to confirm and both lamps showed "never asked" throughout. The first settings sync now queries the remote's current levels, so the confirmed state shows in both RFC 2217 client and Cloud Relay modes
- Command latency on the Cloud Console HTTP fallback: When the backend offers no WebSocket channel, queued commands now ride the heartbeat reply, cutting the worst-case wait from 30 seconds to one 20-second beat; a missing or stale cloud snapshot is re-uploaded as soon as the server asks for it, so picking a relay target no longer waits out a snapshot round trip
Download
| Platform | File |
|---|---|
| Windows 10 1809 or later, 64-bit | serial_port_utility_*.exe |
| macOS 12 or later, Apple Silicon | SerialPortUtility-*.dmg |
| Linux x86_64 (Ubuntu 22.04 or later) | serial-port-utility-*-linux-x86_64.tar.gz |
First-launch notes for each platform — Gatekeeper on macOS, the runtime libraries on Linux —
are in the README.
SHA-256 checksums are published with every build at
alithon.com/downloads.
v6.6.3
6.6.3 (2026-08-18)
中文版
新特性
- 本地回显: 终端直通模式下,敲下的字符会在接收区原位显示,对着不回显的嵌入式设备不再是盲打。它与"显示发送"相互独立——后者显示并记录发送框发出的整帧,本地回显只按输入顺序在接收区显示按键、不写入日志;默认关闭,避免设备自身回显时每个字符出现两遍
- 指示灯开关: 快捷设置面板新增"指示灯"一项,可隐藏 TX/RX 与控制线指示灯,把空间让给收发区
- 云控制台实时通道: 云端控制台改用 WebSocket 收发命令与状态,去掉轮询间隔带来的延迟;服务端未提供该通道时自动退回原有的 HTTP 轮询
界面改进
- 快捷设置栏可以拖得更窄: 此前它的最小宽度被最长的端口名、最长的下拉条目和最宽的标签一起撑到约 300 像素;现在超长的下拉条目在原地省略(展开列表仍显示完整内容),共用标签列也不再无限变宽,这条栏可以拖到实际需要的宽度
- 设置术语统一: 主窗口与多端口对话框的"选项…"改为"设置…",终端内的连接/接收/发送设置措辞统一,设置面板中的"选项"分组按其实际内容改名为"日志行为"
修复
- 等宽字体缺失导致的列错位: 收发视图指定的 Monaco 在 macOS 之外并不存在(此前只替换了 Windows 的 Consolas),缺失时会退化成比例字体,HEX 与时间戳列随之错位;现在两种字体缺失时都会替换为系统等宽字体
- Microsoft Store 版本缺少在线服务: MSIX 打包此前会把账户登录、云同步与云控制台整体编译掉,商店版本因此没有这些功能,现已与直接下载的版本一致
English
Features
- Local echo: Terminal passthrough now echoes what you type in the receive view, so a device that never echoes back — common on embedded targets — no longer leaves you typing blind. It is separate from Display Send, which shows and logs whole frames from the send box: local echo renders keystrokes in place, in typing order, and keeps them out of the log. Off by default, since a device that does echo would otherwise double every character
- Indicator lights toggle: The quick-settings panel can now hide the TX/RX and control-line indicators and give the space back to the data views
- Cloud Console live channel: The cloud console now carries commands and status over a WebSocket instead of polling, removing the poll-interval delay. A backend that does not advertise the gateway keeps working on the previous HTTP polling path
Interface
- The quick-settings bar drags narrower: Its minimum width used to follow the longest port name, the longest combo entry and the widest label all at once, pinning the bar near 300 pixels. Long combo entries now elide in place — the popup still shows them in full — and the shared label column stops growing, so the bar goes as narrow as you need it
- Consistent settings terminology: Options… is now Settings… in the main window and the multi-port dialog, the terminal's connection, receive and send settings read consistently, and the settings panel's Options group is named Log Behavior after what it actually holds
Fixes
- Misaligned columns from a missing monospace font: The receive and send views name Monaco, which does not exist outside macOS — only Windows' Consolas was substituted before — so those views fell back to a proportional face and the HEX and timestamp columns drifted out of line. Both families now substitute to the system monospace font when they are missing
- Online services missing from Microsoft Store builds: MSIX packaging compiled out account sign-in, cloud sync and the cloud console entirely, so the Store build shipped without them. It now matches the direct download
Download
| Platform | File |
|---|---|
| Windows 10 1809 or later, 64-bit | serial_port_utility_*.exe |
| macOS 12 or later, Apple Silicon | SerialPortUtility-*.dmg |
| Linux x86_64 (Ubuntu 22.04 or later) | serial-port-utility-*-linux-x86_64.tar.gz |
First-launch notes for each platform — Gatekeeper on macOS, the runtime libraries on Linux —
are in the README.
SHA-256 checksums are published with every build at
alithon.com/downloads.
v6.6.2
6.6.2 (2026-08-05)
中文版
新特性
- X/YMODEM 文件传输: 在已建立的串口、TCP 或 RFC 2217 连接上直接收发文件,支持 XMODEM、XMODEM-CRC、XMODEM-1K、YMODEM 与 YMODEM-G。传输期间协议数据与普通终端数据隔离,非模态进度条实时显示文件名、进度、速率、剩余时间与重传次数;TCP 服务端可锁定指定客户端,远程固件升级无需再切换到其他终端工具
- 单连接 RFC 2217 远程串口: 端口列表新增 RFC 2217 模式,可直接连接 Moxa NPort、ser2net 或另一台 SPU,并在同一连接中设置远端波特率、数据位、校验、停止位、流控和 DTR/RTS。默认保留设备服务器自身配置,只有用户明确接管后才下发参数;不支持 RFC 2217 的对端会给出警告并安全退化
- RFC 2217 桥接客户端模式: 桥接可主动连接设备服务器,并把链路另一端的串口参数同步到远端串口;协商成功后一次性下发,之后只补发变化项,远端回执会记录在链路消息中但不会反向修改本机串口
- 远程控制线状态: RFC 2217 连接可显示远端 CTS、DSR、RI 与 DCD 状态,让设备服务器后的串口握手状态也能直接观察
修复
- RFC 2217 协商: 服务端现在会用 DO 回应客户端的 WILL——此前只对同时发送 DO 的客户端(如 pyserial)有效,只发 WILL 的客户端会一直等到超时并退化成普通 socket
- RFC 2217 协商不再无限往复: 协商按选项记录状态,只有当回答会改变状态时才回复;此前两台互相对接的 SPU 会无休止地交换 WILL/DO
- RFC 2217 兼容性: 按客户端与服务端角色分别处理 COM-PORT-OPTION 的拒绝响应,修复与 ser2net 协商后参数无法下发的问题
- 网络连接终端直通: 修复终端键盘直通仅检查本地串口句柄、导致 TCP、UDP 与 RFC 2217 连接中键盘输入无效的问题
- 桥接对端事件串台: 设备端出现新对端时不再向网络端发起协商
English
Features
- X/YMODEM file transfer: Send and receive files over an established serial, TCP or RFC 2217 connection with XMODEM, XMODEM-CRC, XMODEM-1K, YMODEM and YMODEM-G. Protocol traffic is isolated from ordinary terminal data, while a non-modal progress bar reports the file, progress, rate, ETA and retry count. TCP servers can pin a selected client, so remote firmware updates no longer require another terminal application
- Single-connection RFC 2217 remote serial: RFC 2217 is now available directly in the port list for connecting to Moxa NPort, ser2net or another Serial Port Utility and setting remote baud rate, data bits, parity, stop bits, flow control and DTR/RTS in the same connection. The device server's existing configuration is preserved by default; parameters are sent only after the user explicitly takes control. Peers without RFC 2217 support warn and degrade safely
- RFC 2217 bridge client mode: A bridge can dial a device server and synchronize its serial parameters from the link's other endpoint. Parameters are sent once negotiation succeeds and only changes are sent afterward; remote replies are recorded in the link messages but never applied back to the local serial port
- Remote control-line status: RFC 2217 connections show the remote CTS, DSR, RI and DCD states, making hardware handshaking behind a device server directly observable
Fixes
- RFC 2217 negotiation: The access server now answers a client's WILL with DO. It previously worked only with clients that also send DO, such as pyserial; a client that opens with WILL alone waited until it timed out and fell back to a plain socket
- RFC 2217 negotiation no longer ping-pongs: Answers are tracked per option and sent only when they change something. Two Serial Port Utility bridges pointed at each other used to exchange WILL/DO forever
- RFC 2217 compatibility: COM-PORT-OPTION refusals are now interpreted by role, fixing parameter delivery after negotiation with ser2net
- Terminal passthrough on network connections: Fixed keyboard passthrough checking only the local serial handle, which made typing ineffective on TCP, UDP and RFC 2217 connections
- Bridge peer events: A peer arriving on the device end no longer opens a negotiation with the network end
Download
| Platform | File |
|---|---|
| Windows 10 1809 or later, 64-bit | serial_port_utility_*.exe |
| macOS 12 or later, Apple Silicon | SerialPortUtility-*.dmg |
| Linux x86_64 (Ubuntu 22.04 or later) | serial-port-utility-*-linux-x86_64.tar.gz |
First-launch notes for each platform — Gatekeeper on macOS, the runtime libraries on Linux —
are in the README.
SHA-256 checksums are published with every build at
alithon.com/downloads.