Question HDD doesn't spin with original PCB, but does with replacement - but can't be recognised. Flash ROM?

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.
Sorry man, I feel dumb trying to get my head around this.

Looking at the manual, it talks about "hddsupertool", but in reality the "HDDSuperTool" executable on the desktop appears to be running "hddsuperclone" so I think the docs might be outdated?

View: https://imgur.com/vPh1nbi


I'm struggling to reference those custom wd_royl_read/write_rom scripts you sent through, they're sitting in my downloads folder on this live version of XUbuntu, but I don't know what working directory I'm in, and referencing them with `~/Downloads/...` doesn't seem to work.

Giving a random file name to dump the ROM seems to succeed though, but I have no idea where that file goes.

View: https://imgur.com/BFlpnl7


Basically I'm just incredibly confused and frustrated and not feeling confident enough to execute the write script, especially after seeing that it can brick the drive if I do something like mix up decimal and hex codes.

Is there any chance you could give me a step by step to remove any guess work? All good if not, you've done so much already. I feel like this might be coming to a natural end due to my limited understanding.
 
Thanks. I see that it creates folders/files based on the serial number and make/model of the drive, which can't be obtained in my case - which explains why I'm not seeing anything.

Not sure how I can write the ROM knowing that, but I'll try my best.
 
Yes, I expected that the write script would bomb went it tried to execute an Identify Device command. The solution is to edit the script (I'll do that for you). But first, is the ROM dump file identical to "flash.bin", as retrieved by WDMarvel? If so, then we can progress.
 
Hey, one other thing I should mention - I just ran the out of the box `wd_royl_write_rom` that came with HDDSuperClone/Tool. Just thought I'd mention that, in case there's a certain edited version I should be running instead.

Also I ran a binary diff to compare the files.

The ROM dump (the one uploaded to Mega by me, under `PZU/Flash.bin`) is quite different than the one you provided at `WD6400AAKS/rom.bin`.

Here are the results of running the Windows fc command: Mega Link

Hopefully we can still progress somehow!
 
A HDD stores its firmware in two places. The first part is in the ROM on your PCB. The remaining parts are stored in a reserved area of the platters (System Area, SA). WDMarvel was able to retrieve all the firmware modules from the SA and the ROM. WDMarvel's ROM dump was written to flash.bin. Obviously, flash.bin is the ROM from your donor PCB whereas the SA modules are from the patient.

Using my software, I was able to regenerate your patient ROM (ROM.bin) from various SA modules. It is this regenerated ROM that you are now trying to write to your donor PCB. Clearly, flash.bin (donor) and ROM.bin (patient) will be different, as you have confirmed.

I am now trying to get you to read the same donor ROM using HDDSuperTool. If the ROM read by HDDSuperTool matches flash.bin (WDMarvel), then this will confirm that you are doing things correctly. Once we have confirmed that you have correctly reached this point, we can proceed to edit the HDDSuperTool write_ROM script and write my regenerated ROM to your donor PCB.
 
Last edited:
Ah thank you, that makes a lot of sense now that you've described the 2 different areas of the drive. I was the differences between the .bin's and thought "oh no, something has gone wrong" but doesn't sound like it.

Cool! So you have the ROM for the dead/patient HDD, but you're just trying to get the ROM for the donor PCB so they are compatible to run the `wd_royl_write_rom` script, is that correct?

Thank you much, will keep an eye on this thread for when you upload any files that I can try. Cheers.
 
Oh I see, do you know where it actually dumps it too, out of the box? It asks for a file name but I can't find it anywhere on the Linux Live filesystem. The manual doesn't help much either, I've tried everything I can including absolute paths to the Downloads folder, etc.

It also says "success", but it also says ROM size is 0 so I'm not sure if it's even dumping anything.
 
Yup, I'm using a USB drive. I'm able to download to my downloads folder, for example. Not quite sure why I'm not able to output anything from HDDSuperTool.
 
If you specify a file name when HDDSuperTool prompts you, it should be written to the current directory, which I believe would be "home\hddsuperclone\hddscripts\" or "\hddsuperclone\hddscripts".

If you are using Windows to navigate your USB Linux FS, then you may need a third party tool such as Linux Reader for Windows (freeware), or you could use DMDE.

If you cannot dump the ROM from this drive, then you may need to purchase a fully working donor and reprogram the ROM on its PCB.
 
Cheers, I'll try again. Will also see if it's written to the live USB for some reason.

If you cannot dump the ROM from this drive, then you may need to purchase a fully working donor and reprogram the ROM on its PCB.
Crikey, hope not! That's going to be tricky to find these days. Good to know though, thanks.
 
Hi again.

I booted up Linux live again, and unfortunately there's no file writing to the system in any of those directories, or any absolute paths that I specify either. Not sure what's going on there.

I have grabbed the WDR Demo and I'm currently looking at this screen:

View: https://imgur.com/1bkU9sQ


I think I'm ready, but I'll have get you to instruct me with WDR :) Thanks in advance.
 
Be aware that you may need to select IDE compatibility mode in your BIOS setup.

Select Options -> Port and choose the port that your drive is on.​
Select HDD -> WD-ROYL.​
Select the IC icon ("Flash Operations").​
Click Read.​

The ROM dump should then be written to the Work folder under the root of your OS drive.

Experiment with your working drive until you get it right.
 
> Be aware that you may need to select IDE compatibility mode in your BIOS setup.
Cheers, CSM mode enabled.

> Select Options -> Port and choose the port that your drive is on.
As in SATA port? Just confirming this is the same port that is used using HDDSuperTool via the terminal in Linux? Could you tell me where to input this within the port window? I could guess but I'm reluctant to make any misadventures here.

View: https://imgur.com/t6r4gOI
 
> Select Options -> Port and choose the port that your drive is on.

Ohh, I read this as "find the port your drive is on and set it manually". Are you saying I should literally just select the "Secondary" option?