Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Colorimeter V0.0

by chowderhead, published

Colorimeter V0.0 by chowderhead Jan 30, 2013

Featured Thing!


Build your own colorimeter! More details can (will eventually) be found at appropedia.org/Open-source_colorimeter. Note that present firmware only reports absorbance and transmittance; a calibration protocol is forthcoming.

More and better to come...

The STLs will build a case for a colorimeter and the electronics BOM will yield a device designed for performing high range Chemical Oxygen Demand (COD) determination, measuring absorbance at 606 nm, an absorbance peak for the chromic ion. The cuvette holder is designed for Hach COD digestion vials.

The light source was specifically chosen for chromic ion determination; it can be altered to measure other ions (aquarist: think nitrates, ammonia and pH). We're working on other designs and useful applications and invite you to join us and share your designs.

Colorimeters are exceptionally handy items used for determining the concentration of dissolved species typically in aqueous solutions. The principles of operation are simple and form the backbone of several other analytic methods.
This is part of a larger project to reduce the cost of scientific
equipment using open-source hardware at Michigan Tech. Read a short
piece published by Science talking about it:
mtu.academia.edu/JoshuaPearce/Papers/1935580/Building_Research_Equipment_with_Free_Open-Source_Hardware. More open-source research tools:

Recent Comments

view all

We're going with the TSL235 light-to-frequency sensor for all intensity measurements. As for diffuser, wait for it...

...Scotch tape. Really, any translucent material in the light path will work. In the case of the cuvette holder in this thing and it's big brother, it was simplest just to stick tape over the slits.

Please elaborate on the diffuser. What did you use, exactly? What kind of reference light sensor did you use?

More from Tools

view more

Liked By

view all

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag


01.31.13 - If I'm understanding Git, I successfully uploaded the firmware. (I sure wish you linux folks would learn to speak colloquially). github.com/Chowderhead/colorimeter

