A device consisting of a Toshiba TCD1304AP CCD sensor, a Wolfson WM8253 Video ADC, a Parallax Propeller, and an FTDI FT232H USB IC

Similar projects worth following
This project aims to provide a high-quality imager for scientific applications. Analog design principals were studied and followed throughout the design phase, to ensure a low-noise environment for the analog signals so as not to reduce image quality.

A spectrophotometer has many uses, but the current options for cheap but high-quality images is limited, as the market is dominated by color CMOS sensors, which offer higher noise due to digital noise in the imaging chip and also due to the color filters on the pixels (Bayer pattern). My goal was to provide a video-speed (60 FPS) spectrophotometer that was based on a low-noise CCD circuit.

I've used a Parallax Propeller for glue logic between the CCD, ADC, and FTDI devices. This is an 8-core microcontroller, so 1 core is effectively dedicated to each of the subsystems, allowing timing of the control lines to remain deterministic and thus jitter-free (as far as a digital state machine can get).

The code I have so far, and the schematics and some (not all yet) of the KiCad footprints are there too (you should be able to find the ones that aren't there, as I downloaded them all, but need to sort through them):

  • 1 × Parallax Propeller 8-core microcontroller -- QFP version
  • 1 × TCD1304AP Sensors / Image
  • 1 × Wolfson WM8253 Video ADC
  • 1 × FTDI FT232h Microprocessors, Microcontrollers, DSPs / USB Microcontrollers

  • Ordering parts became: KiCad BOM Tool work

    nmz78707/07/2014 at 09:00 0 comments

    I got my PCBs a few weeks ago but realized I didn't have the parts to solder onto the board! Rather than being boring and copy-pasting and alt-tabbing a bunch, I wrote a small tool to convert and load a KiCad-generated file to use for searching for parts to buy. Check it out here:

    and stay tuned for updates on the board testing!

  • The last few years up to now

    nmz78706/09/2014 at 07:09 1 comment

    In college I started learning to use spectrophotometers (and even other kinds of spectrometers) for my science degree in Biotechnology. When I looked at their prices, I knew I wouldn't be able to buy even a used unit on eBay for a long long time (because I was in college and was tight on money). So I started learning how they worked, reading up on them, internet wiki article after article on history and optics. Read "Spectrum of Belief: Joseph von Fraunhofer and the Craft of Precision Optics" to try and get an intuitive idea of optics, rather than a purely numbers (engineering) approach. I think I've finally figured out enough of all the relevant areas. Analog Electronics design and circuit layout, mixed signal design (analog connected to digital, and keeping the noise low), optics, and sourcing all the parts. All along I focused on making it easy to assemble and calibrate, making it easy to hack, and above all, being high-resolution at par with the lab equipment required to do my science work.

    I decided that the simplest 'spectrophotometer mount', the layout of all the optical components in a spectrophotometer design, was a concave aberration-corrected flat-field grating. It combines the czerny-turner design's mirrors with the grating, and has some optical engineering done to change the shape so the spectrum is fairly linear on a flat sensor like a CCD or CMOS. A czerny-turner mount has a slit, which controls the initial shape and also the size of the light beam, the beam is then collected and collimated or focused-at-infinity onto the grating, the beam hits the grating and diffracts off (it absorbs then is re-emitted at specific angles, depending on the photon's color) into a rainbow of colors, the beam is then collected and focused to an image. Two concave mirrors and a flat grating would finally focus an image onto a sphere, but since CCD and CMOS camera sensors are planar (a flat-field), the mirror designs need to be modified so the focus is onto a plane. With increased CAD and computational ability, optical design has been able to take the mirrors and the grating and merge them into one optical element. Thus simplifying the instrument to a slit, a concave aberration-corrected flat-field grating, and an image sensor.

    Of course there are spectrophotometer instruments that use rotating stages and single-pixel PMT (photo-multiplier tube) or photodiode sensors, but this simplification comes at a cost of synchronous spectrum recording (getting all the wavelengths at the same time) and adds mechanical complexity and thus increased calibration requirements.

    The current PCB is a 4-layer design, I did this because after all the analog low-noise related reading I did, most people recommended a common unbroken ground plane for analog and digital signal, with delineation of analog and digital areas. Basically by keeping digital lines away from and from not crossing analog lines, after importing the schematic from eeschema into PCBnew, I spent a while re-arranging the components until I though space was utilized properly and traces that were fast (USB data lines) and involved in sensitive operations (CCD and ADC signal and control lines) were relatively unobstructed in paths. I butted the ADC input right up against the CCD output, and didn't cross over the ground plane between there, which is where I placed the power regulator for the analog stage (all the stuff dealing with analog, though the ADC is also connected to the digital power line too, with some filtering first).

    I should have the PCB next week to debug and prove the initial design, get the ADC driver written, and test whether the analog output buffer transistor that the Toshiba datasheet recommends is required. I think it might not be, as I didn't see any loading effect when using my oscilloscope before and after the transistor. I think the Toshiba datasheet might have this for applications where the sensor is in a bar-code reader or something with a few feet of cable between the...

    Read more »

View all 2 project logs

View all 7 instructions

Enjoy this project?



Chase wrote 05/06/2016 at 08:54 point

