A quick how-to to fix a USB drive that has had physical damage making the device unreadable.
Gather the following:
- A soldering iron
- Multiple short lengths of single core wire
- Nail polish remover
- A computer with storage that is larger than the broken USB
- The laptop in this example is running Ubuntu, but any OS will do.
- Multimeter*
- A breadboard*
- Soldering flux*
* Useful but not strictly necessary
Step 1
Remove all any plastic casing that surrounds the device. Clean up the target solder points with an ear bud soaked in nail polish remover.
Having cleared the target solder point, it was clear that no metallic contact remained on the board. I had to follow the traces back to each contact (there should be 4) and very carefully scape away the board’s surface layer to expose something that could be soldered to!
Step 2
With clean solder points, apply a very small amount of flux to each contact, I used a spare piece of wire to apply this flux. Make sure it does not overflow into anywhere you do not intend to solder.
With the flux applied begin to solder the 4 wires onto each of the contacts, you may have to use all the available space to get the wires attached but we can use the breadboard to help out later.
Visually inspect each solder joint and hopefully we should have a good connection on each of the joints.
The connections will be very very fragile at this point, especially if you had to solder onto the top of the board, so I carefully taped it down the a prototyping breadboard and bent each wire into a separate rail on the board.
We should now have something that looks like this:
Step 3
Now we can begin to solder 4 longer wires onto the spare or recovered USB port we have. This will be used to plug in the device without disturbing the fragile solder joints we have made on the board.
Wire these into the breadboard making sure to keep the same order of pins!
Step 4
Plug it in and hope!
All being well this will have been detected by the computer, if not, unplug visually inspect and use the multimeter’s continuity mode to check for shorts and breakages.
Step 5
Assuming we can detect the device it’s time to pull the data from it. There are a couple of ways of doing this:
- Clone the drive bit-for-bit
- Copy and paste any files from it to the computer
Given that I had no idea if the data on this drive was corrupted or not and the fact that this was my first time doing something like this I opted to clone the drive in its entirety.
There are a few advantages to this, if the drive dies mid copy we still have some useful data to work with locally, and it only has to work once.
Since we’re in a Linux environment to do this I used dd
to clone the drive, with the following command.
sudo dd if=/dev/sdb of=~/usbcopy
It basically says: using the device mounted at /dev/sdb (this could be diffferent for you) make an image file ~/usbcopy that is an exact copy of the device
This will take a while! Since it copies everything, even the ‘empty’ space, it will take a while - obviously taking longer for larger drives.
Step 6
When this completes we can now mount the file that dd
has created using the following command!
mount ~/usbcopy /mnt/usbcopy -o loop
You should now have an exact copy of your drive on your computer to freely do as you please! Like back up your recovered files for example…