Pushbroom Panoramic Camera

Landscape camera(s) with linear image sensors!

Similar projects worth following
Satellites and space probes have used linear (aka pushbroom) sensors to gather high-resolution images forever. I'm building a panoramic landscape camera using the same principle.

I've wanted to do this for a long time.  I saw this project a while ago. In it, the author converted a flatbed scanner to capture very high-resolution images by coupling the scanner to the back of a medium-format camera.  The linear image sensor scans left to right to capture a still frame.  It's a great idea, and produces some awesome results.  This technique actually seems to date back another 18 years to 1996, as documented here.  It was landscape photography that started it.

In this project, I'm going to rotate the image sensor and lens assembly instead to produce panoramic landscape images.

I'd rather come up with my own sensor head than hack a flatbed scanner, though, so I have some linear CCD sensors on the way from ebay.  That way, I can get a real monochrome sensor, instead of having to convert from RGB.  These sensors are physically large, and will require medium format lenses (or larger) to produce good images.  The whole thing will take some engineering to get right.

In order to get a quick start, I'm going to build a toy system first.  I'm starting with a TSL3301CL 100x1 pixel sensor.  This sensor communicates over a serial protocol, and transfers 1 megapixel/second.  I've designed a PCB to hold the sensor and a CS-mount for lenses commonly seen on older security box-cameras.  The CS-mounts are available inexpensively on ebay.  As it turns out, the TSL3301CL's active area is about the same height as the frame of a 1/2" CCD sensor, so the lens should work well.  The PCB is designed to have the linear sensor right in the middle of the frame.

The sensor head will connect with an ethernet cable (not ethernet protocol!) to an MCU on a remote controller board.  I'm adding 74LVC1G04 drivers and termination resistors so the head can be connected with fairly long cabling. The sensor head assembly will be rotated to scan the landscape using a geared stepper motor (only scanning one way to avoid backlash).  This will give 100xN pixel images.  Not great, but it will be a start.  One of the CCDs I ordered is 7500x1 pixels.

There may also be other interesting uses for a relatively fast line-scan camera.  At 1 million pixels/sec, it can scan 10,000 lines per second.  With bright enough light, you could probably image some fast-moving items.

The designs are being released under an MIT license in the GitHub repo.

  • IC die images sans acid

    Ted Yapo04/04/2018 at 03:20 0 comments

    It's easy when the package is transparent!  In this case, a linear image sensor.  After mounting it on the PCB, I put it under the microscope to check the solder joints, and was pleasantly surprised to see the pixels themselves.  That's them on the right.  The end one is a different size/shape than the others.

    You can also make out the text "TAOS C 2000".  Copyright markings on the chip, nice.  I don't see an open-source license on there, though :-(

    I also built the matching receiver PCB, and assembled the CS lens mount on the sensor board.  I just need to connect them with an ethernet cable and - nothing - I didn't write a driver for this thing yet.

    So, I have to get into a software mindset and crank out some code.  I'm just not feeling it tonight.  But the hardware is done, so yay!

  • Receiver PCB

    Ted Yapo03/22/2018 at 15:01 0 comments

    I was originally going to integrate the MCU, stepper drive, and everything else on one PCB, but I decided to go modular, so I can just wire up some existing boards for a prototype.  The missing piece was a driver and receiver for the MCU end of the cable, so I threw together a little PCB for it.

    It uses 74LVC1G04's as cable drivers and receivers, with added parts for ESD protection.  The connection to the sensor head is over a cheap ethernet cable.  The PCB was really straightforward to route.

    I wish they were all this easy.

    Now that I sent it out, I regret not adding mounting holes.  Oh, well, it costs less this way.

    I also should have routed the 5V line around the ground pins on the RG45 connector instead of between them, considering the signal return paths.  There's a ground plane underneath, but it would probably help to keep the top plane unbroken there.

  • "Toy" Sensor Head

    Ted Yapo03/19/2018 at 17:15 0 comments

    I designed the first pass of a toy pushbroom image sensor.  This should get me started, anyway.  The sensor is a TSL3301CL, with 100x1 pixels, 77x85 microns each (centered on 85 micron centers).  These are big pixels, so noise will be low, even if the resolution is poor.  The circuit is really just a breakout for the sensor:

    The diode/resistor networks on the sensor input lines are there for ESD protection.  The inverter is used as a cable driver, and with the 91-ohm series termination, should give a good match to 100-ohm twisted pair.  I'm using ethernet jacks and cabling because they're cheap and plentiful.  Twisted pair and controlled impedance is a huge plus, too.

    The front of the PCB has most of the components, including the sensor and a metal mount for a CS lens.

    The back of the PCB has the 8P8C jack:

    It's all very straightforward.  Now, I have to design the other side. A microcontroller, stepper driver, and a big flash memory to store images is probably all that's required.

    Depending on how thick the solder ends up when I reflow the senor on the PCB, the flange distance may be a little short (I think about 0.35mm).  This is much easier to fix (by inserting a shim) than one that is too long.  I'll have to test it out once I have all the parts.

    At first I thought that focusing would be difficult, but I think I can just image any sharp black/white edge and probably focus by eye.

View all 3 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates