This spectrometer is buit around a TCD1304 linear CCD sensor which has already been widely used and is very well documented. It is driven by a Stellaris launchpad board which has a LM4F120H5QR microcontroller. The source code of the firmware and the (crappy) control software are available here.
The optics were scavenged from different places : one camera lens and the lens of an unidentified computer camera. Both of them having a focal length of 50 mm.
The principle is exactly the same as my previous spectrometer, substituting the webcam with the CCD sensor.
The spectrometer is built with 3 mm thick mdf cut with a cheap Chinese laser cutter from a drawing designed on OpenSCAD. Everything is available here.
The entrance slit is built with two steel pieces polished to have an edge as smooth an thin as possible. As the focal lengths of both lenses are equal, le width of the slit must not be greater than the width of a pixel in order to get the best possible resolution.
Here are some measured spectra. The conversion from pixel number to wavelength is done with a second order interpolation function, it is more than enough to have an error smaller than the instrument resolution.
The spectrometer is calibrated using a compact fluorescent lamp which has spectral lines with known wavelengths.
The spectrum of the sun is somewhat disappointing. The maximum of intensity occurs around 600 whereas it should be around 500 . Moreover, there is some sort of oscillating structure which should not be there. I didn't find any convincing explanation of these two things.