I am also in the process of writing a acquistion-driver for an EEG device, in my case
the OpenEEG hardware ModularEEG and MonolithEEG (P2 protocol version)
I got something working with help of the developer's documentation on the openVibe site
and the tutorial slides which i found in the forum.
I recently posted my progress to the OpenEEG mailing list,
but the driver is still very basic and not part of any official openViBE SVN / distributions yet.
I hope to receive some comments / suggestions from the openVibe develpers soon.
I had some problems when building the source distribution on a recent Ubuntu,
namely with dependencies of the itpp- and ois-libraries.
I was lucky after:
sudo apt-get install automake
sudo apt-get install libtool
sudo export F77=/usr/bin/gfortran
I cound not fix one thing on the Linux side (which works on Windows):
when starting openvibe by using the recommended /scripts/linux-test,
I get an initialisation error, likely from the Ogre3d engine:
"The program 'OpenViBE-designer-dynamic' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
(Details: serial 173 error_code 2 request_code 128 minor_code 3)"
I hope Yann can shed some light on this ...
However, running the applications from /dist/bin works, but i get no 3D-functionalities
(e.g. Topographic Map). In my windows build using VS2008 express, this worked "out-of-the-box".
I connect a MonolithEEG via USB and use the auto-generated /dev/ttyUSB0 device (virtual COM port).
To allow also for old-fashioned RS232-Ports (e.g. /dev/ttyS1) I made a little work-around using
the driver configuration box: if you select a COM/TTY number below 10, ttyS<x> is assumed,
else ttyUSB<x-10> is assumed. On Windows, COM<x> is opened anyways.
This patch will hopefully be improved in a future version, when i know
how to better deal with the GUI configuration data ...
BTW: is there a tutorial how to extend configuration dialogs for custom hardware parameters,
or how to generate / process stimulation data (e.g. out of buttons / switches of an EEG device) ?
Another known issue is that the ttyUSB0 - device on my Ubuntu distribution
sometimes (yes: again one of these quasi-indeterministic bugs
remains in an inaccessible state after an the connection has been opened,
used for transfer. Even replugging the USB-cable does not help and I have
to reboot to use /dev/ttyUSB0 again, which is quite annoying..
I currently have no clue why this happens, as I correctly close the device.
Most likely, this reflects a problem with the usbserial module and the FTDI driver.
Anyway: Attached you find the sources for the ModularEEG / Monolith - driver and the configuration dialog.
The only change of the original openVibe distribution is in "ovasCAcquisitionServer.cpp", where the
added driver is activated.