Saving Data From Dead SD Cards Using an Arduino! - Labratsgonewild

Thursday, September 26, 2013

Saving Data From Dead SD Cards Using an Arduino!

I'm sure no one can argue with me that it's one of the worst feelings when you plug in your SD card and find out that your devices (laptops, cameras, phones) can no longer read it. The card's funeral is one of the saddest reality in e-life, especially that it always happen when least expected--and when you needed your card the most!

But alas! You can now dry your tears, friends. tiefpunkt has found way to read such dying SD cards using Arduino.

Although the use of SPI mode in reading the card is slower compared to SD bus mode (it's the mode used to read cards using cameras, etc), it is used since it's the way to connect the card to a microcontroller, like arduino.

A Playduino One Arduino clone was used (this is based on the Arduino Duemilanove), and an SD card shield from ElectroDragon. Take the two pieces and mash them together - and that's it! Let's get your data back!

There were basically 3 steps in recoveering the data. The card information was grabbed using CardInfo. Next, the sd_recovery_files.ino iterates over the filesystem, and results to an HEX encoded format output over the seral port. Lastly, the sketch sd_recovery_raw.ino reads the SD card block by block, and also produces an output in a HEX encoded format.

The process is quite tedious and may really take a longer time. And this avenue in saving SD cards is yet to be further developed. At the moment, some of the data in the card has not been recovered. However, there remains a promise of possibility that a way can be done to perfect this. Then, we can say Bye-bye no more to SD cards.