Repairning Seagate 7200.11 Drive on a Ubuntu 10.04 Computer - a Success Story!

Repairning Seagate 7200.11 Drive on a Ubuntu 10.04 Computer – a Success Story!

SATA drive Serial TTL interface socket

SATA drive Serial TTL interface socket

When your friends and family are asking you: “So, how did you spend your weekend?” , wouldn’t you want to be able to hold your head up and proudly say: “I had successfully un-bricked my Seagate 7200.11 hard drive, what did you do?”.

I’ve found myself in a strong need of a SATA drive and the only ones I had on hand were two Seagate ST31000340AS 1000GBytes drives of the Barracuda 7200.11 clan that had silently died in my RAID array over the course of last year. I bought the replacements but it looked quite odd that the original ones died before reaching 18 months of age and I kept them safely in a box until I had time (and strong enough need) to try and figure out what’s wrong with them.

It turns out, I was not the only one having problems with these drives (far from it) and many people have successfully repaired them and posted enough detail on the Net for someone else to repeat the procedure. This post is not meant to be a detailed description of the procedure and the underlying issues with the drive’s firmware – there are many places where you can read about it and I’ll provide links below – this post describes just one way of doing it. I also wanted to illustrate that, although most instructions call for the use of a Serial-to-TTL adapter, there are other devices that can take its place. Also, most of instructions I’ve seen are based on Windows software and I thought Linux users like myself could use some more references

A disclaimer is in order here: if you bought your drive in retail and have no problem with sending it back to Seagate and waiting for them to fix the drive, they are happy to fix it for you provided by you are willing to jump through some (usual amount of) hoops. There is a thread at Seagate forums describing the procedure. Also, this fix only applies to drives stuck in BSY mode ( Seagate-talk for “busy”). It manifests itself in drive not being found in BIOS at all. I imagine there could be any number of issues with a HD – some people reported these drives a recognized in BIOS but with zero size – this fix will not work on those, only the ones bricked because of the BSY bug in the firmware.

The fix is based on communicating with the drive’s controller via the auxiliary serial port on the back. This is not a fully-featured RS-232 serial interface (no need for it in an internal device like the hard drive) and it operates on TTL signal level. However, it uses the same protocol that RS-232 does and therefore you can “talk” to it using the serial port terminal applications such as GTKTerm, cutecom, minicom and others (or “HyperTerminal” or putty if you’re on Windows). If you are running Ubuntu and don’t have a serial port terminal application installed, now is the time to type:

sudo apt-get install gtkterm

in your terminal.

Seagate 7200.11 Serial TTL connector pin layout

Seagate 7200.11 Serial TTL connector pin layout

Cable I used to hook up Seagate 7200.11 Serial TTL interface

Cable I used to hook up Seagate 7200.11 Serial TTL interface

The connector has pins on 2mm centers, not the more common 0.1inch (2.54mm), so it’s slightly smaller and it really is hard to find a matching female part. I got lucky and found some old CD-ROM cable from a Compaq PC in my odds and ends bin that looked like it could work.
The cable had the right amount of pins (3) and the right distance between pins in the smaller connector, but that was it. Everything else was wrong: the slot positions the pins took as well as the external size of the small connector was all wrong. After half an hour of toiling with an Exacto knife I was able to remove the contacts, rearrange them in the order needed as well as trim the body of the connector to just the right size to insert into the socket on the drive. I wish I had a more elegant solution (like the exact matching female end) but this had to do for expediency.

The USB-to-LCD device I've converted to USB-to-TTL Serial

The USB-to-LCD device I've converted to USB-to-TTL Serial

I did not have a specialized Serial-to-TTL adapter and also happened that I could not locate a USB-Serial converter that could be further converted into a suitable TTL adapter and so I had to look around for any USB-attached device that looked like it could do the job. The eureka moment came when I looked at a USB-powered LCD display I had laying around – a rather failed project because of the small size of the LCD display (16×2) that made it rather inconvenient to use for displaying songs playing in Rhythmbox (too much scrolling). The USB control board and the LCD display came from a Chinese company called “SURE Electronics”. Anyways, the device worked as intended, I just needed a larger display and so I switched to a different USB-LCD display, this time 20×2, and so the Sure Electronics display was just laying around doing nothing useful.

USB-LCD Device ports

USB-LCD Device ports

