This documentation supports the latest PCIe host firmware, the latest OpenEphys.Onix1 package, and Bonsai 2.9+.

Table of Contents

Headstage 64 Ts4231

The following excerpt from the Headstage 64 example workflow demonstrates the Headstage 64's position tracking capabilities.

/workflows/hardware/hs64/ts4231.bonsai workflow

The TS4231V1PositionData operator generates a sequence of TS4231V1PositionDataFrames. A TS4231V1PositionDataFrame is emitted 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 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. TS4231V1PositionDataFrames. A TS4231V1PositionDataFrame is emitted 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 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 TS4231V1PositionData operator to the corresponding configuration operator.

The CsvWriter operator writes the Clock and Position members from the TS4231V1PositionDataFrame output by TS4231V1PositionData to a file with the following name format: ts4231v1-uncalibrated_<filecount>.csv. Because CsvWriter is a sink operator, its output sequence is equivalent to its input sequence. In other words, its output is equivalent to TS4231V1PositionData's output. Therefore, it's possible to connect it directly to TS4231V1LinearTransform which takes TS4231V1PositionDataFrame as its input. To learn how to use this operator to transform coordinates in the TS4231 device reference frame to a reference frame that is more intuitive or relevant to the experiment, check out the Calibrate Positional Tracking Data tutorial page.

TS4231V1LinearTransform connects directly to another CsvWriter -- this one writes Clock and Position members from the TS4231V1PositionDataFrame output by TS4231V1PositionData to a file with the following name format: ts4231v1-calibrated_<filecount>.csv. The MemberSelector operator on the CsvWriter selects a members from TS4231V1PositionDataFrame. The easiest way to place a MemberSelector is is to click the relevant members that appear by hovering over the "Output" option that appears in the context menu that appears after right-clicking the CsvWriter node. The Position member is selected in the workflow to help visualize the position data by double-clicking the node when the workflow is running. For more details on visualizing data, checkout the Data Visualization page.