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

Latest neuropix-PXI plugin (0.7) crashes #648

Open
chris-angeloni opened this issue Feb 24, 2025 · 9 comments
Open

Latest neuropix-PXI plugin (0.7) crashes #648

chris-angeloni opened this issue Feb 24, 2025 · 9 comments

Comments

@chris-angeloni
Copy link

chris-angeloni commented Feb 24, 2025

I recently updated the GUI to the most recent version (0.6.7), upgraded the firmware for the neuropixels basestation and card, and upgraded the Neuropix-PXI plugin to 0.7 (the following screenshot was taken using a downgraded version of the plugin to verify the firmware versions):

Image

However, I cannot get the latest version of the plugin to run. Immediately upon adding it to the signal chain the GUI crashes. Downgrading to the 0.6.6 version of the plugin gets rid of this behavior, and probe signals look normal.

Any help is appreciated!

@anjaldoshi
Copy link
Member

Hi @chris-angeloni, could you please confirm if you restarted your computer and performed a power cycle on the PXI chassis after updating the basestation firmware? This step is necessary to ensure that the changes take effect.

Could you also share the crash log file generated during that run with the plugin version 0.7.0? It can be located in the folder C:\ProgramData\Open Ephys\configs-api8, and the file name should be activity_<timestamp>.log (for instance, activity_2025-02-24_15-21-22.log).

@chris-angeloni
Copy link
Author

chris-angeloni commented Feb 24, 2025

I did restart and power cycle the chassis. Here is the crash log:

