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

Rhs2116 hardware guide #168

Merged
merged 6 commits into from
Jan 2, 2025
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions articles/hardware/hs64/configuration.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
uid: hs64_configuration
title: Headstage64 Configuration
hardware: Headstage64
title: Headstage 64 Configuration
hardware: Headstage 64
configuration: true
operator: ConfigureHeadstage64
dataRate: 4.1
Expand All @@ -10,10 +10,17 @@ blockReadSize: 4096
workflowLocation: workflow
---

## Configuring the Breakout Board and Headstage64
## Configuring the Breakout Board and Headstage 64

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 `ConfigureBreakoutBoard` operator configures the Onix Breakout Board. In the Headstage 64 example tutorial, it is
configured to enable digital inputs to serve as a trigger for the Headstage 64'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.
The `ConfigureHeadstage64` operator is used to configure the Headstage 64. In the Headstage 64 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 Headstage 64 example workflow by leaving all
of the `ConfigureHeadstage64` properties set to their default values.

[!INCLUDE [timestamp-info](../../../includes/configuration-timestamp.md)]
2 changes: 1 addition & 1 deletion articles/hardware/hs64/estim.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ uid: hs64_estim
title: Headstage 64 Electrical Stimulation
---

The following excerpt from the Headstage64 [example workflow](xref:hs64_workflow) demonstrates electrical stimulation by
The following excerpt from the Headstage 64 [example workflow](xref:hs64_workflow) demonstrates electrical stimulation by
triggering a train of pulses following a press of the △ key on the breakout board.

::: workflow
Expand Down
2 changes: 1 addition & 1 deletion articles/hardware/hs64/load-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ uid: hs64_load-data
title: Load Data
---

The following python script can be used to load and plot the data produced by the Headstage64 [example workflow](xref:hs64_workflow).
The following python script can be used to load and plot the data produced by the Headstage 64 [example workflow](xref:hs64_workflow).

[!code-python[](../../../workflows/hardware/hs64/load-hs64.py)]

Expand Down
17 changes: 10 additions & 7 deletions articles/hardware/hs64/overview.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
---
uid: hs64_hs64
uid: hs64
title: Headstage 64
---

These are the devices available on the Headstage64:
These are the devices available on the Headstage 64:

