Keithley 2000 RS-232 RTS, WTF!?! - Page 1
Forum section: electronics / testgear

author: eas
author_rank: Frequent Contributor
timestamp: May 07, 2015, 05:15:38 am
content: I picked up a Keithley 2000 DMM on ebay last week. As it turns out, it is almost 20 years old, and hasn't been calibrated since then, but it passes self-tests and gives reasonable values when reading my $20 Chinese voltage reference. Unfortunately the firmware is 20 years old too, which creates some compatibility issues with SCPI communication over GPIB and RS-232.Before I spend the time and/or money to get on to an modern firmware version, I decided to make sure the RS-232 hardware works, and it does, at least at first, but it quickly stops transmitting responses. This trace of the voltages on the TxD (yellow) and RxD (blue) lines shows things going bad.The idle/low voltage on the RxD line is only -1.7v or so, which is, in every way, out-of-spec. The USB/RS-232 converter deals with it anyway. Once the multimeter transmits part of a response, things get worse. Its obviously having trouble driving the line and finally craps out and sticks at +1.2v.I checked voltages on all the signal lines on both the PC and DMM side. I also looked at the current each device could support driving the mA range on my handheld multimeter. This was illuminating. On its own, the K2000 tries to drive the RTS line to -9v, which is weird, because it should be, and otherwise acts like a DCE, not a DTE. Meanwhile, the PC is trying to drive RTS to about +7v when the port is "opened" by an application. The DMM seems to be loosing this fight. One result of this battle is that, when the PC is connected, the DMM can't manage to drive RxD down to a reasonable voltage either.I thought there might be a short or something, but I looked at the reverse-engineered K2000 schematic and it shows that the RTS pin is connected to one of the transmit-out pins of the level shifter, something I confirmed with a continuity test.This seems odd, and it is particularly odd that I can't find any mention of anyone else noticing this, including any errata from Keithley. The Keithley user's manual does say that this should be used with a straight-through cable, and indicates the RTS and CTS pins as connected, but unused (and there are no hardware flow-control options in port configuration menu, just none, or Xon/Xoff.Has anyone else noticed this? Am I missing something obvious?(slightly more detail in my blog)

author: AndyC_772
author_rank: Super Contributor
timestamp: May 07, 2015, 05:31:09 am
content: I had to replace the level shifter IC in my K2000, it was dead. I'd assumed it had been damaged by some connected device, but maybe they just don't last forever?

author: eas
author_rank: Frequent Contributor
timestamp: May 07, 2015, 05:51:57 am
content: Quote from: AndyC_772 on May 07, 2015, 05:31:09 amThanks. I saw your post during my troubleshooting. It got me to pay close attention to the level-shifter, but I have to wonder if your level-shifter failure is a symptom of the the K2000 trying to drive the RTS line in the first place.It seems to work fine, with much better signal integrity, if I don't connect the RTS pin. I'll put it through some longer-term tests and if it seems to hold up, I'll probably make up a custom cable/adapter, or just cut the trace on the PCB.I still wonder why its driving the RTS line in the first place though.

author: Andreas
author_rank: Super Contributor
timestamp: May 07, 2015, 05:55:37 am
content: Quote from: eas on May 07, 2015, 05:15:38 amI think the short cirquit is in your connection. You should not connect RTS to RTS when both are outputs.In this case you will need a Null-Modem cable.With best regardsAndreas

author: eas
author_rank: Frequent Contributor
timestamp: May 07, 2015, 06:38:14 am
content: As I said, the documentation specifically calls for a straight through cable and claims that RTS is unused. Moreover, with a straight through connection, the DMM responds to commands issued on TxD and replies on RxD, so a null-modem cable wouldn't work either, in a different way.Its almost like this thing was originally designed to use the RS-232 to control other equipment, and it was later repurposed for PC communication. Perhaps later revisions don't have this quirk?

author: Smith
author_rank: Frequent Contributor
timestamp: May 07, 2015, 07:23:59 am
content: This happened to all older (over 15 years old) keithley 2000's I have seen. RS232 works fine until the connection drops every once in a while. It keeps increasing until the connection is unusable. As i remember the used IC (ADM202JRN) needs 100nF capacitors., wich I couldn't find on the PCB. Maybe on the other side. I havent took it out. Havent actually replaced one, but I guess this would work.Upgrading the firmware is simpel. Use 2 AT27C020 eproms to flash the firmware. One needs the even, one the odd binary. You can use every FW you want, but FW A20 you're device needs to be recalibrated. TiN's site has a lot of FW's for Keithley 2000's.http://doc.xdevs.com/article/keithley-instruments/#2000

author: eas
author_rank: Frequent Contributor
timestamp: May 07, 2015, 08:41:56 am
content: Thanks for that report, Smith. When you say the RS232 works fine for a while but ends up unusable, do you mean that the hardware seems to be deteriorating over time, or that the runtime state of the instrument gradually deteriorates until a power-cycle or something?I haven't pulled my board, but from photos and layouts, it looks like the caps are on the underside.It occurs to me that later versions of the firmware (I'm on A05) may not drive the RTS line.I may have a go at updating the firmware myself. The current Keithley IVI drivers require firmware A19 or later, but no one has posted it yet. I'm concerned about being able to pull off a recalibration on my own for the A20 firmware. Plus I'd have to get an appropriate EPROM programmer. Keithley quoted me $400 for the firmware and recalibration ($200 which is the cal), which isn't very attractive. Not sure what my next move is here.

