Ocean Optics
Worldwide Headquarters
Dunedin, Florida, USA

+1 727-733-2447


Sales, Service
& Support Facility
Duiven, The Netherlands

+31 26-319-0500


Ocean Optics GmbH Sales,
Service & Support Facility
Ostfildern, Germany

+49 711-34-16-96-0


Sales Support
for the
United Kingdom

+44 1865-811118


Sales, Service
& Support Facilities
Shanghai, PRC – Beijing, PRC

+86 21-6295-6600


Google Translate:  Chinese (Simplified)EnglishFrenchGermanItalianSpanish
Home > News & Events > The Journey of a Photon – from Spark to Spectra

The Journey of a Photon – from Spark to Spectra

journey of the photon get your poster



The photons used in spectroscopy encounter many components and undergo a variety of processes before registering as a spectrum on the screen. What exactly happens to these photons once they enter an Ocean Optics spectrometer? Let’s look at their journey in layman’s terms.


Photon Shape

Image courtesy of M. Bellini/National Institute of Optics

An Exciting Start

The photons used in spectroscopy may be created through reactions in the sun or stars, or emitted locally from lamp bulbs, LEDs or lasers. Photons can even be excited from everyday materials as fluorescence or Stokes scattering (Raman). Whatever its origin, each photon is created with a specific wavelength, which it will carry throughout its lifetime (whether nanoseconds or billions of years).


A Bumpy Road to the Slit

As photons travel through space, they may be reflected, transmitted, scattered or absorbed by the materials they encounter. By looking at the resulting light as compared to the initial amount of light, it is possible to learn about the properties of the material or sample encountered. This is because the probability of a photon interacting with a material in a certain way varies with that material’s chemical and physical structure, and also with the wavelength of the photon itself. Each interaction with a material will filter, redirect or simply eliminate photons of various wavelengths.


A Guided Path

Patch cord for FOP-UV Kit

Fiber optic cables are a convenient method to safely route light from one point to another. Multimode fibers guide light through total internal reflection, acting as a light pipe to redirect light from one location to another without interference from ambient light. A fiber can even “bend” light around corners, and greatly simplifies the process of routing light to a spectrometer.


Maya-HR Open Bench animatedMost Ocean Optics fibers use an SMA 905 connector at their tip to connect the spectrometer, providing a snug, alignment-free coupling between the fiber’s end and the entrance point into the spectrometer: the slit.


Single-File Please!

Slit PieceThe slit is a very narrow aperture through which a stream of well-directed photons traveling in a consistent direction can flow. A typical slit is only 1 mm tall, and anywhere from 5 µm to 200 µm wide. Most slits are rectangular, but some may be oval for improved optical performance. The wider the slit, the more photons can get through (higher throughput), but at the cost of reduced optical resolution (higher FWHM, which means some peaks may appear wider than they truly are).


Collimation (this won’t hurt a bit)

The photons entering through the slit are still diverging in space (the beam expands after passing through the slit), so their first port of call is a collimating mirror. This has a focusing effect to help the photons travel parallel to one another, so that they won’t spread or scatter in unwanted directions.



The collimating mirror simultaneously reflects the photons to a reflective diffraction grating, which splits photons out by wavelength. “Blue” photons (around 450 nm) are reflected at one angle, while “red” photons
(around 700 nm) are reflected at a larger angle. This is the most important step in separating the collected light by wavelength, allowing each wavelength to be measured discretely.


Focus Carefully Now

After leaving the diffraction grating, the newly dispersed light is sent to a focusing mirror, which reflects light of each wavelength onto the detector while focusing it slightly. The detector is a linear array of CCD pixels — basically a digital camera, but in a 1-dimensional line instead of a 2D rectangle. Each pixel collects photons from a very narrow range of wavelengths (anywhere from 15 nm to 0.02 nm, depending on the spectrometer’s configuration).


Sacrifices Must be Made

While a wide variety of slit and grating combinations are possible to achieve the needed range and resolution, there are compromises that must be faced. A smaller range generally allows higher resolution for applications such as laser characterization, while a larger range can often mean lower resolution, which is acceptable for more general chemical studies like protein absorbance. The two can be balanced well, however, with the use of a larger optical bench, as in the HR2000+CG, which covers 200-1100 nm with ~1.0 nm (FWHM) optical resolution.


