I was pleased to discover that putty can actually be launched via the command
line. Most of the guides online make use of this feature to make it easier to launch
SSH sessions. However being able to launch putty on the command line is also
incredibly helpful for opening serial port connections.
putty is my go-to tool in Windows for connecting to embedded devices that
communicate over UARTs, usually in the form of virtual COM ports exposed
through serial to USB chips. Due to the somewhat convoluted way that the Windows USB subsystem works
the COM port number a device gets when connected over USB can be somewhat unpredictable. If the port
settings do not match a saved configuration, quite a bit of keyboard and mouse input
is needed to adjust the settings.
The putty documentation
describes all of the options. However, the two that are relevant to serial ports are
control the port name and settings, respectively. Assuming the
putty.exe executable is in your path,
to open COM23 using speed 115200bps, 8 data bits, no parity, and 1 stop bit, (8-N-1)
and no flow control the command line is:
putty.exe -serial COM23 -sercfg 115200,8,n,1,N
The above can be a handful to type, especially if your devices are running with the same port settings and
the only thing changing is the port name. I have yet to encounter a device that does not use 8-N-1.
The following powershell script takes in a port name and an optional speed, otherwise defaults to 115200bps.
param([string]$port, [string]$speed = "115200")
putty.exe -serial $port -sercfg $speed,8,n,1,N
If this script is somewhere in your path then can type either
Open-ComPort.ps1 -port COM23 for the default speed (115200bps) or
Open-ComPort.ps1 -port COM23 -speed 9600 for a different speed (9600bps in this case).