Keithley 2000 RS-232 Serial WTF

My Keithley 2000 DMM craps out during serial communications with a PC over RS-232.  When it does, the voltages on the TxD (yellow trace) and RxD (blue trace) lines look like this:

19.2kbps Fail KE

There are a few things wrong here.

  • The idle voltage of the RxD line should be -7v or so, similar to that of the TxD line, rather than the -1.7v it starts at.
  • The obvious decline in signal quality before the RxD locks at the ~1.2v shown at the end of the trace.
  • RxS locks at 1.2v, rather than returning to it’s idle voltage.

I came across someone who had trouble with the RS-232 level shifter IC on the similar Keithley 2015, so I carefully checked it out. It seems to be well under-spec on the output of its internal -10v power supply, which can only deliver a sustained 6mA. The +10v supply, on the other hand, can provide much more. I also diligently checking of voltages and current delivery of all the signal lines both the multimeter and the USB to RS-232 adapter its connected to.

It appears that the PC is trying to drive the RTS line to +7v. At the same time, the multimeter is trying to drive the RTS line down to -9v, and its loosing. As a result, it can’t drive the RxD line below -1.7v, and eventually, while transmitting, it gets stuck at +1.2v.

But why is the the DMM trying to do anything on the RTS line? That’s the job of the “data terminal equipment,” or DTE. I checked the reverse-engineered Keithley 2000 schematic, and it shows that the RTS line is connected to one of the transmit outputs of the level-shifter IC, something I confirmed by doing a continuity test. This makes no sense to me.

If I disconnect the DMM from the RTS line, everything seems to work fine. The DMM drives the RxD line to -9v at idle, and sustains signal quality throughout a transmission.

RxD is in much better shape when RTS isn't connectedI can’t imagine I’m the first person to come across this. I’m surprised though that I can’t find any mention of it online.

Update:

I posted about this in the EEVBlog Forums and a few users provided some details of similar issues they’ve had with RS-232 communications on the Keithley 2000 DMM. None of them have gone as deep as I have, but their descriptions are explained by my hypothesis.

I’m interested in whether later versions of the firmware leave the RST pin floating. So far no one with more recent firmware has checked for me, but one user remembers someone getting a similar problem fixed with a firmware update.

I’ll probably try doing a firmware update on my own. One user reports that he figured out he could use some Flash chips replace the EPROMs, which is attractive because I can re-use the chips and I don’t have to buy a legacy device like an EPROM programmer.

In the meantime, I picked up a straight-through male-to-female DB-9 cable and clipped off the RTS pin (#7). With it in place between the USB RS-232 adapter and the DMM, I ran a test querying the DMM with “*IDN?” every second for an hour or so. The DMM remained responsive for the whole time, and the responses it sent were complete, and uncorrupted. Previously things crapped out within a few minutes and only a few commands.

Update 2015-07-20:

I now have a unit from ~2007. It leaves the level of the RTS pin to the DTE, as it should. Upon closer inspection I found that the board has been revised so the RTS pin is no longer connected to the level shifter IC at all.

Keithley 2000 “Repair” Tip

I won an auction to buy a Keithley 2000 6 1/2 digit multimeter on Ebay for ~$250, a pretty good price. The seller said it had some scuffs, but was “tested and ready for work.”

When I received it, it was clear that it was a little worse for wear than claimed. It had a cracked rear bracket, and a yellowish/brown tint, rather than the shades of grey of a new machine. At first I thought it might be yellowing due to sun exposure, but the yellowing seemed to afflict the painted metal case as well as the plastics.

It did power up, and when I tested it with a voltage reference I have, its readings came in pretty close to the expected value, so I didn’t worry too much about the physical condition beyond trying to wipe the outside down well with cleaner and isopropyl alcohol.

Once I’d done that, I decided to look inside, to see if I could get an idea of the manufacture date. As soon as I removed the case, it was obvious where the yellowing had come from. It stank of old tobacco smoke on the inside, though fortunately, there wasn’t an obvious film. As I looked around, inside I could see a number of components with date codes for mid 1995, which matched well with the date of the first and only calibration, November 1995. It was almost 20 years old.

In the process of looking at the insides, I noticed that he input wires seemed a little close to some metal projections from the input selection switch, which seemed a little sloppy. Then I realized the board seemed a little slanty, and was out of its mounting tracks, possibly it had been jarred loose in an impact. On the opposite side of the chassis, I saw that some wires to the front panel and the power transformer weren’t routed through a retaining clip. Someone had taken this thing apart, and done a poor job of putting it back together. I loosened some screws so I could slide the board back into position and noticed a gouge in the PCB when it had been forced into place during a previous reassembly. Fortunately, it only damaged some solder mask, and not the trace underneath.

Once I had it back together, I ran the self-tests and was discouraged when it reported a number of faults for tests 100.1, 101.2, 101.3, 200.1, 200.2, 201.1, 201.2, 300.1, 301.1, 301.2, 302.1, 302.2, 303.1, 303.2, 304.1, 400.2, 401.2, 402.2, 403.2, 500.1, 500.2, 600.1, 600.2 and 601.2. That’s most of the self tests.

I tried to work through the troubleshooting in the repair guide, but it was dismal, it didn’t even describe the signals on the half-dozen or so test points on the board. I found a reverse engineered schematic and dove in.

I was working my way around the A/D chip trying to orient myself to the various signals, when I noticed…something. At first I thought it was a stray line on the silkscreen, but on a closer look, it seemed to be a fiber, cat hair? Dog hair? I flicked it away with my gloved hand, and then blew the area clear with some canned air.

I reran the tests and they all passed! One tiny fiber in the wrong place was enough enough to through the A/D converter out of spec cause a cascading failure.