author: Smith
author_rank: Frequent Contributor
timestamp: May 07, 2015, 11:44:40 am
content: I meant the connection just seems to drop after a while. After not using the port for a while (1-5min) it worked again. I havent had the time to look at it propperly as my unit had more problems and needed to be replaced anyhow. Some buttons arent working propperly (yes the pcb & buttons are cleaned) just like another unit we have of the same age. I heared it was one of the first units purchased when they hit the market.I once flashed one using a lpt eprom programmer. Worked like a charm. All units i checked (of different ages) all used OTP eproms. I did also find some old mainboards with compatible flash chips (bios chips, around PII to PIII age). Maybe someone can flash them for you?

author: TiN
author_rank: Super Contributor
timestamp: May 07, 2015, 01:05:58 pm
content: $200 for cal is not that bad. I'd suggest getting cheapo programmer (for example TL866 off ebay) with proper adapters and few blank EEPROMs to do firmware upgrade by yourself, and then send to KI for recalProgrammer will pay itself real quick when you mess with old T&M gear

author: 6thimage
author_rank: Regular Contributor
timestamp: May 07, 2015, 01:08:37 pm
content: I have had issues with my 2000 and its serial port. When connected to a USB converter, it seems to work for around a minute or so, then sends garbled responses and then stops sending responses all together. From a limited look at it, it seems to be that the adm202 has a +/- 9 V transmit voltage, with the converters expecting closer to +/- 7 V. I've quickly pieced together an adm202 on a breadboard with a non-level shifted converter and it seems to be working fine now.My unit is working fine other than this (calibrated fine just over a year ago), so I wonder if you might be seeing something similar. If you disconnect the 2000's serial output (so it is not connecting to the computer controlling it), does it still do the same thing? If it doesn't it might be your converter doing strange things.

author: AndyC_772
author_rank: Super Contributor
timestamp: May 07, 2015, 01:51:32 pm
content: I'd be amazed if that voltage level difference is responsible, +/-7V and +/-9V are both entirely respectable levels to find on an RS232 line.I've had issues before with USB-serial converters working fine for a while then delivering garbage, all on their own. It's a USB driver problem, I think.

author: 6thimage
author_rank: Regular Contributor
timestamp: May 07, 2015, 02:00:15 pm
content: They should be, but that is the only thing I can think of - I've tried it with two converters (one an ft232rl the other a pl2303) and they both stop working at around the same time. But the breadboarded version with a pl2303 works fine.I don't think it's a driver issue as I've used the converters for quite a while on other devices and they work fine - to me, it looks more like an overloading issue.

author: Smith
author_rank: Frequent Contributor
timestamp: May 07, 2015, 02:43:41 pm
content: I have used some meters for 8 houres a day in the past using the same hardware and software. Tough as the years passed the RS232 communication seems to be more problematic every time I use it.I remember a conversation on the Keithley forum where someone had problems with a Keithley 2000 and a RS-232 connection. They asked him if the unit was old, and if so to replace it with a new one. He said yes, replaced the unit and everything worked. So I guess its a common issue.

author: 6thimage
author_rank: Regular Contributor
timestamp: May 07, 2015, 03:15:56 pm
content: So what did they change then - is it just the firmware, or is there something different with the hardware?My 2000 has date codes suggesting it was made at the start of 1996 and it has the A07 firmware. Is there a change log available for the firmware at all?

