Tuesday, February 26, 2013

Progress So Far

Over the course of the past few weeks, much progress has been made on the Open Source Spectrometer, although the name is still up for debate. 

Using TI sample code the following has been made to work:

  • The microcontroller running code accepts a buffer of 255 bytes and flips the case of any alphabetic characters received over serial.
  • The driver allows a windows application to interface with the hardware over USB2.0
  • A demo application, written in C++, now allows the sending of buffers to the microcontroller and receives the processed data back. This is a very fast process, since USB can be thoeretically 480 megabits/s. Currently, we are transferring small buffers, so most of the overhead is in dealing with the individual buffers, but high speed will allow us to easily transfer greater than 4kb buffers many times a second. 4kb is the smallest a buffer could be, since we are using 12 bit ADCS (12 bits per pixel), and we have 2048 pixels.

A CAD design of the Open Source Spectrometer has been drafted and is being further revised.


And Tim Cantwell made a pretty cool visualizer program that displays a spectrum on a grid, which will be able to be added into the interface functionality to show data from the spectrometer once the hardware is more complete. His program is written in C++, using open frameworks and openGL for rendering/GUI.

2 comments:

  1. Hi,
    also we are working on an open spectrometer. We are working with arduino and a TC1304AP ccd. Our problem is the ADC, with arduino we can read until 0,1Mhz (thanks to girino), but we can't read until 0,2Mhz. We would like to remain with arduino, for simplicity and cost but perhaps we need to change our ccd for another with a lower frequency. Which ccd are you using? We would like design something really easy to mount. I'm interested in your progress.

    ReplyDelete
  2. Hey Pablo,
    We are currently using a Sony ILX751A sensor, simply because they are relatively easy to acquire. It is the same form factor as most of the other sensors (a ceramic DIP), and it is read the same way. I'm not sure about the TC1304AP, but I discovered with the Sony ccd, the clock timing didn't really matter, and I could read it as slow as 10kHz. What was critical was the timing of the ROG pulse - the signal that essentially determines when the sensor is collecting light. In a spectrometer, this needs to be pretty long (a few ms to a second or so, since the light aperture is only a few um across. Initially, we were testing with the sensor in the ambient light of the room, which meant our ROG pulse had to be around a us to avoid 'clipping' the sensor, which led to alot of confusion (we were blaming the erroneous data on our circuit, when in fact the only problem was the ROG signal was a few orders of magnitude too long).
    -Jorel L.

    ReplyDelete