Spectrum - Thulium Laser 1

Absorbance characteristics of various proteins found in red blood cells


Each pixel of the detector acts as a well that collects photons of a specific wavelength range. The well starts each integration period “full” of voltaic charge. Each time a photon strikes the well, a bit of that charge is depleted. The longer the integration time, the more photons can be collected at each pixel; however, once the charge is fully depleted, that pixel is “saturated” and no new signal can be collected. In effect, each photon is consumed as it strikes the detector and its energy is released; we will not see it again.


Enter the Matrix

At the end of each integration period, the charge level is read from all pixels on the detector. This read-out (still in analog volts) is passed into an ADC (analog-to-digital converter), which converts each pixel’s voltage into a specific number of “counts.” This is when the photon becomes data. From this point onward, we’ll be following the digital “intensity counts” (or spectrum) as it moves through the electronics.


Dynamic RangeDynamic Range_ADC

When converting the analog voltage of each pixel into a discrete quantity, the resolution of the ADC plays a part in determining the “dynamic range” of the spectrum. A 12-bit ADC can only represent values from 0 to 4095 (212), so the greatest “range” between the highest peak and the baseline is 4096 counts. In contrast, a 16-bit ADC can show discrete wavelength intensities from 0 to 65,535 (216), and an 18-bit ADC can provide even more “vertical” resolution.


From µC to PC

The spectrum is then copied over USB from the spectrometer’s microcontroller (a Cypress FX2 chip) to the host PC over USB. An HR2000+ spectrometer, for example, would transmit an array of 2048 numbers, each an integer from 0 to 4095. Different USB versions transmit data at different speeds, which can affect the “scan rate” (number of spectra that can be read per second). Also, there are other communication buses available besides USB, including RS-232, Bluetooth, Ethernet and Wi-Fi, each with its own advantages and pitfalls.


The Final Drive

Reading a spectrum over USB doesn’t have to be complicated for the user, but there are a lot of things that have to be done correctly. Fortunately, most of the very low-level USB functions have already been automated by low-level USB device drivers that come for free with modern computer operating systems. At Ocean Optics, we have also tried to automate most of the higher-level spectrometer control functions using application drivers like OOIDrv32, OmniDriver and SeaBreeze. With a few lines of code, users should be able to read and process spectra quickly and easily using their preferred mix of drivers.


How Low Can You Go?

There are several good USB drivers for Windows, including Cypress ezUSB and Microsoft’s own WinUSB (best for 64 bit). Both Linux and MacOS use the open-source libusb. Ocean Optics high-level drivers “wrap” or “call into” these third-party drivers so that you don’t have to learn their sometimes arcane conventions and idiosyncrasies (although you can if you wish!).


Application Drivers

omnidriver-480seabreeze-480OmniDriver, SeaBreeze and the original OOIDrv32 driver they replaced provide high-level function calls like getSpectrum() and setIntegrationTime() to easily control your spectrometer and retrieve data.

Either can be used from a variety of programming languages and platforms to quickly compile custom spectroscopy applications and GUIs. C, C++, C#, Java, LabVIEW, and many other targets are supported.


Post-Processing Spectra

After you have read your spectrum from a driver call, you’ll probably want to clean up and filter your spectrum using a variety of common techniques:


  • Electrical Dark Correction (EDC): Subtract averaged “optically masked dark pixels” to correct for readout noise and thermal drift.
  • Non-Linearity Correction (NLC): Apply a factory-calibrated 7th-order polynomial to correct for pixel response as detector wells approach saturation.
  • Boxcar Averaging: Smooth out high-frequency noise by averaging each pixel with its adjacent neighbors.
  • Scan Averaging: Improve signal-to-noise ratio (SNR) by averaging multiple spectra together.


Journey’s End

This concludes the journey of our photons as they are birthed and berthed from spark to slit, bounced briefly through the spectrometer, and eventually terminated in a detector pixel cell — only to have their fate recorded and digitized into data, which saw its own convoluted journey through the digital realm, and ended up as graphable spectra on screen.