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

UCLA miniscope V4 support #275

Merged
merged 18 commits into from
Sep 20, 2024
Merged

UCLA miniscope V4 support #275

merged 18 commits into from
Sep 20, 2024

Conversation

jonnew
Copy link
Member

@jonnew jonnew commented Aug 30, 2024

- This device needs some work arounds because its clock is completely
out of spec for the SERDES it uses. The back channel must be used to
configure a PLL on the camera in order to bump the PCLK rate before it
will like. For this reason, I mad ConfigureFmcLinkController.
CheckLinkState virtual so I could override its behavior with these steps
before checking the link state
- Added configuraiton and streaming functionality.
- There are few outstanding issues:
1. Something is wrong with the DS90UB9x configuration resulting in 1
missing column from each frame and imaging data that "slides" by one
column for each image produced
2. The axis map for the BNO needs to be set correctly
3. I was unable to verify that the EWL was functioning. It might be
fine, but I was unable to verify.
- Consistent naming with with ConfigureUclaMiniscopeV4Camera
- Capture configuration properties outside of ConfigureDevice in
ConfigureUclaMiniscopeV4Camera
- Address code syntax and naming issues
- Add Vsync rising mark to frame data so that we can align images to the
first row in the face of asynchronous bonsai fraime collection
- There is a larger issue about data integrity that seems to have more
to do with the miniscope pcb design than issues with our hardware this
library that is documented in #115
- Tested on OEPS miniscope V4.4
- To finalize this, we must test on a large batch of scopes to ensure
  functionality of all features and reliablity of datastream
- Before, the driver was never enabled.
- Use sample index instead of defining a second boolean variable
@bparks13 bparks13 added this to the 0.3.0 milestone Sep 6, 2024
- Allow for retries during the final camera setup because the scope is
  finicky
- More retry logic
- Provide port controller with reference to Camera object so that it can
  signal it has already performed configmration in its retry loop. This
  prevents the camera from trying, and ponentially failing, to
  configurre itself redundantly. It is _not_ and elegant way to do this.
  The real solution relates much more to known issues about passthrough
  device configuration logic and where that should be located
@jonnew
Copy link
Member Author

jonnew commented Sep 18, 2024

@bparks13 Please have a look at the latest commits if you dont mind, this is ready to merge on my end.

Copy link
Member

@bparks13 bparks13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, couple minor typos but that's it.

OpenEphys.Onix1/ConfigureUclaMiniscopeV4.cs Outdated Show resolved Hide resolved
OpenEphys.Onix1/ConfigureUclaMiniscopeV4.cs Show resolved Hide resolved
OpenEphys.Onix1/ConfigureUclaMiniscopeV4.cs Outdated Show resolved Hide resolved
OpenEphys.Onix1/UclaMiniscopeV4Bno055Data.cs Outdated Show resolved Hide resolved
OpenEphys.Onix1/UclaMiniscopeV4Bno055Data.cs Outdated Show resolved Hide resolved
- It was previously unset and relying on whatever the state of the
  deserializer was previously
- Remove UclaMiniscopeV4-specific Bno055
- Add correct axis remapping
- 8-bit data is much easier to save, especially in bonsai
- 10-bit is available if people want it.
@jonnew
Copy link
Member Author

jonnew commented Sep 19, 2024

@bparks13 I had to add some extra stuff, in there, and XML comments for that. Can you have a look at the new comments for typos etc? Thank you.

@bparks13 bparks13 merged commit 4a93fda into main Sep 20, 2024
7 checks passed
@bparks13 bparks13 deleted the issue-112-2 branch September 20, 2024 14:54
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

Successfully merging this pull request may close these issues.

Miniscope real-time properties need to be moved to configuration node Miniscope V4 support
2 participants