Flipping the control board around reveals a nicely labeled Serial TTL port that has no header soldered but appears to be connected to the Silicon Labs CP2102 RS232 serial adaptor IC. if you are using this or similar device, be careful and trace the connections from Tx and Rx pins – since this device was designed to only receive commands from PC and never send anything back, only the Tx circuit was completed (IC’s transmit labeled as Tx becomes the PIC’s receive so it’s actually a part of the device’s receiving circuit – the labeling could be confusing). The Rx circuit had two SMT resistors missing but in this application I saw no use for the resistors and simply shortened the pads with solder.
Now a small Linux-related digression. Upon plugging the device into a USB port the system immediately recognized it and assigned it to the /dev/ttyUSB0 device. GTKTerm also immediately saw the new device but the loopback test would not work! It took me an hour or so to figure out that, although the default usbserial Linux driver recognized the device, it actually needed the specialized cp210x driver to work properly.
The cp210x driver should be loaded before the device is plugged in or it won’t work. I only use this device occasionally and so I never cared to set this module up to load automatically but you can add it to /etc/modules if you use it often.
So, first run

lsmod | grep cp210x

if you don’t see cp210x mentioned in the output like this

BIGRIG:~$ lsmod | grep cp210x
cp210x                 13070  0
usbserial              39131  1 cp210x

then load it manually via

sudo modprobe cp210x

These are GTKTerm settings you should configure for talking to the hard drive:

GTKTerm Configuration Screen for Seagate Barracuda 7200.11 connection

GTKTerm Configuration Screen for Seagate Barracuda 7200.11 connection

Now that the interface part is ready, the hard drive needs to be prepared. You’ll need a Torx T6 driver to deal with the screws and approx. 1″ x 3″ piece of a cardstock (I used my business card from a previous job cut in half – nothing goes to waste here in the lab :) )

Undo all 6 screws holding the PCB to the drive body.

Seagate Barracuda 7200.11 drive preparation - screws removed

Seagate Barracuda 7200.11 drive preparation - screws removed

Remove the controller PCB

Seagate Barracuda 7200.11 fix preparation - PCB removed

Seagate Barracuda 7200.11 fix preparation - PCB removed

put the cardstock piece on the drive preventing the drive and the controller sides from coming in contact, then replace the PCB and tighten the top three screws (to hold the smaller motor connector firmly connected to the PCB)

Seagate Barracuda 7200.11 fix preparation - cardstock over contacts

Seagate Barracuda 7200.11 fix preparation - cardstock over contacts

This is how the drive looks like ready to be connected to. The bottom two screws are just positioned in place but not actually screwed in. The last screw is held in place with a piece of masking tape to ease the insertion later ( which will be done while the drive is live – so the fewer chances to drop a screw on a working HD the better)

Seagate Barracuda 7200.11 prepared for BSY fix

Seagate Barracuda 7200.11 prepared for BSY fix

Here is an unsightly picture of the entire rig assembled together and ready for application of the fix. The drive sits on top of a Mini-ITX case with a power supply I’m using to power the drive. Once fixed, it will be installed in there. The green croc cable is creating a common ground (bond, rather) between the GND connector on the USB adapter in the lower right corner and the metal of the Mini-ITX case. I’ve also been using the anti-static strap (yellow, below the drive) for just in case.

Seagate Barracuda 7200.11 hooked up and ready to be fixed

Seagate Barracuda 7200.11 hooked up and ready to be fixed

OK, so GTKTerm is up, USB-TTL adapter is powered via USB and recognized by the system, everything is hooked up and ready to go. Things that happen after that should happen in order, so I’ll begin an ordered list.

  1. Turn on the drive, watch for the sound of the plates spinning up. As soon as the drive has gone up to speed, hit
    Ctrl-Z
  2. From this point on things you type will be in bold. What you type is case sensitive!
    You should now see a command line prompt from the drive like this:

    F3 T>

    If you don’t see the prompt but the loopback test of the USB-to-TTL adapter worked fine (short Tx and Rx, connect to the adapter and start typing with local echo in “OFF”. If you see what you type – loopback test worked), you may need to swap Tx and Rx wires. In many cases the labels are not very clear about which transmit or receive do they mark – the network’s or the device’s, which goes in opposite direction.

    Let’s assume you got the prompt now.

  3. Now go into Access Level 2 by typing /2
    F3 T>/2[ENTER]
    F3 2>
  4. Wait 20-30 seconds before the next step
  5. Spin down the motor by typing Z
    F3 2>Z[ENTER]
    
    Spin Down Complete
    Elapsed Time 0.148msecs
    F3 2>

    If you see things like

    Invalid Diagnostic Command

    or

    LED:000000CC FAddr:0025DF67

    Then you haven’t waited long enough in the step #3. Simply power down the hard drive and start over. Until you remove the cardstock piece, starting over is easy – just power it down and restart from Step #1

  6. Once you see the “Spin Down Complete” confirmation, carefully slide the card stock from under the PCB, then replace and tighten all the three remaining screws. Remember that when you are doing it, the HD is live and you can short an unfortunate circuit if you drop a metal screw on it.
  7. Issue the Spin Up command by typing “U”:
    F3 2>U[ENTER]
    
    Spin Up Complete
    Elapsed Time 9.593 secs
    F3 2>

    Note that spin up takes longer than spin down, so give it time.

  8. Go to Control Level 1 by typing /1
    F3 2>/1[ENTER]
    F3 1>
  9. Create a new S.M.A.R.T. sector by typing N1:
    F3 1>N1[ENTER]
    F3 1>
  10. It’ll take a little while for the prompt to come back. When it does, power down the hard drive. Wait a few seconds (as is always recommended with electronics) and power it back on. Do the Ctrl-Z again and get the first prompt, then to partition regeneration (nothing gets deleted from the drive – not to worry)
    F3 T>m0,2,2,0,0,0,0,22[ENTER]
    Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-LEvel = 00, Max Certify Rewrite Retries = 0000
    
    user Partition Format  5% complete, Zone 00, Pass 00, LBA 00004339, ErrCode 00000080, Elapsed Time 0 mins 05 secs
    User Partition Format Successful -  Elapsed Time 0 mins 05 secs
    F3 T>

    Be sure to wait until you see the “Successful” confirmation

  11. Turn the drive off