[open-ephys] Session Start Time: 24 Feb 2025 16:50:28
[open-ephys] Open Ephys GUI v0.6.7 (Plugin API v8)
[open-ephys] JUCE v6.0.8
[open-ephys] Operating System: Windows 10
[open-ephys] CPU: 12th Gen Intel(R) Core(TM) i7-12700KF (20 core)
[open-ephys][debug] Creating processor graph...
[open-ephys][debug] Creating audio component...
[open-ephys] Audio device name: Digital Audio (S/PDIF) (High Definition Audio Device)
[open-ephys] Audio device type: Windows Audio
[open-ephys] Audio output channels: 2
[open-ephys] Audio device sample rate: 44100
[open-ephys] Audio device buffer size: 1024
[open-ephys][debug] Connecting audio component to processor graph...
[open-ephys][debug] Creating UI component...
[open-ephys][debug] Created message center.
[open-ephys][action] Button 'About' clicked
[open-ephys][debug] Created info label.
[open-ephys][debug] Created graph viewer.
[open-ephys][debug] Refreshing state for Info
[open-ephys][debug] Data Viewport adding tab with index 1
[open-ephys][debug] Refreshing state for Info
[open-ephys][debug] Data Viewport adding tab with index 2
[open-ephys][debug] Refreshing state for Graph
[open-ephys][debug] Created data viewport.
[open-ephys][debug] Created editor viewport.
[open-ephys][debug] Created control panel.
[open-ephys][debug] Created filter list.
[open-ephys][debug] Created plugin manager
[open-ephys][debug] Loading Plugin: ArduinoOutput... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: BasicSpikeDisplay... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 2 plugins
[open-ephys][debug] Loading Plugin: ChannelMappingNode... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: CommonAverageRef... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: FilterNode... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: LfpDisplayNode... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: PhaseDetector... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: RecordControl... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: neuropixels-pxi... 
[open-ephys][debug] Adding data thread plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: nidaq-plugin... 
[open-ephys][debug] Adding data thread plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] ProcessorList::fillItemList()
[open-ephys][debug] Processor List - creating item for Merger
[open-ephys][debug] Processor List - creating item for Splitter
[open-ephys][debug] Processor List - creating item for File Reader
[open-ephys][debug] Processor List - creating item for Record Node
[open-ephys][debug] Processor List - creating item for Audio Monitor
[open-ephys][debug] Processor List - creating item for Event Translator
[open-ephys][debug] Processor List - creating item for Arduino Output
[open-ephys][debug] Processor List - creating item for Spike Detector
[open-ephys][debug] Processor List - creating item for Spike Viewer
[open-ephys][debug] Processor List - creating item for Channel Map
[open-ephys][debug] Processor List - creating item for Common Avg Ref
[open-ephys][debug] Processor List - creating item for Bandpass Filter
[open-ephys][debug] Processor List - creating item for LFP Viewer
[open-ephys][debug] Processor List - creating item for Phase Detector
[open-ephys][debug] Processor List - creating item for Record Control
[open-ephys][debug] Processor List - creating item for Neuropix-PXI
[open-ephys][debug] Processor List - creating item for NI-DAQmx
[open-ephys][debug] Built-in Record Engine count: 1
[open-ephys][debug] Adding Record Engine: Binary
[open-ephys][debug] Plugin Record Engine count: 0
[open-ephys][ddebug] Got creator
[open-ephys][debug] Loading window bounds.
[open-ephys][debug] Loading Window Bounds: 0 31 1920 830
[open-ephys][action] Slider 'Volume Slider' set value to 50
[open-ephys] Beginning HTTP server on port 37497
[open-ephys] Checking for a newer version of the GUI...
[open-ephys][debug] CoreServices::sendStatusMessage: Plugin Installer is ready!
[open-ephys][action] Label 'Message Display Area' text changed to Plugin Installer is ready!
[open-ephys][action] ComboBox '' selected option 1: 0.7.0-API8
[open-ephys][action] Button '' clicked
[open-ephys][action] Button '' clicked
[open-ephys][debug] Removing data thread plugin: Neuropix-PXI
[open-ephys] Downloading Plugin: Neuropix-PXI | Version: 0.7.0-API8
[open-ephys][debug] Adding data thread plugin
[open-ephys][debug] Adding data thread plugin
[open-ephys][debug] ProcessorList::fillItemList()
[open-ephys][debug] Processor List - creating item for Merger
[open-ephys][debug] Processor List - creating item for Splitter
[open-ephys][debug] Processor List - creating item for File Reader
[open-ephys][debug] Processor List - creating item for Record Node
[open-ephys][debug] Processor List - creating item for Audio Monitor
[open-ephys][debug] Processor List - creating item for Event Translator
[open-ephys][debug] Processor List - creating item for Arduino Output
[open-ephys][debug] Processor List - creating item for Spike Detector
[open-ephys][debug] Processor List - creating item for Spike Viewer
[open-ephys][debug] Processor List - creating item for Channel Map
[open-ephys][debug] Processor List - creating item for Common Avg Ref
[open-ephys][debug] Processor List - creating item for Bandpass Filter
[open-ephys][debug] Processor List - creating item for LFP Viewer
[open-ephys][debug] Processor List - creating item for Phase Detector
[open-ephys][debug] Processor List - creating item for Record Control
[open-ephys][debug] Processor List - creating item for NI-DAQmx
[open-ephys][debug] Processor List - creating item for Neuropix-PXI
[open-ephys][debug] Processor List - creating item for OneBox
[open-ephys] Download Successfull!!
[open-ephys][action] Button 'OK' clicked
[open-ephys][action] Processor List Selecting: Neuropix-PXI
[open-ephys][action] Processor List - Neuropix-PXI drag start.
[open-ephys][debug] Item dropped at insertion point 0
[open-ephys][ddebug] Performing ADD for processor -1
[open-ephys] Creating processor with name: Neuropix-PXI
[open-ephys][debug] 
0: juce::SystemStats::getStackBacktrace + 0x93
1: ofSerialDeviceInfo::~ofSerialDeviceInfo + 0x19fde
2: juce::Time::getYear + 0x6a
3: UnhandledExceptionFilter + 0x1ec
4: memcpy + 0x2bbd
5: _C_specific_handler + 0x97
6: _chkstk + 0x12f
7: RtlFindCharInUnicodeString + 0xa96
8: KiUserExceptionDispatcher + 0x2e
9: Thrd_yield + 0x138
13: SourceNode::SourceNode + 0xd0
14: PluginClass::setPluginData + 0xafbb
15: PluginClass::setPluginData + 0x5df9
16: Visualizer::startCallbacks + 0x116aa
17: juce::UndoManager::perform + 0x44
18: Visualizer::startCallbacks + 0x9bfc
19: Visualizer::startCallbacks + 0xc0d4
20: juce::ComboBox::mouseUp + 0x290
21: juce::LowLevelGraphicsPostScriptRenderer::writeXY + 0x7020
22: juce::Component::internalMouseUp + 0x3ab
23: juce::Button::setButtonText + 0x1f9
24: juce::MouseInputSource::handleEvent + 0x1f8
25: juce::MouseInputSource::handleEvent + 0x96
26: juce::TooltipWindow::displayTip + 0x6db
27: juce::TooltipWindow::displayTip + 0xa0e
28: juce::DrawableShape::pathChanged + 0xa1c
29: juce::MouseInactivityDetector::wakeUp + 0x259
30: DispatchMessageW + 0x741
31: DispatchMessageW + 0x201
32: juce::MessageManager::runDispatchLoop + 0x111
33: juce::JUCEApplicationBase::main + 0xa9
34: TiledButtonGroupManager::setMinPaddingBetweenButtons + 0xea6
35: BaseThreadInitThunk + 0x1d
36: RtlUserThreadStart + 0x28

