Molecular Devices SpectraMax#
The SpectraMax family of plate readers from Molecular Devices communicate over RS-232 serial. Both models share the same serial protocol (MolecularDevicesPlateReader), but differ in what they can read.
Model |
PLR Name |
Absorbance |
Fluorescence |
Luminescence |
Temperature Control |
|---|---|---|---|---|---|
SpectraMax M5 |
|
yes |
yes |
yes |
yes |
SpectraMax 384 Plus |
|
yes |
no |
no |
yes |
Connect the reader to your computer via an RS-232 serial cable (or USB-to-serial adapter). Note the serial port name (e.g. COM3 on Windows, /dev/ttyUSB0 on Linux).
Setup#
from pylabrobot.molecular_devices.spectramax import SpectraMaxM5
reader = SpectraMaxM5(name="spectramax", port="/dev/ttyUSB0") # replace with your port
await reader.setup()
For the SpectraMax 384 Plus:
# from pylabrobot.molecular_devices.spectramax import SpectraMax384Plus
#
# reader = SpectraMax384Plus(name="spectramax", port="/dev/ttyUSB0")
# await reader.setup()
Assign a plate to the reader’s loading tray:
from pylabrobot.resources import Cor_96_wellplate_360ul_Fb
plate = Cor_96_wellplate_360ul_Fb(name="plate")
reader.loading_tray.assign_child_resource(plate)
Absorbance#
Both the M5 and 384 Plus support absorbance reads. Pass the plate and the wells to read, plus the wavelength in nm.
results = await reader.read_absorbance(plate, plate.get_wells(), wavelength=450)
Reads are configured with keyword arguments, e.g. speed reads and calibration mode:
results = await reader.read_absorbance(
plate,
plate.get_wells(),
wavelength=450,
speed_read=True,
calibrate="once",
)
Fluorescence (M5 only)#
The SpectraMax M5 supports fluorescence reads.
results = await reader.read_fluorescence(
plate,
plate.get_wells(),
excitation_wavelength=485,
emission_wavelength=520,
focal_height=0.0,
)
PMT gain accepts one of "auto", "high", "medium", "low", or a raw integer value:
results = await reader.read_fluorescence(
plate,
plate.get_wells(),
excitation_wavelength=485,
emission_wavelength=520,
focal_height=0.0,
pmt_gain="high",
read_from_bottom=True,
)
Luminescence (M5 only)#
The SpectraMax M5 supports luminescence reads. emission_wavelengths is required.
results = await reader.read_luminescence(
plate,
plate.get_wells(),
focal_height=0.0,
emission_wavelengths=[460],
)
Temperature control#
Both models can hold a temperature between 0 and 45 C.
await reader.set_temperature(37.0)
current = await reader.request_current_temperature()
print(f"{current:.1f} \u00b0C")
await reader.deactivate()
Tray control#
Open and close the plate tray:
await reader.open()
# load plate
await reader.close()
Teardown#
await reader.stop()