author: Smith
author_rank: Frequent Contributor
timestamp: May 07, 2015, 03:31:19 pm
content: As far as i could see they only replaced the eproms. I know it has been sent to Keithley. Both eproms where lasered with "Keithley" and "A15" on it.

author: eas
author_rank: Frequent Contributor
timestamp: May 07, 2015, 05:47:35 pm
content: Quote from: Smith on May 07, 2015, 11:44:40 amThanks for clarifying. That sounds a lot like the behavior I'm seeing with RS-232 communications. I'm curious, what firmware version do you have. Also, If you have opened it up, have you noticed any date codes on any of the components?Quote from: 6thimage on May 07, 2015, 01:08:37 pmAs others have said, those voltages on both ends should be well within RS232 spec. The behavior you are seeing sounds a lot like what I'm seeing. I'd suggest somehow connecting the USB adapter to your K2000 in a way that leaves the RTS line unconnected and seeing what happens. I used some dupont wires and a bit of hot glue. As you can see in the second image onmy blog postwith this accommodation, the transmissions from the DMM look much better. I haven't done a comprehensive check of communications functionality with this mod, but I expect everything else to be fine, because the thing doesn't support hardware flow-control, and couldn't without a custom cable anyway.Quote from: AndyC_772 on May 07, 2015, 01:51:32 pmThat doesn't seem to be the problem, at least not in my case. The Oscope trace shows what happens on the RxD line as the DMM goes from transmitting successfully, to garbage, to nothing at all.Quote from: Smith on May 07, 2015, 02:43:41 pmMy hypothesis would explain long term deterioration in RS232 communication as well as the short term glitches and drop outs, and also could be fixed a firmware change:When the DMM is new, or the level-shifter is otherwise unused, it can successfully fight with the PC over the voltage of DTS and manage to drive RxD as it should, but doing so causes overheating, leading to the short term glitches/dropouts, and also long-term deterioration of the involved component(s). This deterioration in turn makes short term dropouts more likely.New firmware could stop driving the RTS line. This would avoid long-term wear & tear, and could also fix, or at least dramatically improve, RS-232 communications on units that had suffered deterioration short of failure because the drivers power supply would no longer have the load of fighting the PC over the voltage on RTS.Quote from: TiN on May 07, 2015, 01:05:58 pmYeah, I can probably swallow $200 for the cal. It's just that the calibration seems pretty good as-is. I think I will pick up a programmer. This isn't my last microprocessor driven piece of test gear. I already have a HP 6632b on the way, and may pick up another. I like troubleshooting and fixing stuff, and its probably a good bet that doing more of it is going to provide a lot of motivation for improving my electronics understanding and making better use of the gear I already have.Quote from: 6thimage on May 07, 2015, 03:15:56 pmI haven't been able to find any sort of change log or release notes for the K2000 firmware.Interesting details about your unit. Mine appears to have been manufactured in late 1995 based on date codes, and the fact that the first and only cal date is 11/28/95. It has A05 firmware. Also, for what it is worth, it has the smaller ASIC A/D converter, rather than the big Altera FPGA TiN's unit seems to have.I'd like to try to put together a rough timeline of firmware revision dates, and also try and work out whether and how manufacture date is encoded in the serial number. Do you (and others) mind PMing me when you think your unit was manufactured, the evidence for that conclusion, your serial number, firmware revision, and how likely you think it is that it is the firmware the unit shipped with?Thanks everyone!

author: Smith
author_rank: Frequent Contributor
timestamp: May 07, 2015, 06:18:24 pm
content: Quote from: eas on May 07, 2015, 05:47:35 pmFW A06, its made in '96.

author: eas
author_rank: Frequent Contributor
timestamp: May 07, 2015, 08:08:26 pm
content: Quote from: Smith on May 07, 2015, 06:18:24 pmInteresting, so yours is right in between mine and 6thimage's. Mine was made in the last months of '95 and has A05. His was made in early '96 and has A07. They were clearly revving the firmware frequently at that point.

author: TiN
author_rank: Super Contributor
timestamp: May 08, 2015, 12:18:31 am
content: 1994, A02Early units use CPLD for A/D controls/count , while never units have ASIC. 2000's ADC block reused in many other instruments and SMUs.

