Rescuing an SD card with an Arduino

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.

UDP between STM32-F4 Discovery boards

stm32-f4-udp

[The Backwoods Engineer] tested out a new accessory kit for the STM32-F4 Discovery board. The image above shows two boards communicating with the UDP protocol. Notice the extra PCB into which each Discovery board has been plugged. This is a third-party add-on which adds Ethernet, RS-232, SD card slot, and a connector for LCD or Camera. We’ve had one of these F4 Discovery boards on hand for a while and haven’t figured out a good way to connect external hardware to the huge dual pin-headers. This doesn’t solve the problem — the base board also includes dual headers to break-out all the pins — but having Ethernet, serial, and SD certainly reduces the need to add all that much more. The other drawback to the hardware is that the sample firmware is targeted at the IAR Embedded Workbench which is neither free, nor in the realm of affordable for hobbyists.

The NIC used on the baseboard has auto-crossover capabilities so the boards were connected using a regular Cat6 patch cable. This example has the boards constantly sending UDP packets with the module on the right reporting status information to a terminal via the serial connection.

Arduino MP3 Jukebox

Here’s an inexpensive Arduino-based MP3 Jukebox (translated) which [Jose Daniel Herrera] put together.

He spent some time making sure that it looked great sitting on a shelf with his other audio equipment. This started with a wooden box which is some reused packaging. We’re not familiar with the ‘iNFUSiONES’ product; perhaps it’s tea or tobacco? At any rate, to this he added a custom face plate to host the character LCD, rotary encoder, two buttons, and to act as a grill for the two speakers.

The speakers and their accompanying amplifier circuitry were pulled from a portable speaker set. He combined them with a VS1002d MP3 decoder module, SD card breakout board, and the Arduino itself. In addition to the overview post linked above, there is also a collection of assembly photos, and a post discussing the way he arranged the code for the control systems (translated). See and hear the unit in action in the clip after the break.

Continue reading “Arduino MP3 Jukebox”

GD-ROM drive emulated to use SD cards instead

This board is the prototype which [Deunan] has been working on in order to use an SD card in place of a GD-ROM drive. The idea is to fully implement the hardware protocol used by a GD-ROM drive so that it can be completely replaced. The end goal is to do away with the optical drive on a Dreamcast game console.

As these game systems age, the optical drive is the most likely part to fail first as it involves moving parts and a lens that may degrade over time (we’re basing that assumption on our experience with DVD-ROM and RW). This may sound like a way to play pirated games, but [Deunan] makes it clear in his question and answer post that the firmware for his prototype is written to only play proper disc images and will probably not play the rips which are found in the darker recesses of the interwebs.

He’s been at this for quite a while. Here’s an earlier project he did that uses an FPGA board for the hardware.

[Thanks Walt]

Arduino BASIC interpreter using LCD, keyboard, and SD

This Arduino BASIC interpreter will make a really fun one-day project if you’ve already got the parts on hand. [Usmar A. Padow] put together an Arduino Uno, SD card, four line character LCD, and PS/2 keyboard. but he’s also included alternative options to go without an LCD screen by using a computer terminal, or without the SD card by using only the Uno’s RAM. As you can see in his demo after the break, this simple input/output is all you need to experiment with some ancient computing.

It’s hard for us to watch this and not think back to an orange or green monochrome display. Just like decades past, this implementation of BASIC has you start each line of code with a line number, and doesn’t allow for character editing once the line has been input. The example programs that [Usmar] shows off are simple to understand but cover enough to get you started if you’ve never worked with BASIC before.

Last August we saw another hack which ported Tiny BASIC to the Arduino. You may want to take a gander at that one as well.

Continue reading “Arduino BASIC interpreter using LCD, keyboard, and SD”

DSLR performance measured with audio editing software

[Jaroslav’s] camera didn’t have a feature to measure the speed of its response in different modes so he figured out his own method. Using the microphone on his webcam he recorded the sound made by the mirror and shutter movements, then used Audacity to analyze the camera’s performance.

When you get right down to it, this is a fantastic idea. Audacity, the open source audio editing suite, has the ability to show each captured audio track next to each other. That makes it easy for you to precisely align the clips, and has in-build time measuring features with fantastic resolution.

He tested a whole bunch of different settings on a Canon EOS600D DSLR camera. In the image above you can see him comparing performance between different ISO settings. He also looks into different brands and sizes of SD storage cards, as well as the time difference when storing raw image data versus JPEG encoded data.

Scam-o-Matic determines if you bought fake SD cards

[Andrew] recently got scammed on an SD card purchase and put together a small tool that can help you determine if you’ve had the wool pulled over your eyes as well.

You see, he purchased a set of MicroSD cards, all of which had an advertised capacity of 4GiB. When he tried to use them, they all failed to write more than about 115MiB of data, so he knew something was up. He sat down with some tools that can be used to check the actual capacity of flash media, but he says they were unbelievably slow to scan the cards.

While he waited for one of the scans to complete, he decided to create a utility of his own that would do the same thing in a fraction of the time. His quick and dirty application, called “Scam-o-Matic”, writes random data to the card, double-checking the written region to ensure that data can be read back. If it finds errors your card is likely either a fake or damaged, but if not, it automatically prepares the media for use.

Obviously this sort of situation is relatively rare, but if you think that you have picked up some shady SD cards, be sure to check out [Andrew’s] Github repository.