Here is how the entire session looks like in GTKTerm:

Seagate Barracuda 7200.11 BSY Fix - GtkTerm successful session

Seagate Barracuda 7200.11 BSY Fix - GtkTerm successful session

You can now use your drive to back up the data from it.

WARNING!!!

Be sure to understand that the drive it not yet permanently fixed at this point even though it’s operational. The conditions that led to its breakdown in the first place are still there.  To permanently fix the issue you will now have to proceed to Seagate’s site, find the proper version of the  patched firmware and perform the update. The good news is: now that your drive is operational, you can actually perform the upgrade!

ACKNOWLEDGEMENTS

This repair would not be possible without the help of many Internet resources listed here:

  • Thank you Brad Garcia for the wonderful set of Barracuda fix instructions
  • Thank you Matthew Inkson of iRecon.net for the first useful reference on Barracuda fix I came across and for introducing me to a new word: “unbricking”
  • Thank you good guys of MSFN Forums for the insanely useful (and equally  long) thread about all aspects of the Barracuda issue (frankly, more detailed than I could ever hope to understand or ever retain in my head)
  • And last but not least: thank you good engineers at Seagate for not cleaning all the bugs before releasing the product line (I know, competition pressure and all)  but then allowing great people at your forums to help others to fix the issue.

16 Responses to “Repairning Seagate 7200.11 Drive on a Ubuntu 10.04 Computer – a Success Story!”

  • Excellent work! Compared to my method of using a DKU-5 USB cable with Win 7, this is hardcore.

    • Thank you for stopping by, Mathew!
      I was just trying to make do with what was at hand. Once I learned (from your blog) that there is a fix, I could not wait for a proper USB-TTL adapter to come in. Funny thing though: a year later I still don’t have a dedicated USB-TTL device. Some temporary measures have a way of becoming permanent :)
      Next time in a pinch I may resort to taking a TTL output from an Arduino that’s not a part of some other project. I also have a drawer-full of mini 1.5″ LCD key chain picture frames. I bet every one of those has a USB-TTL onboard as well. Once you start looking, these USB-TTL interfaces appear in all sorts of other seemingly unrelated electronic devices.

      Cheers!

  • Hernan:

    It incredibly worked like a charm!!! I followed step by step and got my ST31000340AS unbricked and ready to update from SD15 to SD1A firmware. The only difference in my procedure was cutting a guide in the cardstock which let me screw better the pcb still allowing the paper card to slide smoothly and straight not being necessary any masking tape at all because the screws were a bit loose (but only a bit) and used a Nokia CA-42 cable as shown in http://www.youtube.com/watch?v=29FztWJVxbM
    Thank you very much!!! You have saved my 100% healthy hdd!!!

  • salim:

    i need driver for nokia ca-42 cable,

    or any supplier address for original cable with driver in manchester UK,

    thanks

    • Not sure about the cable to be honest but I think you can broad your search by looking for similar cables on places like eBay. I’ve seen part numbers like DKU5B or DKU-5B mentioned as “clones” for the Nokia CA-42 cables. Maybe it will be easier to find a DKU5B. From what I can tell, it’s based on the same chip that the device I describe here – the PL2303 chip. So if you were looking for Linux drivers, it’s in this post. If you’re looking for Windows, I was able to find this Nokia CA-42 Windows driver on the Net. I have neither a Windows machine nor a Nokia cable for that matter but give it a try, other people say it worked.
      Thanks for stopping by!

  • Alana:

    I know this is a stretch, but I’m wondering if anyone in or near MN has been successful with this fix? I’m really needing to try it on my bricked drive to recover some data, but am not confident enough in my skills to try it on my own. Anyone?

    • Well, I’m in PA, so not much help here :) but you may still want to give it a try. Before you can do any real damage, you can play with it all the way up to the Step 2 – that’s where you see the F3 T> prompt. And, honestly, once you got there and saw the prompt, you’re almost there anyway. It requires no special skills, really, even though some equipment, such as a power supply you can hook the drive up to, could be useful. And the USB-TTL adapter of course, but, like I said in the post, you may already have one disguised as a device of some sort that attaches to USB.

      You may want to post a request for help in our Electronics Repair forum in case someone from MN may be surfing by…

  • salim:

    my hdd is showing problems

    MODEL : ST3750330NS
    CAPACITY : 0MB

    visiting card inserted motor contacts disable

    F3 T> ^A

    Controller FW Rev: 12061642, CustomerRel: SN04, Changelist: 00052376, ProdType:
    MS01.SDN1, Date: 12/06/2007, Time: 164517, UserId: 00011250
    Servo FW Rev: B0FA
    RAP Format Rev: 0092, Contents Rev: 15 05 00 08

    F3 2>Z

    Spin Down Complete
    Elapsed Time 0.149 msecs

    F3 2>/2

    F3 2>U

    Error 1009 DETSEC 00006008
    Spin Error
    Elapsed Time 29.501 secs
    R/W Status 2 R/W Error 84150180
    F3 2>m0,2,2,,,,,22

    Unable to load Diag Overlay

    F3 2>/1

    F3 1>N1

    Unable to load Diag Overlay

    F3 1>/T

    F3 T>i4,1,22

    Unable to load Diag Overlay

    F3 T>

    need adivce for terminal command,
    this error is repaiable or not,

    thanks

    • Thanks for stopping by, Salim.
      I honestly don’t think the BSY bug error, which is what this method is intended to fix, is the source of your problems. The “Spin Error” message that you get after issuing the “U” command appears to suggest that there’s a problem with the motor control circuitry. Maybe the disks cannot achieve the RPMs needed for proper operation? Do you hear the disks spin at all?

      Anyway, the error messages you are seeing are not the ones you’d see in case of a BSY bug error, so the method described in this posts is not likely to help. However, you can do further search for the diagnostic output you get like

      Error 1009 DETSEC 00006008
      R/W Status 2
      Error 84150180

      and maybe you can find explanation of what these mean and that will point you to the right direction.

      Good luck!

  • salim:

    to all experts

    please say few words about terminal command TX and T8,
    where/how to use these commands,

    PLEASE
    PLEASE
    PLEASE

  • [...] the USB connectivity. You would have to provide an USB-TTL adapter, not unlike those used for Seagate HDD repairs. Nokia CA-42 is one of the most often cited and cheapest devices like that and similar device go [...]

  • salim:

    if some one like to say few words about this command,
    what we can get done by this command

    Level T ‘W’: Rev 0011.0000, Overlay, SaveAdaptivesToFlash, W[Seg],,22

  • Richard:

    Thanks for this list of instructions. It worked perfectly. I had followed other sites but no joy, either I was luck this time, or more likely waiting for 30 seconds between commands (and spin up and down) makes the difference.

  • Kleo:

    I ‘ve repeated all steps as described

    but when I issue the N1 command I always get a LED:000000.. Fadddr….. etc error

    Please help !!!

