I recently acquired a Keithely 2000 DMM (manufactured around 1997/1998) and wanted to try my hand at data logging. The GPIB port is out of reach for me, since I can't find the right connector locally and buying one is out of question because of the expense. I was sent an RS232 to USB converter cable, which I want to use.
The first test I did was connecting up the cable to my laptop running Windows 11. I used the Arduino serial monitor to connect up to the right COM port and send commands. I was able to successfully talk to the meter and send commands like :volt:dc:meas? and get readings back from the meter. I was also able to get readings from a Python script written to acquire data.
Now to do actual data logging, I didn't want to use the laptop since they have a tendency to randomly go into sleep mode and interrupt communication, and, of course, nothing needs to be said about Windows itself. I have a Raspberry Pi 4B running Raspbian which I decided to use. I connected the K2000 to one of the USB ports using the same cable I used with the laptop. I ran the same python script (only the COM port name was changed), but the meter gave me a +800 error - RS232 framing error detected. I installed the Arduino software on the Pi as well and tried to talk to the meter using the serial monitor the same way I had done on Windows, but no luck. I scoped the waveforms on the meter's RS232 level shifter IC output (to the meter), and noticed that on Rasbpian, there is an extra low bit added after each byte. I assumed this was the problem.
I hooked up a Pi Pico to act as a bridge (
https://github.com/Noltari/pico-uart-bridge), and this time the waveforms looked satisfactory, but the meter still gave me the +800 error.
I've been trying to talk to this thing using the Pi 4B for days now, and I have run out of solutions
. Would greatly appreciate help or advice.
Thanks, NNNI
P.S. Picture attached is of a scope waveform, white reference waveform is Raspbian, yellow is from Windows. :\n is invalid to the meter, but I transmitted only two bytes so it's easier to debug the timings.
P.P.S The meter's donor also tried the same thing with his K2000, and he gets the same error so at least it's reproducible.