Excited to start following this.  Keep up the good work and keep us updated!

  Are you sure? yes | no

Friedrich Menges wrote 04/23/2016 at 22:01 point

Hi there, still working on the project? How about the software part of it? I just started this one: Could be helpful...

  Are you sure? yes | no

ABabymaker wrote 07/31/2015 at 03:26 point

For those of you interested, I have a limited supply of slits in different widths. Better than the 2 razor blade method and won't break the bank.

  Are you sure? yes | no

Mikael Djurfeldt wrote 07/20/2014 at 15:55 point
[Moving comment here from subsection for more visibility.] This is a wonderful project! I want to build one myself. I know how to get the electronic parts, but what about the optic part (the "concave aberration-corrected flat-field grating")? Also, what kind of light source should one use, and do you have ideas for the mechanical design of the instrument?

  Are you sure? yes | no

dleemiller wrote 07/22/2014 at 01:29 point
I had the same thoughts as Mikael. This is one of the projects that has been on my backburner for several years. It has been done before, but very cheaply and with poor resolution.

I'm also interested in the choice of grating (and hoping it doesn't cost $500+). And I'm interested to see how you have designed around the TCP1304. I tinkered with that CCD a while back but didn't make much progress before I reached for a TAOS chip instead. The datasheet is quite poor...

  Are you sure? yes | no

grindel wrote 07/09/2014 at 00:35 point
Can the spectrometer determine the makeup of the air? It seems like this would be valuable when looking at air quality or possibly the makeup of engine exhaust.

  Are you sure? yes | no

nmz787 wrote 07/09/2014 at 00:57 point
Maybe, it depends on what you want to look for exactly, how prevalent it is, how distinguishable from natural stuff it is, how sensitive the detector is. I have been designing open-spectrometer with the goal of being useful for scientific work, where accuracy and precision are key. Sensitivity should be on-par with or better than commercially available devices in the $700-$4000 range, as the sensors used in such systems are identical to what I am using (I took inspiration from them), but I am using an higher-quality grating which is often a few thousand dollars extra upgrade. These gratings are more expensive, but less optical components (easier to build) and also aberration-corrected to produce a more linear spread of the wavelengths, with lower noise from 'higher orders' (aka 'ghost' images of the rainbow spectrum) falling onto the detector. This is really great for techniques with extremely low signal-to-noise such as Raman spectroscopy, which is what I've been wanting to use this project for. Getting a Raman system working is a bit more work though, and advanced machine-learning pattern recognition software would probably be required for teasing tiny signals in a complex natural substance like air.

Hope this helps!

  Are you sure? yes | no

Jasmine Brackett wrote 06/16/2014 at 22:28 point
Hello nmz787. Wow. An inexpensive open spectrometer seems like something that could really benefit hobby scientist, or professionals in underfunded countries. I'm really looking forward to seeing your project in action.

Also, you should know we've updated the submission process for The Hackaday Prize, so if you want to *officially* enter this project - login and use the 'submit to' under your project images on the left hand side.

And, we're starting community judging shortly, so now is the time to make sure you've added info to the project so people can clearly see how it's 'connected', and why you should win The Hackaday Prize.

Any questions. Give me a shout. Good luck.

  Are you sure? yes | no

nmz787 wrote 06/20/2014 at 19:29 point
Hi Jasmine, thanks for the comments! I clicked the 'Submit to' link, so I think I'm all set for now. Stay tuned for updates! I should have a demo of my circuit board up within a week or two!

  Are you sure? yes | no

nmz787 wrote 06/14/2014 at 10:37 point
Unfortunately the Spectruino throws away most of the data from the CCD, and the PLOTS (Public Lab) just uses a webcam and a piece of DVD for a grating... not terribly sensitive.

  Are you sure? yes | no

bijtaj wrote 06/04/2014 at 19:49 point
have you seen the Makezine project of building a cheap and open source spectrophotometer? It's called the "safety spectrometer." With very simple hardware ( an Arduino, different colored leds, and phototransistors), Eric Rosenthal (the author of the project) created a very powerful spectrophotometer. Here is the link:


  Are you sure? yes | no

nmz787 wrote 06/04/2014 at 22:16 point
I may have come across it before... mainly what I've been focusing on is using a linear array sensor and making sure the overall design contributes low-noise to the analog section, to ensure high-quality data.

LEDs are unfortunately too expensive when you want to do common laboratory analyses, so I've been working on a grating-based method that uses broad-spectrum light.

Particularly I have two aberration-corrected gratings, one from Richardson Gratings (NY, USA) and one from a Chinese manufacturer I connected with on Alibaba. I will be comparing these two gratings with each other, hopefully the Chinese grating is good, as its about 5X cheaper than the American one!

For light I've been eyeing either Xenon flashbulbs, but more appreciably Deuterium flashbulbs. I found a Chinese seller on Alibaba or Aliexpress for Deuterium lamps and power supplies, but I need to make sure the spectrometer electronics work before I work on the lights!

  Are you sure? yes | no

fl@C@ wrote 06/10/2014 at 19:10 point
There's also the Spectruino which uses a linear ccd ... and the public labs spectrometer which uses a web interface..

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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