Skip to content

Commit 27b28d3

Browse files
committed
Fix outdated heartbeat and rhs2116 descriptions
- Include decription of new data reconvery mask member in rhs2116pairdata
1 parent 179367c commit 27b28d3

File tree

3 files changed

+54
-30
lines changed

3 files changed

+54
-30
lines changed

articles/hardware/breakout/heartbeat.md

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,28 @@ hardware: true
55
device: heartbeat
66
---
77

8-
ONIX has a single special device, called a heartbeat, that produces data at regular intervals and is always enabled.
9-
When data is read from the hardware by software, the reading thread will block until enough data has been produced by
10-
the hardware. If no devices are enabled, the software would block forever. The heartbeat prevents this from happening
11-
since it is always enabled and always producing data. In practice, you can ignore the heartbeat functionality. In any
12-
case, the following excerpt from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates how to
13-
observe the heartbeat.
8+
ONIX has a single special device, called a heartbeat, that produces data at
9+
regular intervals and is always enabled. When data is read from the hardware by
10+
software, the reading thread will block until enough data has been produced by
11+
the hardware. If no devices are enabled, the software would block forever. The
12+
heartbeat prevents this from happening since it is always enabled and always
13+
producing data. In practice, you can ignore the heartbeat functionality. In any
14+
case, the following excerpt from the Breakout Board [example
15+
workflow](xref:breakout_workflow) demonstrates how to observe the heartbeat.
1416

1517
::: workflow
1618
![/workflows/hardware/breakout/heartbeat.bonsai workflow](../../../workflows/hardware/breakout/heartbeat.bonsai)
1719
:::
1820

1921
The <xref:OpenEphys.Onix1.HeartbeatData> operator generates a sequence of
20-
[HeartbeatDataFrames](xref:OpenEphys.Onix1.HeartbeatDataFrame). `HeartbeatData` emits `HeartbeatDataFrames` at a regular
21-
interval defined during <xref:breakout_configuration> using the <xref:OpenEphys.Onix1.ConfigureBreakoutBoard>'s
22-
`Heartbeat BeatsPerSecond` property (in our case 10 Hz). The `HeartbeatData`'s `DeviceName` property is set to
23-
"BreakoutBoard/Heartbeat". This links the `HeartbeatData` operator to the corresponding configuration operator. The
24-
[MemberSelector](xref:Bonsai.Expressions.MemberSelectorBuilder) operator selects the
25-
`Clock` member from the `HeartbeatDataFrame` so the user can visualize the number of clock cycles that have passed for
26-
a given heartbeat pulse if they double-click the `Clock` node.
22+
[HeartbeatDataFrames](xref:OpenEphys.Onix1.HeartbeatDataFrame). `HeartbeatData`
23+
emits `HeartbeatDataFrames` at a regular interval defined during
24+
<xref:breakout_configuration> using the
25+
<xref:OpenEphys.Onix1.ConfigureBreakoutBoard>'s `Heartbeat BeatsPerSecond`
26+
property (in our case 100 Hz, which is the minimum allowable frequency). The
27+
`HeartbeatData`'s `DeviceName` property is set to "BreakoutBoard/Heartbeat".
28+
This links the `HeartbeatData` operator to the corresponding configuration
29+
operator. The [MemberSelector](xref:Bonsai.Expressions.MemberSelectorBuilder)
30+
operator selects the `Clock` member from the `HeartbeatDataFrame` so the user
31+
can visualize the number of clock cycles that have passed for a given heartbeat
32+
pulse if they double-click the `Clock` node.

articles/hardware/rhs2116/rhs2116-record.md

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,32 @@ uid: rhs2116_record
33
title: Rhs2116 Recording
44
---
55

6-
The following excerpt from the HeadstageRhs2116 [example workflow](xref:rhs2116) demonstrates the
7-
Rhs2116 recording functionality by streaming and saving data from the Rhs2116 device.
6+
The following excerpt from the HeadstageRhs2116 [example workflow](xref:rhs2116)
7+
demonstrates the Rhs2116 recording functionality by streaming and saving data
8+
from the Rhs2116 device.
89

910
::: workflow
1011
![/workflows/hardware/rhs2116/rhs2116-record.bonsai workflow](../../../workflows/hardware/rhs2116/rhs2116-record.bonsai)
1112
:::
1213

