This journey began with an innocuous question: “How can I tell, without seeing, when my batteries are done charging?”

Completed project, out of enclosure.

Completed project, out of enclosure.

As I prepared for an experiment in sightless living (a tale I may regale you with in some future installment of The Adventures of Pat), it dawned on me that my assembled arsenal of electronic tools would be rendered useless if I couldn’t even read the LEDs indicating my batteries were fully charged!

It wasn’t long before I realized just how much we use colour throughout our daily lives–for everything from choosing socks to crossing the street–and how useful a device that provides information on the subject would be under many circumstances.

And so the Aural Colour Identification Device was born. A.C.I.D. lets you hear all the colours of the rainbow, by converting any light it receives into a unique combination of tones. It may be used as a handheld device or as an input module to other components by providing numerical data on global levels and proportions of red, green and blue light.

Have a look at the result in action, along with a little intro on how everything works, in this video intro:

Here, I’m releasing all the details of the project: source code (released under the GPL), schematics and PCB layouts (released under the Creative Commons CC-BY-NC, for any non-commercial use).


ACID perceives light using a specialized sensor, processes the raw data to determine the colour it is receiving and outputs the result as sound and information.

It is built around the TCS3200, a chip used to measure the amount of incident red, green and blue light. This information is collected by an Arduino, which also generates audio tones at appropriate levels.

To ensure a pleasurable listening experience, the colours were assigned tones that would blend well together. Specifically:

  • C for blue,
  • E for green, and
  • G for red

which, together, form a C major chord. Additionally, for the tones to be more easily distinguishable, the chord spans two octaves.

After the preponderance of each colour is determined, the device adjusts the presence of each tone proportionally, then sums all three to output through a speaker.

Here’s a high-level look at the system’s major components, their interactions and the signal paths.

High level overview of ACID functionality

High level overview of ACID functionality


ACID, as-is, will allow you to distinguish colours by ear.  You may also use the SPI header to get processed color data for use by external circuits, or simply use the TCS3200 module as an easy way to include the chip in your own projects.

For details and more info, see: [subpages]

Leave a Reply