OpenEphys.Onix1 is a completely refactored ONIX library for Bonsai that has
- Major architectural improvements
- Major performance improvements
- Major usability improvements
Please use OpenEphys.Onix1 instead of this library.
Bonsai library for Open Neuro Interface Compliant hardware with a focus on the ONIX System
Home Page: https://open-ephys.github.io/onix-docs/index.html#
License: MIT License
OpenEphys.Onix1 is a completely refactored ONIX library for Bonsai that has
Please use OpenEphys.Onix1 instead of this library.
ONIDevice
and I2Cconfiguration
(at least) each have their own wrappers around ONIContextTask.WriteRegister
and ONIContextTask.ReadRegister
. If a user loads a workflow and the device table is not in the same state as when that workflow was saved, the DeviceAddress
held by ONIDevice
and/or I2CConfiguration
may no longer be valid. This indicates that a more uniform step needs to be taken to probe the device table before every read and write (or some cached value) in order to verify that the DeviceAddress
points to the expected Device ID. To prevent having to do this in multiple places, I propose Static WriteRegister() and ReadRegister() wrappers that are the ultimate destinations of all of these register IO calls that performs this hardware check. Open to other options as well.
Hi,
Inside of NeuropixelsV1Device GUI Channels tab, what is the meaning of AP Filter tickbox? Could not find an explanation in the documentation.
I'm trying to see what is currently possible in term of harp-onix synchronisation. I got some of the hardware part sorted I think (here https://github.com/orgs/harp-tech/discussions/19) but I'm not sure about what is implemented already on the Bonsai.ONIX.
Is the HarpSyncInputDevice
already working? And what does it do? :)
Hi,
Working with Neuropixels, is there a way to access channel information (particularly channel locations) similarly to settings.xml from Neuropixels PXI plugin for OE GUI? The exported configuration file from NeuropixelsV1Device interface seems to only contain gain correction information. Is there documentation explaining how to parse it? Thanks.
Hello!
I'm running an OpenEphys 64-channel headstage on Bonsai through an ONI Acquisition Context
node. I don't know if this is a common issue, but when I just provide voltage to the headstage and start the workflow, the headstage commonly streams no data.
When that happens, all the relevant EnableStream
options are set to True
, and I usually have to:
oni-repl.exe riffa 0
andto get it to stream data. If I stop and start the workflow, I get the same issue. Any idea what might be the cause? I'd appreciate any insights / comments!
Please, find attached the workflow as a .txt file (Github Issues won't let me upload a .bonsai file).
AcquireEphys.txt
After setting the device to enabled in the ONI context it flips back to false immediately. Other estim parameters such as power on or current can be set in bonsai and seem to stay where I set them.
RHD and tracking work just fine. Replicated on two headstages.
The documentation for the AnalogIODevice currently states that a 12xN matrix can be provided to set the voltage on the output channels, and that if N>1 the samples are produced as quickly as the hardware allows.
The actual behavior of this node seems to be a little different, actually what seems to happen is that for any matrix with >=12 elements the values are just read in order up to the 12th element and then no other samples are written. For example, for a 12x2 matrix:
[0 11]
[1 10]
....
[10 1]
[11 0]
The observed final output voltages across the 12 channels are [0, 11, 1, 10, 2, 9 ....]
I wonder if it would be wise to remove the enable/disable stream register from the Heartbeat device so that ONIContextTask.ReadFrame() could have a hardware-based watchdog, like the following:
public oni.Frame ReadFrame()
{
if (Monitor.TryEnter(readLock, new TimeSpan(0, 0, 1)))
{
try
{
return ctx.ReadFrame();
}
finally
{
Monitor.Exit(readLock);
}
}
else
{
throw new Bonsai.WorkflowRuntimeException("Host lost heartbeat.");
}
}
This may be is just a band aid over a more fundamental problem with RIFFA, and is only required because of issues with RIFFA.
We talked about having a dropdown or pop-up to make voltage selection more straightforward for the users.
The miniscope nodes predate the need to have all the extended data mode options requires by neuropixels. Thus, adding a neuropixels and then replacing it with a miniscope results on those values not being reset and the workflow failing.
All classes that result in workflow nodes should contain a link back to their documentation on the onix-docs website instead of just a tiny description of their function.
Occasionally, when a workflow with ONIX hardware is stopped, it leaves hardware in a deadlocked state. Trying to run the workflow again will not work. Any new hubs attached to the host will not be discovered. When the hardware is in this state running the simple C test program (https://github.com/open-ephys/liboni/blob/main/api/liboni/liboni-test/host.c) will return the hardware to normal.
Steps to reproduce:
When helping people with remote installations, the names of nodes used in Bonsai workflows are a source of confusion. For instance, even though a low-level device description might be "FMC Headstage Control Device", there is no reason we to call a corresponding class FMCHeadstageControlDevice
. FMC has nothing to do with this. Another example: BNO055
instead of something that describes its function. I would like to brainstorm name replacements below and come up with some sort of unified scheme.
User reports: when we want to load a calibration file with NeuropixelsV1eDevice, the serial number recognized in the bonsai V1eDevice node is not the same as the serial number of our probe, and thus we have to rename the calibration folder, files and content to this currently provided different number to be able to upload the calibration file.
User reports:
When the MiniscopeV4BNO055 node is added to the workflow, you will not be able to click the MiniscopeV4BNO055 node nor MiniscopeV4 node. Otherwise bonsai will crash and data might not be saved.
Error in recv. Chnl: 3, Timeout: 0, GetOverlappedResult: 170
This is temporarily solved by externalizing LEDBrightness and LiquidLensVoltage properties and controlling them via the double node.
After the bonsai crash, the miniscope node will show Failure to read from a stream or register warning and need a PC power off to reset the PCIe host.
This could be due to having used neuropixels headstage in the same port prior (#20).
Suggestion: should the issues arise, the device can be used considering this workaround. The course of action would be migrating to the new library once that has miniscope v4 support.
hello,
I was scrolling through the NPX slack channel and I was wondering if the ONIX has a function similar to "probe check" on spikeGLX, or if it could be implemented. Would be really useful to check the functionality of the probe.
Thanks!
Nora
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.