Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installing navigate and navigate MMcore #1038

Open
jcknowles opened this issue Nov 25, 2024 · 19 comments
Open

Installing navigate and navigate MMcore #1038

jcknowles opened this issue Nov 25, 2024 · 19 comments

Comments

@jcknowles
Copy link

I am not a programmer so have been tryin to step through the instructions.

Ive installed miniconda
Got this running.
Installed Navigate.
Using C:\users\lighsheet folder
Downloaded (is this the same as cloning?) MMCore zip file and unzipped it to C:\users\lighsheet\navigate-mmcore-plugin-develop folder
Configured the windows environment

If I run navigate as navigate -sh it starts

If I run just navigate i get the following errors

vvvvvvvvvvvvvvvvvvvvvvvvvvv Child Process Traceback vvvvvvvvvvvvvvvvvvvvvvvvvvv
Traceback (most recent call last):
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\model\concurrency\concurrency_tools.py", line 501, in child_loop
obj = initializer(*initargs, **initkwargs)
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\model\model.py", line 115, in init
devices_dict = load_devices(
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\model\device_startup_functions.py", line 1393, in load_devices
camera = load_camera_connection(configuration, id, is_synthetic)
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\model\device_startup_functions.py", line 172, in load_camera_connection
HamamatsuController = importlib.import_module(
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\importlib_init
.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\model\devices\APIs\hamamatsu\HamamatsuAPI.py", line 38, in
_dll = windll.LoadLibrary("dcamapi.dll")
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\ctypes_init
.py", line 460, in LoadLibrary
return self.dlltype(name)
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\ctypes_init
.py", line 382, in init
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'dcamapi.dll' (or one of its dependencies). Try using the full path with constructor syntax.
^^^^^^^^^^^^^^^^^^^^^^^^^^^ Child Process Traceback ^^^^^^^^^^^^^^^^^^^^^^^^^^^
vvvvvvvvvvvvvvvvvvvvvvvvvvv Main Process Traceback vvvvvvvvvvvvvvvvvvvvvvvvvvvv
Traceback (most recent call last):
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Users\Lightsheet\miniconda3\envs\navigate\Scripts\navigate.exe_main
.py", line 7, in
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\main.py", line 113, in main
Controller(
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\controller\controller.py", line 195, in init
self.model = ObjectInSubprocess(
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\model\concurrency\concurrency_tools.py", line 383, in init
assert _get_response(self) == "Successfully initialized"
File "C:\Users\Lightsheet\miniconda3\envs\navigate\lib\site-packages\navigate\model\concurrency\concurrency_tools.py", line 438, in _get_response
raise resp
FileNotFoundError: Could not find module 'dcamapi.dll' (or one of its dependencies). Try using the full path with constructor syntax.

@AdvancedImagingUTSW
Copy link
Collaborator

Thanks for not hesitating to reach out. Could you also share with us your configuration file from your .navigate folder? I assume navigate opens if you give the command navigate -sh?

At first glance, it appears that you need to install the Hamamatsu drivers. You should make sure that you are able to open your camera using their software.

https://www.hamamatsu.com/us/en/product/cameras/software/driver-software.html

Let me know how it goes and we can connect via Zoom to get things up and working.

Best,
Kevin

@jcknowles
Copy link
Author

jcknowles commented Nov 25, 2024 via email

@AdvancedImagingUTSW
Copy link
Collaborator

Hello Johnathan,

I just quickly reviewed the parts list for the OpenSPIM, and we can get you most of the way there. It ultimately depends upon your timeline and willingness to purchase another piece of equipment.

Navigate uses National Instruments data acquisition cards to perform all analog and digital triggering of cameras and lasers. It does not seem like the OpenSPIM requires this. Would you happen to have one of these cards lying around? They run around $3k USD (see attached quote from Newark). Additionally, we would have to add support for the PCO camera, but I don't suspect that would be too difficult. The PCO camera has a great API, and we know several labs who routinely control these cameras with their own Python software.

Otherwise, the Picard stage is supported my the MMCore plugin, and @annie-xd-wang would be able to help you with that. And most likely, we could wire up the lasers for analog/digital external control no problem. What exact model of Omicron do you have? We typically use the LightHUB systems...

All the best,
Kevin

Newark[41].pdf

@jcknowles
Copy link
Author

jcknowles commented Nov 25, 2024 via email

@jcknowles
Copy link
Author

jcknowles commented Nov 25, 2024 via email

@AdvancedImagingUTSW
Copy link
Collaborator

The PCIe card would work for triggering cameras, shutters, and digital modulation of lasers. It does not have analog outputs, so laser intensity would have to be set using the Omicron software.

There are no galvos, right? It is a sample scanning system with a static light-sheet?

image

@jcknowles
Copy link
Author

jcknowles commented Nov 25, 2024 via email

@AdvancedImagingUTSW
Copy link
Collaborator

That sounds simple enough. What is the exact model of the PCO camera that you have? That is the last thing holding us up...

Best,
Kevin

@jcknowles
Copy link
Author

jcknowles commented Nov 25, 2024 via email

@AdvancedImagingUTSW
Copy link
Collaborator

Sounds good. Thanks for the information. Before you do anything, the first thing we need to do is evaluate how difficult it will be for us to add software for controlling that PCO camera. Please let us know what your timeline is. It won't be overnight on our side to add new code for controlling the camera.

@jcknowles
Copy link
Author

jcknowles commented Nov 25, 2024 via email

@jcknowles
Copy link
Author

jcknowles commented Nov 26, 2024 via email

@AdvancedImagingUTSW
Copy link
Collaborator

Hello Jonathan,

The NI card you have is perfectly fine. We can control the power of the lasers externally (either via MicroManager or with Omicron's software), and use the NI card to trigger the laser and the camera. Of course, you would need a cable and breakout box to connect to your PCIe-based NI card. We would not use the Ardruino. Annie is looking into the PCO camera and we hope to get back you fairly quickly.

Best,
Kevin

@jcknowles
Copy link
Author

jcknowles commented Nov 26, 2024 via email

@jcknowles
Copy link
Author

jcknowles commented Nov 27, 2024 via email

@AdvancedImagingUTSW
Copy link
Collaborator

That looks like it will work. The pinout is here:
https://www.ni.com/docs/en-US/bundle/scc-68-seri/resource/374748b.pdf

@jcknowles
Copy link
Author

jcknowles commented Nov 28, 2024 via email

@AdvancedImagingUTSW
Copy link
Collaborator

If the NI device shows up in NI MAX, then you are set.

If you do not have NI MAX on your computer, you will need to download these drivers:

https://www.ni.com/en/support/downloads/drivers/download.ni-daq-mx.html?srsltid=AfmBOor7OYv3P2xZgXd3XceqwaA7iwegv6J8c8_oskCWJH_IYgv7fDWC#549669

We also provide some information on connecting NI cards in our documentation here.

@AdvancedImagingUTSW
Copy link
Collaborator

Just an update. It does not appear that the PCO drivers provided by MMCore provide external triggering, which we feel is important. @annie-xd-wang will be adding new code to navigate to integrate the camera fully. We have requested a loaner camera for testing, but we may rely on you to help us with that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants