I wanted a spectrocolorimeter, also known as a color sensor. I found a few options but they're mostly proprietary. The problem was that most "cheap" sensors are locked to specific color standards (like Sherwin-Williams, Pantone, etc, etc).

That sort of rubs me the wrong way because many of the sensors are performing the same function; extracting the L* a* b* (CIELAB) color values. I have to admit, the "CR100" that this tool is currently wrapped around wasn't my first device... but let's just say I'm waiting for a charitable member of the internet to send me a copy of the OEM bootloader.

Next, I landed on a Bluetooth color matching sensor called the Datacolor CR100. It's broadly available under about a dozen white-labeled names but it's all the same under the silkscreen and packaging. And wow... Bluetooth protocols can be SO MUCH easier to reverse engineer than USB protocols (!), I had the bulk of my manual work done in about 30 minutes with Apple's PacketLogger.

After I captured the samples, I handed them over to Z.AI GLM5.3 to extract the instructions and structure, which didn't take long. Maybe another 20 minutes. I prompted for a simple Python script that runs through all of the features I captured and handed that demo script over to Claude Opus 4.8... and here we are now.

And what does that mean? A web app which connects directly to the device, in the browser, through Bluetooth. The app issues commands, receives responses, and can even calibrate the color sensor! Of course, without the device it won't help you much... but thankfully, they're cheap (opencolor.app).
Author
Stephen
Views
3
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Stephen