Contributions:NeuralynxADC

From BCI2000 Wiki
Jump to: navigation, search

Synopsis

The NeuralynxNetComADC allows data acquisition from Neuralynx Cheetah or Pegasus system.
The module is able to record data with two different modes:
(1) Acquisition via the NetCom interface, which connects to Cheetah/Pegasus.
(2) Low-latency data acquisition via a fiber cable directly connected to the Acquisition amplifier.

Known Issues

BCI2000 will not be able to keep up for high sampling rates & channel counts. This will result in a high roundtrip time and increasing memory usage over time, as incoming data is buffered but not processed in time. If the low latency data acquisition is used, make sure to downsample data from 32kHz if you use all 512 Channels.

Location

Versioning

Authors

Markus Adamek

Version History

Source Code Revisions

  • Initial development: 6024
  • Tested under: 6082
  • Known to compile under: 6082
  • Broken since: --

Hardware Configuration

This Acquisition module has two ways to stream data from a Pegasus/Cheetah System.

Acquisition via the NetCom Interface

To acquire data via the NetCom interface the experimental Computer (Running BCI2000) has to be connected to the Pegasus/Cheetah System (Running the Acquisition Software) via Ethernet.

(1) Make sure that both computers are on the same subnet and that the Acquisition Software is running on the Pegasus/Cheetah System (You don't need to start an acquisition or recording).
(2) Configure BCI2000 with the correct IP address (ServerName). Be aware that the Pegasus/Cheetah System has multiple Network ports!
(3) After pressing Set Config in BCI2000 it should seamlessly connect to the Pegasus/Cheetah System. BCI2000 will automatically start data acquisition.
You can check if BCI2000 has connected correctly by opening the Acquisition System Status on the Pegasus/Cheetah System. In this window you should see a field called NetCom Clients. If BCI2000 is connected, it should be listed.

Netcominterface.png


Acquisition via low-latency connection

The low-latency stream allows us to tap directly into the data streamed from the ADC without the Pegasus/Cheetah System. This approach significantly reduces latency and increases the stability of the timebase. While data is streamed directly from the amplifier, configuration still requires the Pegasus/Cheetah System and connection via the NetCom interface. You can follow the steps above to ensure that you are able to connect to the NetCom Interface.

The low-latency stream requires direct connection to the amplifier via a fiber optic ethernet connection. Therefore, the BCI2000 computer requires an optical ethernet interface. The optical ethernet card has to be configured identical to the card installed in the Pegasus/Cheetah System.

(1) Obtain the IP address, subnet mask as well as the MAC address. To get this information open a command window on the Pegasus/Cheetah System (To find the command prompt type cmd in the Windows 10 search bar). Type ipconfig -all which will give you information of all Network adapters. You will need to find the physical port that connects the amplifier with the Pegasus/Cheetah System. A good way to ensure that you chose the correct adapter is to turn of the amplifier and check which adapter changed. Your result might look different than the example below.

Ethernet adapter Ethernet:
  Connection-specific DNS Suffix  . :
  Description . . . . . . . . . . . : Intel(R) Ethernet Server Adapter I350-F2
  Physical Address. . . . . . . . . : 48-2A-E3-40-45-DB
  Link-local IPv6 Address . . . . . : fe80::cc21:7e8e:f65a:158e%11
  IPv4 Address. . . . . . . . . . . : 172.20.2.144
  Subnet Mask . . . . . . . . . . . : 255.255.0.0
  Lease Obtained. . . . . . . . . . : Wednesday, July 15, 2020 8:25:32 AM
  Lease Expires . . . . . . . . . . : Thursday, July 16, 2020 8:25:25 AM
  Default Gateway . . . . . . . . . : 172.20.1.1
  DHCP Server . . . . . . . . . . . : 172.20.1.1
  DHCPv6 IAID . . . . . . . . . . . : 105392867
  DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-24-67-EF-14-48-2A-E3-40-45-DB
  DNS Servers . . . . . . . . . . . : 172.20.1.1
  NetBIOS over Tcpip. . . . . . . . : Enabled

You will need the information shown in Physical Address (MAC address), IPv4 Address, and Subnet Mask.

(2) Change the settings of the fiber card Network Adapter on your BCI2000 machine. To change the MAC address you can use a tool like the Technitium MAC Address Changer. Make sure that you are changing the correct Network connection!

(3) Replace your current MAC address with the Physical Address obtained from the Pegasus/Cheetah System. To change IP address and Subnet mask you can follow a tutorial like this one:Change IP Address (Start at step 3) .

(4) Connect the BCI2000 computer to the Amplifier with an appropriate fiber cable. The BCI2000 machine should be connected via the free fiber-cable ethernet port on the amplifier. Make sure that you plugged the fiber cable into the free port on the amplifier and not the free fiber port on the Pegasus/Cheetah System.

(5) Check if the data gets streamed to the BCI2000 computer. If you have configured everything correctly, data should now be streamed to your computer if the acquisition is started on the Pegasus/Cheetah System. The easiest way to check this is to open the Task Manager (Ctrl+Shift+Esc) on the BCI2000 system. In the performance tab, you can monitor incoming and outgoing traffic on your network adapters. If you were successful, you should see a steady inflow of data on the ethernet port which connects your computer to the amplifier. If you are unsure, open the task manager on the Pegasus/Cheetah System, you should see the same type of data usage.

(6) Start BCI2000 and enable UseDirectUDPStream for the Low-Latency stream.

Parameters

Signal Properties

Signal Properties describe Settings common to most Amplifiers.

  • SourceCh: The number of channels that the Neuralynx software reads.
  • SampleBlockSize: Samples per channel per digitized block. Together with the sampling rate, this parameter determines how often per second data is collected, processed, and feedback is updated.
  • SamplingRate: Sampling rate of the data. The SamplingRate has to be an integer fraction of 32kHz.
  • ChannelNames: List of Names for Channels. Space-separated list; Must be the same length as Number of Channels. If set to auto, BCI2000 will query the Names from the Neuralynx system.
  • SourceChOffset: Setting is not used in this module, default is 0
  • SourceChGain: This is also not used, default is 1

NeuralynxNetCom

This Section describes Settings Necessary to communicate with the Cheetah/Pegasus System via the NetCom Interface

  • ServerName: IP Address of the NetCom server (Typically the IP of your Cheetah/Pegasus System)

NeuralynxUDPStream

Settings if you want to use the Low Latency Stream. This requires a fiber-optic connection between the Amplifier and the BCI2000 computer.

  • Boards: The Number of Boards which are connected in the Neuralynx Chassis
  • SourceChnList: List of transmitted Channels. This allows you to only submit a subset of Channels. Its a list of channel ids (starting from 0). If set to auto, all channels will be transmitted.
  • UseDirectUDPSTream: Easy way to switch the UDP stream on or off. This has to be enabled for low latency communication
  • UDPStreamPort: Port through which the BCI2000 computer receives data from the Neuralynx System. This port is provided by Neuralynx.
  • DecimationFactor: Decimation Factor for incoming Data. Incoming Data is sampled at 32kHz. If Decimation Factor is set, SamplingRate has to match or has to be set to auto. similarly, if SamplingRate is set, DecimationFactor can be set to auto and the system will determine the correct decimation factor automatically. Downsampling will be achieved by a simple moving average filter.
  • NRDStreamingFile: Leave Empty. This can be used to stream data from a Neuralynx NRD file for debugging purposes.

States

See also

User Reference:Filters, Contributions:ADCs