Leave a Reply

Or use the Forums ! If your comment is a question, please consider posting it to a matching section of our Electronics Forums. The forums allow for a more natural conversation flow, especially if multiple replies are required. Additionally, you'll be able to style your writing (bold font, italics etc.) and post images which can help with a good answer.

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Tools

Coming soon ...

Recent Comments
  • admin: Thank you very much for sharing, Rob!
  • Rob: eLABZ, I had the same issue in Ubuntu 14.04. I found I had to make a few small adjustments to the above approach...
  • Mark: It’s kinda like an internal problem on the circuitry sir. Have done series of tests to check if the...
  • admin: Hard to tell what’s going on with your LCD – probably hasn’t been initiated or some kind of...
  • Mark: Sorry for the late reply of you’re comment too sir. Been busied for a while troubleshooting our project.
  • Mark: Yeah sir. Anyway, We will just have to reconsider the theory of those motors again because it would be asked...
  • Mark Needham: Hey mirceboy, I am using a toggle switch, SPDT center off. I will manually start/stop, or a micro...
  • Jeff R: Can you please give me some details about how to reformat the code from milliseconds to microseconds so I can...
  • admin: You would have to reformat the code to start using microseconds instead of milliseconds for the time...
  • Jeff R: Thanks for posting, this was exactly what I was looking for. I’m using the Sparkfun SM-42BYG011-25...
Meta