386 motherboard repair - Page 1
Forum section: electronics / repair

author: JKKDev
author_rank: Regular Contributor
timestamp: December 09, 2018, 05:04:20 pm
content: Hey, I've decided to repair the motherboard from my first pc. It got killed by a leaking battery (as you do) and I've been trying to get it to work again the last few day.First it turned on but no image was displayed. I reseated the VGA card to the top most 16 bit ISA slot which got it to work. However I do remember having the card in this slot before and not getting a video output so there's more to this problem but for now we got the image.Next was a "no keyboard detected" error. The PS/2 (or the 5 pin equivalent of that era) connector is right next to the leaking battery so it was obvious where the problem lies. I then removed the battery as well as 2 caps (from the PS/2 data and CLK lines) which literally fell apart and the PS/2 connector to clean the area and diagnose the keyboard error. It became obvious that the CLK and DATA lines of the PS/2 were completely gone so I reconnected them to the keyboard controller. I also reseated the BIOS chip at this point which had quite a bit of corrosion on the socket and on the legs but was still making a connection.At this point I reassembled the PC, turned it on and no video again. At this point I realised I haven't heard any beeping from the chassis speaker so I tested that with an arduino which confirmed that the speaker works.Next I uninstalled the RAM sticks to test if the board does drive the speaker expecting a series of beeps reporting "no RAM installed". And the board cooperated. Next came half an hour of banging my head against a wall because after I reinserted the RAM sticks BIOS kept beeping. After a while switching the sticks around solved the problem.Next came the process of cleaning the corroded area around the battery, BIOS chip and a part of the southbridge.During the cleanup i've tested the bios chip which was working (I read a few addresses from it and the data changed so I assumed a working state) as well as a buffer chip (SN74F245N) which failed to buffer one of it's lines in one dirrection. This buffer chip is part of the southbridge combo (OPTi 82C493, 82C392 and 82C206) and as far as I understand it is controlling the communication between 493 and 392 chips as well as the BIOS and keyboard controller (and maybe more). I also repaired a broken trace between the buffer chip and the BIOS chip. After the reassembly (without the RAM as video was inconsistent) there was no beeping to be heard.At this point I realised I must have broken something and I have no idea what so I started probing around. The BIOS chips' output enable pin was held high which indicates to me that the southbridge isn't ready to operate (the chip enable as well as the adress lines of the BIOS chip were all in their expected state (low and alternating respectivelly)). At this point I'm lost as I don't have enough knowledge of the architecture to figure out whats causing the southbridge to not read the BIOS. There is a possibility that the buffer chip was wrecked during the desoldering but I doubt it so currently I assume that the PC was working (BIOS posted and video out) with a broken buffer chip on the southbridge 8-bit parallel line.I also checked the PSU power lines which all looked to spec so I'd assume a "power good" signal is present however I don't know which pin it should be on as the only pinout of the 82C392 i can find is a 160 pin PQFP and the one on my board is a 100 pin one.Is there anyone here that would be able to help diagnose the board (unfortunatelly I currently only own a mid tear DMM so no scoping)?Thank you for reading and have a nice day

author: Floopy
author_rank: Regular Contributor
timestamp: December 09, 2018, 06:47:09 pm
content: A good investment if your going to work with more of these, is a tl866. I’m not saying that the bios is yours problem, but it would verify that it works. I’ve had Eproms that seemed fine, but upon inspecting the data I noticed it was missing entire arrays of memory. That means it had been plugged in backward.Aside from that, I would clean the corrosion completely! All of it, scrub it down with vinegar. Then take a full assessment of the condition of the board. A bad capacitor is all it takes sometimes. Especially battery corrosion, it will eat through solder joints. Clean the RAM slots with alcohol to take corrosion of.Once done and if it works, you should replace the battery with an external one. Because it’s very annoying to have to edit the bios settings on start up every single time!

author: JKKDev
author_rank: Regular Contributor
timestamp: December 09, 2018, 08:38:03 pm
content: Quote from: Floopy on December 09, 2018, 06:47:09 pmCurrently I've got no intentions to do more than this board but who knowsFortunatelly the RAM sockets aren't corroded only a few traces were hit hard but I will definitelly clean the board. Thanks for the adviceIn other newsI've got a successful boot again after switching the southbridge buffer for one of the ISA address ones (which tested as working). Unfortunatelly I can't test the video output without the buffer so I guess I need to get another bufferI will try to imitate a buffer with an arduino (when a direction pin is in correct state miror data from input to output) but I don't have high hopes for it working (timing and ish).

author: Rasz
author_rank: Super Contributor
timestamp: December 09, 2018, 09:46:54 pm
content: this might give you some ideashttps://www.eevblog.com/forum/repair/how-to-troubleshoot-your-defective-386486-motherboard-with-an-oscilloscope/

author: JKKDev
author_rank: Regular Contributor
timestamp: December 11, 2018, 12:39:34 pm
content: I've managed to get it into a state where it consistently reports beep codes if present (eg. removing RAM), keyboard is initialized (double flash and the 3 lights respond to the corresponding keys) but I still haven't got the VGA signal.At this point I've decided to order an ISA POST code card (about 2$ from China) and set this repair aside until I get it. I'll use it to diagnose if there's an error in the ISA bus on the motherboard or if the VGA card is faulty.On a side note... Any time I do a cold boot (by emptying caps using the jumper) there is a short beep. I believe this is an all clear beep but I would expect to get it everytime I boot and not just when cold booting. Is this a correct assumption or am I wrong?

