Introducing the Open Colorimeter project

This week we continued work on our standalone colorimeter project, specifically the next step of writing firmware for displaying data via the Adafruit PyBadge.

What is a colorimeter?

Colorimeters are analytical devices commonly used to quantify the concentration of an analyte in a sample based on a chemical (color) change. The device measures the amount of light of a specific wavelength that is absorbed by the test sample and converts that to concentration. Absorbance is related to concentration (Beer-Lambert Law) so the greater the concentration of a sample, the greater the absorbance value. Colorimeters are extremely flexible lab instruments. For example, they are very useful when investigating water quality and can be used to measure water parameters such as water turbidity, chlorine content, pH, water hardness, phosphate content and more. Aquarium & aquaponics hobbyists can use colorimeters to monitor levels of ammonia, nitrate, nitrite, phosphate in a tank. We are particularly interested in using colorimeters to measure pollutants and contaminants such as lead, oil, diesel and pesticides in water and soil.

A list of some of the tests we have used with the colorimeter can be found here and in the Table below:

Standalone colorimeter design

We recently updated our open source colorimeter design to make a standalone version. This version can be assembled without any soldering. We previously wrote about the colorimeter hardware design in this blog post:

New colorimeter open hardware design expands flexibility
Our open hardware colorimeter is a popular tool for measurements analytes using colorimetric assays. We initially designed the colorimeter as an educational kit in 2012 with Kickstarter funding.

Colorimeter PyBadge firmware

As mentioned in the above post, the next steps were writing firmware for our colorimeter. We decided to use the Adafruit PyBadge as our initial target hardware platform. The PyBadge has a 160x128 color TFT display, Lipo battery connector with recharging capability, a 4-pin I2C connector for connecting the light sensor and on/off switch and buttons for user input.  In addition, the PyBadge can run circuitpython making firmware development quick and easy.

This week we wrote some simple firmware with two goals in mind:

  • Allow the user to blank the colorimeter by pressing the PyBadge's "A" button  
  • Display a live view of the sample absorbance value on the PyBadge's TFT display
The source code for the firmware can be found on Github here: https://github.com/iorodeo/prototype_colorimeter_firmware

Items we used

For preliminary testing, we are using food dyes which can be found at most grocery stores. We prepared a serial dilution from 20-100% of yellow food dye, and measured absorbance with the blue 470nm wavelength LED. As expected the plot was linear.

💡
Next steps: We have just started testing the new colorimeter. Next steps will be to compare results from this new design to other similar instruments to verify it works as expected.

Bookmarks

New colorimeter open hardware design expands flexibility
Our open hardware colorimeter is a popular tool for measurements analytes using colorimetric assays. We initially designed the colorimeter as an educational kit in 2012 with Kickstarter funding.
Colorimeter LED board
Colorimeter LED board with STEMMA QT for connecting to the Adafruit STEMMA QT TSL2591 High Dynamic Range Digital Light Sensor board via a 4-pin cable and JST SH connectors. Features Open hardware. KiCad design files @ https://github.com/iorodeo/i2c_led Dimensions: 25.4 mm x 20 mm x 1.6 mm Two 4-pin…
GitHub - iorodeo/prototype_colorimeter_firmware: Development firmware (circuitpython) for our new stand alone colorimeter
Development firmware (circuitpython) for our new stand alone colorimeter - GitHub - iorodeo/prototype_colorimeter_firmware: Development firmware (circuitpython) for our new stand alone colorimeter
Adafruit PyBadge LC - MakeCode Arcade, CircuitPython, or Arduino
What's the size of a credit card and can run CircuitPython, MakeCode Arcade or Arduino even when you're on a budget? That's right, it's the Adafruit PyBadge LC! We ...
Lithium Ion Battery - 3.7V 2000mAh
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery has ...
Adafruit TSL2591 High Dynamic Range Digital Light Sensor
When the future is dazzlingly-bright, this ultra-high-range luminosity sensor will help you measure it. The TSL2591 luminosity sensor is an advanced digital light sensor, ideal for use in a ...
CircuitPython
The easiest way to program microcontrollers