author: Smith
author_rank: Frequent Contributor
timestamp: May 08, 2015, 06:19:04 am
content: We have some 1994 and 1995 units too. I know one of them never really worked in RS232 with USB converters. It only worked on true RS232 connections.Not that strange they where upping the FW in those days. As far as I know it's HW and SW design was the basis for multiple later models. They still sell them after 20+ years although it had some mods here and there. Basicly it's the same device.

author: z01z
author_rank: Regular Contributor
timestamp: May 08, 2015, 07:37:52 pm
content: I've successfully upgraded a K2000 with an original firmware version of A5 to A15, using SST39SF020A-70 flash memories instead of EPROMs.The flash is mostly pin compatible, except for two pins. One pin doesn't matter because it's NC (pin 1, VPP) and the other is luckily wired so that the flash can work as a substitute (pin 31, -PGM vs -WE, connected to Vcc).So if you want to try a newer firmware, this is also an option - probably a chaper one than EPROMs. The added bonus is that they can be easily reprogrammed later with a different firmware.One interesting side-effect of the new A15 firmware was that a 306.4 fault appeared afterwards, which is not documented in the rev. B repair manual. I've found a post on the Keithley forum stating: "These error codes have to do with a very tight internal leakage spec. This should not affect your measurement capability of the Model 2000". So I've just blew the dust off the board and the fault is gone. Phew!Does anyone have a newer repair manual by any chance?

author: eas
author_rank: Frequent Contributor
timestamp: May 08, 2015, 11:07:18 pm
content: I'd be interested to learn if newer versions of the hardware and/or firmware have the same behavior of driving RTS/Pin 7 to a negative voltage when the DMM is powered on and the RS-232 communications are enabled.I picked up an old straight-thru F/M DB-9 cable and clipped off pin 7. I'm need to write a script to take readings every second and see if communications remain stable.

author: eas
author_rank: Frequent Contributor
timestamp: May 09, 2015, 03:47:39 am
content: z01z, thanks for your report. Great to know that there are flash chips that will work in place of the EPROMs.Does anyone have recommendations for an inexpensive programmer for EPROM and something like the SST39SF020A-70 flash chips Z01z used?

author: Smith
author_rank: Frequent Contributor
timestamp: May 09, 2015, 07:21:55 am
content: May be handy to know: Keithley has a piece of software to flash your 2000 by RS-232 (maybe GPIB). Something called flash wizard 32. Of course this doesn't work due to the OTP eproms used. Yes, that took me some time, so consider this as a warning. It may work with flash chips, but I have never seen rewritable chips in older Keithley devices so I'm not sure.The TL866 programmer seems a good value for money. It supports about everything and it is dirtcheap. Just look at ebay, the converters are cheap too.Of course I use a 20 year old eeprom programmer on an ancient pc. Still cant justify to buy a TL866 myself, I have a soft spot for oldschool programmers .

author: z01z
author_rank: Regular Contributor
timestamp: May 09, 2015, 07:23:58 pm
content: Quote from: eas on May 08, 2015, 11:07:18 pmYes, it appears to be so. I've measured -9V on that pin with the A15 firmware.

author: z01z
author_rank: Regular Contributor
timestamp: May 09, 2015, 07:38:20 pm
content: Quote from: Smith on May 09, 2015, 07:21:55 amThe -WE pin is wired to Vcc, which means the flash can only be read in-circuit.Even if this program you've mentioned could be used for a 2000, the new flash has to be programmed first externally anyway (otherwise the serial/GBIP communication won't work, through which the flash could be programmed)

author: eas
author_rank: Frequent Contributor
timestamp: May 09, 2015, 09:10:34 pm
content: Quote from: z01z on May 09, 2015, 07:23:58 pmThanks for checking. Anyone on the A20 firmware willing to check?

author: eas
author_rank: Frequent Contributor
timestamp: May 16, 2015, 09:54:15 pm
content: Ok, so I now have some newer K2000 hardware with A20 firmware. I just checked the voltage on RTS wrt the ground pin. 0v.I'm not going to open it up to check for date codes and check for circuit revisions until I've had it for a couple of weeks in case I have to return it to the seller for some reason.

author: Smith
author_rank: Frequent Contributor
timestamp: May 17, 2015, 06:28:42 am
content: As i remember the RTS setting was an option under the RS232 menu (flow control?). Dont have an 2000 here right now, so I can't check.

