Lab Streaming Layer
Lab Streaming Layer (LSL) is an open-source framework that connects, manages, and synchronizes data streams from multiple sources, such as EEG, GSK, and motion capture systems. Check out the LSL documentation for a full overview of supported devices.
The Neon Companion app has built-in support for LSL, streaming Neon’s real-time generated data over the LSL network. This allows you to easily synchronize Neon with other LSL-supported devices.
Usage
LSL streaming can be initiated in the Companion App by enabling the "Stream over LSL" setting.
When enabled, data will be streamed over the LSL network, and subsequently, to any connected LSL inlet (such as the LSL LabRecorder App, or another third-party system with inlet functionality) which is listening. Like the Real-Time API, it is not necessary for the Companion App to be actively recording, but simultaneously streaming LSL data while making a recording is supported.
Note that you'll need to ensure the Neon Companion app is connected to the same network as the other devices streaming via LSL.
LSL Outlets
When LSL streaming is enabled, two outlets will be created. One streams gaze data and eye-state data (if enabled), while the other streams event data. The streams will be named as:
[Device Name]_Neon Gaze
[Device Name]_Neon Events
Where [Device Name]
is the name of the device as configured in the Companion App settings. When synchronizing data from two or more Neon devices using LSL, a unique device name can be assigned to each Companion App so that their streams can be distinguished.
Gaze Data Outlet
The gaze and eye-state stream follows the recommendations of the xdf Gaze Meta Data format. Two channels labeled x
and y
carry the gaze coordinate in scene-camera space. With eye-state estimation enabled, additional channels for each eye will be available with the following labels:
PupilDiameter
: the diameter of the pupil in mmEyeballCenterX
: the x-position of the center of the eyeball from the scene cameraEyeballCenterY
: the y-position of the center of the eyeball from the scene cameraEyeballCenterZ
: the z-position of the center of the eyeball from the scene camera
Event Data Outlet
The event stream contains the name of each generated event as a string.
Connection problems?
If your devices are on the same network but you have trouble connecting, it is likely due to a firewall or other network configuration issue. LSL requires the following network connections:
- UDP broadcasts to port
16571
and/or - UDP multicast to port
16571
atFF02:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2
FF05:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2
FF08113D:6FDD:2C17:A643:FFE2:1BD1:3CD2
FF0E:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2
224.0.0.1
,224.0.0.183
,239.255.172.215
- TCP and UDP connections to the ports
16572
-16604
More troubleshooting tips can be found in the Network Troubleshooting page in LSL’s documentation.