You’ve got mail!

Two days ago, a small package arrived on my doorstep after 15 day’s worth of travel. Straight from China, 5 pc. of the L7251 spindle/VCM driver (remember the bad harddrive?), sold by Shenzhen Drivestar, who have a very friendly and competent customer service. Thanks again! I figured replacing the chip was the best option, looking at the chances of success.

L7251Well what do you know. After soldering in one of these, the little sucker spins again. It is not accessible, yet, but this is definately progress! Even the o’scope shows perfect waveforms at the motor terminals, but listening to the clicking and squeaking noises I’d say something is wrong with the heads.

After investigating a little further, I spotted the central problem: The drive has suffered a triple headcrash, meaning three of its trackheads have touched the disc surface prior to the fault and were literally ripped to shreds – but in the wrong direction! The head assembly was bent and got stuck near to the platter edges, *almost* in the standby rack. Something prevented it from getting there, as it should automatically move and lock there as soon as the disc loses power. My best guess is that the disc stack rotated against its normal rotation direction, which can happen if you carry the drive.

To explain: Normally, the heads would create their own air cushion using the movement of the platters and “float” over the surfaces during operation. While the platters are motionless, that cushion is not present and therefore there is friction between the surface and heads – and any motion of the platters is also directed at the heads. For that reason, the heads have to be parked before the disc slows down too far. Usually, some kind of mechanical tensioner handles that part. It also ensures that the head assembly never moves freely while the drive is stopped.

The resulting braking force during spinup probably caused the controller to fail, and after repairing that part, the disk spun and pushed the head out of the platter spindle.

To sum it up, it is very likely that the surface of the lower platters is severely damaged, and even if not – the only way to undo this is to mount a new head assembly. I will look into this a little further, but for the moment that’s just that until I get around to building myself a small “clean room box” for repairs on discs and displays.

Harddisk troubles

Somehow I managed to get a little work done last night (2AM), so here’s the story about the harddrive:

Some time ago, a friend dropped a dead 1TB harddisk on my workbench. It was installed in an brand new external disk enclosure and had signed off as soon as it was loaded with data. Eeek!

His first attempt was to write to the manufacturer of the drive and ask for a replacement PCB – some companies do it and in most cases the PCBs can be simply exchanged if the revision numbers are identical (they MUST be if you don’t want to risk even more data loss). In this case, they only offered him to exchange his drive for a new one. That would have been fine except for the data being lost.

So, I offered to take a look at the device. After plugging it in for the first time, I immediately noticed that the BIOS could not recognize the disk at all – it even hung during disk ID-ing, which is a strong sign of the drive controller not grasping what the heck is going on anymore. Meanwhile, the disk itself made beeping and whirring noises, followed by sharp clicks. As I could not hear the distinct noise of the spinning discs, I figured the spindle motor controller was a nice place to start off.

Current harddrive PCBs (WD10EACS in this case) consist  of two main function groups which are fully integrated into generic ICs or ASICs, meaning application specific integrated circuits.

PCB of WD10EACS
WD10EACS circuit board

The ICs in the red area are the buffer and the main controller. This chip contains the whole intelligence of the disk. SMART programs and everything regarding data organization or transfer runs in here. The buffer IC temporarily stores the data being written/read while it has not been processed by the head mechanism or sent to the pc. I also marked some other important stuff on the PCB along the way.

The green area is what makes your disk spin. The spindle/VCM driver IC (STM SMOOTH L7251 3.1) generates a three phase motor drive signal for the platter spindle and moves the arm according to the main controller’s wishes. You can find a datasheet on the web, but it is for the predecessor L7250, which is similar in function but not in its pinout.

Now, what most people don’t realize is, how complicated harddrives are. They have full onboard diagnostic programs (which are VERY poorly documented of course, and these well-protected secrets are what makes data rescue companies so special) and even though they look simple on both outside and inside, they have to be precisely calibrated for optimal performance. Hence the need for exactly matching PCBs. But, since this case has all indications of hardware failure, no diagnostic program will fix the damage.

Motor drive testing in this case is best done with the drive board unscrewed from the disk. This will eventually increase the “failed start” SMART counters in the disk’s long-term memory, but whatever – it’s busted anyway. The reason for unhooking the board is that the motor coils, if not defective, present unknown resistances and inductances between the drive outputs and make your measurement extremely difficult. After connecting the four probes of my digital scope to the spindle connector, I started sampling and plugged the board in…

Scope screenshot for HDD drive signals
Scope screenshot of motor phases

…and this is what happened. Excuse the poor contrast, I usually only use white backgrounds when printing, to save toner.

What you see is the main startup algorithm doing its job. The controller first tries to find out what position the rotor magnet in the spindle motor is in, so it can generate matching signals for rapid acceleration. It does that by applying voltage to the different coils in changing combinations, following a pre-programmed pattern. After measuring the current rise-time for each combination, it can calculate the magnetic influences in the motor coils and from that the actual motor position. To explain the different traces, yellow blue and green are the actual three phases and the magenta-colored trace shows the center tap which is not present right now, since the motor is not connected. The phases are switched against the rail voltages by MOSFET half-bridges integrated into the IC.

I marked the important part in the graph – the yellow phase is missing something on the top of its waveform – there should be short high-pulses like on the other two. The controller notices that and tried to restart the process at the red mark. After failing twice, it decides to try and spin the disk some. This is called coarse drive mode, the visible pulsing is not meant to spin the motor to a certain frequency but rather to just turn it in case the motor is “stuck” in a non-discernible state (even though that should never happen). This part of the signal is responsible for the whirring noise as the motor actually moves, but poorly so because of the missing high level on one phase.

The next step will be to either find an exchange for the driver chip since I can’t find a matching PCB, or find  a way to replace the internal MOSFET bridge of the drive with an external one. If anyone knows where to get the actual L7251 3.1 datasheet, I’d be grateful for a hint.