Bit banging VGA from an SD card slot

If you’ve got some favorite electronic device that includes an SD card slot but doesn’t have a video out port you may be able to push VGA signals through the card reader conductors. That’s exactly what’s going on above with the Ben NanoNote, a sub-$100 Linux device which we’ve seen using its SD card slot as general I/O before.

The hardware to capture the signals includes a breakout board for the card slot. Free-formed on the other end of that connector card is a gaggle of resistor which handle level conversion for the VGA color signals, with a VGA cable taking it from there to the monitor. The software that makes this happen is a dirty hack, blocking all other functions while it displays a still image. But we’re sure that it can be cleaned up somewhat. Just don’t hold out hopes for full-motion video, this little guy just doesn’t have it in him.

[via Dangerous Prototypes via Slashdot]

Comments

  1. Stephanie says:

    Awesome sauce! Can’t deny though that it has the look of a system on life support! ;)

  2. Ren says:

    “this little guy just doesn’t have it in him.”
    A challenge, no doubt…

  3. rusty says:

    if there is video and audio on ti83 this can be done.

  4. DanAdamKOF says:

    now THAT’s a hack!

  5. RITredbeard says:

    Bit banging SD to VGA. Okay, that’s pretty awesome.

  6. Maave says:

    That’s sweet. I wonder if this can be done from USB SD readers. I bet this could be done for composite/component video also.

  7. Werner says:

    It’s actually a mixture of big-banging (for hsync/vsync) and making the MMC controller think there’s an MMC device and sending the pixel data line by line with a block write. An earlier version did only big-bang but only got to a resolution of 320×480 (with line doubling, so it displayed 320×240).

    Video … hmm. It should be quite feasible to pre-decode a few frames, store them in RAM, and then stream them from there. A VGA frame is about 160 kB, the Ben has 32 MB, so if we let this take half of it, it could store a 4 seconds clip at 25 fps …

    USB SD reader. That might be more difficult. Maybe, if the monitor isn’t too picky about the timing, you can trick the controller into doing a block write, and you send the sync signals as part of the data stream. That would take away two color bits. Well, 2 bit grayscale wouldn’t be so bad :-)

  8. Josh says:

    This isn’t a hack

    Lol @ dumbasses that always say that :P

  9. Agent420 says:

    Might be a hack, and indeed clever, but don’t see the value…

    A $10 Propeller chip makes a more useful vga generator.

  10. Hungry_Myst says:

    - Everyone defines “hack” a little differently, I would argue that this definitely qualifies.
    – Not every hack needs “value”. Some times it’s just fun, and to some people that (and the learning experience) is enough.

  11. Werner says:

    Maybe I should mention how the MMC controller starts the transfer: it first sends a command to the device. Then it tri-states the CMD line and waits for a response. Now, we don’t have a real device there, so a pull-down resistor provides that start bit. Luckily, the controller doesn’t try to make sense of the rest of the response.

    Now, it would be a shame to lose an entire signal line (of which we only have six) just for this handshake. But as it happens, the hsync pulse has to be sent just around the time this start bit is needed.

    CMD is configured as a GPIO most of the time. Before the start bit, it is driven low (hsync), then the pin is configured as the device function (i.e., MMC CMD), which starts the data transfer, and goes right back to GPIO and driven high afterwards.

  12. jeditalian says:

    i wish my phone looked somewhat like that, only thicker and more powerful. What is it with not having keyboards on the best drooooooid-powered devices?

  13. uncool says:

    Nice hack. Reminds me of the way the Atari VCS generates video, one line at a time. Hey, does this device run DOOM^H^H^H^HCOMBAT?

  14. pun says:

    One of the best things I’ve seen on here in a while! I want my Android phone to do this!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 92,158 other followers