... I tried sending 'W' 0x00 CRLF to see if I could get an individual byte back but never received anything at all.
For a rough/baremetal read of the cal data...
Connect your terminal emulator (GTKTerm, minicom, ...) to the AR488 com port (typically at 115200-8-N-1).
Type: "++ver", enter, to confirm that your AR488 is responding.
Type: "++addr N", enter, where N is the GPIB address of the 3478A.
Type: "++read", enter, to confirm a response from the meter.
Turn on log to file.
To read a cal byte (in a fresh bash shell) type:
"/usr/bin/echo -en "W\e\x
HH\r++read\r" >>/dev/
ttyUSB0"
Turn off logging in the terminal program.
The cal byte is the first character of every log file row; ignore remaining characters to end-of-line.
If needed, to write a cal byte (after turning the "cal enable" screw on meter faceplate), type:
"/usr/bin/echo -en "X\e\x
HH\x
VV\r++read\r" >>/dev/
ttyUSB0"
Meaning of echo switches ("man echo" for more detail):
\e =ASCII escape char 1B hex (needed to tell AR488 that next byte is binary)
\x
HH =
HH is the hex of the character representing the address of the cal byte
\x
VV =
VV is the hex of the character representing the value of the cal byte
\r =ASCII carriage return 0D hex
ttyUSB0 =com port where AR488 is connected (replace as appropriate for your setup).
Creating a bash script to automate calling 256 echo lines above or scraping the first character from the log file is left as an exercise for the diligent student.