For design files, software & more
Cart 0

Open Source Colorimeter Project

In this project we have designed an Arduino compatible open source colorimeter with open source software. This project was launched on Kickstarter in 2012 and since then we have added more new features including expanded LED options, optional stir plate base and more assay testing. 

Additional documentation including build instructions and sample labs are in the links below.

Colorimeters and Beer-Lambert Law

Colorimeters are analytical devices commonly used in science labs to measure the amount of light of a specific wavelength that is absorbed by a sample. Absorbance is related to concentration (Beer-Lambert Law) so the greater the concentration (color intensity) of a sample, the greater the absorbance (A) value. Comparison of the absorbance measurements to a calibration curve provides the final concentration in the sample.

Our standard colorimeter consists of an red-green-blue (RGB) LED and a light sensor mounted into a black acrylic enclosure with a cuvette holder. Other LED wavelength options are also available (see below). The cuvette holder positions the sample between the LED and the sensor. The sensor board connects to a Arduino programmed with the colorimeter firmware via a simple shield. When the colorimeter is operating, the LED illuminates the sample in the cuvette with a specific wavelength of light. For example, with the standard colorimeter RGB LED:

  • Red Light - 632 nm peak wavelength, (625 nm domimant, 1077 mcd, 18 nm bandwidth)
  • Green Light - 523 nm peak wavelength, (528 nm domimant, 1570 mcd, 33 nm bandwidth)
  • Blue Light - 465 nm, peak wavelength, (470 nm domimant, 377 mcd, 25 nm bandwidth) 

A small slit in the colorimeter allows light to pass through the sample to the light sensor. Absorbance (A) of the sample is determined by comparing the intensity of incident light (I0) to the intensity of light after it has passed through the sample (I) using the following equation: A = log10(I/I0).


The Colorimeter firmware for Arduino and open source software can be downloaded from this page:

The Colorimeter software has three main modes of operation:

  • Basic - Returns transmission and absorbance readings 
  • Plotting - Plots absorbance data against concentration for standard curves
  • Concentration - Using a standard curve, returns absorbance and concentration values

An additional Titration program for measuring calcium, magnesium, salinity and other assays is currently under development. 

Modifying the colorimeter LED wavelengths

The Colorimeter can be modified to use a different LED than the RGB wavelengths described above. We offer a number of choices in the Online Store, or you can use your own LED with the single or dual wavelength boards.

Colorimetric Assays

We have tested a number of different assays with the Colorimeter including ammonia, nitrate, nitrite, phosphate, potassium. These assays cover using popular commercial test kits from API, Hach and others as well as using off-the-shelf chemicals and reagents.

Results from these tests along with downloadable calibration (standard) curves can all be found here: We are continuously working on adding new assays to this list and most of this in-development work is on the Wiki page