Loading...

Synapse Protocol

The Synapse Protocol defines a standard interface for interacting with a wide range of possible neural interface devices. It consists of a gRPC-based control plane API and a UDP-based streaming API. However, we provide client libraries in Python, C++, and Node Typescript to allow you to conveniently configure and interface with the device without needing to interface with gRPC or UDP directly.

Synapse defines a range of nodes, which execute within the device (i.e., on the headstage, or soft device) to facilitate communication with peripherals as well as some processing capabilities. Relaying nodes together to connect outputs to inputs creates a signal chain to process your data.

Three nodes are visually linked to one another (Electrical Broadband > Spike Detect > Stream Out) in the Nexus UI to represent how nodes form a signal chain.

A toy soft device implementation for development is available in the python Synapse GitHub repo: sciencecorp/synapse-python

Getting Started

Python

Before installing the Synapse Python client library, you will need:

  • Python version 3.9 or later.
  • pip version version 23 or later.

You can install the official Synapse Python client library using:

pip install science-synapse

which includes the synapsectl utility:

$ synapsectl --help

usage: synapsectl [-h] [--uri -u] {discover,info,start,stop,configure,list-dev,wifi-config} ...

    Synapse Device Manager

    options:
      -h, --help            show this help message and exit
      --uri -u              Device control plane URI

    Commands:
        {discover,info,start,stop,configure,list-dev,wifi-config}
        discover            Discover Synapse devices on the network
        info                Get device information
        start               Start the device
        stop                Stop the device
        configure           Write a configuration to the device
        list-dev            List Synapse devices plugged in via USB
        wifi-config         Configure a USB connected Synapse device to connect to a WiFi network

C++

Before installing the Synapse C++ client library, you will need:

  • CMake version 3.23.5 or later
  • Make

You can install the official C++ client library by building from source:

Typescript

Before installing the Synapse Node/Typescript client library, you will need:

  • Node
  • Npm

You can install the official Synapse Node/Typescript client library using:

npm install @science-corporation/synapse