Before recording, you must configure a signal chain using a JSON file. This file defines the nodes used in your signal chain and their individual settings, including Axon channel and GPIO configurations for devices that support them.
Configure an Axon Channel
If you are using a Science Axon device powered by a NYX1-512 chip, you must include id, electrode_id, and reference_id fields in your configuration JSON.
electrode_idis the channel ID as specified by the NYX1-512 chip.idis the arbitrarily-defined channel ID specified by the Axon device.reference_idspecifies the reference mode used for a given channel.
See the Axon Omnetics adapter pinout for a practical example showing the difference between electrode_id and id.
Configure Axon GPIOs
If you are using external event inputs to peripheral Axon devices, you must specify the GPIO type flag in the channel inputs of your configuration JSON. Axon GPIOs support TTL signaling with a maximum input voltage of +5V, and a HIGH/LOW threshold of +1.5V. GPIO channels are recorded alongside neural data channels from the same Axon adapter using the same sampling rate to ensure sub-millisecond synchronization precision.
Example Configuration
This basic example has two nodes: one ingests data from a source and the other writes the data to disk.
The kBroadbandSource node ingests 16 channels of neural data and 2 channels of GPIO data from an Axon Omnetics adapter ("peripheral_id": 100) at a sampling rate of 32,000 Hz. Neural data channels ("type": "ELECTRODE") are acquired using 12-bit width and filtered using the specified high- and low-pass corner frequencies. GPIO channels ("type": "GPIO") ignore bit depth and bandpass filter settings.
The kBroadbandSource node passes all data to the kDiskWriter node, which writes it to device storage under the name "YourData" in HDF5 format.
{
"nodes": [
{
"type": "kDiskWriter",
"id": 2,
"disk_writer": {
"filename": "YourData"
}
},
{
"type": "kBroadbandSource",
"id": 1,
"broadband_source": {
"peripheral_id": 100,
"sample_rate_hz": 32000,
"bit_width": 12,
"signal": {
"electrode": {
"channels": [
{ "id": 0, "electrode_id": 122, "reference_id": 520, "type": "ELECTRODE" },
{ "id": 4, "electrode_id": 110, "reference_id": 520 },
{ "id": 5, "electrode_id": 114, "reference_id": 520 },
{ "id": 6, "electrode_id": 104, "reference_id": 520 },
{ "id": 7, "electrode_id": 108, "reference_id": 520 },
{ "id": 8, "electrode_id": 98, "reference_id": 520 },
{ "id": 9, "electrode_id": 66, "reference_id": 520 },
{ "id": 10, "electrode_id": 92, "reference_id": 520 },
{ "id": 1, "electrode_id": 126, "reference_id": 520, "type": "ELECTRODE" },
{ "id": 11, "electrode_id": 60, "reference_id": 520 },
{ "id": 12, "electrode_id": 86, "reference_id": 520 },
{ "id": 13, "electrode_id": 54, "reference_id": 520 },
{ "id": 14, "electrode_id": 80, "reference_id": 520 },
{ "id": 15, "electrode_id": 48, "reference_id": 520 },
{ "id": 16, "electrode_id": 74, "reference_id": 520 },
{ "id": 17, "electrode_id": 38, "reference_id": 520 },
{ "id": 32, "electrode_id": 0, "type": "GPIO" },
{ "id": 33, "electrode_id": 1, "type": "GPIO" }
],
"low_cutoff_hz": 4,
"high_cutoff_hz": 20400
}
}
}
}
],
"connections": [
{
"src_node_id": 1,
"dst_node_id": 2
}
]
}Note: ELECTRODE is the default type setting for broadband source channel data and is optional for electrode inputs from Axon devices. It is included above for illustrative purposes.
See the Synapse peripheral documentation for a complete list of configuration options for Axon devices using the NYX1-512 chip.