Micro-manager Initializing devices

First, I am a newbie with the Python bindings of Micro-Manager, pymmcore. I got the following error after calling mmc.initializeAllDevices() to initialize all devices with the Thorlabs elliptec slider being part of the devices after all devices are loaded by MM. When I removed the slider from the cfg file, I no longer get the error message.
I understand that the mmc.initializeAllDevices() command initializes all loaded devices but I think it’s possible some devices are auto-initialized. if true, is there a command to load all devices that have not been initialized yet?

257                logger.debug("Initialize all devices in MMCore") 
-->  258           self.mmc.initializeAllDevices() 

RuntimeError: <Swig Object of type 'CMMError *' at 0x000001F4FACEBAB0>|

Here is a copy of my cfg file

# Generated by Configurator on Mon Nov 02 12:08:50 CST 2020

# Reset
Property,Core,Initialize,0

# Devices
Device,COM5,SerialManager,COM5
Device,COM4,SerialManager,COM4
Device,SliderShutter,ThorlabsElliptecSlider_shutter (1),Thorlabs ELL6 shutter
Device,SaperaGigE,SaperaGigE,Sapera GigE camera adapter
Device,Thorlabs Filter Wheel,ThorlabsFilterWheel,Thorlabs Filter Wheel

# Pre-init settings for devices
Property,SliderShutter,Channel,0
Property,SliderShutter,Port,COM4
Property,Thorlabs Filter Wheel,Port,COM5

# Pre-init settings for COM ports
Property,COM5,AnswerTimeout,500.0000
Property,COM5,BaudRate,115200
Property,COM5,DTR,Disable
Property,COM5,DataBits,8
Property,COM5,DelayBetweenCharsMs,0.0000
Property,COM5,Fast USB to Serial,Disable
Property,COM5,Handshaking,Off
Property,COM5,Parity,None
Property,COM5,StopBits,1
Property,COM5,Verbose,1
Property,COM4,AnswerTimeout,500.0000
Property,COM4,BaudRate,9600
Property,COM4,DTR,Disable
Property,COM4,DataBits,8
Property,COM4,DelayBetweenCharsMs,0.0000
Property,COM4,Fast USB to Serial,Disable
Property,COM4,Handshaking,Off
Property,COM4,Parity,None
Property,COM4,StopBits,1
Property,COM4,Verbose,1

# Hub (parent) references

# Initialize
Property,Core,Initialize,1

# Pixel type
Property,SaperaGigE,PixelType,Mono10
Property,SaperaGigE,Exposure,20

# Delays

# Focus directions

# Roles
Property,Core,Camera,SaperaGigE
Property,Core,Shutter,SliderShutter
Property,Core,AutoShutter,0

# Camera-synchronized devices

# Labels
# Thorlabs Filter Wheel
Label,Thorlabs Filter Wheel,5,f1050x50h
Label,Thorlabs Filter Wheel,4,f900x50h
Label,Thorlabs Filter Wheel,3,f750x50h
Label,Thorlabs Filter Wheel,2,f600x50h
Label,Thorlabs Filter Wheel,1,f430x10h
Label,Thorlabs Filter Wheel,0,f394x10h

# Configuration presets
# Group: Channel

# Group: System
# Preset: Startup



# PixelSize settings
#Property,SaperaGigE,PixelType,10bit

Below is a simple notebook that shows what is going on.

The ELL6 Shutter was changed (added?) in the source code repository yesterday, which suggests that some code is out of sync. Try updating everything to the latest (i.e. yesterday’s) build, and check that the ELL6 shutter works in the Micro-Manager GUI.

I updated the to yesterday’s build. I can select the ELL6 shutter in the Micro-Manager GUI. However, All devices are to be controlled through pymmcore (Python binding for Micro-Manager). I still have issues with initializing the shutter. See image below.

initializeDevice calls the “initialize” function in the device adapter, which - in the case of the ELL6 Shutter - does almost nothing. It is quite a pitty that the RunTime errors are not more informative…

Could you try to load and initialize the “Thorlabs ELL6” rather than the shutter? Reason is that the ELL6 Shutter was only added yesterday, and even though you updated, I could still imagine that something is out of sync. @marktsuchida: any ideas?

Same issue even with Thorlabs ELL6.

I am out of ideas. Hope that @marktsuchida (who wrote the python bindings) will respond. If you are in a pickle, try using pycro-manager. It provides a python bridge to a running Micro-Manager instance, and since your shutter works there, it should work as well.

Hopefully, @marktsuchida would have an idea.