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.
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