Emotiv EPOC driver status

Making & changing hardware drivers in Acquisition Server
Pablo
Posts: 2
Joined: Tue Apr 12, 2011 2:44 am
Location: Columbia University, NY, USA

Re: Emotiv EPOC driver status

Post by Pablo »

Hi!

I have just followed all the steps described in http://hiran6.blogspot.com/, and everything had worked fine till the very last step: after running "win32-build.cmd", I got a message saying "Install completed" (please find enclosed screen capture), but I couldn't find any folder named "dest" (I just have one named "dist" instead). I guess that it must be that one, and I can find the "edk.dll" and "edk_utils.dll" files inside, but not the file named "openvibe-acquisition-server.cmb" (I just have one named "openvibe-acquisition-server-dynamic.cmb"). Can anyone help me with this issue? Any feedback is most appreciated.

Regards,
Pablo
Attachments
printscreen.jpg
printscreen.jpg (118.95 KiB) Viewed 398687 times

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Emotiv EPOC driver status

Post by lbonnet »

Hi Pablo and welcome on board !
I have just followed all the steps described in http://hiran6.blogspot.com/
This "howto" is a nice contribution for the community, but as it is not the official documentation, it is a bit out of date now ;)

The Emotiv driver is not in the branch wip-lbonnet-emotiv anymore, but directly in the trunk of the acquisition-server.
You simply need to do the SVN checkout and build the software using win32-build.cmd. You still have to check the FindThirdPartyEmotivAPI.cmake file, to point to your Emotiv SDK.
but I couldn't find any folder named "dest" (I just have one named "dist" instead).
Indeed, everything is generated in the dist folder.
I guess that it must be that one, and I can find the "edk.dll" and "edk_utils.dll" files inside, but not the file named "openvibe-acquisition-server.cmb" (I just have one named "openvibe-acquisition-server-dynamic.cmb").
you should have in dist a subfolder named bin which contains all the binaries. If you build with the latest version, the script will copy for you the "edk.dll" and "edk_utils.dll" files inside. The blog you mention says to copy some files in a previous installation directory, something I totally disagree with. In fact you just compiled the whole software to its most recent version, why don't use it right now ?

In dist you should have the scripts that launch every application. Among them is test-acquisition-server.cmd. If you run it, it will execute the acquisition server, displaying in the driver list the Emotiv one.

I hope this helps !

Laurent-
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

Nathali
Posts: 20
Joined: Thu Mar 17, 2011 4:47 pm

Re: Emotiv EPOC driver status

Post by Nathali »

Should we really get Emotiv Epoc in the list of servers? Coz I didn't and started with the 1st in the list, changing some configurations...

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Emotiv EPOC driver status

Post by lbonnet »

Hi !
should we really get Emotiv Epoc in the list of servers? Coz I didn't and started with the 1st in the list, changing some configurations...
First in the list is the Generic Oscillator if I remember well. As its name suggests, it generate an oscillatory signal.
It's a good start, in order to play some times with the acquisition server and see how it works and how you can read the data generated in the Designer.

But if you don't select the driver you're supposed to connect with, you obviously can't get the data coming from the device.
The Emotiv EPOC driver should definitely be in the list of drivers.

In case you really don't know if you're driver has been built or not, here is what you should have seen when executing win32-build.cmd:

At some point you are building the Acquisition Server:

Code: Select all

_______________________________________________________________________________

Configuring and building openvibe-applications\acquisition-server\trunc ...

-- The C compiler identification is MSVC
-- The CXX compiler identification is MSVC
-- Check for CL compiler version
-- Check for CL compiler version - 1600
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - no
-- Check for working C compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cl.exe
-- Check for working C compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cl.exe
-- Check for working CXX compiler: c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
As you can see I am using Visual Studio 2010.

Next comes the dependency checking :

Code: Select all

--   Found OpenViBE...
--     [  OK  ] lib C:/lbonnet/openvibe-repo/openvibe/trunc/lib/OpenViBE-dynamic.lib
--   Found OpenViBE-toolkit...
--     [  OK  ] lib C:/lbonnet/openvibe-repo/openvibe-toolkit/trunc/lib/OpenViBE-toolkit-dynamic.lib
--   Found OpenViBE module EBML...
--     [  OK  ] lib C:/lbonnet/openvibe-repo/openvibe-modules/ebml/trunc/lib/OpenViBE-module-EBML-dynamic.lib
--   Found OpenViBE module Socket...
--     [  OK  ] lib C:/lbonnet/openvibe-repo/openvibe-modules/socket/trunc/lib/OpenViBE-module-Socket-dynamic.lib
--   Found OpenViBE module System...
--     [  OK  ] lib C:/lbonnet/openvibe-repo/openvibe-modules/system/trunc/lib/OpenViBE-module-System-dynamic.lib
--   Found OpenViBE plugins global defines...
--   Found boost...
--   Found GTK+...
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gtk-win32-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gdk-win32-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/atk-1.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gio-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gdk_pixbuf-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/pangowin32-1.0.lib
--     [  OK  ] Third party lib C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib/Gdi32.Lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/pangocairo-1.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/pango-1.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/cairo.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gobject-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gmodule-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gthread-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/glib-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/intl.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/gthread-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/glib-2.0.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/intl.lib
--     [  OK  ] Third party lib C:/lbonnet/openvibe-repo/dependencies/gtk/lib/zdll.lib
--   FAILED to find gUSBampCAPI
--   FAILED to find FirstAmp API - cmake looked in 'C:/Program Files/FaSDK' and ''
--   Found ThinkGear API...
--     [  OK  ] lib C:/Program Files (x86)/MindSet Development Tools/ThinkGear Communications Driver/win32/thinkgear.lib
--   Found Emotiv API...
--     [  OK  ] lib C:/Program Files (x86)/Emotiv/Emotiv Development Kit_v1.0.0.3-PREMIUM/doc/examples/lib/edk.lib
-- Configuring done
-- Generating done
-- Build files have been written to: C:/lbonnet/openvibe-repo/local-tmp/openvibe-applications/acquisition-server/trunc
For example I don't have the gUSBampCAPI ("FAILED to find gUSBampCAPI"), so I won't build the g.Tec driver.
However I have the Emotiv API.

