Introduction: DIY Spectrometer) Explore the Unknown ->

Picture of DIY Spectrometer) Explore the Unknown ->

Hey Guys! A Spectrometer is useful for detecting impurities in water and in other substances, or even just telling us what wavelength something is! If you have a mystery laser and you want to know the wavelength, you grab a laser with a known wavelength, and calibrate the Spectrometer, simply by taking measurements and then poof, a scan is done and then you know the wavelength. Spectrometers are super useful in optics, and you can tell the different wavelengths of light.

**Please click on the orange vote ribbon in the upper right-hand corner of this page if you enjoy this Instructable.**

I have attached at the end of this tutorial documents related to the construction and development of this spectrometer. Also, a special thanks to Altium for sponsoring the project! Altium provides circuit design software and you can visit their website at http://www.Altium.com/

Also Altium will be releasing their new Hobby Software for FREE, check it out at: circuitmaker.com!

Now you can download the files for this PCB on the Second Last Step of this Instructable!

Step 1: What You Will Need

Picture of What You Will Need

There a various supplies that you will need for this project; this project takes about an hour or two to build. You Will need:

A CD Drive to take apart appx. $20 (Example: http://www.newegg.com/Product/Product.aspx?Item=N8... )

MSP430 or Arduino ($10 MSP430 or $10 Arduino Pro Mini [or equivalent e.g. Leonardo, Mega, UNO])

EasyDriver Stepper Motor Driver $15

A CD/DVD (Example: http://www.newegg.com/Product/Product.aspx?Item=N8... )

Two 90 Degree surfaces (Can be even be two small boxes)

PhotoTransistor/LDR to detect light $1.50->$5.00 (I used a phototransistor and a photodiode)

Lots of Breadboard Wires/Jumpers (Male and Female or Male/Female

A USB Serial Converter or even just your Arduino/MSP Board $15 (I prefer a Serial Converter)

Several Screwdrivers (One needs to be the tiny sort used for eyeglasses repair $1)

Male Headers (Better to have more of these than you need for just this project)

Solder

A Soldering Iron

Hot Glue Gun

Double Sided Tape

A USB mini-B cord

Small BreadBoard

Tweezers or Xacto-Knife

Twist Ties

Reminder: You can probably get all of these items for a much lower price at Amazon and/or Ebay, but these are some of the distributors which will most likely have these products for some time.

Step 2: Now to Take Apart the CD Drive

Picture of Now to Take Apart the CD Drive

First you will need to take apart the CD Drive to use the parts for the project. There are many valuable parts in the disk drive and I'd recommend keeping all of the extra harvested motors, optics and parts (There is even a Laser Diode)

So all you need for now is the CD Drive and a Phillips Screw Driver

Step 3: Unscrew the First Set of Screws

Picture of Unscrew the First Set of Screws

On the Bottom of the CD Drive there should be a set of four screws to allow for one to access the drive.

Step 4: Take the Top Off

Picture of Take the Top Off

Now that you have removed the screws, you can now simply take off the Panel. This Flat(ish) panel will be used at a later time to mount all of the parts.

Note: You may not actually have to pry off the top, but in my two cases I needed to.

Step 5: Now Start Taking Out the Circuit Boards

Picture of Now Start Taking Out the Circuit Boards

Now start removing the circuit boards inside of the CD Drive. It should be relatively easy; mine did not have any screws, but only clips. Depending on the CD drive that you have will be dependent on what you actually need to do to take out the circuit board. You can also start disconnecting the wires. Try not to break the wires. (I know sometimes it is hard not to accidentally break a wire, but is not really a requirement, but do not break the stepper Motor wire)

Step 6: Now to Get the Metal Frame Off...

Picture of Now to Get the Metal Frame Off...

Now very simply get a screwdriver to push the two tabs on each side of the disk drive, then you should be able to pry the drive open from the top side. Take the metal frame off; you will not need this for the project (unless you want to use it as a 90 degree mount...) It might be a little hard at first to take off, but if you try to pry if off and it starts coming out, it might just a bit hard to take off.

Step 7: Now Make the Disk Drive Go Out.

Picture of Now Make the Disk Drive Go Out.

Take a battery and attach it to the two leads of the DC motor. This will allow for the motor to spin in a direction. If the motor is running and the disk tray is not coming out, then try switching the Polarity (+ and - of the the Battery on the motor) The tray should come out.

Step 8: Take Out the Sensor Bay

Picture of Take Out the Sensor Bay

Unscrew screws mounting down the Sensor Bay. Then Take out the Sensor bay.

Step 9: Unscrew the Brushless Motor

Picture of Unscrew the Brushless Motor

Unscrew the Brushless Motor. You will not need this for this project, but you can save it for later. In this case though, the Stepper motor is attached to the brushless motor subassembly and you will need to desolder the connector at a later time to wire the Stepper Motor.

Step 10: Grab Your Small Screwdriver

Picture of Grab Your Small Screwdriver

Now you need to grab your small screwdriver to take out the current sensor and laser array.

Step 11: Take Out the Sensor/Laser Array

Picture of Take Out the Sensor/Laser Array

Start unscrewing all of the screws that are holding down the sensor array and Laser diode. Then pry the boards off, because they are glued to the assembly. Be careful it might be a good idea to not break any of the connections just in case you want to use some of the parts for another project.

Step 12: Take Out the Rubbery Things and the Beamsplitter Lens

Picture of Take Out the Rubbery Things and the Beamsplitter Lens

First take out all of the large rubber things in the mounting holes, then take out the beamsplitter inside of the assembly head.

Step 13: Glue Your Sensor

Picture of Glue Your Sensor

Depending on what intensity you are expecting, and the angles that you want to hit your sensor, you can either mount it on the front, where there is a greater chance of being hit by light, or inside of the assembly head where there are less chances of being hit by a beam of light.

Step 14: Mount the Linear Assembly

Picture of Mount the Linear Assembly

Grab your 90 Degree mount and the base that you took off before and then the assembly. Glue all of the parts together in such a fashion that the long-ways of the assembly is up and the short-ways of the assembly is parallel to the short-ways of the base-plate.

Step 15: Grab Your CD/DVD and Tweezers

Picture of Grab Your CD/DVD and Tweezers

Get your CD and tweezers because its time to take apart a CD/DVD!

Step 16: Taking Apart the CD/DVD

Picture of Taking Apart the CD/DVD

First grab your tweezers or X-acto knife and a CD/DVD. Simply separate the disk into two by placing the tweezers between the two layers from the center hole of the disk. Then go all the way though and soon you will have two disks.

Step 17: Getting Your Diffraction Grating

Picture of Getting Your Diffraction Grating

Now get the disk that does not have the picture on it, and cut a part of the disk that does not have any silvery material on it. This will be your diffraction Grating. (It might not be purple, it depends on the CD/DVD)

Step 18: Placing the Grating

Picture of Placing the Grating

Grab your second mounting block and put double sided sticky tape on the diffraction grating and the and 90 Degree mount. Then in order to be able to adjust the location of the mount put double sided sticky tape on the bottom too so that the grating can be moved for one position to another.

Step 19: Starting With the Electronics

Picture of Starting With the Electronics

Remember that Connector that I told you to hold onto? Well now you need the Stepper Motor connector so that you can interface with the Stepper Motor. So desolder the connector and solder it to Four header leads so that it can be accessed more easily. After soldering, then reattach the connector to the Stepper Motor.

Step 20: Set Up the Stepper Controller

Picture of Set Up the Stepper Controller

Grab the Stepper Motor controller and some header that are One 1x4 pin One 1x3 pin and Two 1x2 pin headers. Solder these headers onto the Motor Ports A and B; M+ and GND; GND, DIR and STEP; and 5V pins. VERY IMPORTANT: IF YOU ARE USING THE MSP430 THEN YOU WILL NEED TO ALSO SHORT THE 3/5V JUMPPER SO THAT THE MSP430 IS SAFE.

Step 21: Readying the Chip and the Stepper Controller

Picture of Readying the Chip and the Stepper Controller

Put the MSP430G2553 and Stepper Driver on a Breadboard. Mount the breadboard to the base plate.

Step 22: Wire the Stepper Motor

Picture of Wire the Stepper Motor

Now wire the Stepper Motor. Read the pictures for a better description, but basically you just need to attach wires from the stepper to the Stepper A ports and Stepper B ports.

Step 23: Wire the GNDs and VCCs

Picture of Wire the GNDs and VCCs

Now just wire each GND to the Negative Rail and M+ to the right positive rail and All of the rest of the VCCs to the left Positive Rail.

Step 24: Wire the Stepper Control to MSP430

Picture of Wire the Stepper Control to MSP430

Connect STEP to P2_4 and DIR to P2_5. Then the control for the Stepper is established.

Step 25: Attaching the Sensor

Picture of Attaching the Sensor

Now attach one of the two wires to the GND or VCC (User Preference) and the other to P1_3.

Step 26: Attach the Serial Conveter

Picture of Attach the Serial Conveter

Connect RX from the Serial Converter to the fourth pin on the left of the MSP430G2553 (P1_2) and TX to the Third pin on the left of the MSP430G2553 (P1_1). And attach GND to one of the - rails.

Step 27: Calibrate Your Machine!

Picture of Calibrate Your Machine!

Grab your calipers or measuring utensil and measure two distances: Distance between the center dot and the diffracted dot and the distance from the grating to the assembly (X Axis). First measure the distance to the Assembly head. Next shine your laser at the diffraction grating and mark where the bottom dot is and move the assembly head to where to top dot is. Measure this distance; make sure to record these distances, you will need them in the next step.

Step 28: The Code

Picture of The Code

This code can be ported to Arduino IDE From Energia and works perfectly on both platforms.

You can download energia here: http://energia.nu/download/

CHANGE THE x AND THE D AND THE nm VARIABLES TO MATCH YOUR RESULTS FROM THE LAST STEP! Otherwise your calibration will be my calibration for my machine, not yours. It will then fail to provide accurate data.

The Below Code is for use with an SD card and Live stream.


#include "SPI.h" 
#include "pfatfs.h"

#define cs_pin      10             // chip select pin 
#define read_buffer 128             // size (in bytes) of read buffer 

  unsignedshortint bw, br;//, i;
  char buffer[read_buffer];
  int rc;
  DIR dir;				/* Directory object */
  FILINFO fno;			/* File information object *///I/O Belowconstint StepperMotor = P2_4;
constint StepperDirection = P2_5;
constint Sensors[] = {P1_3}; // Add more sensors here!\//Constants for calibration below!constdouble nm = 405; // Known Calibration source Frequencyconstdouble x = 33.28; // Distance of point above the "Screen"constdouble D = 48.78; // distance to the "Screen"constdouble degreesperstep = 18; // Degrees per step for the stepper motorconstdouble microstepping = 8; // This allows for you to determine how often you want the Sample to be taken (inverse microstep)constdouble mmPerRotation = 2.76; // This is the distance between the two teeth of the spindle which moves the sensor up and downconstdouble heightofTray = 38.00; // Under estimate this a bitconstdouble starty = 32.35;
constboolean SDCARD = false;

/////////////////////////Fiddle with the below at your own risk!///////////////////////////////////////////constdouble stepsperrotation = 360/degreesperstep;
constdouble microstepsuntilend = heightofTray/mmPerRotation * stepsperrotation * (microstepping);
constdouble d = (nm*1e-9)/sin(atan(x/D));
//const double d = 720e-9;//const double x = (nm*1e-9*d);int wavelengthvIntensity[sizeof(Sensors)-1];
int datafile = 0;
double cnt = 0;
char buf[30];
double tempnm = 0;
double currenty = 0;
constdouble zero = starty-x;
char ksk = '0';

voidsetup() {                
  pinMode(PUSH2, INPUT_PULLUP);
  pinMode(StepperMotor, OUTPUT);     
  pinMode(StepperDirection, OUTPUT);
  digitalWrite(StepperMotor, LOW);
  digitalWrite(StepperDirection, LOW);
  Serial.begin(9600);            // initialize the serial terminal
  if (SDCARD == true){
  FatFs.begin(cs_pin);             // initialize FatFS library calls
  }
   for (int i=0;i<sizeof(wavelengthvIntensity);i++) {
     pinMode(Sensors[i], INPUT);
   }
   for (int i = 0; i < microstepsuntilend; i++) {
    digitalWrite(StepperMotor, HIGH);
    delayMicroseconds(250);          
    digitalWrite(StepperMotor, LOW); 
    delayMicroseconds(250);   
   }
   digitalWrite(StepperDirection, HIGH);
}
void die (int pff_err){
         Serial.println();Serial.print("Failed with rc=");Serial.print(pff_err,DEC);
         for (;;) ;
  }
void writedata() {
        rc = FatFs.open("Data.csv");
	if (rc) die(rc);

	Serial.println();
        Serial.println("Writing scan Data");
        delay(100);
        bw=0;
        for (int i=0;i<sizeof(wavelengthvIntensity);i++) {
                sprintf( buf, "%lu, ",wavelengthvIntensity[i]);
                int StringLength =  strlen(buf);
		rc = FatFs.write(buf, StringLength, &bw);
                if (rc || !bw) break;
	}
        
        sprintf( buf, "%lu\n\r",tempnm);
        int StringLength =  strlen(buf);
	rc = FatFs.write(buf, StringLength, &bw);
	if (rc) die(rc);
	rc = FatFs.write(0, 0, &bw);  //Finalize write
        if (rc) die(rc);
        rc = FatFs.close();  //Close fileif (rc) die(rc);
}
voidloop() {
  if (ksk == '1') {
    ksk = 0;
    cnt = 0;
 while (cnt < microstepsuntilend) {
  for (int i=0;i<sizeof(wavelengthvIntensity)-1;i++) {
    wavelengthvIntensity[i] = analogRead(Sensors[i]);
    Serial.print(wavelengthvIntensity[i]);
    Serial.print(", ");
  }
  Serial.println(tempnm);
  if (SDCARD == true) {
    writedata();
  }
  digitalWrite(StepperMotor, HIGH);
  delayMicroseconds(1);          
  digitalWrite(StepperMotor, LOW); 
  delayMicroseconds(1);       
  cnt++;
  //Serial.println(currenty);
  currenty = zero+((cnt/microstepsuntilend)  * heightofTray);
  tempnm = d*sin(atan((x+currenty)/D))*(1e9);
  }
  digitalWrite(StepperDirection, LOW);
  for (int i = 0; i < microstepsuntilend; i++) {
    digitalWrite(StepperMotor, HIGH);
    delayMicroseconds(250);          
    digitalWrite(StepperMotor, LOW); 
    delayMicroseconds(250);   
   }
   digitalWrite(StepperDirection, HIGH);
  Serial.println("$");
  }
  ksk = Serial.read();
}

The Code Below is the Code for the spectrometer: Live Mode Only.

//I/O Belowconstint StepperMotor = P2_4;
constint StepperDirection = P2_5;
constint Sensors[] = {P1_3}; // Add more sensors here!\//Constants for calibration below!constdouble nm = 405; // Known Calibration source Frequencyconstdouble x = 37.65; // Distance of point above the "Screen"constdouble D = 50.00; // distance to the "Screen"constdouble degreesperstep = 18; // Degrees per step for the stepper motorconstdouble microstepping = 8; // This allows for you to determine how often you want the Sample to be taken (inverse microstep)constdouble mmPerRotation = 2.76; // This is the distance between the two teeth of the spindle which moves the sensor up and downconstdouble heightofTray = 38.00; // Under estimate this a bitconstdouble starty = 32.35;

/////////////////////////Fiddle with the below at your own risk!///////////////////////////////////////////constdouble stepsperrotation = 360/degreesperstep;
constdouble microstepsuntilend = heightofTray/mmPerRotation * stepsperrotation * (microstepping);
constdouble d = (nm*1e-9)/sin(atan(x/D));
//const double d = 720e-9;//const double x = (nm*1e-9*d);int wavelengthvIntensity[sizeof(Sensors)-1];
int datafile = 0;
double cnt = 0;
char buf[30];
double tempnm = 0;
double currenty = 0;
constdouble zero = starty-x;
char ksk = '0';

voidsetup() {                
  pinMode(PUSH2, INPUT_PULLUP);
  Serial.begin(9600);  // Hah, I forgot to add this in Special thanks to tommy_goh1997 for spotting the bug!
  pinMode(StepperMotor, OUTPUT);     
  pinMode(StepperDirection, OUTPUT);
  digitalWrite(StepperMotor, LOW);
  digitalWrite(StepperDirection, LOW);
   for (int i=0;i<sizeof(wavelengthvIntensity);i++) {
     pinMode(Sensors[i], INPUT);
   }
   for (int i = 0; i < microstepsuntilend; i++) {
    digitalWrite(StepperMotor, HIGH);
    delayMicroseconds(250);          
    digitalWrite(StepperMotor, LOW); 
    delayMicroseconds(250);   
   }
   digitalWrite(StepperDirection, HIGH);
}
voidloop() {
  if (ksk == '1') {
    ksk = 0;
    cnt = 0;
 while (cnt < microstepsuntilend) {
  for (int i=0;i<sizeof(wavelengthvIntensity)-1;i++) {
    wavelengthvIntensity[i] = analogRead(Sensors[i]);
    Serial.print(wavelengthvIntensity[i]);
    Serial.print(", ");
  }
  Serial.println(tempnm);
  digitalWrite(StepperMotor, HIGH);
  delayMicroseconds(1);          
  digitalWrite(StepperMotor, LOW); 
  delayMicroseconds(1);       
  cnt++;
  //Serial.println(currenty);
  currenty = zero+((cnt/microstepsuntilend)  * heightofTray);
  tempnm = d*sin(atan((x+currenty)/D))*(1e9);
  }
  digitalWrite(StepperDirection, LOW);
  for (int i = 0; i < microstepsuntilend; i++) {
    digitalWrite(StepperMotor, HIGH);
    delayMicroseconds(250);          
    digitalWrite(StepperMotor, LOW); 
    delayMicroseconds(250);   
   }
   digitalWrite(StepperDirection, HIGH);
  Serial.println("$");
  }
  ksk = Serial.read();
}

Step 29: Python

Picture of Python

First download python: https://www.python.org/downloads/. The packages that you will need for Matplotlib (to Graph) are: (Matplotlib), numpy, libpng, freetype, six, serial, dateutil, and pyparsing. If you are running debian/ubuntu you can apt-get them with sudo apt-get build-dep python-matplotlib If you are running windows then you can download all of them from http://www.lfd.uci.edu/~gohlke/pythonlibs/ That is what I use because of convince. All of the packages for windows are practically all on the same page, just do a ctrl+F and then you can find any of the packages you need.

Then you should be able to use my code for Graphing the information.

Edit the COM port in "Write Data.py" and run test6.py to run the Spectrometer. Press Rescan to read from the spectrometer.

Step 30: Enjoy!

Picture of Enjoy!

Now you should have a working Spectrometer!

Enjoy!

If you need help or if I didn't explain something well, feel free to ask and I shall happily help you!

Thanks

Have a Great Day!

Step 31: PCB Files

Picture of PCB Files

Attached are the Altium Project files and in the "Project Outputs for Spectrometer" Folder are the Drill Files and Gerber files for the 1 Layer board. This board consolidates all of the wiring steps into a simple PCB board that you just have to solder basic connectors on. You can get some here: https://oshpark.com/ or any other PCB manufacturer.

Step 32: References

Comments

rakhee1305 (author)2017-02-28

Hello Simon,

Iam trying to make this as my project.Can you please help me with software part how to download library files and thier execution.

罗伯特背 (author)2016-09-24

what sesnors do i use to get the wavelenth as my x axis and the intesnsity as my y axis

metaphysicalplant (author)2016-04-27

Hey hey, I'm a bit of a noob at this so I'm not sure if this is a really stupid question, but where and how exactly do you connect this to the computer? Your instructions contain no information on this as far as I've found. Do you solder some of the wires to the mini USB? I'm pretty confused. I'll probably get back to you with some other questions soon.

There is a USB to serial converter that is wired up to the UART pins of the MSP430G2553 (Then its a COM port)

RaviP6 (author)2016-03-14

hello , i am building a spectrometer using an camera but i am not able to plot the image wavelength to intensity graph ,can you help me out.This is what i am looking for to obtain.

mrayw (author)RaviP62016-03-25

RaviP6, How far have you gotten towards that? Do you have an image like the top part? If so, I think you can use ImageJ (which you can download free) to get the bottom half from the top half.

albert.aguirre.319 (author)2015-07-31

What are the effective wavelengths for this setup?

Dependant on diffraction grating effective wavelengths and on phototransistor effective wavelengths.

GrayAlien (author)2015-05-11

Hello:

I have been working on this for about a month and I have a few question. In step #24 why do you have a gear motor attached to the long cylinder shaped object? Also does the long cylinder shape object just hold the separated cd? In step 27 the separated cd is attached to something completely different (clear and black box) and a laser placed on top of it. Is this they way to do this step or do I use the long cylinder shaped object and place the laser on top of it? I am at the point I need to place my separated cd and laser but I am confused in how to do so and if I need to place a geared motor for some reason. Can you please make this a little clearer.

BTW I like this design.

Thanks

~GA

simonfrfr (author)GrayAlien2015-05-11

It actually doesn't make a difference, The geared Motor is just there and is not needed for the project. What happened was that I was building the project originally for myself, but then halfway into it, I was like, Let me write an instructable so that others could make spectrometers too, so a few of the materials changed, but The long cylinder shaped object is a 90 degree mount, or box, as is the part holding the moving head, sorry for the confusion, if you need anything else cleared up, just let me know, I'll be happy to help! :)

-Simon

GrayAlien (author)simonfrfr2015-05-11

Thank you for getting back to me.

In the first picture of this post there is a black object on the right hand side of the vertical frame (opposite side of the stepper motor). Is this just a brace or does it serve another purpose for this project?

Kind regards,

~GA

simonfrfr (author)GrayAlien2015-05-11

Just a brace,

-Simon

RaahishK (author)2015-01-05

Hey! I really like your design and am planning to make it. I am doing a research on the impurities present in hard water in different areas in my town. I am planning to use this spectrometer to find out the impurities (from the wavelengths) and the concentrations of the ions. How can I do it using this instrument? You mentioned in the beginning of the instructable that this is possible. Please help me out here! Thanks!

RaahishK (author)RaahishK2015-01-05

Also, I am looking for an alternative to the stepper motor controller. Is there a way to interface the motor with Arduino? (I am using Arduino UNO for the whole project). Can you describe the details of the circuit in case of the Arduino Controller? What components go to which pins?

simonfrfr (author)RaahishK2015-01-05

To measure the concentration of impurities first you need to take a sample of pure water, passing a laser through it, Then you need to put a known quantity of impurities into the water, the wavelength. You will have to do this repeatedly at different dosages, then interpolate the data. The more the data the better your interpolated model. I am working on some software to take care of things like that, but it is no where near ready. (A few Months at least!) No, Arduino does not provide enough current (and good luck with getting microsteps). You need a motor controller to drive your stepper motor. The pin differences are up to you, they honestly don't really matter too much (If you want just use what I have provided below). You still need to switch the pins in the code though. Instead of:

const int StepperMotor = P2_4;

const int StepperDirection = P2_5;

const int Sensors[] = {P1_3}; // Add more sensors here!\

Use for example:

const int StepperMotor = 4;

const int StepperDirection = 5;

const int Sensors[] = {3}; // Add more sensors here!\

ConorP (author)2015-01-03

I'm really enjoying the build and have been sourcing the parts for the last while. I just have one question.

When removing the beamsplitter from the assembly head what exactly should this look like? With the CD drive I'm using I have a circular lens on one side of the assembly head and what looks like a cube of glass on the other side of the assembly head opposite the circular lens. There is also another lens on the same side as the cube.

I've attached two images to clarify what I'm referring to. Do I remove all 3 of these?

Many thanks!

simonfrfr (author)ConorP2015-01-03

Yes, remove all of them (or not). I personally put the sensor on the front of the head, and the optics would not effect the photo-transistors, because they were just not used, but the idea was to use the optics for a different project. It really doesn't matter, and is solely up to you. Good luck! I am happy to hear from you and am glad to see that other people are making this too!

Simon

atairu (author)2014-12-30

Very nicely done and well explained. As a trained chemist, I know this project can be modified to make spectro-photometers (changeable wavelenghts) that can be used in chemistry laboratories in less advanced countries of the world. Good project.

simonfrfr (author)atairu2014-12-30

My buddies and I are thinking of turning these into open source kits which also have some open source software so that DIYers and Teachers can have access to expensive equipment for relatively inexpensive prices. Thanks for the complement, Simon

liquidhandwash (author)2014-12-26

Congratulations on winning the formlabs comp. cant wait to see what you make next

simonfrfr (author)liquidhandwash2014-12-26

Thank-you sooo much! I would like to thank everyone for all of the interest shown in this project! When I found out that was a great surprise! I plan on making several more optics instructables and compiling them into a guide. Including an inexpensive interferometer, so that you can measure extremely small changes in distance, and several other tutorials on nonlinear optics. I hope that everyone has happy holidays, and I wish you a very Merry New Year!

straina1 (author)2014-12-17

Firstly, very nice on the layout and build. I was curious do you have the know how/time to build a waterproof PAR meter?

simonfrfr (author)straina12014-12-18

Making an Underwater PAR meter shouldn't be too hard. Grab a photodiode, and encapsulate it in a long sleeve, then for the tip that will be in the water, get transparent Glass/Plastic and hot glue it to the sleeve so that the photodiode can be placed into the water. Then hook up the diode to an MSP430 (or Arduino) and you need to test at different light intensities to know what the actual intensity of the light is, but you also have to know what the intensities are, so then based on that value you can simply hook it up to a bright LED and hook up a PWM input, then just add in what intensity it needs to be, and the LED will adjust brightness according to the environmental intensity in the tank.

straina1 (author)simonfrfr2014-12-18

I guess what i should be asking is, how user friendly is altium or arduino? As a novice in that dept, but a half way intelligent fabricator of a lot of other things, would i be able to teach myself how to make the PAR meter as well as other things, ie: timers and ph readers?

simonfrfr (author)straina12014-12-22

Arduino is a very user friendly community, you can visit their website and get help very quickly at arduino.cc. When I have some time, I'll write up an ible for that using MSP430. Shouldn't be too difficult to do!

simonfrfr (author)straina12014-12-18

Well, I probably can whip up some instructions, after all Christmas break just started for me, so I should be able to help you out a bit. Email me at newtonlabs@bellsouth.net (I can probably reply to you much faster there!)

Simon

straina1 (author)simonfrfr2014-12-18

Thank you for the info. I need to look into arduino.

dpizetta (author)2014-11-18

Very nice project, I was thinking of build a NMR spectrometer in the future with Arduino- an inexpensive one. Thanks for sharing and I think that would be better call your as Spectrophotometer.

amayas (author)dpizetta2014-11-20

Hi ... do you want to join our efforts for the NMR project? or are you in the fnalization phase ?

dpizetta (author)amayas2014-11-23

I reply for you with a private message.

simonfrfr (author)dpizetta2014-11-18

Thanks!

iam_maker_leo (author)2014-11-19

What a wonderful.... spectometer...

And I click Vote...

good luck

simonfrfr (author)iam_maker_leo2014-11-19

Thanks!

victoreac (author)2014-11-19

Would a pololu step driver (like the ones used in 3D printer with ramps 1.4) replace the one that you use here?

Awesome project!

simonfrfr (author)victoreac2014-11-19

Sure, but I cannot garuntee that the code will work exactly the same way. It seems that it should work because the exact same pins seem to be offered, but you might need to pull the enable pin high or somthing. Give it a try, if you can give me the part number of the stepper controller, I could probably be more helpful! Thanks! :)

victoreac (author)simonfrfr2014-11-19

Thanks for the fast answer.
I'll will play around but I asked because I'm really noob.

I got some updates after questioning and it appears that they are about the same, besides the pololu supports more current. http://www.element14.com/community/thread/18567/l/arduino-mega-cnc-easydriver-or-pololu-shield

EasyDriver uses a A3967 and the pololu a A4988.

Thanks for the help!

tomlava. made it! (author)2014-11-18

Could you use a standard card stock framed diffraction grating, the cheap kind with 13,500 lines/mm or maybe more? Like this one?

simonfrfr (author)tomlava.2014-11-19

You can use the stock framed diffraction grating, that's what I did after to measure IR light for somthing else.

redrooster (author)2014-11-14

Congratulations mate,You've nailed it. This instructable has got to be one of the best Ive ever seen. The SYNers post says it all for me.

simonfrfr (author)redrooster2014-11-14

Thanks!

dgateley (author)2014-11-13

I'm looking for a way to assay the concentration of caffeine in a liquid like coffee, tea or soft drink. Could this accomplish that?

wobblycogs (author)dgateley2014-11-14

You would need to have at least two reference samples of known concentration to calibrate your machine with and even then you would have to assume that your machine had a linear response. Ideally you would want to fit a beam splitter so that you could record a known concentration at the same time as the sample which you could use to account for any variation in the machine (e.g. it's not fully warmed up). Making up a known sample isn't hard but to do it accurately requires either huge amounts of material or accurate equipment (volumetric flasks and a four figure balance). The other problem you'll face is picking out the caffeine peak in amongst the peaks for other chemicals in the sample. I would expect you'd need to purify the drink to extract just the caffeine first.

dgateley (author)wobblycogs2014-11-14

Thanks for the injection of realism. :-)

PainKing (author)dgateley2014-11-14

A spectrometer is a Qualitative instrument. to do an assay you need a Quantitative procedure. the spec will tell you if it is in there, but it will not tell you how much is there.

simonfrfr (author)dgateley2014-11-13

It should be able to. It would be a cool thing to test out! These guys seem to have done it with solutes: http://www.austincc.edu/biocr/1406/labm/ex2/prelab...

Tea and soft drinks for sure should be possible, but the one I cannot be certain about is coffee. Hey, but it would be cool, because then you should be able to tell how many calories there are in the drink that you just "scanned" :)

