open-ephys-plugins / neuropixels-pxi

Open Ephys GUI plugin for interfacing with PXIe-based Neuropixels hardware
GNU General Public License v3.0
13 stars 19 forks source link

Stuck in setting/launching the chain with neuropixels PXI #16

Closed MarineChap closed 3 years ago

MarineChap commented 3 years ago

Hello, I hope you will be able to help me. I have very little info to troubleshoot this. So I had a neuropixel PXI reader in OpenEphys. I was able to read signal but little weird because of course I did not put the calibration files at the right place. I closed OpenEphys put the calibration files in the OpenEphys folder and relaunch OpenEphys. Now, the gui is not opening and litterally nothing is happening. See the log below - Could you help me to troubleshoot what is happening ? It seems something is silently failing somewhere.

Thank you for your help ! ps: usually we are using spikeGLX and everything works fine - so definitely not a hardware problem.

Created processor graph.
Got audio device.
Audio device name: Digital Audio (S/PDIF) (High Definition Audio Device)
Audio device type: Windows Audio
Audio output channels: 2
Audio device sample rate: 44100
Audio device buffer size: 1024
Created audio component.
Created message center.
Created info label.
Created graph viewer.
Adding tab with index 1
Adding tab with index 2
Created data viewport.
Created filter viewport.
Created control panel.
Created filter list.
Created plugin manager
Loading Plugin: ArduinoOutput... Loaded with 1 plugins
Loading Plugin: BasicSpikeDisplay... Loaded with 2 plugins
Loading Plugin: CAR... Loaded with 1 plugins
Loading Plugin: ChannelMappingNode... Loaded with 1 plugins
Loading Plugin: EvntTrigAvg... Loaded with 1 plugins
Loading Plugin: FilterNode... Loaded with 1 plugins
Loading Plugin: IntanRecordingController... Loaded with 1 plugins
Loading Plugin: LfpDisplayNode... Loaded with 1 plugins
Loading Plugin: LfpDisplayNodeBeta... Loaded with 1 plugins
Loading Plugin: NeuropixPluginPXI... D:\a\plugin-GUI\plugin-GUI\Source\Processors\PluginManager\PluginManager.cpp:218: Failed to load plugin DLL: DLL Error 0x7e
 DLL Load FAILED
Loading Plugin: PhaseDetector... Loaded with 1 plugins
Loading Plugin: PulsePalOutput... Loaded with 1 plugins
Loading Plugin: RecordControl... Loaded with 1 plugins
Loading Plugin: Rectifier... Loaded with 1 plugins
Loading Plugin: RhythmNode... Loaded with 1 plugins
Loading Plugin: SerialInput... Loaded with 1 plugins
Loading Plugin: SpikeSorter... Loaded with 1 plugins
Loading Plugin: neuropixels-pxi... Loaded with 1 plugins
Num built in engines: 2
Adding engine: Binary
Adding engine: Open Ephys
Num plugin engines: 0
Loading window bounds.
Comparing configs
Loading processor graph.
Clearing signal chain.
Item dropped at insertion point 0
Creating from plugin info...
Neuropix-PXI(1)::Neuropix-PXI
  Opened BS on slot 2
Found 2 probes.
  Adding node to graph with ID number 100
Setting button 0 to 2:1
Setting button 1 to 2:2
Setting button 2 to 2:3
Setting button 3 to 2:4
    Adding editor.
Initializing probe 1/2...Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
Item dropped at insertion point 1
Creating from plugin info...
LFP viewer(1)::LFP Viewer
  Adding node to graph with ID number 101
    Adding editor.
Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
LFP Viewer updating settings.
Setting num inputs on LfpDisplayNode to 768
Re-setting num inputs on LfpDisplayNode to 384
Sample rate = 30000
Adding channel 384 for event source node 6553600
Resizing buffer for Subprocessor 6553600. Samples: 300000, Inputs: 384
Resizing buffer for Subprocessor 6553601. Samples: 25000, Inputs: 384
Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
LFP Viewer updating settings.
Setting num inputs on LfpDisplayNode to 768
Re-setting num inputs on LfpDisplayNode to 384
Sample rate = 30000
Adding channel 384 for event source node 6553600
Resizing buffer for Subprocessor 6553600. Samples: 300000, Inputs: 384
Resizing buffer for Subprocessor 6553601. Samples: 25000, Inputs: 384
Item dropped at insertion point 2
Creating from plugin info...
Basic Spike Display(1)::Spike Viewer
  Adding node to graph with ID number 102
    Adding editor.
Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
LFP Viewer updating settings.
Setting num inputs on LfpDisplayNode to 768
Re-setting num inputs on LfpDisplayNode to 384
Sample rate = 30000
Adding channel 384 for event source node 6553600
Resizing buffer for Subprocessor 6553600. Samples: 300000, Inputs: 384
Resizing buffer for Subprocessor 6553601. Samples: 25000, Inputs: 384
Spike Viewer updating settings.
Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
LFP Viewer updating settings.
Setting num inputs on LfpDisplayNode to 768
Re-setting num inputs on LfpDisplayNode to 384
Sample rate = 30000
Adding channel 384 for event source node 6553600
Resizing buffer for Subprocessor 6553600. Samples: 300000, Inputs: 384
Resizing buffer for Subprocessor 6553601. Samples: 25000, Inputs: 384
Spike Viewer updating settings.
Restoring parameters for each processor...
Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
Loading parameters for Neuropix-PXI
Button clicked...
Got processor.
Creating interface for 2:2
2--2
Creating interface for 2:3
2--3
Created canvas.
Adding tab with index 3
Found parameters for Neuropixels editor
Setting thread directory for slot 0
Thread setting directory for slot 0 to
Found settings for probe 18005118262
 Updating gains.