The build can now actually begin :

Code: Select all

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. Tous droits réservés.

Scanning dependencies of target OpenViBE-acquisition-server-dynamic
[  2%] Building CXX object CMakeFiles/OpenViBE-acquisition-server-dynamic.dir/src/brainproducts-brainampseries/ovasCConfigurationBrainProductsBrainampSeries.obj
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
ovasCConfigurationBrainProductsBrainampSeries.cpp
[  5%] Building CXX object CMakeFiles/OpenViBE-acquisition-server-dynamic.dir/src/brainproducts-brainampseries/ovasCDriverBrainProductsBrainampSeries.obj
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
ovasCDriverBrainProductsBrainampSeries.cpp

...
The script compiles each file, one by one. At some point you should have :

Code: Select all

[ 30%] Building CXX object CMakeFiles/OpenViBE-acquisition-server-dynamic.dir/src/emotiv-epoc/ovasCConfigurationEmotivEPOC.obj
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
ovasCConfigurationEmotivEPOC.cpp
[ 33%] Building CXX object CMakeFiles/OpenViBE-acquisition-server-dynamic.dir/src/emotiv-epoc/ovasCDriverEmotivEPOC.obj
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
cl : Ligne de commande warning D9002 : option '-mms-bitfields' inconnue ignorée
ovasCDriverEmotivEPOC.cpp
Emotiv related files are compiled.

When reaching 100%, all files are compiled, and the acquisition-server executable is generated :

Code: Select all

Linking CXX executable OpenViBE-acquisition-server-dynamic.exe
      --->   Copying dll file C:/Program Files (x86)/MindSet Development Tools/ThinkGear Communications Driver/win32/thinkgear.dll for the Neurosky MindSet driver.
      --->   Copying dll file C:/Program Files (x86)/Emotiv/Emotiv Development Kit_v1.0.0.3-PREMIUM/doc/examples/include/../bin/edk.dll for the Emotiv EPOC driver.
      --->   Copying dll file C:/Program Files (x86)/Emotiv/Emotiv Development Kit_v1.0.0.3-PREMIUM/doc/examples/include/../bin/edk_utils.dll for the Emotiv EPOC driver.
[100%] Built target OpenViBE-acquisition-server-dynamic
As you can see the Emotiv DLL files are copied (in dist/bin) for you.

Finally at some point the install is complete.
Go in the generated dist folder, and execute test-acquisition-server.cmd. You should have in the driver list the Emotiv one, as you can see on the attached snapshot.

If you didn't see all these steps, then you may have a problem. The most common mistakes are :
- No Emotiv SDK installed, or not a Research Edition.
Solution : no solution sorry. Openvibe is only compatible with Research Edition or higher.
- The Emotiv SDK is present, but CMake can't find it.
Solution : modify the file FindThirdPartyEmotivAPI.cmake in cmake-modules folder, around line 8 (point to the right path).

I hope this helps !

Laurent
Attachments
emotiv-driver-config.png
emotiv-driver-config.png (85.11 KiB) Viewed 398678 times
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

Nathali
Posts: 20
Joined: Thu Mar 17, 2011 4:47 pm

Re: Emotiv EPOC driver status

Post by Nathali »

Thank you! Yes, it was built actually, but there were problems with the path. Now I see Emotiv, actually w/o this button DRIVER PROPERTIES, but maybe it's because the headset isn't turned on.

Pablo
Posts: 2
Joined: Tue Apr 12, 2011 2:44 am
Location: Columbia University, NY, USA

Re: Emotiv EPOC driver status

Post by Pablo »

Hi Laurent,

Thank you so much for your prompt response! Your help is most appreciated! I will test it asap.

Best regards,
Pablo

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Emotiv EPOC driver status

Post by lbonnet »

