New Image Sensor Chips for Robotics and Embedded Vision

I just got back some new silicon! These are the latest image sensor chips I designed specifically for robotics and embedded vision applications. The pictures above show a full wafer followed by a close-up of the wafer from an angle. There are four chips in each reticle- if you look closely you can see them packed into a rectangle (about 8.8mm by 7.0mm). Shortly after that picture was taken, we had the wafer diced up into individual chips and started playing with them!

One of the chips is named “Stonyman” and is a 112 x 112 image sensor with logarithmic-response pixels and in-pixel binning. You can short together MxN blocks (M and N independently selected from 1, 2, 4, or 8) of pixels to implement bigger pixels and quickly read out the image at a lower resolution if desired. The interface is extremely simple- there are five digital lines that you pulse in the proper sequence to configure and operate the chip, and a single analog output holding the pixel value. With two power lines (GND and VDD) only eight connections are necessary to use this chip.

Another chip is named “Hawksbill” and is a 136 x 136 image sensor, also with logarithmic response pixels (but no binning) and the same interface as Stonyman. What is different about Hawksbill is that the pixels are arranged in a hexagonal format, rather than a square format like Stonyman and 99% of other image sensors out there. Hexagonal sampling is not conventional, but it is actually mathematically superior to square sampling, and with recent advances in signal processing one can perform many image processing operations more efficiently in a hexagonal array than a square one.

We plan to release the chips in the near future, with a datasheet, sample Arduino script, and (yes!) a schematic diagram of the chip innards. (If anyone *really* wants one now, I can make an arrangement…)

We are also working on a new generation ArduEye sensor shield with these chips. The shield will be matched to an Arduino Mini for small size, and use a 120MIPS ARM for intermediary processing. The design will be “open”, of course. (Note- anyone who purchased an original ArduEye will get a credit towards the purchase of the new version when it comes out.)

(The thrill of getting new chips back is much like that for circuit boards. You designed it, so in theory you know how it works. But you are never 100% sure and there is no datasheet for you to consult other than your own notes or CAD drawings. You are always slightly afraid of getting a puff of smoke when you first power it. No smoke… the circuit breaker didn’t trigger… so all is good. Then you probe it, verify that different portions work as expected, tweak various settings, and finally get it working. The experience is just like that for a PCB except the stakes are higher.)

This is the first time we used this foundry and I am very happy with the results. One of the other chips on this run is a test chip with various experimental analog circuits. I had trouble getting these circuits to work in the past but they worked beautifully here.

@JCrubino- in-pixel binning is to reduce resolution as well as form virtual pixels whose shapes are other than square. For example if you are placing this on a ground 'bot and the sensor is looking sideways you may only care about information along the horizontal axis and thus bin down using 8x1 rectangles. This gives you one eighth the amount of data to acquire and process, which can speed things up.

You can speed up other basic image processing algorithms using binning. For example, if you wanted to implement your own Wii-mote-like light tracking device, you can first bin using 4x4 blocks to downsample the 112x112 raw array to 28x28 (=784 virtual pixels), then identify which virtual pixels have bright lights, then turn off binning, and then re-grab just those regions of interest to locate the lights to higher precision. We had things like this in mind when adding the binning (which really required just two additional transistors per pixel).