author: Kilrah
author_rank: Unknown
timestamp: December 11, 2018, 12:42:23 pm
content: Have you put a CMOS battery back in place? If not then settings will be lost on each cold boot.

author: JKKDev
author_rank: Regular Contributor
timestamp: December 11, 2018, 12:46:25 pm
content: Quote from: Kilrah on December 11, 2018, 12:42:23 pmI haven't and I know this however I have no way of changing BIOS settings currently (no video) so I don't see a problem here. Are you saying that this could be connected to it only beeping on cold boot?

author: Kilrah
author_rank: Unknown
timestamp: December 11, 2018, 01:35:53 pm
content: We don't know how this particular BIOS works but it is totally possible that it beeps when it see corrupted settings and loads defaults. Those stick until you cut power, and next cold boot does it again.Also some computers will not run if there is no CMOS battery.

author: JKKDev
author_rank: Regular Contributor
timestamp: December 11, 2018, 04:30:53 pm
content: Quote from: Kilrah on December 11, 2018, 01:35:53 pmIt's a Mr. BIOS chip if that helps at all. Is the BIOS chip the only piece of hardware that issues sound commands during boot? I also realized I've got another ISA card to test the bus with. It's an PATA card with an HDD activity LED connector. However I'm not sure there is any HDD activity during POST/boot up.But like I said I'll have to shelve this repair until the POST code card arrives which will probably take a month or more :/

author: Kilrah
author_rank: Unknown
timestamp: December 11, 2018, 05:00:04 pm
content: As I said some computers wouldn't POST without a battery. Probably a long shot but might want to just try once with one before shelving the thing.

author: james_s
author_rank: Super Contributor
timestamp: December 11, 2018, 05:43:10 pm
content: Battery damage usually creates short circuits from the electrolyte, it will seep under ICs and short out traces you can't see. It also tends to rot out vias and if it's bad enough it can rot traces themselves. You have to clean it very thoroughly.

author: Rasz
author_rank: Super Contributor
timestamp: December 11, 2018, 09:05:01 pm
content: didnt you say you are missing a buffer chip?Quote from: JKKDev on December 11, 2018, 04:30:53 pmsoftware, beeps are generated by running bios code, expansion cards with own firmware might beep tooQuote from: JKKDev on December 11, 2018, 04:30:53 pmno 386 that I know of autodetected HDDsQuote from: Kilrah on December 11, 2018, 05:00:04 pmthose would be mostly Apples and exotics (sun etc)

author: JKKDev
author_rank: Regular Contributor
timestamp: December 11, 2018, 10:05:29 pm
content: Quote from: Rasz on December 11, 2018, 09:05:01 pmOh I forgot to mention I got some buffers locally so I replaced the broken one. I might test the remaining ones but first I'll wait for the POST card just to see what's what.About the HDD activity... What I meant was that if the ISA bus was working correctly there might be some activity on the HDD LED. Since there is none it's either that the bus isn't working or there is no HDD activity at the point the computer is at.

author: Rasz
author_rank: Super Contributor
timestamp: December 12, 2018, 12:16:13 am
content: Quote from: JKKDev on December 11, 2018, 10:05:29 pmwhy?HDD "controllers" at the time were simply address decoders for the IO ports mapped to the attached IDE devices. Why would there be any hdd activity if nothing talked to the HDD?

author: JKKDev
author_rank: Regular Contributor
timestamp: December 12, 2018, 10:36:55 am
content: Quote from: Rasz on December 12, 2018, 12:16:13 amWouldn't successful boot into MS-DOS require talking to HDD. It's been about 20 years since I last use this PC so I don't remember how involved was the boot up process and since there is no cmos battery I guess even if everything would be working it wouldn't just boot up. I don't know...

author: Kilrah
author_rank: Unknown
timestamp: December 12, 2018, 10:40:31 am
content: Since CMOS settings were lost your BIOS doesn't even know there is an HDD there anymore, so nothing will try to access it.

author: JKKDev
author_rank: Regular Contributor
timestamp: December 12, 2018, 10:53:22 am
content: Quote from: Kilrah on December 12, 2018, 10:40:31 amOhhh ok. Can you then tell me how will the system know to use the VGA card? Basically I'm looking for an explanation of the process of initialization of the VGA card (a link is fine I just can't find it or I'm not looking for the right stuff :/)As far as I can tell the ISA 8 bit data bus is connected to the south bridge 8 bit data bus and the 16 bit address bus is connected to the south bridge one. I would assume that the way the system reads on-board BIOS is the same as the VGA BIOS (I can see address pins changing in value on the VGA BIOS chip as well as the data pins but nothing is happening). Again the problem is that I don't know if what I was able to get from the card was it's last breaths (aka it died on me) or did I break the ISA bus somehow. That's why I bought the POST card to see if that thing will work correctly when plugged in.

author: Rasz
author_rank: Super Contributor
timestamp: December 12, 2018, 02:34:25 pm
content: post card wont help you with fully testing ISA bus, it only decodes access to port 80h, and bios is not capable of detecting defects finer than "X not detected/error initializing x". That leaves full address decoding, memory r/w, dma, irqs. Its best to have a known working vga card, or even another system to compare and swap parts between.Link I gave you earlier has a ton of resources on 386 boot process.Quote from: JKKDev on December 12, 2018, 10:53:22 amISA VGA card always maps into the same address space (can only have one vga card in a system), so bios has no problem running its bios and accessing its memory.