Digital cameras have been around for forty years or so, and the first ones were built around CCDs. These were two-dimensional CCDs, and if you’ve ever looked inside a copier, scanner, or one of those weird handheld scanners from the 90s, you’ll find something entirely unlike what you’d see in a digital camera. Linear CCDs are exactly what they sound like — a single line of pixels. It’s great if you’re into spectroscopy, but these linear CCDs also have the advantage of having some crazy resolutions. A four-inch wide linear CCD will have thousands of pixels, and if you could somehow drag a linear CCD across an image, you would have a fantastic camera.
The linear CCD used in this project works something like an analog shift register. With a differential clock, you simply push values out of the CCD and feed them into an ADC. The driver board for this CCD uses a lot of current and the timings are a bit tricky but it does work with a Teensy 3.6. But that’s only one line of an image, you need to move that CCD too. For that, this project uses something resembling a homebrew CD drive. There’s a tiny stepper motor and a leadscrew dragging the CCD across the image plane. All of this is attached to the back of a Mamiya RZ67 camera body.
Does it work? Yes. Surprisingly yes. After a lot of work, an image of a tree was captured. This is an RGB CCD, and at the moment it’s only using one color channel, but it does work. It’s a proof of concept rendered in a 2000 x 3000 grayscale bitmap. The eventual goal is to build a 37.5 Megapixel medium format camera around this CCD, and the progress is looking great.
If you think of a medical x-ray, it is likely that you are imagining a photographic plate as its imaging device. Clipped to your tooth by your dentist perhaps, or one of the infamous pictures of the hands of [Thomas Edison]’s assistant [Clarence Madison Dally].
As with the rest of photography, the science of x-ray imaging has benefited from digital technology, and it is now well established that your hospital x-ray is likely to be captured by an electronic imaging device. Indeed these have now been in use for so long that their first generation can even be bought by an experimenter for an affordable sum, and that is what the ever-resourceful [Niklas Fauth] with the assistance of [Jan Henrik], has done. Their Trophy DigiPan digital x-ray image sensor was theirs for around a hundred Euros, and though it’s outdated in medical terms it still has huge potential for the x-ray experimenter.
The write-up is a fascinating journey into the mechanics of an x-ray sensor, with the explanation of how earlier devices such as this one are in fact linear CCD sensors which track across the exposed area behind a scintillator layer in a similar fashion to the optical sensor in a flatbed scanner. The interface is revealed as an RS422 serial port, and the device is discovered to be a standalone unit that does not require any commands to start scanning. On power-up it sends a greyscale image, and a bit of Sigrok examination of the non-standard serial stream was able to reveal it as 12-bit data direct from the sensor. From those beginnings they progressed to an FPGA-based data processor and topped it all off with a very tidy power supply in a laser-cut box.
It’s appreciated that x-rays are a particularly hazardous medium to experiment with, and we note from their videos that they are using some form of shielding. The source is a handheld fluoroscope of the type used in sports medicine that produces a narrow beam. If you remember the discovery of an unexpected GameBoy you will be aware that medical electronics seems to be something of a speciality in those quarters, as do autonomous box carriers.
Linear CCDs are an exceptionally cool component. They can be used for DIY spectrometers, and if you’re feeling very adventurous, a homemade version of those crappy handheld scanners of the early 90s. Linear CCDs don’t see much use around these parts, though, which makes [esben]’s Hackaday Prize entry very cool. He’s building a breakout to make using these linear CCDs easier.
A linear CCD module looks like an overgrown DIP chip with a glass window right on top of a few thousand pixels laid out in a straight line. The data from these pixels isn’t output as a series of ones and zeros, though: its old school, and the data this CCD produces is analog. This means reading light from one of these modules requires a fast microcontroller with a good ADC.
For this project, [esben] is using a Nucleo F401RE, a development board built around an STM32F4 microcontroller. This processor is fast enough to read the data off its 12 bit ADC, and store all three thousand pixels. Now the problem is getting this data off the microcontroller and onto some storage. With a UART limited to 230kB/s, each ‘frame’ of the CCD takes 300ms to transfer to a computer. [esben] really wishes that could be done a little faster, so he’s trying to hack the DMA controller to do his bidding. It looks like [esben] is on track to make a fast interface for a very common linear CCD, which means more cool tools and toys for all of us.
After 20 or so years of development, digital cameras may soon be superior to film in almost every way, but there are a few niches where film cameras reign supreme. Large format cameras, for example, are able to produce amazing images, but short of renting one for thousands of dollars a day, you’ll probably never get your hands on one. For his entry to The Hackaday Prize, [Jimmy.c..alzen] decided to build a digital large format camera, using an interesting device you don’t see used very often these days – a linear CCD.
[Jimmy]’s camera is built around a TAOS TS1412S, a linear CCD that is able to capture a line of light 1536 pixels across. The analog values are clocked out from this chip in sequence, going straight into an Arduino Due for processing, saving, and displaying on a small screen.
Inside the camera, the sensor is on a pair of rails and driven across the focal plane with the help of a stepper motor. The effect is something like the flatbed scanner to camera conversions we’ve seen in the past, but [Jimmy] is able to adjust the exposure of the camera simply by changing the integration time of the sensor. He can also change the delay between scanning each column of pixels, making for some really cool long-exposure photography techniques; one side of an image could be captured at noon, while the other side could be from a beautiful sunset. That’s something you just can’t do otherwise without significant digital manipulation outside the camera.
The project featured in this post is an entry in The Hackaday Prize. Build something awesome and win a trip to space or hundreds of other prizes.
A wine bottling company in New Zealand got in touch with [Boz] to solve a problem. They needed a way to automatically determine if a wine bottle was filled or not. What he came up with is a very simple yet very effective fill level sensor that can scan thousands of bottles an hour.
There were a few design decisions that went into the construction of this wine bottle sensor. [Boz] could have used a VGA camera sensor, but given the speed of the bottling line (half a meter per second), pushing all those pixels to a computer and doing real-time image analysis would be difficult. [Boz] settled on a much simpler solution – a 1×128 linear CCD analog image sensor. With a PIC microcontroller, this allows the device to check multiple bottles per second, calculate if the bottle is full or not (or overfilled), and send a ‘pass’ or ‘reject’ signal to the rest of the line.
The rest of the assembly is fairly straightforward with an LED backlight providing the illumination for the CCD and a Bluetooth transmitter for checking out the machine’s settings. On the bottling line, the device has 99% accuracy for both red wines in dark bottles and whites in green bottles. You can take a gander of this device in action on a New Zealand bottling line below.