Jonas_BR (author)2014-11-14

i was working with storage of hydrogen in magnesium and we had a big problem at discover how much hydrogen been absorbed by the metal. we use a sievert machine for measure the gas before and after. I think if use this little version of spectrometer in vacuum camera has been more fast the classification of materials. I´m out of research now, but it´s a great idea! (really, really great!)

P.s.: sorry my mistakes, English is not my native language:)

simonfrfr (author)Jonas_BR2014-11-14

Yes, you are right, this does take longer to update, this is due to the fact that this is mechanically based versus a static structure, but do remember that CCD Spectrometers are generally tens of thousands of dollars. Also the majority of them have very limited ranges, but very have fast update times. Now what you could do to make this much faster is take apart a scanning machine that scans papers. You can use that sensor, which is large, to replace the entire moving assembly, but note, you will also need a microcontroller much heftier to process that data. Good luck!

rodrique (author)2014-11-14

CAN THIS DETECT RADON GAS,?

COULD IT BE USED FOR MINERAL DETECTION?

simonfrfr (author)rodrique2014-11-14

Radon: http://www.researchgate.net/publication/225091243_...

Although for Radon it is probably best to use a pin-diode detector or such because the spectrometer is more for the bending of light... You would then pick up alpha particles and such! I don't have any Radon flying around, but I guess in the rest of the country there are radon emissions; that is what you are talking about right?

For minerals, maybe it can't tell you exactly what it is, but it should be able to pick up the impurities in the mineral, and at the same time, it should be able to tell you the structure, because the light will be redirected at different angles. (Maybe, I'll have to give it a try!) I think that it is best with liquids!

The SYNer (author)2014-11-13

Wow. I remember when instructibles was just a bunch amateurs playing with duck tape and tin cans. Now there are people making near lab grade equipment. Spectrometers, microscopes, centrifuges, even whole supercomputers from scratch. Instructibles will never cease to amaze me.
Great ible man, just great.

About This Instructable

94,936views

627favorites

License:

Bio: Hey YOU! Yeah, I'm talking to you who is reading this. Send me ideas for instructables, like things that you are wondering how to ... More »
More by simonfrfr:DIY Spectrometer) Explore the Unknown ->Zombie Attack! Easy to build!Newton Labs Projects Arduino Guide (2012)
Add instructable to: