[SOLVED] HDD repair help needed

Page 3 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.

mirdza83

Honorable
May 12, 2019
73
0
10,530
I'm trying to fix a dead hard drive (WD2500AAJS) that won't spin up.
I checked the PCB for shorts and i couldn't find any also the board doesn't have any physical damage. So i suspected that maybe the motor is dead.
I bought another drive with the same model number and identical PCB to perform a platter swap. I couldn't swap the bios/firmware because it's incorporated in the IC.
I moved the plater and PCB from my old drive to the new one but the drive still won't spin up.
At this point, I'm pretty sure that the old PCB is not working properly.
I checked the voltages across the board of both PCB's and they are identical.
I suspect that maybe the spindle controller is bad but I'm not sure.

Any help, please..

View: https://imgur.com/a/LCVtunK
 
Last edited:
Solution
Maybe I can copy the original ROM from patient PCB and write it on the donor PCB or move the platter in patient housing with the donor PCB and patient original ROM

That's sad news. Clicking and spinning down is usually a symptom of a failure to read the servo information. Like you say, you have nothing to lose by trying the original, unmodified patient ROM. If that fails, you could try the unmodified donor ROM, but I don't know how it will go.
Maybe it will be quicker if you connect to my PC via teamviewer. If you have the time of course and if its not to much to ask. 🙄

PM2 Is removed all the time. I had it on only when i tested PCB
 
Excellent work! I have confirmed that your ROM is good.

Here is the analysis and the component parts:

http://www.users.on.net/~fzabkar/HDD/WD2500AAJS/Flash_00.7z

This is my command line tool which I used for ROM checking:

http://www.users.on.net/~fzabkar/FreeBasic_W32/WD/wdROMv17.exe
http://www.users.on.net/~fzabkar/FreeBasic_W32/WD/wdROMv17.bas

Now we need to program the donor PCB with your Flash.bin file.

You can use WDR Demo for this. Unfortunately you may need an earlier 32-bit version of Windows.

http://www.hddoracle.com/viewtopic.php?f=86&t=1127

Alternatively, if you are comfortable with Linux, there is a HDDSuperTool script that can do this. Let me know if this is what you prefer.

BTW, I'm not comfortable with Team Viewer or any remote connections. Sorry.
 
BTW, I'm not comfortable with Team Viewer or any remote connections. Sorry.
No problem man 😉.

I can't open any link you send me except the reading and writing ROM guide.

I used ubuntu in the past but I am not that comfortable in linux. If you think that linux is better I will install it tomorrow. I think I have a spare HDD for that.
 
If you do decide to use HDDSuperTool, it is included with HDDSuperClone. The author of HDDSuperClone has produced a bootable Live CD (or live USB), so you don't need to install it on a Linux box.
Great! Will try that then.
Thank you very much fzabkar, I will get back to you with the results.
 
"I cant use the new PCB with the HDD that has the old platter inside (the new one) without reprogramming the firmware or I will lose all the data for sure."

That is not true. You can use it. In fact it might even work better than your original PCB because the calibration data stored in the donor ROM match the donor heads. If you reprogram the donor PCB, then the platter should be returned to the patient drive.

That said, I would be very concerned about contaminants. I have an idea to purge the drive, but you would need to disconnect the voice coil by masking off the pads on the PCB. Hopefully the drive will then spin up and remain spinning, while the heads remain on the loading ramp. This will blow any dust off the platter.
 
My idea was replacing the motor driver (what you call “SMOOTH chip”) in the old pcb with the one from the new donor board. Data stays intact for sure as the driver is only an interface for the MCU. The other way around (moving old MCU to the new board) is just more complicated soldering but is sure doable too. To blow the dust off w/o touching the heads it would be enough to spin up the motor but why would there be dust? Was it ever unsealed?
 
My idea was replacing the motor driver (what you call “SMOOTH chip”) in the old pcb with the one from the new donor board.
There is a problem with that :). That would be my first time to desolder and solder a chip with so many legs. I am sure I could do it but we weren't sure the driver was the problem. We did some tests, I dont know if you read all the posts.
To blow the dust off w/o touching the heads it would be enough to spin up the motor but why would there be dust? Was it ever unsealed?
Read the first post... I made a mistake by moving the platter from old to new drive along with the old PCB because I was sure the motor was bad on the old HDD. So this seemed to me was an easy fix after watching many videos on YT people doing just that.
That was a mistake I admit it and now I just hope that everything will work after this much effort 😕


That is not true. You can use it. In fact it might even work better than your original PCB because the calibration data stored in the donor ROM match the donor heads. If you reprogram the donor PCB, then the platter should be returned to the patient drive.
After reading some articles on the internet I understand that the firmware doesn't contain only calibration data but also data about the platter itself. The data on the platter, number of bad sectors etc... So by using the PCB with a completely different ROM could cause the data on the platter to become permanently inaccessible.

Right now the platter from my old(patient) drive is in the donor body :). Are you suggesting that i can use the donor PCB without reprogramming the ROM and everything should work fine?

That said, I would be very concerned about contaminants. I have an idea to purge the drive, but you would need to disconnect the voice coil by masking off the pads on the PCB. Hopefully the drive will then spin up and remain spinning, while the heads remain on the loading ramp. This will blow any dust off the platter.
That is a great idea! I was hoping that when i turn on the drive the heads don't move immediately and the motor will have enough time to blow off the dust. But if we can prevent the heads to move at all then that is even better.

So the main question is..
If the ROM contains only calibration data about the heads and has nothing to do with the platter then I could just use donor PCB on donor body without reprogramming it. (the platter form the patient is in the donors body at the moment). Or, should i return the platter from donor to patient and reprogram the donor PCB?


