Vintage Hack – Game Boy Camera

Screenshot

Back in 2005, a member of a French robotics team named [Laurent] wrote a wonderful how-to that we somehow missed on using the Game Boy Camera as a vision device for a robot. The images above are actual shots from his project. The Game Boy Camera features a stunning 128×123 pixel resolution in a gorgeous 4 color gray-scale palette. Possibly the most attractive feature of this hack is that it is still possible to get a hold of these cameras for under ten dollars on ebay.

He connected the camera sensor to an Atmel AT90S4433 using a combination of digital and analog signals, and then used the microcontroller to echo the data back to his PC. His write up includes schematics for wiring up the sensor/microcontroller, the datasheet for the sensor, his C code for the whole project, and an easy to read pin out of the GBC connector. Although his project simply offloaded the image to a computer, it would be entirely possible to have the microcontroller respond to the image or simply just log and store it. It would also be just as easy to replace his Atmel chip with your own favorite microcontroller, as long as it has a couple Digital I/O ports and at least one Analog port (or an external analog to digital converter).

UPDATE: Good catch r4v5, it would require an ADC, not a DAC.

33 thoughts on “Vintage Hack – Game Boy Camera

  1. just for educational purpose this project OK but as for practical not, most web cameras cost around 10$-20$ and there is libraries for programming their output

  2. The datasheet says that the sensor outputs analog data, so is the 2-bit color limitation simply imposed by the Gameboy hardware/firmware/display? The images on his project page seem to indicate that it is capable of outputting many shades of gray.
    If that is the case, this could be really useful in a robot or a barcode reader or something. I might have to go digging through my attic to find my old Gameboy camera.

  3. It does output analog data – If you follow the link I posted, you can see some pictures sampled at 8-bit grayscale that turned out fairly nice

  4. Worse yet, I went through all the trouble of registering at the forum (it told me my first email address was “banned”, probably a gmail filter for whatever convoluted reason, so I had to dig up an account I haven’t used in forever) and it gave me this crap:
    Your account has been activated but you are currently in the moderation queue to be added to the forum.

    I still can’t view the pictures. Ridiculous moderation is ridiculous.

  5. I also registered, using my student account after trying my gmail account and getting rejected, and I still can’t see them because the administrator hasn’t “approved” me yet. Put the pictures on Flickr or something that we can actually access.

  6. Bugmenot is nice, except for all the sites they decided to ban. [Is there an alternate naming scheme to circumvent this I am unaware of? com.website.www? ]

    Also, just use a disposable email address like mailinator or slopsbox.se [LOTS of domains!], Blocking gmail is ridiculous. [Does @mail.google.com or googlemail.com still work?]

    –PidGin128 [oh Yeah, still got my GBCamera, scratched my GBColor playing runrunrun…Also, my bro had the printer, and I had a gbLinkport to lpt adaptor from madcatz. good times.]

  7. yeah i got a some nice digital cameras at thrift stores for 3 bucks, 4 bucks, just look in the camera bin sometimes they throw in digital ones mistakenly. Some have really good resolution and some even stream video for use with skype or justin.tv or any of that jazz. Or at the least record video. Heck i’ve even found some with the SD card still in them.

  8. Why exactly is an arduino needed for a hack. . .if you’re hardcore EE, you don’t need to be limited to a single platform, especially if you wanna play with high speed things too, like cameras.

    I’d actually wonder if you could pull of working with this guy with something slower than an ARM. This is a pretty wimpy camera compared to the cell phone ones (like those on sparkfun), but the really nice thing is actually that it’s really wimpy–the low resolution and low bit depth means it might actually be interfaceable with a much smaller microcontroller.

    now that I read the datasheet, NICE! analog output for levels? normally, i’d say that’s annoying as hell, but this means you can easily decide on your bit depth depending on how powerful your uC is. Definitely great for robots and systems that typically don’t need as beefy controllers. Even better, the system clock is 500khz – very manageable for a low-end microcontroller, possibly even easily bit-bangable if you don’t have timer outputs.

  9. Wow what a hard way of doing it. Hack a USB camera and ignore having to convert the analog to digital.

    Hell I use Optical mice for machine vision. 32X32 pixels = enough for a ardunio based robot.

  10. When does it start being a hack? When you have the concept of doing something different with a device? When you make the device in the first place? When you make the parts to make the device? When you design a custom chip for the device? [I have] When you refine the silicon for the chip? Any person who designs a something new is a hacker, even if he uses off the shelf parts to save time and money in developing something.
    In hacking [designing] the idea is not to reinvent the wheel, but to steal the hubcap.

  11. Karl-

    Hack vs Buy argument aside, the two modules I bought (separately) were crap. The first one died after two months of careful use and the second one frequently doesn’t respond to commands.

    The specs look great but the ones I bought weren’t worth the money. Maybe they’re better now.

  12. I’m thinking the main problem with using the micro that the guy did for the GB cam is the sample time for the built-in ADC in the micro. The datasheet for the AT90S/LS4433 says the ADC has a 65us to 260us conversion time, so at minimum, grabbing the whole frame takes 1.023 seconds. A chip like the AD7819 (which can do max. 200kSPS) should be able to handle a bit better than 10FPS.

  13. You can run the ADC in the AT90S4433 faster than that while losing accuracy. Looks like it can be run 5x faster for ~8 bit accuracy or 10x faster for ~6 bit accuracy.

  14. N33t. It’s a nice throwback post to old tech. Sure there’s a ton of newer/better ways to do this now but back then it was cool.

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