Found settings for probe 18005117581
LFP Viewer updating settings.
Setting num inputs on LfpDisplayNode to 768
Re-setting num inputs on LfpDisplayNode to 384
Sample rate = 30000
Adding channel 384 for event source node 6553600
Resizing buffer for Subprocessor 6553600. Samples: 300000, Inputs: 384
Resizing buffer for Subprocessor 6553601. Samples: 25000, Inputs: 384
Loading parameters for LFP Viewer
Spike Viewer updating settings.
Loading parameters for Spike Viewer
Neuropix-PXI updating settings.
Neuropix-PXI setting num outputs to 768
LFP Viewer updating settings.
Setting num inputs on LfpDisplayNode to 768
jsiegle commented 3 years ago

Hi Marine,

What version of the GUI are you using? The version number is visible in the lower right of the "Graph" tab.

If it's not 0.5.2.1, can you try upgrading to the latest version? It's available here as an .exe installer and a .zip file.

MarineChap commented 3 years ago

Thank you for this fast answer. I will look tomorrow to be sure I don't say something wrong. Also, I just learned that the firmware update planned for the Neuropixels did not happen. So we don't have the last version. Do you think it could come from here ? Thanks.

jsiegle commented 3 years ago

Ok! The Neuropixels plugin is currently only compatible with the older firmware, but we will release an update that works with the newer firmware in ~1 week.

MarineChap commented 3 years ago

Hello @jsiegle, we are indeed using the 0.5.2.1 version of the gui. But maybe I will just wait one week for the update. We will work in the future with the new firmware anyway. Also, do you have an idea of the latency to read the data on the probe ? I am trying to use the neuropixels in close-loop experiments.

jsiegle commented 3 years ago

Ok, we will let you know when it's ready. In the meantime, can you attach the file named lastConfig.xml to this issue? We'd like to figure out why the reload is not working.

The last time we measured it, median latency was quite fast (<2 ms), but the upper bound could be as high as 15 ms. However, we have not run any benchmarks with the latest API/firmware, so I can't promise those numbers are still valid.

MarineChap commented 3 years ago

The xml file you asked (if you saw before my edit, yes we found it ;) ) lastConfig.txt

Do you have an official benchmark published somewhere ? I have many questions. What is the size of the buffer to read the data ? How this latency is computed ... etc?

Thank you.

jsiegle commented 3 years ago

Thanks! We did the benchmarking by monitoring the number of packets available each time data was fetched, and multiplying by the packet size. This doesn't take into account the time required to copy the packets into the Open Ephys software buffer, but it's at least a lower bound on the latency.

As far as I know, there are no official numbers for this, so it would be good to do some more rigorous tests with the latest firmware and API. Is this something you'd be willing to help with?

jsiegle commented 3 years ago

The config file loads fine on our end. Can you try deleting lastConfig.xml and recoveryConfig.xml and launching the GUI again? If closing and re-opening still causes it to freeze, let us know.

MarineChap commented 3 years ago

Hello, I would be happy to help with some latency tests. I will have to do it anyway for Falcon at some point.

We removed both files but still the app does not open. I asked to the PhD student to uninstall and reinstall it and retry but she did not have the time today.

Also in the interval, my colleague did the firmware update so It should not work anyway, right ? Sorry, I am in a confined region with mandatory homeworking. That's not easy to do the test that I want in the lab.

jsiegle commented 3 years ago

Yes, we need to run some more tests on the plugin version that works with the updated firmware (source code is here), but it should be ready soon.

MarineChap commented 3 years ago

Edit: I just saw your email - it was lost in junk email for whatever reason ! I will test it as soon as possible. Thank you !

Hello @jsiegle,

What is the status of your update ? I saw a commit named "add to the binary", does that means I just need to reinstall Open-Ephys and add the neuropixels PXI plugin to have the new versions ?

Thank you, Have a good day

MarineChap commented 3 years ago

The new plugin is amazing.
I answered your email with some comments. I think we can solve this comment as it is now working very well on our computer.