Research Article

Craniux: A LabVIEW-Based Modular Software Framework for Brain-Machine Interface Research

Table 1

List of current acquisition, signal processing, and application engines.

Engine name Engine type Description

Acquisition template Acquisition “Empty” acquisition engine generating random data used to maintain system dataflow
Read UDP binary Acquisition Reads raw neural data transmitted via UDP
SimECoG Acquisition Generates synthetic ECoG data

Signal processing template Signal processing “Empty” signal processing engine used to maintain system dataflow
Linear decoder Signal processing Generates a control signal using linear combinations of input features
Population vector Signal processing Generates a control signal using the population vector algorithm [18]
OLE Signal processing Generates a control signal using the optimal linear estimator algorithm [19]

Application template Application “Empty” application engine used to maintain system dataflow
Center-out cursor control Application Two or three-dimensional cursor control application
Threshold Crossing Application Sends UDP commands to an external device when control signals cross user-defined thresholds
Circle drawing Application Circle/ellipse-drawing application [20]
Biofeedback Application Displays real-time feedback of a neural control signal to the subject