Arduino Uno
Adafruit LCD shield (http://www.adafruit.com/products/772)
LED having peak around 606nm (like: jameco.com/1/1/3120-lef3833-led-orange-620nm-t-1-3-4-1700mcd-1-7v-v-a12-irled.html)
A suitable resistor for the LED you choose
TSL230R light-to-frequency sensor
Proto board (like: radioshack.com/product/index.jsp?productId=2102845&znt_campaign=Category_CMS&znt_source=CAT&znt_medium=RSCOM&znt_content=CT2032230)
Coductors (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 Aurduino.
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).


You must be logged in to post a comment.

jpearce on Aug 26, 2013 said:
destroyer2012 on Jun 2, 2013 said:

Any progress on calibration? I have built a similar device using a phototransistor and found that not only does the calibration vary with the battery charge level, but also with what kind of cuvette you use and how full it is. I think it has something to do with how the light refracts on the inside of the cuvette. That said, your cuvettes appear to be pretty large (I was using 1cm cuvettes) so maybe the refraction is less of an issue.

chowderhead on Jun 3, 2013 said:

We've rewritten firmware and will make it available shortly. A proper calibration will require standard solution (or a solution with a known concentration).

We've found that a diffuser is required in the light path to reduce issues with internal reflection by the vial. We've also added a reference light sensor at the LED.

on Feb 2, 2013 said:

No need buy that expensive TSL230R - you can just use another LED of the same kind and hook it from ground to one of the ADC inputs of the Arduino. When you shine light into an LED, it will generate a voltage that increases with the light's intensity, which is much easier to use with a microcontroller than a varying frequency, but it will need calibration to give some accuracy.

chowderhead on Feb 2, 2013 said:

Yeah, that was considered, and the issue with measuring frequency is non trivial. I worried about the spectral response of an LED as compared to the sensor since one of my goals was to make this sensitive over a relatively broad spectrum. The newer TSL235R is only $2.35 at Sparkfun...

fsamir on Feb 2, 2013 said:

I've seen some comercial colorimeters for aquariums that use reagents. It is probably to make it easier for the color sensor. Do you know if it is possible to test nitrate, phosphate, etc without reagents?

cranie on Feb 7, 2013 said:

I do Cl2, Phosphates, Iron, and Manganese testing daily with a colorimeter and they all require a reagent. There are alternative methods for CL2 but none that I know of for the others.

Sparky_1966 on Feb 2, 2013 said:

Usually you need some sort of colorimetric reagent. If you think about it, you're talking about chemicals that are for the most part colorless in water/saltwater at the concentrations in aquariums. A visible light spectrometer isn't going to detect them if they have no color. A few compounds that fluoresce can be detected by using a specific wavelength and measuring the resulting glow, but those are pretty specific applications. Keep in mind to that the colorimetric reagents are chosen to give the largest change in color over the range you're hoping to measure and to usually be pretty specific as to the compound they react with, making measurement with a spectrometer much easier.

sgraber on Feb 2, 2013 said:

It is not possible to test for any of these without reagents, with the exception of pH, which you can use a pH meter/probe to test.

MarkU on Feb 1, 2013 said:

What about a white light and a diffraction grating (plus the usual curved mirrors etc)?



I know a white LED doesn't really have a nice flat spectrum over the visible range, but if you're comparing spectra between two samples, or a sample and a blank, it could work OK, depending on how much light you can get out of your LED.

chowderhead on Feb 2, 2013 said:

It's a good suggestion and we're intending to play with an OS spectrometer that's built around a line camera (spectruino is the project). The issue is keeping the thing calibrated; as the optical bench is PLA or ABS, there is (relatively speaking) a terrific amount of movement with every little change in environment. But, applying the KISS principle, if we collect a spectrum from the light source, we can do a good enough calibration by aligning peaks.

The allure of this approach is that we can then analyze pretty much anything absorbing a wavelength falling in the LED emission spectrum. The line camera is a shockingly cheap sensor, too.

Sparky_1966 on Feb 2, 2013 said:

Most spectrometer light sources don't have very flat spectrums either, you always need a blank, and should have a known absorption sample near the range you're measuring to set up a calibration curve. The only area he might get in trouble would be if his absorption wavelength he wants to measure is at the lowest output point of the LED, which would lead to issues of low light like you pointed out, at 606nm he should be fine.

bkubicek on Feb 1, 2013 said:

nice thing, but some easy improvements: the LED needs constant current, easily done by e.g. a lm317. Also, I would add a precise temperature sensor to both the LED and the sensor, e.g pt1000 and a reference 1k resistor driven by a precise dual constant current source. The LED spectrum changes with temperature. The aging of the the LED is however not so easily to compensate. Also, a cap covering the epruvette is probably needed, so that there is no stray light from the top.

chowderhead on Feb 1, 2013 said:

Actually, there is a cover for the cuvette, just not pictured.

Do you think that more frequent calibration of the device during use will offset some of the T variability and LED aging? I'm not terribly proficient on the electronics front, can you steer me to a schematic for incorporation of a lm317?

Thanks for the suggestions!

destroyer2012 on Feb 1, 2013 said:

This is very cool. Although the expense in this instrument is in filters and lamps. It would be interesting to measure the spectrum coming from LEDs and see what kinds of filters can be got on the cheap.

Isn't it annoying how "real" lab equipment costs way too much and then you end up troubleshooting everything anyway?

chowderhead on Feb 1, 2013 said:

Actually, there is a cover for the cuvette, just not pictured.

Do you think that more frequent calibration of the device during use will offset some of the T variability and LED aging? I'm not terribly proficient on the electronics front, can you steer me to a schematic for incorporation of a lm317?

Thanks for the suggestions!

chowderhead on Feb 1, 2013 said:

As to the latter: emphatically yes. Troubleshooting followed by shoving in a drawer until the next lab supervisor comes along and cleans house...

As to spectrum of LED, my approach was to find an LED with an emission peak as near the absorption peak as possible. As long as there is measurable and predictable attenuation, a meaningful absorbance can be determined. I'm all for improving performance, though!

BradDudenhoffer on Feb 1, 2013 said:

Nice design, but how do you measure pH with a colorimeter?

chowderhead on Feb 1, 2013 said:

I dunno. That's why I'm Chowderhead!

I'm also a budding aquarist and those three parameters tend to issue from my brain in unison. If there is a colorimetric method, then I would be happy to explore possibilities...

sgraber on Feb 1, 2013 said:

A pH indicator like o-cresolphthalein goes from colorless to red from pH 8.2 to 9.8. I'd imagine that would be one way. http://www.sigmaaldrich.com/ca...®ion=US

sgraber on Jan 30, 2013 said:

Ok this rocks! I can't wait till you get the calibration protocol setup for it. :)