From BCI2000 Wiki
Revision as of 22:35, 7 April 2021 by Abelsten (talk | contribs) (Added info on getinfo tool)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


The g.HIamp is a 256 analog channel and 16 digital channel amplifier from g.tec. The contributed source module acquires raw signals from the amplifier in real time for use in BCI2000.




Griffin Milsap ( Rensselaer Polytechnic Institute

Kristopher Kaleb Goering ( University of Kansas

Version History

Version 0.9: August 2011

  • Supports one g.HIamp
  • Supports Filters
  • Referencing by any channel
  • Future compatible with g.HIamp master/slave configurations
  • Using g.HIamp C API version 1.11.02

Version 1.0 June 2015

  • Digital Inputs enabled
  • Using g.HIamp C API version 2.14.03

Source Code Revisions

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

Functional Description

Acquires raw data from the g.HIamp.


Compile the gHIampSource module using CMake and your compiler. The resulting gHIampSource.exe should be placed in the prog directory automatically.

gHIampgetinfo Tool

gHIampgetinfo.exe is a simple console application that can be used to determine what gHIamp devices are connected to your system, and what hardware filters they support. This tool is automatically compiled with BCI2000 and resides in the prog directory.

The outputted tables display the index of the filter (num), the high pass frequency (hpf), the low pass frequency (hpf), the corresponding sampling frequency (sfr), the order of the filter (or), and the type. Type-name correspondence can be seen in the table below:

Type Name
0 Chebyshev
1 Butterworth
2 Bessel


  • SourceCh represents the total number of channels to be logged from the source module.
  • SampleBlockSize should be set equal to the size of the sample block pulled from the device.
  • SampleRate determines the rate at which the device samples data.
  • ChannelNames is a convenience parameter. Name channels here and they can be referenced by these names later.
  • SourceChOffset should be set to a list of "0"s -- one 0 for each channel as indicated by SourceCh, separated by spaces.
  • SourceChGain should be set to a list of "1"s -- one 0 for each channel as indicated by SourceCh, separated by spaces.
  • DeviceIDMaster is the serial number identifier of the master g.HIamp device. This serial can be found on the physical device and is typically in a "HA-20XX.XX.XX" format. This parameter can also be set to "auto" if there is only one g.HIamp device connected to the machine.
  • DeviceIDs is a list of device serials (typically in "HA-20XX.XX.XX" format) which corresponds to the devices to record channels from. One of these serials must be specified as the master device in the "DeviceIDMaster" parameter. This parameter can also be set to "auto" if there is only one g.HIamp device connected to the machine.
    • NOTE: Device slaving is not yet supported by the module OR the g.HIamp C API. -- This parameter only exists for future compatibility.
  • RefChList is a list of channels which can act as "Reference" channels for each amp. If left blank, no channel will be used as a reference, and the raw signal will be recorded in the output.
    • NOTE: If specifying reference channels, there must be one reference channel per device specified in "DeviceIDs" in the same order.
  • SourceChList
  • FilterEnabled
  • FilterHighPass
  • FilterLowPass
  • FilterModelOrder
  • FilterType
  • NotchEnabled
  • NotchHighPass
  • NotchLowPass
  • NotchModelOrder
  • NotchType
  • SourceBufferSize
  • EnableDigitalInputs is a toggle button to enable both digital input ports and store them in synchronous states DigitalInput1 - DigitalInput16.
    • NOTE To record digital input, at least one analog channel must also be recorded.

Valid Operating Modes

The gHIamp only accepts specific combinations of sampling rates and sample block sizes. The following table shows all valid combinations of sample rate and block size. Operating outside of these modes is untested and could result in problems.

Sample Rate Valid Sample Block Sizes
256 Samples per second 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 32 64 128 256
512 Samples per second 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 32 64 128 256
600 Samples per second 4 5 6 7 8 9 10 11 12 13 15 16 17 32 64 128 256
1200 Samples per second 8 9 10 11 12 13 14 15 16 32 64 128 256
2400 Samples per second 16 32 64 128 256
4800 Samples per second 32 64 128 256

Digital Input

The g.HIamp has two digital input ports which give a total of 16 digital input channels, see figures below. These channels can be read and stored in synchronous states and the same sample rate as the analog channels. More information on the states are below.



State Variables

The state name gives which pin the value was read from. They are saved synchronously as the signals are read. Their value can be either a 0 or a 1.

StateName           == Sensor
DigitalInput1  == Digital In 1 Pin1
DigitalInput2  == Digital In 1 Pin2
DigitalInput3  == Digital In 1 Pin3
DigitalInput4  == Digital In 1 Pin4
DigitalInput5  == Digital In 1 Pin5
DigitalInput6  == Digital In 1 Pin6
DigitalInput7  == Digital In 1 Pin7
DigitalInput8  == Digital In 1 Pin8
DigitalInput9  == Digital In 2 Pin1
DigitalInput10 == Digital In 2 Pin2
DigitalInput11 == Digital In 2 Pin3
DigitalInput12 == Digital In 2 Pin4
DigitalInput13 == Digital In 2 Pin5
DigitalInput14 == Digital In 2 Pin6
DigitalInput15 == Digital In 2 Pin7
DigitalInput16 == Digital In 2 Pin8

See also

User Reference:Filters, Contributions:ADCs