Hi Neil,
The TSM-101x calibration issues have caused me no end of problems. It'll lose calibration if the USB cable is unplugged and plugged in while the cRIO is on. It'll lose calibration if you run the calibration utility twice in a row. It was impossible to calibrate at all running on an older version of CompactRIO drivers (I think 18.0 didn't work, but 19.0+ does). I've raised all these issues previously but only get back the same set of KB articles, and they don't solve anything - manual edits to the 99-calibration.conf file don't work, or simply cause the screen to go black.
The only reliable solution I've found was from distributor support (not direct NI support - that doesn't exist any more). It uses a different calibration program called gCal. Again it's very command line based, but at least it works. Copied and pasted from the support email:
Software stack:
NI CompactRIO 20.0
Reference:
Touch Screen Troubleshooting - NI TSM-1015
Pre-work: (login with SSH and run the commands below)
Remove xinput_calibrator
opkg remove --nodeps xinput-calibrator
Install bzip2
opkg update
opkg install bzip2
Install Penmount 6000 USB Drive for Linux (X11): (login with SSH and run the commands below)
Check the X.Org version
export DISPLAY=:0
xdpyinfo | grep version
X.Org Version should be 1.19.6 in 20.0 stack
Install Driver
wget https://www.salt.com.tw/tw/wp-content/uploads/sites/2/2017/10/PenMount-Debian-9_32-64bit_driver-v4.5.7_R6.tar.bz2
tar -xjf PenMount-Debian-9_32-64bit_driver-v4.5.7_R6.tar.bz2
cp pmLinux-Debian9/x86_64/24.1/penmount_drv.so /usr/lib/xorg/modules/input/
chmod +x pmLinux-Debian9/x86_64/*
cp pmLinux-Debian9/x86_64/* /usr/sbin/
pm-setup -s
Reboot the cRIO
Start calibration
export DISPLAY=:0
gCal 4
Another thing you might try is swapping the USB cable for a different one. This managed to fix up a calibration issue in one of our systems.
Sorry for the rant at the start, but this has got to be one of NI's most poorly supported products (except for maybe the Functional Safety Editor - that's built on the bones of NXG, and we know how that turned out).