mindaffect/pymindaffectBCI

Quick feedback and sending characters to keyboard

nonfingo opened this issue · 1 comments

Thanks for the update and your quick response. Since i'm not a expert in python, but willing to learn a bit, i have some questions. I was wondering if the matrix.selection has already in the script a comand that sends the selected leters to the keyboard, and therfore beeing able to write something.

I did a bit of tests and here is my quick feedback:
First, the electrodes position. I use O1, Oz, O2 and POz. Reference and ground on the mastoids. The channel numers corresponding are respectivly 1,2,3,4, Ref, D_G in OpenBCI. Hope that this is correct...

The accuray was interesting for the colorwheel, but not for the selecction matrix (during the calibration i got 0% accuracy (don't know what this suppose to mean) and the prediction was only noise. (But this might be my fault)

The impedances of the electrodes were <30Kohms (tested on the OpenBCI gui), however they might have moved or lost contact during the tests...So the quality of my adquisition was low (my fault :S). The SNR were more or less <20

Further, the slection matrix seems a bit buggy, since randomly a get following error:
BlockingIOError: [Errno 11] - Resouce temporal not available

Thanks again. I hope i will find more time to test and play with mindaffect.

Dear nonfingo,

Thanks for your feedback, I hope we can get you to the point where you see our system work as well as it should!

For your first question, currently the selection matrix is just a demo application to show how to make applications for developers. I could easily add the functionality to show the previously selected letter a prediction time -- so you can see the sequence of letters you have selected. Making it generate actual keyboard presses, is a bit more complex, and probably OS dependent, so that's a bigger feature which could take more time.

The reported performance at the end of calibration, is the systems own estimate of how well it should work during prediction. If the system is working well you should see something like 70-100% correct. If you see 0% correct, then you should not expect it to work. This is normally a sign that something isn't working well, most likely either in the EEG connection or in the stimulus presentation.

From what you say, I suspect the issue is scalp connection of the electrodes -- Ideally, you want the Noise2Signal ratio to be <10, ideally <5. A value of 20 is quite high and means it's likely the system is only measuring interference noise. To fix this I would advise:

  1. make sure the electrodes are well connected to your scalp.
  2. Make sure the amplifier and the wires are not near any source of electrical interference, such as mains-power. Generally, it's better to have the ampifier on your body (resting on a desk beside your
    monitor/laptop power is not such a good idea) and a good 50cm from mains power to reduce this. From the electrode quality screen you can easily see this as the NoiseFraction decrease rapidly as you move away from power sources.

Further, the BlockingIOError, indicates that there seems to be a network connection issue between the python and the mindaffect decoder. How is the strenght of your wireless network connection?

Have fun creating new interfaces!

Jason