sccn / lsl_archived

Multi-modal time-synched data transmission over local network
242 stars 134 forks source link

Is g.USBamp app actually using reference and ground electrodes? #292

Closed vicmarcag closed 5 years ago

vicmarcag commented 6 years ago

Hi!

We're a BCI research team from Spain, and we're currently working on a project aimed to develop a open software written in Python. We were using the g.USBamp LSL app that you provide here in order to create a LSL server to acquire the signal of the amplifier, but we just realize that it seems that the reference channel (blue pliers provided by g.Tec) and the ground channel (yellow electrode) are not used...

In fact, it seems that the app applies a common reference to all the channels, instead of substracting the reference and applying a common average reference (CAR) spatial filter from there onwards.

Is there a reason for this? Are we interpreting this wrong?

I would appreciate if you can clarify this issue for us ^^

cboulay commented 6 years ago

Moving forward, I think the g.NEEDaccess app is going to be the more supported app for g.tec hardware. I recently completed g.HIamp and g.Nautilus support. The g.USBamp support is there, and should at least already be better than the already existing gUSBamp app, but it needs a little more work.

Please let me know what features you would like that are not already there.

cboulay commented 6 years ago

But maybe I can answer your question.

Unless you configure every channel to be bipolar (i.e., chan 1 = electrode 1 - electrode 2), there's no way to not use the reference input. The "common reference" that you might see in the g.USBamp app code here refers to the individual reference pins available under each bank of 4 inputs. Banks A, B, C, and D can each have their own reference, or, in software, you can configure some of them to use a common reference. Typically you put the reference pin into the reference in Bank D and then tell A, B, C, and D to use the common reference. Same for ground. If you're using more than 1 g.USBamp then you chain the references together from amp1-bankD to amp2-bankD, etc.

vicmarcag commented 6 years ago

Thank you for the quick response!

The problem with g.NEEDaccess API is that it is not free of charge... So, coming back to the g.USBamp issue, I think that I have understood your point.

If I have understood correctly, the 16 channels that g.USBamp provides are subdivided into 4 groups of 4 channels, that can be referenced inside the aforementioned groups (A,B,C,D) or among them, using a common reference via software. However, the pre-amplifier g.GAMMAbox for active electrodes has two inputs for ground (yellow channel) and reference (blue peg). In previous studies with BCI2000 software, we have used the channel Fpz as a ground and the right earlobe as reference.

My question is the following, that ground and reference that provides the pre-amplifier are thus used by the g.USBamp via hardware? If so, do we need to make some processing with them?

Thanks!

cboulay commented 6 years ago

Oh I didn't know the g.NEEDaccess API was charged for.

I believe the thick circular connectors that the g.GAMMAbox uses to connect to the amp will relay the ground and reference for you. I don't know if it does this for all the banks, or just bank D. If it's just bank D then you'll need to configure the amp to use common ground and reference, but this is already done by the LSL app. If it does it for all banks then I think it's still OK to use the common ground reference setting.

You don't need to change any other settings. If there was a way in BCI2000 to enter the location of the ground and reference, that was just for posterity to keep that information in the data file, that had nothing to do with the actual configuration of the hardware.