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]
Awesome sauce! Can’t deny though that it has the look of a system on life support! ;)
“this little guy just doesn’t have it in him.”
A challenge, no doubt…
if there is video and audio on ti83 this can be done.
now THAT’s a hack!
Bit banging SD to VGA. Okay, that’s pretty awesome.
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.
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 :-)
This isn’t a hack
Lol @ dumbasses that always say that :P
Might be a hack, and indeed clever, but don’t see the value…
A $10 Propeller chip makes a more useful vga generator.
– 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.
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.
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?
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?
One of the best things I’ve seen on here in a while! I want my Android phone to do this!