Rescuing an SD card with an Arduino

SD

A few days ago, one of [Severin]‘s SD cards died on him, Instead of trashing the card, he decided to investigate what was actually wrong with the card and ended up recovering most of the data using an Arduino and an immense amount of cleverness.

SD cards can be accessed with two modes. The first is the SDIO mode, which is what cameras, laptops, and other card readers use. The second mode is SPI mode. SPI is slower, but much, much simpler. It turned out the SDIO mode on [Severin]‘s card was broken, but accessing it with an Arduino and SPI mode worked. There was finally hope to get files off this damaged card.

[Severin] used a few sketches to dump the data on the SD card to his computer. The first looked at the file system and grabbed a list of files contained on the card. The second iterated over the file system and output all the files in hex over the serial port. With a bit of Python, [Severin] was able to reconstruct a few files that were previously lost forever.

Even though the SD card was completely inaccessible with a normal card reader, [Severin] was able to get a few files off the card. All the sketches and Python scripts are available on the Githubs, ready to recover files from your broken SD cards.

Pocket Serial Host acts as an Apple II disk drive

apple-II-pocket-serial-host

[Osgeld] is showing off what he calls a sanity check. It’s the first non-breadboard version of his Pocket Serial Host. He’s been working on the project as a way to simplify getting programs onto the Apple II he has on his “retro bench”. When plugged in, the computer sees it as a disk drive.

The storage is provided by an SD card which is hidden on the underside of that protoboard. This makes it dead simple to hack away at your programs using a modern computer, then transfer them over to the retro hardware. The components used (starting at the far side of the board) are a DB9 serial connector next to a level converter to make it talk to the ATmega328 chip being pointed at with a tool. The chip below that is a level converter to get the microcontroller talking to the RTC chip seen to the right. The battery keeps that clock running when there’s no power from the 5V and 3.3V regulators mounted in the upper right.

The video after the break shows off this prototype, the breadboard circuit, and a demonstration with the Apple II.

[Read more...]

Hackaday links: September 11, 2012

Xbee sensors at Lowe’s?

Lowe’s, the home improvement big box store, is selling some home automation items which might be Xbee compatible. They’re being sold under the brand name Iris. There is some debate as to whether they’re Xbee, or just 802.15.4 hardware. Either way they might be worth checking out for your wireless projects.

Father sword replica from Conan the Barbarian

Sometimes its just fun to watch the master at work. In this case it’s a blacksmith replicating the sword from Conan the Barbarian. [via Reddit]

LG washing machine that phones home

LG has built an interesting troubleshooting feature into some of their washing machines. This video shows the encoded audio it will output if you use the right button combination. You’re supposed to hold your phone up to the machine while talking to customer service and they’ll be able to get some type of debugging information from the dial-up modem type of sounds. If you end up decoding this audio we want to know about it! [Thanks Pedro]

MicroSD card adapter for Raspberry Pi

[TopHatHacker] was surprised to see a full-sized SD card slot on the Raspberry Pi. His temporary solution to get his microSD card working was to uses a miniSD adapter. He cut away the case and bent the pins until they lined up with the microSD card.

Batman’s cowl for retro motorcycle enthusiasts

Okay, we think this Batman cowl in the style of 1950’s motorcycle garb is pretty cool. Just realize that if you’re seen wearing this you will be thought of as one of the crazy guys in town. [via BoingBoing]

Accessing an SD card through a parallel port, just because

[Vinod] sent in a very cool build he says is somewhat of a ‘mad project': he mounted an MMC and SD card under Linux using the parallel port on his computer. Even though parallel ports are getting rarer these days, we absolutely love [Vinod]‘s dedication and willingness to dig around the Linux kernel.

The hardware portion of the build is very simple – just an SD/MMC header and a few resistors wired up to a parallel port. The software side of the hack gets pretty interesting with [Vinod] building a kernel module, something we rarely see on Hackaday.

