Project showcase
Open-Source Colorimeter

Open-Source Colorimeter

An open-source colorimeter, which is made from open source electronics and 3-D printable components.

  • 1 comment
  • 4 respects

Components and supplies

Ph a000066 iso (1) ztbmubhmho
Arduino UNO
42x9548 40
RGB LCD Shield Kit, 16x2 Character Display
09590 01
LED (generic)
having peak around 606nm
resistor (generic)
suitable for your LED
TSL230R light-to-frequency sensor
Proto board (generic)
Conductors (generic)
Cat 5 cable works great
Black ABS or PLA filament
53m8781 40
Machine Screw, M3
Just about any length, 10-12mm is good
M3 nuts
M3 washers

About this project

Deutsch, español, français,Hausa,Igbo,Bahasa Indonesia, italiano, Kiswahili, Kreyòl ayisyen, Malagasy, Bahasa Melayu, português, русский, Soomaaliga, Tagalog, Việt, Türkçe, Yorùbá, தமிழ், नेपाली, 中文,اردو, 한국어, 日本語, العربية, فارسی, עִברִית, हिन्दी, ไทย, বাংলা, తెలుగు, ગુજરાતી, ລາວ, ਪੰਜਾਬੀ, සිංහල

By Michigan Tech's Open Sustainability Technology Lab

The most up to date information can be found on this project's Appropedia page

This project details an open-source colorimeter, which is made from open source electronics and 3-D printable components. This is part of a larger project to reduce the cost of scientific equipment using open-source hardware. [1]


Anzalone GC, Glover AG, Pearce JM. Open-Source Colorimeter. Sensors. 2013; 13(4):5338-5346. doi:10.3390/s130405338 open access


The high cost of what have historically been sophisticated research-related sensors and tools has limited their adoption to a relatively small group of well-funded researchers. This paper provides a methodology for applying an open-source approach to design and development of a colorimeter. A 3-D printable, open-source colorimeter utilizing only open-source hardware and software solutions and readily available discrete components is discussed and its performance compared to a commercial portable colorimeter. Performance is evaluated with commercial vials prepared for the closed reflux chemical oxygen demand (COD) method. This approach reduced the cost of reliable closed reflux COD by two orders of magnitude making it an economic alternative for the vast majority of potential users. The open-source colorimeter demonstrated good reproducibility and serves as a platform for further development and derivation of the design for other, similar purposes such as nephelometry. This approach promises unprecedented access to sophisticated instrumentation based on low-cost sensors by those most in need of it, under-developed and developing world laboratories.


open source; open-source hardware; colorimetery; COD; Arduino; RepRap; 3-D printer; open-source sensor; chemical oxygen demand; open-source colorimeter


Colorimetric analytical methods are likely to be the most commonly applied methods for determining the concentration of dissolved species. Many dissolved species absorb light of a particular wavelength and the amount absorbed as the light passes through a given length of solution increases with increasing concentration the species; higher concentrations absorb more light than do lower concentrations. The relationship between absorption and concentration is defined by the Beer-Lambert law[2].

A colorimeter or a spectrophotometer is employed to measure absorption at a specific wavelength. Light is usually filtered to permit only a narrow band of light at the absorbance peak wavelength for the species measured. The apparatus typically reports results in concentration units but also reports absorbance units or transmittance.

Design files:



  • Arduino Uno
  • A suitable resistor for the LED you choose
  • TSL230R light-to-frequency sensor
  • Conductors (Cat 5 cable works great)
  • Black ABS or PLA filament
  • 12 M3 screws (just about any length; 10-12mm is good)
  • 12 M3 nuts
  • 20 M3 washers


  • Print the parts and clean them up so everything fits together nicely. Push M3 nuts into their appropriate slots at each corner of the case body - slots open to interior.
  • Cut the proto board down to size (about 27mm x 46mm) and drill holes to match those in the sides of the case.
  • Loosely attach the boards to the interior of the case with a couple screws each and push the cuvette holder into place (no cover) and mark the approximate locations where the sensor and LED must be placed on the boards to align with the windows in the cuvette holder.
  • Remove the boards from the case and solder the components to their respective boards at the points marked. Leave the LED leads a bit long so it can be moved to aim the beam through the hole.
  • Solder the conductors per the schematic. (The io pins can be soldered to directly on the LCD shield if you're careful, otherwise different means will be required, like not using the shield as a shield.)
  • Fit the boards back into the case, this time firmly.
  • Download and install the firmware on the Arduino.
  • Fit the LCD shield and power the device (surplus wall wart of appropriate voltage or USB power will work).
  • Place the cuvette holder back into position (no cover) and use the menu system to select "Calibrate". The LED will illuminate for a few seconds - make sure that the majority of light passes as straight as possible through the cuvette holder windows and impinges upon the sensor. If the LED/sensor are high or low, reshape the cuvette windows with a small rat tail file or suitably sized drill bit.
  • After the LED is properly aimed, remove the cuvette holder and align and affix the cover to the case with four M3 screws and washers.
  • Push the cuvette holder through the opening in the cover and check that the lid fits nicely into recess.
  • Follow the appropriate protocol for calibration (yet to be built into the firmware - forthcoming).




Joshua M. Pearce, "Open source 3D printing allows you to print your own cheaper health devices", Conversation, Feb. 28, 2014.

See also



Custom parts and enclosures



Similar projects you might like

Arduino Burglar

Project showcase by paolo_cravero

  • 9 respects

Gesture Glove

by Albani Carlo Amaducci Lorenzo Ferraiuolo Lorenzo

  • 8 respects

Smart Garden

Project showcase by patel Dipen

  • 91 respects

Magnetic Levitation

Project showcase by Hao Jie Chan

  • 82 respects

Morse Code Translator

Project showcase by Team ONYX

  • 24 respects
Add projectSign up / Login