The Spinning Spectrometer

A different take on the good 'ol spectrometer: spinning the grating to get visible light spectra. DIY style.

Similar projects worth following
Spectrometers are great tools to figure out which wavelengths (i.e. colours) are emitted or absorbed by a material. Chemists use it to figure out chemical compositions of samples and astronomers take spectra to find out more about atmospheres of planets or the make up of some distant star.
Of course there's already a good deal of DIY spectrometers out there, for example, or the spectruino, and so on. Most of the rely on a stationary grating and a linear array of CCD.
Not this one, though!
The idea is to spin the grating and use a single detector to record the wavelength vs intensity data. In theory - and depending on the motor, geometry, etc - this should give me an easy way to increase the number of pixels and the resolution of the spectrometer.
Oh, and I forgot to mention: this is going to be on the cheap side, using bits and pieces every hacker/maker is likely to have lying around.
Read below

What does it do?

At its heart a spectrometer does the very same thing than a prism: it splits an incoming beam of light into its spectral components. So for example for pure white light we observe a rainbow, as white light contains all wavelengths ("colours"). In general, though, what we're looking at isn't pure white, but some combination of wavelengths, and how much of each there is can be detected with the spectrometer. All this is used for example by chemists to find out what elements are inside a compound material, or astronomers to get info on the composition of distant starts. Or maybe you just want to know what wavelength your LED/laser diode/lamp emits.

How does it work?

We shine light through a thin slit onto a diffraction grating. Here, the grating is a reflective one, but transmission gratings work along the same lines. When the light hits the grating each little slit (the lines where info will be written onto the DVD in our case) acts as a new secondary circular wavefront. All those waves will interfere with each other giving rise to several orders of diffraction. For more information on the physics of interference and diffraction check this link.

The equation that tells us everything we need to know is this one:n is the diffraction order, lambda the wavelength, d the line spacing on the grating, and alpha and beta are incident and diffracted angle.

OK, so why are we spinning the grating? Of course we could use a stationary grating and record the spectrum by placing an array of photo-sensors at the correct angle from the incoming light.

I have instead chosen to use just one photodiode and change the angle of the incident light by rotating the grating. With a bit of maths and special attention to the sign convention of angles the equation above can be re-arranged to show that there is a nearly linear relationship between the incident angle and the wavelength.

A few more details

Coming back to the Spinning Spectrometer the last bit above means that as long as I know the angle of rotation I can relate the measured intensity to wavelength, i.e. colour.

The protocol for the spectrometer (see Arduino code) is therefore the following:

  1. Find home position. For me that's where the little magnets are attached to the grating mount. I use the Hall sensor to measure the Hall signal during one full motor revolution and determine the maximum signal. Then the motor slowly rotates until that maximum value is found. You could just as well set the initial position by hand though...
  2. Go to starting point. Optional, but useful if don't want thousands of points (and the associated wait while transferring data over serial).
  3. Measure. Repeat this sequence: rotate grating 1/8th step, read photodiode circuit, store value.
  4. Send data and display, go back to home.

Another detail regarding the grating: mount the piece of DVD in a way such that the lines on it are vertical. If you can, use a piece that's closer to the outer rim, as the lines will have less curvature there.

Finally, why is the grating curved?

This has got nothing to do with the spectrum itself, but with the spectrometer's resolution. The spectrum only depends on the line spacing. The reason for the curve is that the beam will diverge after diffraction which in turn will broaden the spectral lines. This can be fixed by inserting a focussing lens or focussing mirror. The latter is accomplished by curving the reflective grating / piece of DVD.

  • 1 × DVD (preferrably blank) best to use a blank one, but really any DVD or even CD will do
  • 1 × Arduino Nano
  • 1 × EasyDriver board
  • 1 × stepper motor use a motor with at least 200 steps/revolution
  • 1 × photodiode here: Osram BPX65, but again any photodiode will do

View all 12 components

  • Spectrum of a laser pointer

    andreas.betz10/27/2015 at 21:25 0 comments

    Here is the spectrum of a laser pointer taken with the spinning spectrometer

    And here's the same zoomed in a little

    So, according to my spectrometer the laser pointer emits at about 690nm and I've got about 10nm resolution.

    When I measured the laser pointer in a more professional machine it turned out that my angle-to-wavelenght conversion is a bit off, though: the real wavelength is 653nm.

    The resolution remains at 10nm, however, since that's down to my machine (input slit, optics, DVD as grating, etc). And 10nm isn't all that bad for a homemade machine, I'd say :)

  • Maker Faire Rome 2015

    andreas.betz10/18/2015 at 06:36 0 comments

    Find The Spinning Spectrometer at Maker Faire Rome 2015!

    Stall V26.


View all 2 project logs

  • 1
    Step 1

    The diffraction grating

    Take your DVD and split it into its 2 layers using flat tweezers or a scalpel. One layer should be (mostly) shiny, the other transparent with a purple hue. Cut a nice rectangle out of the shiny part.

  • 2
    Step 2

    Print / fab grating mount, sensor holders

  • 3
    Step 3

    Entrance slit

    The entrance slit for the light you want to examine can be made from 2 pieces of tin foil. Cut a large hole into a piece of wood/cardboard and tape the 2 pieces to it, leaving a small vertical gap.

View all 6 instructions

Enjoy this project?



John wrote 05/01/2017 at 01:32 point

Hello there, how did you accurately measure the initial angle of incidence on the diffraction grating? This information is necessary to plot the wavelength x-axis of the spectrum, yes? 

Also, is the incidence ray set up such that it hits the middle of the grating, so that when you rotate it, the position of the incident ray on the diffraction grating does not change?

Edit: To clarify my second question, is the incident ray set up in such a way to ensure that it hits the pivot point of the rotatable diffraction grating? This would simplify calculations I think for when you need the wavelength x-axis of the spectra plot, assuming you are calibrating the spectrometer's wavelength axis analytically.

Thank you.

  Are you sure? yes | no

andreas.betz wrote 10/20/2015 at 16:01 point

Thanks Jasurbek!

The spectrum is caused by the lines on the CD/DVD, which are always at the same distance ( on a DVD it's always 720nm, for example). So it will work the same with any DVD.

The piece of DVD is bent in order to focus the spectral lines on the photodiode. The whole thing will also work with a flat piece of DVD, but then the lines will be a bit broader and fuzzier, i.e. lower spectral resolution. 

With a different photodiode and/or opamp you might have to tweak the amplification stage a little bit, but the physics don't change. So you should still get the same spectrum.

I hope to have some more time this week or next to write up properly how the whole thing works.


  Are you sure? yes | no

Jasurbek wrote 10/20/2015 at 13:51 point

Nice project!

Do you think the result (spectrum) will be different for everyone due to various CD manufacturers and different curve angles (during construction) used by users? 

if the photo diode and other hardware are different (different sensitivity and other characteristics), does it make any difference on final results between users? If community builds database like

Thank you.

(I have a little idea about spectroscopy, so sorry if the questions are so naive)

  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