Jump to content

Contributions:RippleADC

From BCI2000 Wiki
Revision as of 06:13, 15 November 2025 by Nluczak (talk | contribs) (StimAmplitude)
Ripple Neural Interface Processor

RippleADC is a source module that allows for neural recording and stimulation using Ripple's Grapevine Neural Interface Processor. It supports high-channel-count recording and precise electrical stimulation capabilities. See the Ripple site for more information.


Detailed installation instructions

Versioning

Authors

  • Nicholas Luczak (luczak@neurotechcenter org)

Version History

  • 04/29/2025 - Initial version
  • 06/10/2025 - Added stimulation support

Source Code Revisions

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

Source Parameters

These parameters can be found in the "Source" tab of the BCI2000 config window.

Figure 1. The default source parameters for the RippleADC

SourceCh

The total number of digitized and stored channels. This can be set manually or left as "auto" to detect all available channels.

SampleBlockSize

Samples per channel per digitized block. Together with the sampling rate, this parameter determines how often per second data are collected, processed, and feedback is updated.

SamplingRate

The sample rate of the system. Supported rates are:

  • 30,000 Hz (RAW)
  • 15,000 Hz (HiFreq)
  • 2,000 Hz (HiRes/EMG)
  • 1,000 Hz (LFP)

SourceChOffset

Offset for each channel in raw A/D units.

SourceChGain

Gain for each channel in physical units per raw A/D unit (typically µV).

ChannelNames

Names of each channel in the format "FrontendName_ChannelNumber".

SourceChList

List of channels to actually transmit (subset of available channels).

Stimulation Parameters

These parameters can be found in the "Stimulation" tab and matrixes of the BCI2000 config window and the Ripple Stimulation Tool.

Figure 2. Stimulation parameters for the RippleADC

StimEnable

Enable/disable stimulation functionality (0 or 1).

StimElectrode

Electrode number (1-based index) to stimulate on.

StimFrequency

Frequency of stimulation pulses in Hz (1-1000 range).

StimDuration

Duration of each stimulation phase in milliseconds (0.01-10 range).

StimAmplitude

Stimulation amplitude in milliamps.

StimTrainLength

Total length of stimulation train in milliseconds.

StimDelay

Delay before stimulation starts in milliseconds.

Device Parameters

DeviceInfo

This parameter cannot be edited and is automatically populated with information returned from the device, including:

  • Processor type
  • Firmware version
  • Network address
  • Available front ends

ConnectionSettings

Advanced TCP/IP connection settings for the Grapevine processor.

States

The states encode auxiliary information about the system status and stimulation events.

Timestamp

32-bit state containing the processor timestamp for each sample block.

StimulusCode

16-bit state that records the amplitude of active stimulation.

StimulusType

16-bit state that indicates stimulation status (0 = off, 1 = on).

ConnectionStatus

8-bit state reporting the network connection quality.

Technical Details

Supported Front Ends

Front End Type Channels Resolution Supported Sampling Rates
Stimulation 32 22 nV HiRes (2kHz), HiFreq (15kHz)
Raw 32 250 nV LFP (1kHz), HiRes (2kHz), Raw (30kHz)

Stimulation Waveforms

Pulse parameters are converted to Ripple's stimulation command format as described in XippStimCmd.h.

Figure 3. Example monophasic stimulation waveform

Network Protocol

The module uses Ripple's xipplib library to communicate with the Grapevine processor over TCP/IP. All data is transmitted in real-time with timestamps for synchronization.

See also

User Reference:Filters, Contributions:ADCs