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.

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 to a file with the following name format: ts4231v1__<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 use MemberSelector operators on the CsvWriter to select members from TS4231V1PositionDataFrame. This is most easily performed by clicking 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