No problem... pleasure to help ;)
Now I see Emotiv, actually w/o this button DRIVER PROPERTIES, but maybe it's because the headset isn't turned on.
Actually the snapshot I gave you is the acquisition server on its latest SVN version, that matches the new 0.10.0 official release. Maybe you have a slightly outdated version (this new interface is not older than few weeks...). No big deal :)

Laurent-
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

Nathali
Posts: 20
Joined: Thu Mar 17, 2011 4:47 pm

Re: Emotiv EPOC driver status

Post by Nathali »

Actually, I got it, the new version, installed it, re-built it,restarted the machine 2 times but no changes appear.

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Emotiv EPOC driver status

Post by lbonnet »

Actually, I got it, the new version, installed it, re-built it,restarted the machine 2 times but no changes appear.
By "new version" do you mean you did a fresh SVN checkout in a new folder, or a svn update in the previous folder ?

The simplest solution is to right click on your openvibe folder, click on svn update (using tortoise SVN I assume you have) and re-run win32-build.cmd.

Please be precise when stating your problem, it will save us a lot of time when trying to help ! yours and mine ;)

Anyway... If you did see all the steps I described in my previous post, and the driver is present in the acquisition server driver list, it should be ok. Even if you have only one "properties" button.

Did you try the driver to check if it works ?

Laurent-
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

Nathali
Posts: 20
Joined: Thu Mar 17, 2011 4:47 pm

Re: Emotiv EPOC driver status

Post by Nathali »

The connection was successful, but the drift is too high, and neither my scenarios, nor the simple ones work (e.g. acq.client->GPL->Display)

Nathali
Posts: 20
Joined: Thu Mar 17, 2011 4:47 pm

Re: Emotiv EPOC driver status

Post by Nathali »

Trying to figure this problem out but got no more than just straight lines in Signal display...

Nathali
Posts: 20
Joined: Thu Mar 17, 2011 4:47 pm

Re: Emotiv EPOC driver status

Post by Nathali »

No idea, where the problem lies. Maybe I should rebuild everything once again, but not sure it helps
Attachments
5.jpg
5.jpg (157.91 KiB) Viewed 398645 times

Floriane
Posts: 6
Joined: Thu Apr 14, 2011 9:29 am

Re: Emotiv EPOC driver status

Post by Floriane »

Hello everybody!

I have just downloaded new svn, installed it, re-built the src, but! I when I went to DIST directory, test-server... and when I go directly to OPENVIBE directory on c:\ the interface of the server differs! Is it normal? If not, what should I change, and where should I start the server?

Thank you in advance!

lbonnet
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: Emotiv EPOC driver status

Post by lbonnet »

Hello !
I have just downloaded new svn, installed it, re-built the src, but! I when I went to DIST directory, test-server... and when I go directly to OPENVIBE directory on c:\ the interface of the server differs! Is it normal? If not, what should I change, and where should I start the server?
I'm not sure to understand...You have 2 installations ?
One freshly built openvibe from svn sources, and one installed in c:\ ... am I right ?

Anyway... The most recent acquisition Server is the one you built from the SVN source.
Its interface is a little bit different than the previous versions, and has now 2 buttons :
- Driver Properties : the usual properties for the selected driver (e.g. subject ID, sampling frequency, etc.)
- Preferences : some Acquisition parameters you can set, same for all drivers (Drift correction, oversampling factor, impedance check)

This is definitely the one you should use.

Regarding your acquisition problem (0 on every channels), I will need more information to help you :
- The openvibe scenario you are using (which boxes and so on)
- The version of your Emotiv SDK (I am using Emotiv Developement Kit_v1.0.0.3-PREMIUM)
- the possible warnings and errors displayed in the Designer console
- the full log of the acquisition server console, from the startup to the connection with the Emotiv.
- Does the Emotiv Control Panel work ? Does it show good electrode contact ?
- How your setup is made : usb dongle ? headset ? etc.

The more you say, the more we can help :)
In fact if you just state your problem without the context, we cannot do anything...

Cheers

Laurent-
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

Nathali
Posts: 20
Joined: Thu Mar 17, 2011 4:47 pm

Re: Emotiv EPOC driver status

Post by Nathali »

Hello,

sorry for being unprecise..the problem is that I'm very limited in time with using the headset, so I can't try whenever I can or want. Try to be as concrete as possible.

So, what I have now:

1. Emotiv Developement Kit_v1.0.0.3-PREMIUM
2. src dated as 2011/04/11
3. WinXP sp3 on VM
4. usb dongle

The problem - 0 on every channel while using the scenarios. (screen with scenarios attached, just now tried to visualize using acquisition client and display boxes, no reaction)
The full log of both designer and server- attached.
After exiting OpenVibe, I started the Emotiv Panel, screen attached.

I can only add 3 attachements, so I'll continue in next post...

hope for your help.. and that there is smth very simple and obvious..

thank you much!
Attachments
the server is running...too much drift.
the server is running...too much drift.
server running.jpg (48.83 KiB) Viewed 398613 times
logs of client
logs of client
log_client.jpg (239.48 KiB) Viewed 398613 times
logs of server
logs of server
logs.jpg (229.05 KiB) Viewed 398613 times

Post Reply