A terminal emulator for CygWin?

To my great surprise, picocom worked out of the box for what i needed to do - talk to embedded devices. There is no cygwin package for some reason, but building it is as easy as

git clone https://github.com/npat-efault/picocom; cd picocom && make

Assuming your device shows as COM3 under windows, run with

./picocom -b 115200 /dev/ttyS2

Having done some research on terminal emulators today, I feel the need to hail the virtues of xterm. This FAQ documents a lot of the bugs in other terminal emulators which aim to be xterm or VT-100 compatible. You can also use vttest to reveal a lot these issues for yourself. What puts a lot of people off of xterm though is the lack of a menu configuration. This leads a lot of people to think xterm is not configurable at all, however it is in fact highly configurable, it just has to be done via files like .Xresources or command line options.

More gripes include lack of clipboard support and so lack of copy/paste with Ctrl-Shift-C/Ctrl-Shift-V by default, however this can be overcome. Another is the lack of tabs, however many advanced Linux users prefer to use tmux or GNU screen which provide equivalent features.

This leads me to the real answer to your question - screen can be used to connect to serial port and should work on Cygwin despite /dev/ttySX not showing up with ls. With this you should be able to use any terminal emulator you like, be it xterm or mintty. xterm lacks many modern features and so may not be for everyone, but it is work noting that it is difficult to match what happens under the hood.

In case the link dies, here is the syntax for using screen as a serial terminal:

screen /dev/ttySX baud_rate,cs8|cs7,ixon|-ixon,ixoff|-ixoff,istrip|-istrip

I believe screen will do this, cygwin maps COM ports to /dev/stty* devices and screen will take a device to connect.

From man screen

If a tty (character special device) name (e.g. "/dev/ttya") is spec‐ ified as the first parameter, then the window is directly connected to this device. This window type is similar to "screen cu -l /dev/ttya". Read and write access is required on the device node, an exclusive open is attempted on the node to mark the connection line as busy. An optional parameter is allowed consisting of a comma separated list of flags in the notation used by stty(1):