Skip to content

Commit 2e74b86

Browse files
authored
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
1 parent 60e6d68 commit 2e74b86

40 files changed

+951
-82
lines changed

api/configure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ uid: configure
33
title: Configuration Operators
44
---
55

6-
Configuration operators belong in a top-level chain of operators between [core operators](xref:core) ([`CreateContext`](xref:OpenEphys.Onix1.CreateContext) and [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition)) to configure ONIX hardware.
6+
Device configuration operators belong in a top-level chain of operators between [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) and [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) to configure devices contained by ONIX hardware hubs.

api/device-configure.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ uid: device-configure
33
title: Device Configuration Operators
44
---
55

6-
> [!CAUTION]
7-
> Device configuration operators are not recommended for using off-the-shelf Open Ephys hardware. Use [aggregate configuration operators](xref:configure) instead. [Aggregate configuration operators](xref:configure) confer the following benefits:
6+
> [!IMPORTANT]
7+
> Device configuration operators are not recommended for using off-the-shelf Open Ephys hardware. Use aggregate [configuration operators](xref:configure) instead. Aggregate [configuration operators](xref:configure) confer the following benefits:
88
> - The `address` and `name` properties of aggregate configuration operators undergo automatic configuration which reduces the risk of erroneous configuration.
99
> - The workflow is less cluttered with configuration operators as one aggregate configuration operator corresponds to multiple device operators. This improves workflow legibility and expedites the workflow scripting process.
1010
11-
Device configuration operators belong in a top-level chain of operators between [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) and [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) to configure devices contained by ONIX hardware.
11+
Device configuration operators belong in a top-level chain of operators between [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) and [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) to configure devices contained by ONIX hardware hubs.

articles/hardware/breakout/configuration.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ videoCaption:
1111
workflowLocation: workflow
1212
---
1313

14-
## Configuring the breakout board
14+
## Configuring the Breakout Board
1515
The `ConfigureBreakoutBoard` operator groups the properties
1616
for all the devices that the breakout board supports. Each device in the
1717
property pane can be expanded to expose individual properties that govern their
@@ -44,4 +44,6 @@ breakout board example workflow:
4444

4545
- The `BreakoutBoard`'s `AnalogIO Direction0` property is set to `Output`.
4646
- The `BreakoutBoard`'s `MemoryMonitor Enable` property is set to `True`.
47-
- The `BreakoutBoard`'s `OutputClock Gate` property is set to `True`.
47+
- The `BreakoutBoard`'s `OutputClock Gate` property is set to `True`.
48+
49+
[!INCLUDE [timestamp-info](../../../includes/configuration-timestamp.md)]

articles/hardware/breakout/memory-monitor.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
uid: breakout_memory-monitor
33
title: Breakout Board Memory Monitor
4-
hardware: true
54
device: memory monitor
65
---
76

