Basic Tutorial of WD Self Test

Basic Tutorial of WD Self Test

This document comes from MRT Lab.

Hello, everyone! This tutorial is mainly about self-test function of MRT tool.
This document comes from MRT Lab. For more information, please visit MRT official website:

Let us review self-test. First of all, it is used to repair HDDs, not to recover data. After performing self-test, the HDD will lose the configuration information of various physical parameters. It may cause the former valid data area to become invalid, while the former invalid area may now be recognized as valid. The original data is now unreadable.

Let us have a brief discussion about the working principle of self-test.
First, there is no doubt that HDDs were manufactured in batches. The question is, in mass production, although the parts used in the same batch of HDDs are same, there may still be some deviation. As a result, the composed HDDs will surely differ from each other, for example, the position of disc in the cavity, the foothold of head etc. Therefore, the first objective of test is to adjust the differences of devices to the preset standard range and record them so that HDD can realize access to data. In addition to these, the division of tracks in HDDs is done after assembly.

From this we can know that, firstly, there should be the function of collecting hardware physical data in self-test process. Then calculate to advanced parameters (such as the allocation of heads, media, zones, tracks and SPT data of track etc.) so as to make upper firmware program available.

In conclusion:
To collect data of physical device, there must be certain requirements of hardware.
To calculate to physical parameters needed by firmware, there must be corresponding program code requirements requiring the ability to calculate and calibrate.
Through the above discussion and summary, we can see that many people often complain about unsuccessful self-test because of no idea of these two aspects: ① whether the hardware of self-test meets the standard; ② whether basic self-test firmware meets the standard.

Continue to discuss about hardware and software requirements:
① There is fault of PCB. The HDD cannot work properly.
② At least one main head is good.
③ Firmware associated with self-test is intact and can work properly.

For WD, the conditions for starting self-test successfully:
① SA can work properly.
② All modules associated with self-test (such as self-test code (C4, etc.), script (Module 28)) must be readable and writable with no data error (There are those who sell flash firmware used for self-test of various families and models online. Of course, you can also use the firmware of good HDD to make universal firmware for self-test).

Currently, self-test technique of WD has been very mature. As long as you put your heart to studying it, you can definitely use this tool of MRT to repair HDD by self-test.

Basic knowledge:
Module 28: self-test process module. Inside the module is actually a table with each entry representing a PST process message, which stipulates what PST should do, the sequence and what to do if error occurs etc. For confidentiality, HDD manufacturers generally clear Process 28 and write inappropriate process to it before the HDD leaving factory. When repairing, we should modify Module 28 to run PST, which concerns the success rate of repair. To make a self-test firmware that can be used, you must be familiar with Module 28. The most common practice is using a tool which can edit each entry of Module 28 in the form of interface. This can be done by MRT easily. How to use MRT to edit Module 28 will be introduced later.
Brief introduction of commonly used self-test code module (corresponding test ID in the interface):
B1: servo data test
C3: adjust track density
C4: head read and write parameters / cornice height adjustment
C8: adjust sector density
D1: scan defects and add them to LOG
D3: process the number of sectors
D4: test track defects
D5: test cluster, Block test
DD: gain test

Now, let us have a look at the way of starting self-test in MRT software.

As is shown in the above figure, in WD module of MRT software the latest version, there is a sub-menu of “self-test series tools” under the tool menu, which contains all operations related to self-test. There may be only three menus at the first glance, but we can already perform all kinds of operations about self-test with them.
Some time ago, ARCO was very hot online. Then let us start from it.
The so-called “online ARCO” is to load specific self-test code modules through special commands and parameters from the disc to HDD memory, and then execute the code of this self-test code module. Therefore, these corresponding code modules must be intact and matched.
Click “Tools -> Self-test series tools -> Online ARCO”, interface of online ARCO start-up settings will appear. Each self-test process has its specific function. On the left of this dialog box, we listed various ARCO processes collected by MRT Lab. Their functions are written after name of the process in brief to make it more convenient for users to use.
If you want to execute a process, you can select it, and then click “->” button to add it to the list of “ARCO Process to be executed” on the right.
After clicking “->”, the process will not be added to the list on the right immediately. We need to adjust and confirm some parameters to make the success rate of test higher. Usually the parameters needed to be paid attention are:

① Change the “execution mode”, there will be different results after the completion of the same process,;
② There are three items in “Other Parameters”. Experienced users can see that the latter two items represent “head” and “media” parameters accordingly. In general, the defaults of these two parameters are correct. Of course, if you suspect that it may be incorrect, you can manually change them. As for the parameter in edit box before “head”, we listed a few common values​​. It concerns the success rate of test (including success rate of starting and completion).

There listed logs need to be cleared on the rightmost of the interface. The cleaness of log module is also an important parameter concerning success rate of self-test. So we listed the logs need to be cleared in self-test.
On the bottom of the interface is the read mode of test module. Self-test is the process of HDD performing some special programs. We need acquire relevant data and load them to HDD memory in a special way, and then make the HDD work on the basis of these data.

After adding the processes need to be performed, select the logs need to be cleared and choose the read mode the firmware data. Click OK, then ARCO self-test can begin.

Additionally, we have to mention that in the list of ARCO processes need to be performed, we can also reorder the entries or re-edit the parameters according to the requirements.

PST test process:
It generally edits Module 28, and then starts self-test directly. Editing Module 28 is to define the processes need to be performed and then the parameters required in certain process (such as the module of its code – which is the test ID).

Then let us have a look at how to edit self-test process in MRT.
[Figure: Menu]

【Figure:Opened Picture】
As is shown above, select “Tools -> Self-test series tools -> Offline self-test”. After opening, we can see the form of this interface similar to modules list, while here listed test entry information of Module 28. We can perform edit, deletion, adding and other operations to these entries. We can even create a new empty 28 script module, save the modified scripts into file and load edited template of script module for using.
[Figure: Green Arrow]

Green arrows indicate ongoing self-test processes.
In the first item of right-click menu, you can specify a particular process to be executed now.
[Figure: single process editor]

Single process editor is used to fill in the parameters required by individual process. This editor provides two edit modes, of which HEX editing mode can only be used when the user is quite familiar with data structure of individual process.
Parameter Description:
Test ID — the ID of code module required by current process;
Function ID — with different function IDs selected for the same test ID, the results of execution will slightly different.
Script parameters – parameters of current process.
Next — next process to be performed.
Error, fatal error — which process to perform when error of certain degree occurs.

Clear all entries: all the data of processes cleared to 0;
Load script from file: you can load prepared Module 28 file, and then execute self-test.
[Figure: Start Self-test]

① Restart or begin from the process specified by the green arrow.
② Select the logs need to be cleared.
③ Whether to use an external power supply. If selected, there will remind you to connect the HDD with off-card power supply.
Above is all the content of this section. For more information, please visit