microscope.controllers.coolled module

CoolLED illumination systems.

This was developed with a CoolLED pE-300 ultra but should work with the whole pE-300 series. It should also work with the pE-4000 and the pE expansion box with the exception of loading different sources.

class microscope.controllers.coolled.CoolLED(port: str, **kwargs)[source]

Bases: microscope.abc.Controller

CoolLED controller for the individual light devices.


port – port name (Windows) or path to port (everything else) to connect to. For example, /dev/ttyS1, COM1, or /dev/cuad1.

The individual channels are named A to H and depend on the actual device. The pE-300 have three channels named A, B, and C by increasing order of wavelength of their spectral region. The pE-4000 have four selectable channels named A, B, C, and D with channels E-H for peripheral devices via a pE expansion box.

# Connect to a pE-300 ultra and get the individual lights.
controller = CoolLED('/dev/ttyACM0')
violet = controller.devices['A']
blue = controller.devices['B']
red = controller.devices['C']

# Turn on the violet channel.

CoolLED controllers are often also used with a control pod. The control pod can turn on and off individual channels but it can also select/unselect those channels. If a channel is “unselected” a channel can only be off. Calling enable() on the individual channels will not “select” them, the user should do it himself via the control pod.

property devices

Map of names to the controlled devices.