- [Rhd2164](xref:hs64_rhd2164):
- 64 electrophysiology channels for passive probes (e.g. tetrode, silicon probe, etc.) sampled at 30 kHz with 16 bit depth
- 64 electrophysiology channels for recording from 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
- Optional adjustable digital high-pass filter with cutoff configurable from 0.146 Hz to 3.309 kHz
- 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): 3x HTC Vive Lighthouse receivers for real-time, 3D position tracking sampled at 30 Hz per receiver in ideal conditions
Expand All @@ -20,10 +21,12 @@ These are the devices available on the Headstage64:
- 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).
> Visit the
> [Headstage 64 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.

> [!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.
> Visit the [Headstage 64 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
The following pages in the Headstage 64 Guide provide an example workflow and a
breakdown of its components.
5 changes: 3 additions & 2 deletions articles/hardware/hs64/rhd2164.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
---
uid: hs64_rhd2164
title: Headstage 64 Rhd2164
title: 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.
The following excerpt from the Headstage 64 [example workflow](xref:hs64) demonstrates the Rhd2164 functionality by
streaming and saving data from the Rhd2164 device.

::: workflow
![/workflows/hardware/hs64/rhd2164.bonsai workflow](../../../workflows/hardware/hs64/rhd2164.bonsai)
Expand Down
6 changes: 3 additions & 3 deletions articles/hardware/hs64/ts4231.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ uid: hs64_ts4231
title: Headstage 64 Ts4231
---

The following excerpt from the Headstage64 [example workflow](xref:hs64_hs64) demonstrates the Headstage64's position
The following excerpt from the Headstage 64 [example workflow](xref:hs64) demonstrates the Headstage 64's position
tracking capabilities.

::: workflow
Expand All @@ -12,9 +12,9 @@ tracking capabilities.

The <xref:OpenEphys.Onix1.TS4231V1PositionData> operator generates a sequence of
[TS4231V1PositionDataFrames](xref:OpenEphys.Onix1.TS4231V1PositionDataFrame). A `TS4231V1PositionDataFrame` is emitted
when a receiver on the Headstage64 captures a sequence of 12 optical signals from a pair of lighthouses which occurs at
when a receiver on the Headstage 64 captures a sequence of 12 optical signals from a pair of lighthouses which occurs at
30 Hz. Therefore, with no occlusions, the maximum achievable sample rate is 30 Hz per receiver. There are three
receivers on the Headstage64, so `TS4231V1PositionData` can emit up to 3 `TS4231V1PositionDataFrames` in a single 30 Hz
receivers on the Headstage 64, so `TS4231V1PositionData` can emit up to 3 `TS4231V1PositionDataFrames` in a single 30 Hz
sampling cycle. Of course, if occlusions cause receivers to miss optical signals, this rate will be reduced.

The `TS4231V1PositionData`'s `DeviceName` property is set to "Headstage64/TS4231V1". This links the
Expand Down
4 changes: 2 additions & 2 deletions articles/hardware/hs64/workflow.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
uid: hs64_workflow
title: Headstage64 Example Workflow
title: Headstage 64 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.
- Monitors the Headstage 64 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.
Expand Down
2 changes: 1 addition & 1 deletion articles/hardware/np2e/gui.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ In addition to the absolute number of channels, there are other restrictions in

### Keeping or discarding configuration settings

While the GUI is open, any changes to the configuration settings can be freely modified and will not affect the configuration unless `Okay` is pressed. This includes all aspects of the configuration, such as which electrodes are enabled, the chosen reference channel, and the probe calibration file.
While the GUI is open, any changes to the configuration settings can be freely modified and will not affect the configuration unless <kbd>Ok</kbd> is pressed. This includes all aspects of the configuration, such as which electrodes are enabled, the chosen reference channel, and the probe calibration file.

> [!NOTE]
> The hardware is not actually configured until the workflow starts.
Expand Down
2 changes: 1 addition & 1 deletion articles/hardware/np2e/np2.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ The <xref:OpenEphys.Onix1.NeuropixelsV2eData> operator generates a sequence of
corresponding configuration operator.
- `ProbeIndex` is set to "ProbeA". This links the data generated by this probe to the probe in port A of the headstage.

The relevant properties are selected from the `NeuropixelsV2eDataFrame` by right-clicking the `NeuropixelsV2eData`
The relevant members are selected from the `NeuropixelsV2eDataFrame` by right-clicking the `NeuropixelsV2eData`
operator and choosing the following Output members: `Clock`, and `AmplifierData`. The
[MatrixWriter](xref:Bonsai.Dsp.MatrixWriter) operators save the selected members to
files with the following format: `np2-a-clock_<filecount>.raw` and `np2-a-amp<filecount>.raw`, respectively.
30 changes: 30 additions & 0 deletions articles/hardware/rhs2116/configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
uid: rhs2116_configuration
title: Headstage Rhs2116 Configuration
hardware: Headstage Rhs2116
configuration: true
operator: ConfigureHeadstageRhs2116
dataRate: 2.1
timeUntilFullBuffer: 1 ms
blockReadSize: 4096
workflowLocation: overview
---

## Configuring the Breakout Board and Headstage Rhs2116

The `ConfigureBreakoutBoard` operator configures the Onix Breakout Board. In the Headstage Rhs2116 example tutorial, it is
configured to enable digital inputs to serve as a trigger for the Headstage Rhs2116'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 `ConfigureHeadstageRhs2116` operator is used to configure the Headstage Rhs2116. In the Headstage Rhs2116 example
tutorial, it is configured to enable streaming of electrophysiology data from a Rhs2116 amplifier, orientation data from
the on-board Bno055 IMU, and position data from the Ts4231. This is accomplished in the Headstage Rhs2116 example
workflow by leaving all of the `ConfigureHeadstageRhs2116` properties set to their default values.

[!INCLUDE [timestamp-info](../../../includes/configuration-timestamp.md)]

> [!TIP]
> For additional details on how to configure the headstage, as well as how to
> set stimulus waveforms, check out the <xref:rhs2116_gui> page.
Loading
Loading