Let's Make Robots!

Making AVRcam (was CMUcam) clones

I've been looking for some video processing to go with my simple PICAXE robots and came across the CMUcam from the Seattle Robotics Society awile back. They have three versions but the one I'm interested in is the most primitive CMUcam v1. It's not its laundry list of amazing features I'm attracted to but its simplicity. It speaks standard serial to chips like the PICAXE, BS2, Ardu, etc. and can be programmed from a PC through a relatively cheap "SX Blitz" USB programmer. Not a lot of wizardry involved.

Per marketing vomit:

CMUcam v1.0

At 17 frames per second, CMUcam can do the following:

  • track the position and size of a colorful or bright object
  • measure the RGB or YUV statistics of an image region
  • automatically acquire and track the first object it sees
  • physically track using a directly connected servo
  • dump a complete image over the serial port
  • dump a bitmap showing the shape of the tracked object


At the bottom of the users manual it gives a components list (with Digi-key part numbers) and a schematic of the board. I took the time to look up the parts and their current prices as well as finding some replacements (most noteably, the 75MHz oscillator is only available in an SMD package). I also substituted in some lesser priced components (mostly the expensive gold plated connectors were replaced with cheap tin plated).

The CMUcam can be purchased fully assembled for $109 from Seattle Robotics themselves. What sport is that though? To build your own, it would cost ~$75 for a single component kit with everything listed on the spec sheet with my modifications. The price would drop to ~$65 per component kit if 10 of each part was bought. A Parallax SX Blitz programmer would have to be procurred to get the CMUcam HEX file on the chip but I'm willing to eat that cost and program the chips pro bono.

You would need to make the PCB but that isn't a terrible task with the schematic being provided and PCB services from places like Sparkfun making one-off custom boards for reasonable rates. Perhaps we could draw up a decent PCB of our own and use Seedstudio or something like that for all 10 PCBs.

Just seeing if anyone would want to buy a component kit like this. Sooner or later I think I'm going to do it, by myself or not. I might try to grab ten of everything if there's nine other people interested.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I love everything you just said :)

edit: for the record, I just checked the NX link and the first thing I saw was a datasheet for the 5V 6620. They have two versions of their cam. I'll look to see if they both use the same cam later on tonight.

I believe the AVRcam is an easier design to copy. It doesn't use ancient chips and has similar features:


The AVRcam provides an assortment of capabilities:

♦Track up to 8 different colorful objects at 30 frames/second

♦Configure the system to recognize up to 8 different user-defined colors

 In addition, a PC application called AVRcamVIEW was developed to support the AVRcam for purposes of evaluating and testing the system. The AVRcamVIEW provides the following capabilities:

♦Provide real-time tracked object statistics (number of objects, color of objects, bounding box) through a standard serial port

♦Tracked image resolution of 88 x 144 pixels at 30 frames/second

♦Perform full-resolution color image dumps

♦Dumped image resolution of 176 x 144 pixels

♦Low power consumption (the entire system only draws 57 mA)

♦Small size (the entire system is 2.4" x 1.9")


♦Take full-color snapshots (176 x 144 pixels) with the system and display the images (both raw Bayer data and interpolated color data)

♦Easily create a Color Map of colors to track based on a snapshot

(just click on the colors of interest and add them to the Color Map)

♦Adjust the precision of each tracked color (i.e. provide a range of acceptable R-G-B values for each color), allowing the user to

adjust the Color Map to the surrounding environment

♦Display the real-time tracking results of each tracked object (with color and bounding box information)

♦Record a tracking session for playback at a later time

♦Test the system out in multiple OS platforms that are supported by Java 1.5 (both Windows and Linux are currently supported)


The AVRcam also uses the OV6620 CMOS cam like the CMUcam1. After studying some datasheets and schematics it looks like the newer OV6630 only differs in its 3.3V power supply vs. 5V for the 6220. It wouldn't be too hard to make it work with either design I believe.

However I found that the Ezonics EZ Cam II uses an OV6220 and the whole cam can be found for ~$20. I think I'm going to get one of those and hack it. Then I'd need an ATmega8, a Tiny12, and an AVR ISP programmer. That will cost ~$20 for that stuff. I have almost all the other components. I might need some connectors maybe. And the PCB. I think the whole thing can be done for around $60.

Going this way doesn't offer benefits to buying in quantities but it sounds like an inexpensive process already. At least on paper it sounds reasonable.

Terrible fumble. I discovered I'd sourced the OV6630/C3038 camera not the OV6620/C3088 camera, sorry guys. Apparently the C3088 is obsolete. I read about the AVR cam below as well but upon first glance it would take an OV6620 board too.

Somewhat good news: Found an eBay auction with said 6620 camera using a different board setup. It looks to be the correct board but with a printer connector instead of a female header socket.

From what I've gathered the 6620 used 5V and the 6630 uses 3.3V. CMUcam says their setup won't work with anything besides the 6620 and I tend to believe them. However I'd like to find that they're wrong. Looking more into the AVR cam as well, thanks Ro-bot-X.

Still working on this but have hit the hard wall of obsolescence.

Since the camera interface with the robot is serial (UART), why not use a 3.3v system on the camera? If needed, the serial line can be level shifted.

Another option would be to create AVRcam clones.

I am interested. But I am not sure how we could deal with the logistics (payment, shipment). I may even buy two of them.