articles/hardware/hs64/bno055.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
uid: hs64_bno055
3+
title: Headstage 64 Bno055
4+
hardware: Headstage 64
5+
bno055: true
6+
bnoOperator: Bno055Data
7+
hardwareOperator: Headstage 64
8+
---
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
uid: hs64_configuration
3+
title: Headstage64 Configuration
4+
hardware: Headstage64
5+
configuration: true
6+
operator: ConfigureHeadstage64
7+
dataRate: 4.1
8+
timeUntilFullBuffer: 500 μs
9+
blockReadSize: 2048
10+
workflowLocation: workflow
11+
---
12+
13+
## Configuring the Breakout Board and Headstage64
14+
15+
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`.
16+
17+
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.
18+
19+
[!INCLUDE [timestamp-info](../../../includes/configuration-timestamp.md)]

articles/hardware/hs64/estim.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
uid: hs64_estim
3+
title: Headstage 64 Electrical Stimulation
4+
---
5+
6+
The following excerpt from the Headstage64 [example workflow](xref:hs64_hs64) demonstrates electrical stimulation.
7+
8+
::: workflow
9+
![/workflows/hardware/hs64/estim.bonsai workflow](../../../workflows/hardware/hs64/estim.bonsai)
10+
:::
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
uid: hs64_memory-monitor
3+
title: Headstage64 Memory Monitor
4+
---
5+
6+
The following excerpt from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates memory monitor functionality and saves memory monitor data.
7+
8+
::: workflow
9+
![/workflows/hardware/breakout/memory-monitor.bonsai workflow](../../../workflows/hardware/breakout/memory-monitor.bonsai)
10+
:::
11+
12+
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`.
13+
14+
> [!NOTE]
15+
> The `MemoryMonitorDataFrame` operator generates a
16+
> data stream that is most useful in the context of closed-loop performance. It tells the user if data
17+
> is being consumed rapidly enough by the host PC to keep up with data production by the hardware. The
18+
> hardware FIFO is a buffer that is required to deal with the fact that computers with normal
19+
> operating systems cannot perform operations with strict regularity. When there are hiccups in
20+
> acquisition, the hardware FIFO picks up the slack, but should then be cleared immediately. To get
21+
> the lowest latencies, the `BlockReadSize` should be as small as possible *while the memory use
22+
> percentage remains around 0%*.
23+
24+
> [!WARNING]
25+
> If the hardware FIFO's `PercentUsed` is non-zero for long time periods, or is increasing, the
26+
> `StartAcquisition`'s `BlockReadSize` setting is too small (see the [breakout board configuration](xref:breakout_configuration)). A small
27+
> `BlockReadSize` will mean that the host computer does not have to wait long for enough data to
28+
> become available to propagate it forward, but will reduce overall bandwidth by increasing the
29+
> frequency at which the host computer checks if data is available and performs hardware reads.

articles/hardware/hs64/ostim.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
uid: hs64_ostim
3+
title: Headstage 64 Optical Stimulation
4+
---
5+
6+
The following excerpt from the Headstage64 [example workflow](xref:hs64_hs64) demonstrates optical stimulation.
7+
8+
::: workflow
9+
![/workflows/hardware/hs64/ostim.bonsai workflow](../../../workflows/hardware/hs64/ostim.bonsai)
10+
:::
11+

articles/hardware/hs64/overview.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
uid: hs64_hs64
3+
title: Headstage 64
4+
---
5+
6+
These are the devices available on the Headstage64:
7+
8+
- [Rhd2164](xref:hs64_rhd2164):
9+
- 64 electrophysiology channels for passive probes (e.g. tetrode, silicon probe, etc.) sampled at 30 kHz with 16 bit depth
10+
- Adjustable analog band-pass filter:
11+
- Lower cutoff configurable from 0.1 Hz to 500 Hz
12+
- Upper cutoff configurable from 100 Hz to 20 kHz
13+
- Optional adjustable digital high-pass filter with cutoff configurable from 0.146 Hz to 3309 Hz
14+
- Three auxiliary ADC channels sampled at 30 kHz with 16 bit depth
15+
- [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
16+
- [Ts4231](xref:hs64_ts4231): For compatibility with HTC Vive Lighthouses for real-time, 3D position tracking
17+
- [Electrical Stimulation](xref:hs64_estim): Single current source with ±15V compliance voltage and automatic electrode discharge
18+
- The stimulation waveform is highly configurable via the <xref:OpenEphys.Onix1.Headstage64ElectricalStimulatorTrigger>'s properties.
19+
- [Optical Stimulation](xref:hs64_ostim): Two current sources with 800mA upper limit
20+
- The stimulation waveform is highly configurable via the <xref:OpenEphys.Onix1.Headstage64OpticalStimulatorTrigger>'s properties.
21+
22+
> [!TIP]
23+
> For a detailed explanation of the Rhd2164 amplifier's properties, read the [datasheet](https://intantech.com/files/Intan_RHD2164_datasheet.pdf).
24+
25+
> [!TIP]
26+
> 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.
27+
28+
The following pages in the Headstage64 Guide provide an example workflow and a
29+
breakdown of its components.

0 commit comments

Comments
 (0)