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”
Wouldn’t you need an external ADC, not a DAC, to digitize the analog signal?
No Arduino? Fail. This is so beneath Hackaday.
To do realtime analysis of the picture you would need a fairly beefy microcontroller (like an ARM9 or something).
@r4v5, good call, Post corrected.
@69Arduino69, this hack actually predates the Arduino, but you make a strong point.
AWESOME, ha im all nostalgic now, i wanted one of those when i was a kid
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
I actually got one of these working with a Picaxe microcontroller! They are pretty sweet (and with an ADC, can do a heck of a lot better than 4 shades of gray!).
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.
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
@chris: to see them we have to have accounts on the forum. :/
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.
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.
@”I still can’t view the pictures. Ridiculous moderation is ridiculous.”
dont forget to put you account on Bugmenot
im tired of arduinos. fuck em learn to code 4real
Oh wow bugmenot.com is really cool, never been there before. They have an account for the forum that works, sweet :)
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.]
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.
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.
Hello. At this link http://ficara.altervista.org/images/robot1.jpg you can see my small rover using the gameboy camera connected to Renesas (formerly Mitsubishi) M16C microcontroller. The rover was able to send pictures via RF link to the PC. It is very old, but still working and can be driven from the Internet, if the PC runs my small server program.
I apologize, the link doesn’t work that way. Click it with the right mouse button, then copy the address and paste it in the address bar of your browser.
http://e-rice.net $10 for a YEAR of hosting… buy that with a domain and throw up a base wordpress or gallery install and don’t worry about crappy forums with paranoid administration.
Cool project. :) I love video game hardware hacks.
take a look at
They are selling rs232 and ttl interface versions of a camera for $58 the µCAM-232 & µCAM-TTL – multiple output modes, single picture & video up to VGA. Why hack when you can buy?
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.
I can’t believe how many people are saying “why would you do this, just buy it!” It’s fucking hackaday, we do hacks here.
the amount of hurr durr here is amazing
i want to hack a usb cam i found for 4€, to use it as vga cam? is this possible? or what exactly does the usb chip do inside?
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.
@Karl: You don’t get it at all.
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.
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.
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.
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.
Why is mine never listed here, I got 6-bits, video and image recording with OpenGL ;p
Please be kind and respectful to help make the comments section excellent. (Comment Policy)