author: eas
author_rank: Frequent Contributor
timestamp: May 17, 2015, 07:10:53 am
content: Quote from: Smith on May 17, 2015, 06:28:42 amThe only flow control options available are "None" or Xon/Xoff." If it had an option for hardware flow control, the K2000 would be responsible for driving the CTS line, which it can't do because the second output from the level shifter is wired to the RTS pin. As for RTS, it is supposed to be controlled by the DTE (data terminal equipment, ie the PC).

author: eas
author_rank: Frequent Contributor
timestamp: May 27, 2015, 07:38:30 am
content: Quote from: eas on May 16, 2015, 09:54:15 pmI finally opened it up. Looks like it was made in 2007. Board revision is copyright 2006. RTS pin is no longer hooked to the level shifter. Only pins connected to the level shifter are Rx and Tx. The other output and input pins on the level shifter doesn't seem to be connected to anything any more.

author: gamalot
author_rank: Super Contributor
timestamp: October 31, 2015, 05:25:09 pm
content: My Keithley 2015 had the same problem, so I just cutted the pin 7 & 8 of ADM202 chip, now it works very well, thank you so much!

author: eas
author_rank: Frequent Contributor
timestamp: November 01, 2015, 02:13:00 am
content: Glad to have saved you some time and frustration!

author: ve7xen
author_rank: Super Contributor
timestamp: February 03, 2016, 08:16:18 am
content: What an infuriating problem. Spent all night trying to figure out why my K2000 was randomly crapping out while trying to do datalogging. Nominally it works, but eventually it just stops responding to :READ? requests, usually within a minute.I cut the traces for CTS/RTS on the ADM202 and things are vastly improved but I'm still having some reliability issues. Not totally sure that it isn't my RS232 gadgets, but two different ones have similar symptoms. The meter is also not at all tolerant of spurious input either, it is often getting wedged in a state where the 'acquire' marker on the VFD is lit, but no measurement is taking place and no keypad input is accepted other than LOCAL.Has anyone tried replacing the actual ADM202? Or maybe just its boost capacitors?I will also see about getting myself a programmer and upgrading to A15. My meter is currently running A05.Thanks for the good work tracking down the level shifter as the problem, I wasn't really able to get good measurements on it due to common mode crap in my lab.

author: eas
author_rank: Frequent Contributor
timestamp: February 04, 2016, 12:22:42 am
content: As I recall, I came across at least one person who replaced the level shifter and reported their problems were solved.

author: ve7xen
author_rank: Super Contributor
timestamp: February 11, 2016, 06:10:17 am
content: So a follow up. Received some parts today and got to work on repairing my K2000.Replaced all electrolytic capacitors with new, 105? 5000+ hours unitsReplaced ADM202 U159 with new MAX202 equivalent from TIBefore installing, lifted pins 7 and 8 of MAX202 and did not solder them"Conditioned" the VFD @ 6.5V for a few minutes. It did help.There was no leakage from the existing electrolytics found. I did find that last time I attempted to lift the pins I must have been drunk, as I lifted pins 6 and 7 of its neighbour, U164 which is part of the trigger input. I fixed that botched job while I was in there. Also replaced a missing screw on the linear regulator that holds the PCB in place. It is a 4-40 machine screw.Unfortunately still no joy, it seems to be exhibiting the same symptoms as before, after some time it appears to stop responding to commands over RS232 until sent a RST* command (or maybe init or something, not sure exactly). Maybe I am doing something stupid in my script, I will fiddle around some more. I'm beginning to suspect the firmware. I ordered a programmer from China, but being the new year there, it probably won't ship for another week, so I won't get it for 2 months.If I can't find anything in my code to get it reliable I'll do some more careful probing around and have a look at the signal integrity.Edit: After some additional testing, it definitely appears the device 'ignores' and does not respond whatsover to a single command. The next issued command does appear to work. This looks like a bug to me. I added up to 1s of delay between commands in my code and while it does help, it still glitches after a while. I may need to add a timeout and re-send failed commands if there is no response, at least until I can test A15.

author: Elmar
author_rank: Contributor
timestamp: May 23, 2018, 09:33:14 pm
content: So I bought a 2nd hand keithley 2000 advertised as "in good shape" turns out the rs232 was not working. Ended up being a hardware defect with the level shifter.Instead of going through a drama with the seller and having to wait longer before I can do my measurements I just grabbed my soldering iron. It turns out the level shifter actually had 2 more unused channels so i just switched the broken channel to the "spare" channelAttached a picture of the mod, maybe it's useful for someone that has the same problem. Worked out great for me, rs232 works now!