13-
The <xref:OpenEphys.Onix1.Rhs2116Data> operator generates a sequence of
14-
<xref:OpenEphys.Onix1.Rhs2116DataFrame>s using the following settings:
15-
- The BufferSize property is set to 30. Each `Rhs2116DataFrame` will contain a [1 x 30 sample] Clock
16-
vector, a [32 channel x 30 sample] AmplifierData matrix, and a [32 channel x 30 sample] DcData
17-
matrix. This corresponds to 1 ms of data per data frame.
18-
- The DeviceName property is set to "HeadstageRhs2116/Rhs2116". This links `Rhs2116Data` to the
19-
Rhs2116s on the Headstage Rhs2116.
14+
The <xref:OpenEphys.Onix1.Rhs2116PairData> operator generates a sequence of
15+
[Rhs2116PairDataFrames](xref:OpenEphys.Onix1.Rhs2116DataFrame) using the following
16+
settings:
17+
- The BufferSize property is set to 30. Each `Rhs2116PairDataFrame` will contain a
18+
[1 x 30 sample] Clock vector, a [32 channel x 30 sample] AmplifierData matrix,
19+
a [32 channel x 30 sample] DcData matrix, and [1 channel x 30 sample] recovery
20+
mask vector. This corresponds to 1 ms of data per data frame.
21+
- The DeviceName property is set to "HeadstageRhs2116/Rhs2116". This links
22+
`Rhs2116PairData` to the Rhs2116s on the Headstage Rhs2116.
2023

21-
The relevant properties are extracted from the `Rhs2116DataFrame` by right-clicking the
22-
`Rhs2116Data` operator, and choosing the following Output members: Clock, AmplifierData, and DcData.
23-
The <xref:Bonsai.Dsp.MatrixWriter>s save the selected members to files with the following
24-
formats: `rhs2116pair-clock_<filecount>.raw`, `rhs2116pair-ac_<filecount>.raw`, and
25-
`rhs2116pair-dc_<filecount>.raw`, respectively.
24+
The relevant properties are extracted from the
25+
<xref:OpenEphys.Onix1.Rhs2116PairDataFrame> by right-clicking the `Rhs2116PairData`
26+
operator, and choosing the following Output members: Clock, AmplifierData, and
27+
DcData. The <xref:Bonsai.Dsp.MatrixWriter>s save the selected members to files
28+
with the following formats: `rhs2116pair-clock_<filecount>.raw`,
29+
`rhs2116pair-ac_<filecount>.raw`, `rhs2116pair-dc_<filecount>.raw`, and
30+
`rhs2116pair-recovery_<filecount>.raw` respectively.
2631

27-
> [!TIP]
32+
> [!TIP]
2833
> For more details about configuring the Rhs2116 and its data, read the
29-
> [datasheet](https://intantech.com/files/Intan_RHS2116_datasheet.pdf).
34+
> [datasheet](https://intantech.com/files/Intan_RHS2116_datasheet.pdf).

workflows/hardware/rhs2116/rhs2116-record.bonsai

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<WorkflowBuilder Version="2.8.5"
2+
<WorkflowBuilder Version="2.9.0"
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xmlns:onix1="clr-namespace:OpenEphys.Onix1;assembly=OpenEphys.Onix1"
55
xmlns:dsp="clr-namespace:Bonsai.Dsp;assembly=Bonsai.Dsp"
@@ -45,14 +45,27 @@
4545
<dsp:Layout>ColumnMajor</dsp:Layout>
4646
</Combinator>
4747
</Expression>
48+
<Expression xsi:type="MemberSelector">
49+
<Selector>RecoveryMask</Selector>
50+
</Expression>
51+
<Expression xsi:type="Combinator">
52+
<Combinator xsi:type="dsp:MatrixWriter">
53+
<dsp:Path>rhs2116pair-recovery_.raw</dsp:Path>
54+
<dsp:Suffix>FileCount</dsp:Suffix>
55+
<dsp:Overwrite>false</dsp:Overwrite>
56+
<dsp:Layout>ColumnMajor</dsp:Layout>
57+
</Combinator>
58+
</Expression>
4859
</Nodes>
4960
<Edges>
5061
<Edge From="0" To="1" Label="Source1" />
5162
<Edge From="0" To="3" Label="Source1" />
5263
<Edge From="0" To="5" Label="Source1" />
64+
<Edge From="0" To="7" Label="Source1" />
5365
<Edge From="1" To="2" Label="Source1" />
5466
<Edge From="3" To="4" Label="Source1" />
5567
<Edge From="5" To="6" Label="Source1" />
68+
<Edge From="7" To="8" Label="Source1" />
5669
</Edges>
5770
</Workflow>
5871
</WorkflowBuilder>

0 commit comments

Comments
 (0)