@anjaldoshi
Copy link
Member

anjaldoshi commented Feb 24, 2025

Thanks for confirming and sending the crash log. Unfortunately, it doesn’t provide much information about the cause of the crash.

Did you attempt to add the Neuropix-PXI plugin version 0.7 into the signal chain again after it crashed the first time? Does it crash every time you try to use it? If so, could you please copy and past the contents of the console here after the GUI crashes? This information might provide more details about the location of the crash during the plugin initialization process.

@chris-angeloni
Copy link
Author

Yes it has been crashing every time I try to use it, I'll try to get the console output for you today.

@chris-angeloni
Copy link
Author

chris-angeloni commented Feb 25, 2025

Unfortunately the console output does not seem to be very useful.

edit: this was after a fresh install of the GUI

Image

@anjaldoshi
Copy link
Member

That's strange. It might be an issue with the DLL files. Could you please check if the latest Neuropixels library DLLs are installed? Navigate to C:\ProgramData\Open Ephys\shared-api8 and look for these files: NeuropixAPI_x64_3_70_2.dll, FpgaManager.dll, and FTD3XX.dll.

If they're already there, try this:

  1. Launch the GUI and make sure the signal chain is cleared.
  2. Open the Plugin Installer, uninstall the Neuropix-PXI plugin, and then close the GUI.
  3. Delete the NeuropixAPI_x64_3_70_2.dll, FpgaManager.dll, and FTD3XX.dll files from C:\ProgramData\Open Ephys\shared-api8.
  4. Relaunch the GUI, reinstall the Neuropix-PXI plugin (v0.7.0), and then try adding the plugin to the signal chain.

Let me know if that resolves the issue.

@chris-angeloni
Copy link
Author

chris-angeloni commented Feb 25, 2025

It is still crashing after the suggestions you just posted. Here is the console output and crash log (they are identical to before as far as I can tell):

Image

