-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Headstage-64 Content and Various Minor Edits (#86)
* Update Admonitions - No more red admonitions - Only four admonitions: NOTE, TIP, IMPORTANT, WARNING * Fix PortStatus Note * Headstage Content and Various Minor Changes - Requires ts4231, estim, & ostim pages and loading python script
- Loading branch information
Showing
40 changed files
with
951 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,6 @@ | ||
--- | ||
uid: breakout_memory-monitor | ||
title: Breakout Board Memory Monitor | ||
hardware: true | ||
device: memory monitor | ||
--- | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
uid: hs64_bno055 | ||
title: Headstage 64 Bno055 | ||
hardware: Headstage 64 | ||
bno055: true | ||
bnoOperator: Bno055Data | ||
hardwareOperator: Headstage 64 | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
uid: hs64_configuration | ||
title: Headstage64 Configuration | ||
hardware: Headstage64 | ||
configuration: true | ||
operator: ConfigureHeadstage64 | ||
dataRate: 4.1 | ||
timeUntilFullBuffer: 500 μs | ||
blockReadSize: 2048 | ||
workflowLocation: workflow | ||
--- | ||
|
||
## Configuring the Breakout Board and Headstage64 | ||
|
||
The `ConfigureBreakoutBoard` operator configures the Onix Breakout Board. In the Headstage64 example tutorial, it is configured to enable digital inputs to serve as a trigger for the Headstage64's electrical and optical stimulation and to enable monitoring of the percentage of memory occupied. This is accomplished by leaving all of the `ConfigureBreakoutBoard` properties set to their default values except its `Memory Monitor` `Enable` property is set to `True`. | ||
|
||
The `ConfigureHeadstage64` operator is used to configure the Headstage64. In the Headstage64 example tutorial, it is configured to enable streaming of electrophysiology data from a Rhd2164 amplifier, orientation data from the on-board Bno055 IMU, and position data from the Ts4231. This is accomplished in the Headstage64 example workflow by leaving all of the `ConfigureHeadstage64` properties set to their default values. | ||
|
||
[!INCLUDE [timestamp-info](../../../includes/configuration-timestamp.md)] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
uid: hs64_estim | ||
title: Headstage 64 Electrical Stimulation | ||
--- | ||
|
||
The following excerpt from the Headstage64 [example workflow](xref:hs64_hs64) demonstrates electrical stimulation. | ||
|
||
::: workflow | ||
 | ||
::: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
uid: hs64_memory-monitor | ||
title: Headstage64 Memory Monitor | ||
--- | ||
|
||
The following excerpt from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates memory monitor functionality and saves memory monitor data. | ||
|
||
::: workflow | ||
 | ||
::: | ||
|
||
The <xref:OpenEphys.Onix1.MemoryMonitorData> operator generates a sequence of <xref:OpenEphys.Onix1.MemoryMonitorDataFrame>s. `MemoryMonitorData` emits `MemoryMonitorDataFrame`s at a regular interval defined during <xref:breakout_configuration> using the <xref:OpenEphys.Onix1.ConfigureBreakoutBoard>'s `MemoryMonitor SamplesPerSecond` property (in our case 10 Hz). In the Breakout Board example workflow, the `MemoryMonitorData`'s `DeviceName` property is set to "BreakoutBoard/MemoryMonitor". This links the `MemoryMonitorData` operator to the corresponding configuration operator. The [CsvWriter](https://bonsai-rx.org/docs/api/Bonsai.IO.CsvWriter.html) operator saves the `Clock`, `BytesUsed`, and `PercentUsed` members to a file with the following format: `memory-use_<timestamp>.csv`. Because `CsvWriter` is a _sink_ operator, its output sequence is equivalent to its input sequence. In other words, its output is equivalent to `MemoryMonitorData`'s output. Therefore, it's possible to use a [MemberSelector](https://bonsai-rx.org/docs/api/Bonsai.Expressions.MemberSelectorBuilder.html) operator on the `CsvWriter` to select members from the `MemoryMonitorDataFrame`. The `MemberSelector` operator selects the `PercentUsed` member from the `MemoryMonitorDataFrame` so the user can visualize `PercentUsed` data from the `MemoryMonitorDataFrame`. | ||
|
||
> [!NOTE] | ||
> The `MemoryMonitorDataFrame` operator generates a | ||
> data stream that is most useful in the context of closed-loop performance. It tells the user if data | ||
> is being consumed rapidly enough by the host PC to keep up with data production by the hardware. The | ||
> hardware FIFO is a buffer that is required to deal with the fact that computers with normal | ||
> operating systems cannot perform operations with strict regularity. When there are hiccups in | ||
> acquisition, the hardware FIFO picks up the slack, but should then be cleared immediately. To get | ||
> the lowest latencies, the `BlockReadSize` should be as small as possible *while the memory use | ||
> percentage remains around 0%*. | ||
> [!WARNING] | ||
> If the hardware FIFO's `PercentUsed` is non-zero for long time periods, or is increasing, the | ||
> `StartAcquisition`'s `BlockReadSize` setting is too small (see the [breakout board configuration](xref:breakout_configuration)). A small | ||
> `BlockReadSize` will mean that the host computer does not have to wait long for enough data to | ||
> become available to propagate it forward, but will reduce overall bandwidth by increasing the | ||
> frequency at which the host computer checks if data is available and performs hardware reads. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
uid: hs64_ostim | ||
title: Headstage 64 Optical Stimulation | ||
--- | ||
|
||
The following excerpt from the Headstage64 [example workflow](xref:hs64_hs64) demonstrates optical stimulation. | ||
|
||
::: workflow | ||
 | ||
::: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
uid: hs64_hs64 | ||
title: Headstage 64 | ||
--- | ||
|
||
These are the devices available on the Headstage64: | ||
|
||
- [Rhd2164](xref:hs64_rhd2164): | ||
- 64 electrophysiology channels for passive probes (e.g. tetrode, silicon probe, etc.) sampled at 30 kHz with 16 bit depth | ||
- Adjustable analog band-pass filter: | ||
- Lower cutoff configurable from 0.1 Hz to 500 Hz | ||
- Upper cutoff configurable from 100 Hz to 20 kHz | ||
- Optional adjustable digital high-pass filter with cutoff configurable from 0.146 Hz to 3309 Hz | ||
- Three auxiliary ADC channels sampled at 30 kHz with 16 bit depth | ||
- [Bno055](xref:hs64_bno055): 9-axis IMU for real-time, 3D orientation tracking sampled up to ~100 Hz for easy automated commutation with Open Ephys commutators | ||
- [Ts4231](xref:hs64_ts4231): For compatibility with HTC Vive Lighthouses for real-time, 3D position tracking | ||
- [Electrical Stimulation](xref:hs64_estim): Single current source with ±15V compliance voltage and automatic electrode discharge | ||
- The stimulation waveform is highly configurable via the <xref:OpenEphys.Onix1.Headstage64ElectricalStimulatorTrigger>'s properties. | ||
- [Optical Stimulation](xref:hs64_ostim): Two current sources with 800mA upper limit | ||
- The stimulation waveform is highly configurable via the <xref:OpenEphys.Onix1.Headstage64OpticalStimulatorTrigger>'s properties. | ||
|
||
> [!TIP] | ||
> For a detailed explanation of the Rhd2164 amplifier's properties, read the [datasheet](https://intantech.com/files/Intan_RHD2164_datasheet.pdf). | ||
> [!TIP] | ||
> Visit the [Headstage64 Hardware Guide](https://open-ephys.github.io/onix-docs/Hardware%20Guide/Headstages/headstage-64/index.html) to learn more about the hardware such as weight, dimensions, and proper power voltages. | ||
The following pages in the Headstage64 Guide provide an example workflow and a | ||
breakdown of its components. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
uid: hs64_port-status | ||
title: Headstage 64 Port Status | ||
hardware: Headstage 64 | ||
portStatus: true | ||
configureHardwareOperator: ConfigureHeadstage64 | ||
hardwareOperator: Headstage64 | ||
--- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
--- | ||
uid: hs64_rhd2164 | ||
title: Headstage64 Rhd2164 | ||
--- | ||
|
||
The following excerpt from the Headstage64 [example workflow](xref:hs64_hs64) demonstrates the Rhd2164 functionality by streaming and saving data from the Rhd2164 device. | ||
|
||
::: workflow | ||
 | ||
::: | ||
|
||
The <xref:OpenEphys.Onix1.Rhd2164Data> operator generates a sequence of <xref:OpenEphys.Onix1.Rhd2164DataFrame>s using the following settings: | ||
- `BufferSize` is set to 30. Each `Rhd2164DataFrame` will contain a [1 x 30 sample] `Clock` vector, a [64 channel x 30 sample] `AmplifierData` matrix, and a [3 channel x 30 sample] `AuxData` matrix. This corresponds to 1.2 ms of data per data frame. | ||
- The `Headstage64Data`'s `DeviceName` property is set to "Headstage64/Rhd2164". This links the `Rhd2164Data` operator to the corresponding configuration operator. | ||
|
||
The relevant properties are extracted from the `Rhd2164DataFrame` by right-clicking the `Rhd2164Data` operator, and choosing the following **Output** members: `Clock`, `AmplifierData`, and `AuxData`. The [`MatrixWriter`](https://bonsai-rx.org/docs/api/Bonsai.Dsp.MatrixWriter.html) operators saves the selected members to files with the following format: `rhd2164-clock_<timestamp>.raw`, `rhd2164-amplifier_<timestamp>.raw`, and `rhd2164-aux_<timestamp>.raw`, respectively. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--- | ||
uid: hs64_ts4231 | ||
title: Headstage64 Position Data | ||
--- | ||
|
||
The following excerpt from the Headstage64 [example workflow](xref:hs64_hs64) demonstrates electrical stimulation. | ||
|
||
::: workflow | ||
 | ||
::: | ||
|
||
The <xref:OpenEphys.Onix1.TS4231V1PositionData> operator generates a sequence of <xref:OpenEphys.Onix1.TS4231V1PositionDataFrame>s. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
uid: hs64_workflow | ||
title: Headstage64 Example Workflow | ||
--- | ||
|
||
The example workflow below can by copy/pasted into the Bonsai editor using the clipboard icon in the top right. This workflow: | ||
- Captures electrophysiology data from passive probes via the RHD2164 amplifier and saves it to disk. | ||
- Captures orientation data from the Bno055 IMU and saves it to disk. | ||
- Monitors the Headstage64 port status. | ||
- Automatically commutates the tether if there is a proper commutator connection. | ||
- Applies electrical stimulation triggered by pressing the breakout board's ☾ key. | ||
- Applies optical stimulation triggered by pressing the breakout board's △ key. | ||
- Monitors memory usage data. | ||
|
||
::: workflow | ||
 | ||
::: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
--- | ||
uid: np1e_port-status | ||
title: Port Status | ||
title: NeuropixelsV1e Headstage Port Status | ||
hardware: NeuropixelsV1e Headstage | ||
device: true | ||
portStatus: true | ||
configureHardwareOperator: ConfigureNeuropixelsV1eHeadstage | ||
hardwareOperator: NeuropixelsV1eHeadstage | ||
--- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,6 @@ | |
uid: np2e_npv2e | ||
title: NeuropixelsV2e | ||
hardware: NeuropixelsV2e Headstage | ||
device: true | ||
--- | ||
|
||
> [!NOTE] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.