"Why is some firmware on PCB unique and practically makes the hard disk unrecoverable if it happens the original board is missed or lost? That's because some drives fail to start if the tiny piece of microcode on PCB is not matched with the identical data on the spinning hard disk inside the drive. "
https://www.datalab247.com/articles/article4.html

"Nowadays, a hard drive will relocate sectors with degrading read times, to extend the life. This automatic relocation of slow sectors alters the firmware. Firmware also controls the calibration and track information - meaning that the firmware is very likely unique to your drive. "
http://www.datarecoveryspecialists.co.uk/case-studies/changing-pcbs
 
Last edited:
The only "adaptive" data relating to bad sectors is in firmware module 0x30. That is the translator for the firmware area on the platter (System Area, SA). It is nearly always empty, so the donor's module 0x30 would be the same as the patient's. We can check this if you dump the donor ROM and upload it. The defect lists for the user area are stored in the SA, not in ROM.

"I was hoping that when i turn on the drive the heads don't move immediately ..."

When you spun up the platter-less patient with your donor PCB, did the heads move off the ramp? If so, then I expect that they would have stuck together and then destroyed themselves when they attempted to return to the ramp. Is that what happened?

"... some drives fail to start if the tiny piece of microcode on PCB is not matched with the identical data on the spinning hard disk inside the drive. "

The ROM code must match the overlay code in the SA. If the code doesn't match, the drive will still spin up (because it needs to read the overlay), but it won't come ready, or it will come ready but won't allow access to the user data. No harm will be done in this case.

"Nowadays, a hard drive will relocate sectors with degrading read times, to extend the life. This automatic relocation of slow sectors alters the firmware. Firmware also controls the calibration and track information - meaning that the firmware is very likely unique to your drive. "

There is a firmware module called the G-List (Grown Defect List). It stores a list of the bad sectors in the SA, not the ROM. The calibration data that are required to access the SA are stored in ROM. The calibration data that are required to access the user area are stored in the SA.

There are primarily 3 sets of calibration data in the ROM. These relate to the heads, preamp (located on the headstack), and read channel (located inside the MCU on the PCB). I expect that the magnetic properties of the platter would influence the calibration data for the preamp and read channel. Module 0x47 contains these data.

When spinning up the donor drive with patient platter and donor PCB, place a business card between the PCB and the HDA connector. This will isolate the PCB from the headstack and prevent the heads from moving off the ramp. It may be that the MCU may not spin up the motor if it doesn't find a preamp, but we still have another option.
 
When you spun up the platter-less patient with your donor PCB, did the heads move off the ramp? If so, then I expect that they would have stuck together and then destroyed themselves when they attempted to return to the ramp. Is that what happened?
Another mistake I made....😕. I opened the patient body to check that. The heads are on the ramp, nothing looks unusual. They are between the orange plastic/rubber thing. not touching each other. They look exactly the same as the last time I saw them. Also, the first time I powered on the drive I didn't hear any noises apart from noise from motor spinning up.
I noticed some dust particles inside the case, under the (where it should be a) platter.

Donor ROM
https://drive.google.com/file/d/1J6lEq5hXjB_FGZbanx-vvjoX4pLNukme/view?usp=sharing

When spinning up the donor drive with patient platter and donor PCB, place a business card between the PCB and the HDA connector.
I placed double insulating tape on J1 pads so I could screw the screws properly. HDA connector didn't penetrate the tape but the drive didn't spin up, unfortunately (I placed my ear on the housing).
Maybe I could try masking specific pads? Just a thought...
 
Last edited:
I'm not sure, but it appears that the patient may have 1 defect in the SA. I have never seen this before, so I don't know what will happen if we use the donor ROM without modifying it. Also, I don't like the idea of returning the platter to the patient drive, since I am unsure about the state of the heads. The tiny sliders at the end of the arm can be ripped off if they come into contact with each other (due to stiction between micro-polished surfaces).

Module 0x30 in patient ROM:

Code:
Offset(h) 00       04       08       0C

00000000  524F594C 01001E00 30000200 56B3EB4A  ROYL....0...V³ëJ
00000010  30303136 30303030 08143100 00000000  00160000..1.....
00000020  34000000 3C000000 01000000 01000000  4...<...........
00000030  00000000 00010101 01010101 01000000  ................
00000040  4B860600 00000000 00000000 00000000  K†..............
Module 0x30 in donor ROM:

Code:
Offset(h) 00       04       08       0C

00000000  524F594C 01001E00 30000200 A43BF44C  ROYL....0...¤;ôL
00000010  30303136 30303030 08143100 00000000  00160000..1.....
00000020  34000000 3C000000 00000000 01000000  4...<...........
00000030  00000000 00000000 00000000 00000000  ................
00000040  00000000 00000000 00000000 00000000  ................

I think there will be less risk if I modify the donor ROM to make it compatible with your platter, and leave the platter in the donor drive. You will then need to program the donor ROM.

This is my analysis of your unmodified donor ROM:

http://www.users.on.net/~fzabkar/HDD/WD2500AAJS/Flash_01.7z

These are the voice coil contacts:

http://www.users.on.net/~fzabkar/HDD/WD2500AAJS/VCM-pads.jpg

I suggest you place the donor platter into your patient drive, mask off the VCM pads, and then try to spin up the drive with your donor PCB. Hopefully the drive will remain spinning. You don't need to replace the cover for this test, but you should never operate a drive without its cover if you care about it. That's because the air turbulence creates an air bearing on which the heads fly. If this test works, then we can do it on the donor when we are ready.

In the meantime I will edit your ROM.
 
Last edited:
I suggest you place the donor platter into your patient drive
Right now the donor platter is under my coffee :). Just kidding.. its on the shelf and its been there for three days. It is not damaged physically but it Is dirty. Can I clean it and return in the patient drive just for the test?