Sometimes we run into real problems restoring old machines. [RedruM69] recently ran into a system with a dead Real Time Clock (RTC) module. These modules were used on computers and all sorts of other equipment, storing time, date, and 100 or so bytes of battery backed SRAM (before the days of cheap, plentiful flash memory). Often an external coin cell would supply power to the module. In some cases though, cost savings would take over, and the battery would be incorporated into the module. Such is the case with many Dallas Semiconductor models, and the benchmarq bq3287 module [RedruM69] was working with. If we’re reading the date code right, the module was produced in mid 1995 so we’re well past the advertised 10 year battery life.
Apparently Texas Instruments is the current owner of this design, and they even have a datasheet online. (PDF link). It turns out that the bq3287 is a descendant of the bq3285, except that the battery pin is internally disconnected. For most people this would mean a search for a compatible replacement. An industrious hacker might even whip up something compatible from modern components. Not [RedruM69] though. He broke out his Dremel tool and cut into the potted case. Exposing the internal connections above pins 16 and 20 allowed him to solder two wires on. Connecting these wires to an external coin cell brought the module back to life.
[RedruM69] isn’t the first one to perform this hack. Sun computers kept their MAC address in chips like this. When the battery went dead, the computer was off the network. Hackers have been cutting the modules open and adding batteries for years. You could always forgo RTC modules completely and use the power grid as your timebase.
30 thoughts on “Keep An Old Real Time Clock Module Ticking”
We use a version of that sort of battery backed up SRAM in some ancient machines where I work. We don’t care about the clock feature, but they hold MAC address and other network information. What I did was found some EEPROM that was pin compatible and burned the configuration into those. Our network is quite stable, so this works out fine and we don’t need to worry about those darn batteries running down. This should last until those machines either catch fire and/or get replaced.
I should point out that these are not PC/linux machines, but VME machines running VxWorks.
Sounds like some SGI machines
We have a press brake at work that forgets all of its programs and tooling every couple of years if you don’t change the battery.
I recently did this with the Dallas RTC in my old IBM. The exception being I didn’t document my progress and I don’t have a dremel so a drill was carefully used instead.
Yeah, they probably hold your CMOS settings besides the clock. So “just using NTP” or similar not a complete solution.
This is also necessary on older Sun workstations. What makes them more of a problem is that the RTC modules have a ‘design feature’ that Sun used but was not implemented in later dies, making it next to impossible to solve the problem by just buying another.
I would almost say “not a hack”, just because everyone does it.
But this is not that terrible to replace on old SUN stations, you only have to set a few bytes in the new NVRAM, using a serial console. This is usually documented on some old newsgroup archives.
This is actually fairly easy, you only need to file one side of the chip until you see some bits of metal (the pictures are from a STM48T59 from a Sun Ultra1):
It is also exactly the same for old PCs with a dead DS1287/BQxxxx/ODIN equivalents, where you gotta file in place of the missing pins (you can double check the pins with a MC146818 battery-less equivalent).
Isn’t internal lithium battery still connected to those pins? That could cause some problems as now dead and new batteries are connected to parallel, and new battery is trying to charge old one. At least that could cause much shorter battery life. Anyway many of those potted RTC/SRAM IC’s have same version without build-in battery backup.
From that era the internal cell was probably a mercury based alkaline.
I would have gone to the effort to remove the old battery as it will probably start leaking before long.
I believe you can disconnect the internal battery. That was the point of opening the die, from what I gathered.
Really, if it’s gone deader than 70s fashions, internal resistance of those type of lithium cells goes way high, 1000s of ohms, so you can just say screw it and connect aross them… has to be really dead though.
There were a lot of these around in the early PC days and recall WELL appreciating them for the 10 yr life hence not messing with coin cells and resetting date and time every 18-24 mo on every system (for a fee cause in those days folks were all newbs). But when the 10 yrs came due the clock was slow and module prices were now up nice and high of course, yet thankfully engineers provided most boards aux bat pins to which could one could connect a rather large external battery pack in -parallel- “?” with the very dead internal battery (+++ for HALF THE PRICE yet still a goodly co$t). Uhmm… $30 for a $8 battery? Honestly believe the concept came from a bean counter that questioned manager whom then spoke to an engineer (left feeling disconcerted) and the beancounter then dictated service policy (by way of profit)… Yet it worked good and held for at least till I had a signature and was out the door a couple years and my little service visit was long forgotten, and the company summer picnic was good deal larger.
I liked fixing things… but this is one where I felt the slime.
Yeah I found around half systems afflicted with these had a 4 pin or occasional 2 pin header. (Sometimes the 2 pin CMOS clear header was basically the batt hookup.) So you could just hookup a pack. I just whacked AA packs on a couple I had, alkalines lasted 2 years usually, it was overkill, but around the time needed the CR2032s were nowhere near as common and like $5 a pop from RadioShack or something.
I might need this… I recently ran into one of these soldered on an old mobo… the weird thing was the mobo wouldn’t even retain new bios settings after “Save and reboot”, and default settings rendered it unbootable (no hard disk auto-detection, no floppy installed by default). Bad design, planned obsolescence, or…?
Nah wasn’t weird, the 100 bytes batt backed RAM were used on AT class for “basic” CMOS values, mostly what you’d just get on 1st screen of a later BIOS. HDD/floppies/ installed RAM.
I understand that… but one would think the RAM would’ve retained those values while the system was powered… It’s almost like the RAM was powered *exclusively* from the battery. Either that, or the battery’s in some weird state (internally shorted?) where it’s preventing the RAM from being powered externally… Either way, questionable design, to say the least. Glad this wasn’t storing something important and unrecoverable, maybe like the MAC address on a server, or some sort of hardware-locked serial-number for a CNC machine, or something!
Oh right, yes I’ve seen that behaviour…
Some, might have done it as a design “feature” meaning they never did anything to prevent it. Some might have done it as a consequence of having very little power smoothing on the motherboard, and a reset really dumping voltage low. This might also have been due to the power supply design, they used to wait for a load on 12V before starting, so if HDD reset before pulling much on 12 was prolonged it might have dumped 5 long enough to have PSU pull 5 briefly. Then another possibility is the PSU was near it’s limit, some early ATs had less than 200W supplies and more than 3 drives was straining them a bit, especially old 5.25 HDDs which pull a lot spinning up. Thus could have been pulled low by high current for drive spin up. Lot of variability in what various hardware like keyboards would pull then too, had some older ones that cause boot failures on later system because they want so much. Only way to decide if it was really a bad design for that would be to unplug it down to a minimal config and see if it still kept settings, or try a different PSU.
I did this on my SPARCStation LX, I ve seen a lot of ‘new’ NVRAM ICs on ebay , all of them are almost dead now, I got (and returned back) a couple of them as they did not keep the time! (seller described them as NOS). What I have to add is : always backup the info that is kept on those ICs, each system has its own procedure to backup/restore the NVRAM info, or at least try to record the params of the variables that are stored there, on SPARCstations the NVRAM is keeping the HID (hardware ID, kind of MAC address) and a lot of commercial s/ware lock the licence with the HID.
Not sure about the device in question, but a lot of these RTC/CMOS devices were based on, or clones of the MC146818AP Real Time Clock + RAM(RTC) chip by Motorola, which are so far as I am aware still in production, with a coin cell potted in the mix. The MC146818AP can be picked up on fleabay for not much, and if my hunch is correct, then folding up a couple of pins and tacking on a coin cell should be relatively easy.
I think the DS3287 is probably a direct replacement.
DS12887 not 3287
“You could always forgo RTC modules completely and use the power grid as your timebase.”
Obviously the HaD Author of this post knows nothing about time-keeping and how bad using mains frequency is as a reference. Another case of mis-information for the sake of another HaD click-through hit.
Just walked a friend through this. He had a lasergraver with a 386 sbc on a backplane with a 40something io card. The battery failed and the board kicked a kinda unknown code 8 beeps. After checking the bios(ami) the code was a boot fail for bad video ram or card missing. Bios had reset and was looking for a video card. The funny thing is, it’s a laser engraver from 1996 not y2k compliant and it does not matter. We forget sometimes that a computer with no operating system is still a machine that can run code. Even a x86 sbc. Funny as it is, you can still buy an isa cpu card. The hack was a coin cell carrier and batt.
Ds12887 Dallas rtf also has 9639a2 and 086724. Amibios c1992 386sx bios 233685. Error beep codes on ami website. I just wonder how many “broken” industrial machines need this.
Shhh, just buy them cheap on eBay :-D
Little bit of a shameless plug but about two years ago I made a small drop-in module to replace DS12887As with an external CR1220 coin cell. Recently modified to use regular ‘square pin’ 0.1″ headers. It’s a bit of a hassle to assemble due to the lack of clearance offered by the battery holder, but works quite well.
For reference, the previous version used (poorly thought-out) crenellations. A SOIC DS12885 is mounted on the underside.
I recall capping and soldering on the RTC modules in Sun’a a log time ago. Mid 90’s. I worked in the electronics industry in the late 70’s through late 80’s and I recall the first lithium cells I got my hands on around 1980. These were rated for some small current drain and a 10 year lifespan. They were using them on prototypes of remote readout utility meters. I recall the batteries were internally fused. You could not get a short burst of high current out of them.
This is a common issue (and fix) on Phillips CD-I systems where such an IC was used to keep the game saves. I still need to fix mine but I admit I chicken a little about using a Dremel on something I don’t have a spare…
Please be kind and respectful to help make the comments section excellent. (Comment Policy)