Page 1 of 2
How can the BCI2000 synchronize with EEG Neurofax9100/9200?
Posted: 15 Apr 2010, 16:26
by elita
Hi, I want to know regarding if is possible to use BCI2000 with EEG Neurofax 9200, in terms of synchronization between signal obtained from neurofax and the stimulus produced by BCI2000 (Donchin board specifically). What information I need to know in order to synchronize them, etc.
If is possible I would appreciate you can guide me how can i do it.
thanksssss

Posted: 16 Apr 2010, 07:36
by mellinger
For an EEG system to be used with BCI2000's online classification capability, one needs real-time access to the signals recorded by the EEG system, so BCI2000 can acquire and store them together with its event markers.
From Nihon Kohden's product description, it appears that there is no way to obtain the EEG signal recorded by the Neurofax 9200 system in real time. So I don't think you can use this system with BCI2000 to do online classification.
In case you just want to use BCI2000 for stimulation, and record using the Neurofax system, you might modify the BCI2000 software to output digital signals at the parallel port of the BCI2000 machine synchronously with the StimulusBegin and StimulusType event markers, and use a custom cable connector to feed that signal into the Neurofax system's trigger input. If this is what you want to do, I can provide you with more details regarding the BCI2000 side.
--Juergen
Posted: 20 Apr 2010, 12:24
by elita
That's what I want to do, use BCI2000 for stimulation, and record using the Neurofax9100/9200. I would appreciate you give me information and support.
Sorry for the delay to respond
Thank you very much

Posted: 21 Apr 2010, 07:53
by mellinger
To achieve output of BCI2000 trigger information to the parallel port, you might use a tiny external program connecting to BCI2000 via the
AppConnector protocol.
This program would monitor BCI2000's StimulusType and StimulusCode state variables, and set the parallel port's output lines such that they encode the information required to do offline processing of the recorded data.
There is an AppConnector example program at
http://www.bci2000.org/tracproj/browser ... lelSwitch/
For your purposes, this should provide a good starting point, as the program already monitors BCI2000 state information and writes to the parallel port. All that you would need to do is to modify the program's logic to monitor both the StimulusType and StimulusCode states, and to set the parallel port to a bit pattern that encodes the information represented by the two states, and is suited for the Neurofax' trigger input.
--Juergen
Posted: 05 May 2010, 12:58
by elita
hello again, I have a couple of questions if you can guide me it would be great.
First: what kind of cable is the one I use for the connection? (USB, RS-232)
Second: I need to modify the source code of BCI2000 to achieve the external connection.
this is for now, thanks for your help.
Posted: 06 May 2010, 08:25
by mellinger
First: what kind of cable is the one I use for the connection? (USB, RS-232)
You will need to make a custom cable that links the BCI2000 machine's parallel port to the Neurofax' trigger input.
For information about the parallel port such as pinouts, see
http://en.wikipedia.org/wiki/Parallel_port. For details about the Neurofax trigger input, see your Neurofax product manual--I could not identify any such information on the net.
I need to modify the source code of BCI2000 to achieve the external connection.
You don't need to modify the BCI2000 source code when using the AppConnector protocol. However, you might need to slightly modify the ParallelSwitch interfacing program, depending on what trigger information you want the Neurofax system to record. E.g., when you want to use the P3Speller application to do stimulation, you will probably need the information contained in the StimulusCode and StimulusType BCI2000 states. Thus, you would modify the interfacing program to set the parallel port to a bit pattern that reflects these two states, i.e. 5 bits for the StimulusCode state, concatenated with a single bit for the StimulusType state.
--Juergen
Posted: 09 May 2010, 18:18
by elita
When Neurofax9100 saves EEG signal, saves the data sent from BCI2000(StimulusType BCI2000 states, etc.) in the same file or in another file??
Thanks for your help,
Posted: 10 May 2010, 04:36
by mellinger
Typical EEG recording equipment will save trigger information along with the EEG signal for later analysis. However, I don't know whether the Neurofax system will use a separate file for trigger information, or record it into the same file as it does for EEG. Please consult your Neurofax manual for details about the Neurofax system.
--Juergen
Posted: 10 May 2010, 12:05
by elita
I have to install the sdk version of Qt right?
I could not find any exe Qt4 only versions of SDK and Qt Standalone. I also downloaded one called Qt 4.7 & Qt Creator 2.0 Betas, but asked if i have Mingw installed, so I think I need to install something else before, probably SDK version.
I can not find in the manual the trigger input,

, trigger input is the generic name?
Thanks,
Posted: 11 May 2010, 08:16
by mellinger
I have to install the sdk version of Qt right?
No, you don't need to install Qt if you just want to compile the ParallelSwitch program. A C++ compiler is sufficient for that purpose.
I can not find in the manual the trigger input, , trigger input is the generic name?
Yes, trigger input is the generic name for input lines recorded on trigger channels. Alternatively, the input might be called "marker input".
--Juergen
Posted: 17 May 2010, 11:37
by elita
hi,
i´m using borland C++ to compile but how can i know it is working, without conect Neurofax9200? I mean how can I see, that is reading ports?
besides, I can not compile, because it does not recognize #include "SockStream.h"
THANKS
Posted: 17 May 2010, 11:53
by mellinger
To check that the ParallelSwitch program actually writes to the parallel port, i.e. that it modifies the voltage at the parallel port's pins, you might use an oscilloscope attached to the respective pin vs. ground.
If you are not familiar with electronics, I recommend that you ask someone who is, to help you with creating a trigger cable, and making sure that it works.
Regards,
Juergen
Posted: 23 May 2010, 22:52
by elita
Hi
I have a problem. I i can´t compile, because it does not recognize #include "SockStream.h"
"SockStream.h: No such file or directory.
and so everything else that has "socket" appears as an error
I have to include something else?
P.S: i'm working with Dev-C++
THANKS
Posted: 25 May 2010, 04:39
by mellinger
Elita,
you will need to add the BCI2000/src/shared/utils directory to the include path. Also, add the file BCI2000/src/shared/utils/SockStream.cpp to the project.
--Juergen
Posted: 25 May 2010, 17:21
by elita
Hii
Sorry to bother you again, but i still can´t compile.
now says there's a [Linker error]
for example: [Linker error] undefined reference to `WSAStartup@8'
I added the SockStream.cpp to the proyect,
but i don´t know if I have to add this link to the path?
http://www.bci2000.org/tracproj/browser ... ared/utils
Thank for your Help
