python-microscope / microscope

Python library for control of microscope devices, supporting hardware triggers and distribution of devices over the network for performance and flexibility.
https://www.python-microscope.org
GNU General Public License v3.0
69 stars 41 forks source link

add support for coolLED #138

Closed carandraug closed 4 years ago

carandraug commented 4 years ago

We have a CoolLED pE-300 ultra that we should add. I already have something that works and in theory should work for all pE-300.

There is also a pE-4000 which is a bit different. It has 16 light sources but only four output channels. So while the pE-4000 is a controller of 16 light sources, and all 16 are controllable, only four will actually be emitting light at any given time. Anyway, we don't actually have one of those to test.

carandraug commented 4 years ago

Also tested this with @dwaithe which also has a pE-300 ultra and worked fine on his system. While it technically worked, it was quite a bit slower on his board. The code we tried was something like this:

blue = coolled.devices['B']
for i in range(20):
    t = time.time();
    blue.enable();
    time.sleep(.1);
    b.disable()
    print(time.time() - t)

which on his system printed values about 200 milliseconds. On our system at micron it prints about 120 milliseconds. We didn't had the time to explore where exactly it was spending the time.

Also found out that if a channel is not selected, then even if turned on it will not be emitting light. We do not a CoolLED pad to enable/disable the channels but Dominic did. I'm thinking of at least adding a warning during enable about it.

carandraug commented 4 years ago

Now that we have support for CoolLED I'm closing this.

This 20-100 milliseconds delay may be a problem for some setups but our recommendation is to use hardware triggers when performance matters. Would be nice if we could be faster, but that should be a separate issue from actually adding base support for CoolLEDs.