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…]