Hackaday Prize Entry: An SD Card Arduino

About a year ago, Intel announced they’d be launching a new platform stuffed into an SD card. Imagine – an entire computer packaged into an SD card, with nine whole pins for power and I/O. Cooler heads prevailed, the Intel Edison was launched, but the idea stuck; why can’t you fit an Arduino in an SD card?

[kodera2t] found out there’s no real reason why you can’t put a small microcontroller inside an SD card. For his Hackaday Prize entry, he created the SDuino, and it’s exactly what it says on the tin: an ATMega328p stuffed into a microSD adapter.

Unlike the other microcontroller stuffed in an SD card platform — the Electric Imp, [kodera] is, for the most part, respecting the standard pinout for SD cards. The MISO and MOSI signals are reversed, of course, one of the grounds on the SD pinout is tied to an analog input pin on the microcontroller, and the chip select on the SD pinout is ignored completely. Other than that, it’s the closest you’re going to get to an SD card with a microcontroller.


The 2015 Hackaday Prize is sponsored by:

16 thoughts on “Hackaday Prize Entry: An SD Card Arduino

  1. Struggling to think of an application really…. sneaker net firmware upgrades maybe.

    If it presented itself as a functional SD card to the host, and the microcontroller’s code was able to access the FAT filesystem at the same time, then some interesting things could be done (of course, this type of thing already exists, EyeFi cards etc, but they are not open).

    1. If you wanted to emulate a mass storage device usefully, you’d probably want something other than a microcontroller, they have pitiful internal storage and aren’t terribly convenient to connect to external storage, except via painfully slow methods like bit-banging an SD card; but for devices where the SD slot actually supports SDIO, using the SD slot as a convenient(toolless hot swap; but fully internal in the nicer implementations, so safe to leave in while travelling) expansion port for various low-speed; but potentially handy, peripherals could be pretty cool. Particularly handy since(with the addition of certain standardized initialization dances, you get an SPI interface, which isn’t wildly common elsewhere on most PCs)

      USB is obviously better supported by mass market devices and standard drivers, and if you have an Expresscard slot you could use that for internal USB expansion; but SD card slots are rather more common than Expresscard slots

    1. That’s quite a common thing to do – the downside is that you lose the routing space for tracks under the chip. Which can be quite a problem, especially if the board size is also limited…

  2. Other than the novelty on the form factor, this won’t do much.
    – Speed is one of the limiting factors – it can keep up with the 400kHz on the ID phase of the MMC/SD, but can’t handle the 25Mbps or higher speeds. So don’t expect it to emulate anything. Minimum processor to do that type of things is ARM which is what they use in a SD chip.
    – Doesn’t support the 4-bit mode as pretty much most product expects that.
    – limited memory. Can it even hold a FAT filesystem?

    So it is limited to your own microcontroller projects or one that talk to a microcontroller.
    – May be a card for programming the firmware on your AVR project since you already bring the SPI pins to the SD connector – just need the reset line. That might actually be cool.
    – A gag item.

  3. As [bunnie] discovered a few years ago, SD cards often contain microcontrollers, and some of these microcontrollers are trivially reflashable and in known families. (After all, write leveling can be complicated; why not drop a cheap ARM on the chip and a little bit of flash so that you can update the write leveling algorithm later — or allow your friend at an SD card ‘refurb’ company to disable write leveling entirely and sell a chip 10x the reported size that’ll die after a few days?)

  4. A Arduino on a SD carrier already exists – or, at least, an Arduino on a Micro SD carrier. The OpenLog device (Sparkfun). An Arduino, with source code for the data logging function, but you can reprogram it to whatever Arduino task you wish. You will have to attach you own leads to the extra pins you wish to use.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.