ramanPi - the DIY 3D Printable
RaspberryPi Raman Spectrometer
I changed the name from DIY 3D Printable RaspberryPi Raman Spectrometer..! I never really like the length of the previous name.. Probably not great to do it mid-stream, but better late than never.. :)
Be sure to check out the bio that Hackaday.com did on me!!
WHAT IT DOES:
Imagine the keyboard in front of you... It is made of several elements...it's probably plastic, some metal, some silicon, and so on... Now imagine a glass of water, a tasty beverage or your favorite soft drink.. So now let's ask what's in that glass...you probably know there's a bit of water, and a lot of other components.. What if you look at that tasty beverage, and want to find out what chemical compounds are in it.. So take a sample of it, and put it into a 'cuvette' which is a fancy tiny test tube of sorts.. Then insert that into our Raman Spectrometer.. Then run an analysis on it and bam! You can see that your tasty beverage has C2H6O, carbon dioxide, water, etc..
There have even been examples of how you can distinguish different brands of tasty beverages using a Raman Spectrometer! You can do the same thing for other samples, like gasoline, your blood, tears, or even your cat's hair...pretty much anything..
WHO SHOULD BE INTERESTED:
You! Or anyone who is interested enough in hacking and/or science to be on hackaday! Every home lab, school science dept. and hackerspace should have one...Use it to determine any number of things.. Sort your sand collection based on the composition of silica (SiO2) and other materials(meant as a joke but you could if you really wanted to)! Or determine what kind of plastic or metal or ceramic or glue was used to make something... How fresh is my food? What happens to this material when I do this? Do a before and after analysis and find the raman shift! Anyone who is interested in making what they do better.. Of course it takes some knowledge to use, but isn't that the whole spirit of hacking?
HOW IT WORKS:
Basically, it works by shining a really bright laser through some optics to focus down to a sample...That laser light then hits the sample, and depending on the molecules it hits, and what they're doing...the light can be shifted up or down in color.. Some of that light, and some of the laser light is reflected back into the optics and goes back and is reflected through a couple of filters that removes the laser light completely..leaving only the shifted light from the sample.. That light is bounced off of a 'diffraction grating' which is sorta like a prism.. The light is separated and projected onto a camera(ccd) which takes an 'image' of the spectra. Then the computer analyzes that and compares it to a couple of online databases then comes back and tells you what's in your tasty beverage!
Lasers + tasty beverages = Fun....no?
Start off by putting a sample in the cuvette.. Insert the cuvette into the DIY 3D Printable Raman Spectrometer, run the analysis.....the data is retrieved from the internet spectral databases, a match is found...that match is displayed on the users remote terminal... You can store that data in an external database, share it online, or do what you please with it..
1. The laser emits a 532nm (green) beam of light.
2. The 532nm Pass Filter only allows the 532nm (green) light to pass, and filters out anything else.
3. The Cube Beam Splitter passes half of the light on to the Objective Lens, and the other half into the Beam Dump.
4. The Objective Lens focuses the light down to a tiny point in the sample.
5. The light in the sample interacts with the molecules, and depending on vibrations, bond angles, etc. the light is shifted from 532nm (green) to other colors/frequencies.
6. Some of the shifted light and a lot of the original laser light is reflected back into the Objective Lens and is collimated back to the Cube Beam Splitter.
7. The Cube Beam Splitter reflects half of the light to the Filter Assembly and half back into the laser.
8. The Filter Assembly contains two Edge Filters which block the 532nm (green) laser light and allow the other colors to pass. Since this is a low cost system, two edge filters are used instead of one Notch Filter...and so two separate exposures are taken and the images are stacked.
9. The remaining light is collimated by the Bi-Convex Collimating Lens to the Vertical Aperture (slit).
10. The Vertical Aperture (slit) controls the amount of light that enters the spectrometer section, and is a determining factor in spectral resolution.
11. The light from the slit is reflected off the Collimating Mirror on its way to the Diffraction Grating.
12. The Diffraction Grating acts like a Prism and divides the light into separate colors. Since the light originated as 532nm (green), and the shift is typically fairly minor, this light may be close to the original color...but also may be red (lower frequency) or even blue (higher frequency).
13. The light reflected from the Diffraction Grating is reflected by the Imaging or Focusing Mirror onto the Detector Array..
14. The spectra derived from the above process is reflected by the Imaging Mirror onto the CCD Array where it is captured by the raspberryPi for processing.. One image is taken with the first Edge Filter, then another exposure with the next Edge Filter and then some software to stack the images is used together along with some signal processing and possibly multiple exposures to gain as much brightness as possible so the computer can correctly analyze the spectra...
Originally I started out with a different configuration for mounting the optics. Since then, I decided to go with a much better solution where the optics are enclosed in a contiguous structure that eliminates stray beams and keeps ambient light out. It is also easier to set up, and should stay aligned longer in addtion to being more shock resistant and will reduce resonance.. The system is comprised of a number of individual modules, most of which are based around the optics listed above.
I have decided to go with the Crossed Czerny-Turner Configuration for the spectrometer portion.. It seems to be the best fit so far..
OPEN SOURCE: aka THE SOFTWARE
I will start by saying, there is no secret sauce to this project.. I am committed to sharing every detail of how this project works, how to build it and how to get it working...and hopefully how to modify it to suit your needs!
The entire system is based on a raspberryPi.. And uses 4 microcontrollers to accomplish its tasks.
The open source hardware information:
The open source software and library information:
For a more readable version of this, check the gitHub location.. I tried forever to figure out how to get this information on here in a readable format, but there just doesn't seem to be any way..
The device firmware for the controlBoard, interfaceBoard and imagingBoard are located in the gitHub under software and are in 4 formats..Three of which are zip files.. There are the actual C++ files and then the exports from the online compiler...which you should be able to import and compile without issue.. There is the Keil uVision4 .zip file, the mBed online IDE (mBed Tools) .zip file, and the zip archive (With Repositories) version.. As soon as I have some worthwhile code to share, I will start putting the pre-comiled .bin files on gitHub as well...that way you can just drag and drop them to your Nucleo board without concern..
A view from the outside... The whole thing fits in a Prodigy mini ITX case by BitFenix..
The electronics are centered around a raspberryPi. There are three microcontrollers tied to the raspi through rs-232.. The controlBoard, the interfaceBoard and the imagingBoard.. The controlBoard is also tied to the power control board... and at this time, the imagingBoard and the interfaceBoard may be living on the same PCB..
All three boards are based on the ST Microelectronics Nucleo F401RE STM32F401RE MCU and fit into what used to be hard drive trays that slide into the case..using a 3D printed adapter..
The Nucleo F401RE is just one of many platforms supported by mBed.. The boards shown below are prototypes, I'll be publishing the Eagle files for the new boards when I get the bugs worked out with these..
I am using the mBed online IDE to program them.. Say what you will, it works great.. gitHub to firmware..
Schematic for controlBoard can be found here.
- Power Relay for Laser
- TTL Control for Laser
- Monitor Temperature for Laser using DS18B20 sensor
- Control L298 HBridge for Heating/Cooling of peltiers on CCD Array and Cuvette
- PID Monitor and control Cuvette temperature using DS18B20 and L298 HBridge
- Monitor current draw from peltiers on CCD Array and Cuvette using ACS712 current sensor
- Control Beam Shutter using a standard 9gram hobby servo
- Detect Laser Good (verify beam is reaching destination) using a TEMT6000 ambient light sensor
- Open and close Cuvette Tray using stepper motors driven by ULN2003, with optical end stops
- Rotate Filter Wheel Assembly to change from 522nmSP to 550nmLP filters using ULN2003
- Detect Filter Wheel Assembly position using rotary encoder
- Monitor Cuvette Holder for presence of cuvette in tray using a optical proximity sensor
- Accepts power from main power supply and distributed it to other boards
- Contains the L298 HBridge for the imaging and cuvette peltiers
- Arduino Pro Mini (for Adafruit RGB LED Ring which animates depending on activity)
- ILI9341 2.2" TFT LCD Color Display
- Capacitive Touch Panel with 12 'Buttons' using MPR121 touch controller
- Displays system status and mini control interface
- Accepts user input to open/close cuvette tray, etc..
- LED Ring provides feedback regarding status, etc..
- Controls Toshiba TCD1304DG Linear CCD
- Monitors UV index with a SI1145 UV Index Sensor
- *Might, at least in future update control the Linear CCD sliding, which can be used to increase resolution.
- Transmits CCD data to raspberryPi for processing
Please read more......the description for the process has been updated!Read more »