sparks-baird / self-driving-lab-demo

Software and instructions for setting up and running a self-driving lab (autonomous experimentation) demo using dimmable RGB LEDs, an 8-channel spectrophotometer, a microcontroller, and an adaptive design algorithm, as well as extensions to liquid- and solid-based color matching demos.
https://self-driving-lab-demo.readthedocs.io/
MIT License
69 stars 8 forks source link

RGB LEDs vs. having 10+ monochromatic light sources #6

Closed sgbaird closed 2 years ago

sgbaird commented 2 years ago

An array of RGB LEDs + a spectrometer might not be the best match-up. RGB LEDs + a sensor designed for a single color value (e.g. RGB Color Sensor with IR filter and White LED - TCS34725) or monochromatic lasers (e.g. Laser Diode - 5mW 650nm Red) + the 10-channel spectrometer might be a better match-up. Tunable laser(s) probably too expensive.

See also https://www.adafruit.com/product/3595

Will see once the hardware comes in and I start testing.

sgbaird commented 2 years ago

https://www.amazon.com/Chanzon-100pcs-colors-Emitting-Assorted/dp/B01AUI4W5U?th=1#

sgbaird commented 2 years ago

Submitted a CrowdSupply application and contacted Pimoroni.

Message to Pimoroni:

I'm looking to make a low-cost, open-source self-driving (autonomous) lab demo while retaining the main principles of closed-loop feedback laboratory automation. https://github.com/sparks-baird/self-driving-lab-demo

Blinkt! is amazing, but since each node is a set of RGB LEDs, in the end I really only get 3 unique wavelength types (maybe with some manufacturer variability), which is not quite as high-dimensional or interesting as I was hoping.

So, I'm looking all over for something that is an addressable array of LEDs of different wavelengths (~10 preferable) around the visible spectrum. https://www.arborsci.com/products/led-array is along the right lines, but too big, too expensive, and not addressable (flip switches by hand). https://www.amazon.com/Chanzon-100pcs-colors-Emitting-Assorted/dp/B01AUI4W5U?th=1 is great because it has LEDs spanning a range of wavelengths, but these are designed for a breadboard. DigiKey has a wide selection as well, but the LEDs would need to be sourced individually, probably from different suppliers. Even if I identified a cohesive set of LEDs, this requires additional user expertise (soldering), and all options mentioned so far would also require a custom Python program (not as big of a deal for me).

None of this would really be a deal-breaker, except that I'm trying to make it so the self-driving lab demo can be purchased in one or two online shopping carts for less than $100, takes up less than a square foot of desk space, and can be set up in less than an hour with no other tools than what gets shipped (and preferably no soldering), in a scalable way so that if 100's of people with virtually no electronics experience and basic coding could get it up and running within those requirements.

Unless you're aware of something that meets these specifications, I'd love to get this going via e.g. CrowdSupply or hear any suggestions for how to make something like this available to myself and many others.

sgbaird commented 2 years ago

Some relevant questions and resources to "how do I get a tunable wavelength light source" or similar:

Instructables or similar:

Other products:

Expensive products:

Theory:

sgbaird commented 2 years ago

xref-ing the 10-channel wavelengths with color descriptors:

415 nm – Violet
445 nm – Indigo or Blue
480 nm Blue or Blue-Green
515 nm Blue-Green or Green
555 nm Green or Yellow-Green 
590 nm – Yellow-Green or Yellow
630 nm Orange or Orange-Red or Red
680 nm - Red
Clear ?
Near IR – Shortwave NIR or Longwave NIR
sgbaird commented 2 years ago

Dotstar wavelengths are certainly narrow: image (source, mentioned by adafruit_support_bill in https://forums.adafruit.com/viewtopic.php?f=8&t=192420)

sgbaird commented 2 years ago

Here's an example of non-linear, non-monotonic behavior:

(same source)

based on:

using forward voltage as a parameter could introduce a non-linearity into the task. For example, multi-objective optimization of maximizing luminescence, color matching, and minimizing total power (granted forward voltage is likely not controllable with Blinkt!, at which point it might be easier to use the separate wavelengths instead). This is of course assuming that the inflection point isn't going to lead to complete device failure with normal, repeated use.

If I'm trying to maximize luminescence, then I might need to monitor the temperature of the board. However, it's also probable that the influence of temperature on wavelength will be low relative to the spectrometer resolution; meanwhile, the influence of temperature on flux/efficiency will still probably be there.

This doesn't necessarily imply multiple local optima, however.

sgbaird commented 2 years ago

Considering PCBWay for assembled PCB service. Probably should make a breadboard prototype with LEDs from Amazon first for verification.

sgbaird commented 2 years ago

Liam from PCBWay generously offered free prototyping for this project.

sgbaird commented 2 years ago

For NeoPixel, it's different data https://forums.adafruit.com/viewtopic.php?f=47&t=66146.