[open-ephys] Session Start Time: 25 Feb 2025 12:45:55
[open-ephys] Open Ephys GUI v0.6.7 (Plugin API v8)
[open-ephys] JUCE v6.0.8
[open-ephys] Operating System: Windows 10
[open-ephys] CPU: 12th Gen Intel(R) Core(TM) i7-12700KF (20 core)
[open-ephys][debug] Creating processor graph...
[open-ephys][debug] Creating audio component...
[open-ephys] Audio device name: Digital Audio (S/PDIF) (High Definition Audio Device)
[open-ephys] Audio device type: Windows Audio
[open-ephys] Audio output channels: 2
[open-ephys] Audio device sample rate: 44100
[open-ephys] Audio device buffer size: 1024
[open-ephys][debug] Connecting audio component to processor graph...
[open-ephys][debug] Creating UI component...
[open-ephys][debug] Created message center.
[open-ephys][action] Button 'About' clicked
[open-ephys][debug] Created info label.
[open-ephys][debug] Created graph viewer.
[open-ephys][debug] Refreshing state for Info
[open-ephys][debug] Data Viewport adding tab with index 1
[open-ephys][debug] Refreshing state for Info
[open-ephys][debug] Data Viewport adding tab with index 2
[open-ephys][debug] Refreshing state for Graph
[open-ephys][debug] Created data viewport.
[open-ephys][debug] Created editor viewport.
[open-ephys][debug] Created control panel.
[open-ephys][debug] Created filter list.
[open-ephys][debug] Created plugin manager
[open-ephys][debug] Loading Plugin: ArduinoOutput... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: BasicSpikeDisplay... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 2 plugins
[open-ephys][debug] Loading Plugin: ChannelMappingNode... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: CommonAverageRef... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: FilterNode... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: LfpDisplayNode... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: PhaseDetector... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: RecordControl... 
[open-ephys][debug] Adding processor plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] Loading Plugin: neuropixels-pxi... 
[open-ephys][debug] Adding data thread plugin
[open-ephys][debug] Adding data thread plugin
[open-ephys][debug]   Loaded with 2 plugins
[open-ephys][debug] Loading Plugin: nidaq-plugin... 
[open-ephys][debug] Adding data thread plugin
[open-ephys][debug]   Loaded with 1 plugin
[open-ephys][debug] ProcessorList::fillItemList()
[open-ephys][debug] Processor List - creating item for Merger
[open-ephys][debug] Processor List - creating item for Splitter
[open-ephys][debug] Processor List - creating item for File Reader
[open-ephys][debug] Processor List - creating item for Record Node
[open-ephys][debug] Processor List - creating item for Audio Monitor
[open-ephys][debug] Processor List - creating item for Event Translator
[open-ephys][debug] Processor List - creating item for Arduino Output
[open-ephys][debug] Processor List - creating item for Spike Detector
[open-ephys][debug] Processor List - creating item for Spike Viewer
[open-ephys][debug] Processor List - creating item for Channel Map
[open-ephys][debug] Processor List - creating item for Common Avg Ref
[open-ephys][debug] Processor List - creating item for Bandpass Filter
[open-ephys][debug] Processor List - creating item for LFP Viewer
[open-ephys][debug] Processor List - creating item for Phase Detector
[open-ephys][debug] Processor List - creating item for Record Control
[open-ephys][debug] Processor List - creating item for Neuropix-PXI
[open-ephys][debug] Processor List - creating item for OneBox
[open-ephys][debug] Processor List - creating item for NI-DAQmx
[open-ephys][debug] Built-in Record Engine count: 1
[open-ephys][debug] Adding Record Engine: Binary
[open-ephys][debug] Plugin Record Engine count: 0
[open-ephys][ddebug] Got creator
[open-ephys][debug] Loading window bounds.
[open-ephys][debug] Loading Window Bounds: 0 31 1920 961
[open-ephys][action] Slider 'Volume Slider' set value to 50
[open-ephys] Beginning HTTP server on port 37497
[open-ephys] Checking for a newer version of the GUI...
[open-ephys][action] Processor List Selecting: Neuropix-PXI
[open-ephys][action] Processor List - Neuropix-PXI drag start.
[open-ephys][debug] Item dropped at insertion point 0
[open-ephys][ddebug] Performing ADD for processor -1
[open-ephys] Creating processor with name: Neuropix-PXI
[open-ephys][debug] 
0: juce::SystemStats::getStackBacktrace + 0x93
1: ofSerialDeviceInfo::~ofSerialDeviceInfo + 0x19fde
2: juce::Time::getYear + 0x6a
3: UnhandledExceptionFilter + 0x1ec
4: memcpy + 0x2bbd
5: _C_specific_handler + 0x97
6: _chkstk + 0x12f
7: RtlFindCharInUnicodeString + 0xa96
8: KiUserExceptionDispatcher + 0x2e
9: Thrd_yield + 0x138
13: SourceNode::SourceNode + 0xd0
14: PluginClass::setPluginData + 0xafbb
15: PluginClass::setPluginData + 0x5df9
16: Visualizer::startCallbacks + 0x116aa
17: juce::UndoManager::perform + 0x44
18: Visualizer::startCallbacks + 0x9bfc
19: Visualizer::startCallbacks + 0xc0d4
20: juce::ComboBox::mouseUp + 0x290
21: juce::LowLevelGraphicsPostScriptRenderer::writeXY + 0x7020
22: juce::Component::internalMouseUp + 0x3ab
23: juce::Button::setButtonText + 0x1f9
24: juce::MouseInputSource::handleEvent + 0x1f8
25: juce::MouseInputSource::handleEvent + 0x96
26: juce::TooltipWindow::displayTip + 0x6db
27: juce::TooltipWindow::displayTip + 0xa0e
28: juce::DrawableShape::pathChanged + 0xa1c
29: juce::MouseInactivityDetector::wakeUp + 0x259
30: DispatchMessageW + 0x741
31: DispatchMessageW + 0x201
32: juce::MessageManager::runDispatchLoop + 0x111
33: juce::JUCEApplicationBase::main + 0xa9
34: TiledButtonGroupManager::setMinPaddingBetweenButtons + 0xea6
35: BaseThreadInitThunk + 0x1d
36: RtlUserThreadStart + 0x28

@anjaldoshi
Copy link
Member

anjaldoshi commented Feb 25, 2025

Thank you for going through the debugging steps with me. This is the first time we're encountering this crash, so we want to ensure everything is in order.

If you have some time, the last thing to try is to compile the GUI and the Neuropix-PXI plugin locally in debug mode and run it from Visual Studio. This process should pinpoint exactly what's happening and won't interfere with the existing installation of the GUI on your system.

If you're up for it, here are the instructions:

  1. Compiling the GUI
  2. Compiling plugins

You can find the source code for the Neuropixels plugin here: Neuropixels-PXI GitHub repository. Please use the code from the main branch for both.

Let me know if you get stuck or need help with anything I mentioned above. Debugging it will also be helpful for us in case we need to fix something in the code or if we encounter a similar bug in the future.

@chris-angeloni
Copy link
Author

Hi Anjal, thanks for your help. I will try to compile from source sometime this week or next and let you know how it goes.

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