We’d have to agree with [Vinod]‘s ‘mad project’ sentiment, if only because of the terrible throughput of [Vinod]‘s adapter; it takes him more than a minute to transfer a 1.5 MB file onto the SD card – terribly slow, to put it mildly. Nevertheless, we’ve got to respect [Vinod] for pushing the limits of uselessness and still building something cool in the process.

Building a media player with an MSP430

A media player based on an Arduino and SD card has been done to death several times over, but that doesn’t mean we can’t appreciate [Matt]‘s MSP430 audio player. It’s a very nice piece of work that supports a FAT16 file system and only takes up 54 bytes of RAM.

To make his dream of a 430 media player a reality, [Matt] based his work on the DIY Life Talking MSP430 project. Unlike this previous attempt to play music with a ‘430 and SD card, [Matt] threw in a full FAT16 file system, allowing him to drag and drop audio files on his computer to the SD card.

Right now [Matt]‘s build can play a stereo audio file through its speakers, but the sound quality over a mono file is greatly reduced. The maximum sample rate is 16kHz; a ‘good enough’ sample rate if you’re listening with terrible headphones. In the video after the break, [Matt] plays this awesome Symphony of Science on his homebrew media player. We’re guessing his camera doesn’t do his project justice, but it’s still impressive nonetheless.

[Read more...]

Building the worst Linux PC ever

Linux is generally considered the go-to OS for under powered computers. Wanting to challenge the preconceived notion that Linux requires ‘a computer made in the last 20 years,’ [Dmitry] built the worst Linux PC ever around a simple 8-bit microcontroller.

The ATMega1284p [Dmitry] used doesn’t have a lot to offer as far as RAM and storage goes; just 16 kilobytes of SRAM and a paltry 128 kilobytes of Flash storage. While this may be voluminous in the embedded world, it’s peanuts compared to the gigabytes of RAM and hard drive space on even a low-end netbook. To solve this problem, [Dmitry] threw an antique 30-pin RAM SIMM at the problem. It’s wired up directly to the microcontroller, as is the 1 Gigabyte SD card that serves as the PC’s hard drive.

Linux requires a 32-bit CPU and a memory management unit, something the puny microcontroller doesn’t have. For [Dmitry], the best course of action was emulating an ARM processor on an AVR. We’re not sure if we’re dealing with genius or madness here, but it did prove to be a valuable learning exercise in writing a modular ARM emulator.

How fast is it? [Dmitry] tells us it takes two hours to boot up to a bash prompt, and four more to load up Ubuntu and login. If you want a Megahertz rating, good luck; the effective clock speed is about 6.5 kilohertz. While the worst Linux PC ever won’t win any races, its simple construction puts it within the reach of even the klutziest of hardware builders; the entire device is just a microcontroller, RAM, SD card, a few resistors, and some wire.

If you’d like to build your own worst Linux PC, [Dmitry] has the firmware and disk image available to download. If you want to watch the time-lapse of this thing booting, check out the video after the break.

[Read more...]

Flash an Arduino from an SD card

[Kevin] has been working on reverse engineering the protocol used by the Arduino IDE and porting it to the Arduino platform. Now that his BootDrive project is nearing completion, he’s ready to give every Arduino the ability to program another Arduino over an SD card.

BootDrive isn’t terribly different from using an Arduino as an ISP, only now AVRdude runs on the Arduino itself and no computer is required to put new firmware into the target Arduino.  [Kevin] attached a MicroSD breakout board to an Arduino-compatible clone. When the clone starts up, it searches the SD card for a file called ‘program.hex.’ This file is sent over to the target Arduino and the new firmware is installed.

While it may not be extremely practical if you’ve only got a few Arduinos that never leave your workbench, we’re thinking this would be an invaluable tool if you need to update the software on a board already ‘in the field,’ serving as a weather station or homemade game camera. [Kevin] put up a demo of his BootDrive project; you can check that out after the break.

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 96,407 other followers