Moving the cursor via OpenVIBE, ongoing tutorial for beginners
I'm starting this thread to log my ongoing effort to be able to move my cursor via my OpenBCI setup.
At the end of each of my posts I'll state what questions I'm working on and if any more advanced users can help plug things along, that will be most appreciated and beneficial for everyone who reads this later on.
For starters, here is where I begin.
* Working with Windows 8.1
* My computer is a Cintiq Companion 2 made by Wacom
* I have both an 8-bit Arduino compatible set and a 16 R&D set in the mail
* No programming knowledge to speak of. (A bit of html, so I get the idea of it. But when it comes to actual play, I'm lost.) Consequently, I will be explaining in plain detail what I discover along the way so that other beginners can get answers to their questions
* I have already successfully installed and run the OpenBCI Arduino program via the complete Getting Started tutorial doc
* As a part of this process I will be creating a more versatile 3D printable headset using Autodesk Maya that has more locations available on the 10-20 system
My ultimate goal is to be able to move my cursor using brainwaves well enough to draw a simple smiley face in Photoshop.
At the September 2015 Salt Lake City Comic Con I will be presenting my research in a 45-minute presentation, where I will discuss with fellow artists and creatives the way that EEG and BCI interfaces are affecting creativity.
If I can successfully pull this off, I will do a short live demo as a part of the presentation using my OpenBCI headware.
The presentation will, naturally, contain a much wider portfolio of examples from other examples and creatives. I will simply include my own research and discoveries as a part therein.
Any and all help in the process of creating this is greatly appreciated.
If anyone with considerable knowledge of EEG BCI wants to collaborate on this, I would be willing to invite you as a guest participant in the presentation at Comic Con, provided that you're serious about being involved. You'd be welcome to speak to the audience, tell them about yourself and what you're accomplishing, and then share a brief part of how you've been involved with this Open-Community project.
Thanks for making OpenBCI great!
At the end of each of my posts I'll state what questions I'm working on and if any more advanced users can help plug things along, that will be most appreciated and beneficial for everyone who reads this later on.
For starters, here is where I begin.
* Working with Windows 8.1
* My computer is a Cintiq Companion 2 made by Wacom
* I have both an 8-bit Arduino compatible set and a 16 R&D set in the mail
* No programming knowledge to speak of. (A bit of html, so I get the idea of it. But when it comes to actual play, I'm lost.) Consequently, I will be explaining in plain detail what I discover along the way so that other beginners can get answers to their questions
* I have already successfully installed and run the OpenBCI Arduino program via the complete Getting Started tutorial doc
* As a part of this process I will be creating a more versatile 3D printable headset using Autodesk Maya that has more locations available on the 10-20 system
My ultimate goal is to be able to move my cursor using brainwaves well enough to draw a simple smiley face in Photoshop.
At the September 2015 Salt Lake City Comic Con I will be presenting my research in a 45-minute presentation, where I will discuss with fellow artists and creatives the way that EEG and BCI interfaces are affecting creativity.
If I can successfully pull this off, I will do a short live demo as a part of the presentation using my OpenBCI headware.
The presentation will, naturally, contain a much wider portfolio of examples from other examples and creatives. I will simply include my own research and discoveries as a part therein.
Any and all help in the process of creating this is greatly appreciated.
If anyone with considerable knowledge of EEG BCI wants to collaborate on this, I would be willing to invite you as a guest participant in the presentation at Comic Con, provided that you're serious about being involved. You'd be welcome to speak to the audience, tell them about yourself and what you're accomplishing, and then share a brief part of how you've been involved with this Open-Community project.
Thanks for making OpenBCI great!
Comments
Moving a cursor via EEG is no small task for a beginner (but, from what I now gather, would not be overly difficult for a more experienced user).
All of this information is presented while in the process of discovery. I'm bound to get a few things wrong. Keep reading to later posts and you should find corrections.
The first step along the way is to get familiarized with OpenVIBE.
OpenVIBE is a free program that can take the information that your OpenBCI headset gathers and use it to tell your computer to do things.
Among those things are creating visuals of brain activity, recording your EEG sessions, and more.
Most relevant here is that it can work in conjunction with the programming language called Python.
As of now, my understanding is that an experienced user can use these three elements--Python, OpenVIBE, and an OpenBCI headset--to make your computer act in the way you desire.
Assuming that you can get the OpenBCI GUI working properly, head over to the OpenVIBE website and download the software. You'll find plenty of tutorials for the installation there already.
The good news is that, as of this post, OpenVIBE has a driver built-in that supposedly connects your OpenBCI set without too much knowledge.
The bad news is that OpenVIBE lists it as "unstable" (I don't know why) and that you'll have to tweak a few things to make it work. I know what one of those things is and will mention it next, but some of those tweaks I have yet to discover.
The first tweak that I discovered deals with the COM port on windows.
(For you Mac users, you'll need to deal with the /dev/ USB port files. I don't have answers, but as you goof around you should be able to figure this one out on your own. Once you do, please post how you did it down below!)
Go to Control Panel-->Hardware and Sound-->Device Manager
Look down through the list until you find "Ports (COM & LPT)"
Inside this subdirectory you'll see "USB Serial Port (COM[#])"
The # will be unique to your computer.
This USB Serial Port thing is your OpenBCI bluetooth dongle.
The word COM refers to old-school computer talk. A COM port was the actual spot on your hardware/computer where you would plug in a device, such as a printer etc.
There used to be only a couple COM ports, because your computer only had so much physical space on it.
As computers have advanced the need to have an actual, physical port that responds to any particular COM # became unnecessary. Consequently, dozens of COM ports are now available, and different aspects of your computer will use them regardless of whether or not you have an actual device plugged in.
Here's the deal. OpenVIBE only recognizes COM #'s between 1 and 16. In my case, my computer automatically assigned my bluetooth dongle to the #17. Why, I don't know. But it doesn't matter, 'cause you can fix it.
Right click on USB Serial Port and click on Properties.
Then click on Port Settings and Advanced.
At the top of the dialogue box you'll see a pull-down menu for the COM Port Number.
Change that to the lowest number possible.
For me, COM1 was available.
Click OK and now close all those windows.
Now, assuming that you've installed OpenVIBE, let's try and get it communicating with our OpenBCI headset.
Open the application called OpenVIBE Acquisition Server.
You'll get a pop-up box.
The first pull down menu is Driver.
I think the default is set to "Generic Oscillator" or something like that.
Click on that pull-down menu and find OpenBCI.
(Here you'll note that, at this time, it's labeled as "unstable." Don't know why, yet.)
Once you've selected that, click on Driver Properties right next to it.
You should see a box labeled Device with a box next to it with \\.\COM[#]
Change that to your COM port #, click Apply, and then close that window.
Now click on the "Connect" button, wait for the OpenVIBE acquisition server to start communicating with your OpenBCI kit, and then click Play.
It will take a few seconds to connect, so be patient.
Soon you should see blue bars appearing at the bottom of the pop-up box for the OpenVIBE acquisition server. They appear under the words "Device Drift."
If you see the bars wavering back and forth, that's a good sign.
The next thing you need to understand is the 10-20 system.
There is a fantastic tutorial found on YouTube here.
It will teach you how to measure your head so that you can place your electrodes properly.
Skip the first few minutes and watch just a minute or two in the middle. You'll see a nurse measuring out the crown of a bearded man's head. Just get the idea of what's going on.
She's measure out certain locations on the head based on common features that all human beings share.
We'll connect our electrodes to a few of those specific locations further on in this process.
Don't bother watching the whole thing just now. Once you've got the idea you can move on.
To move your cursor with your brainwaves you'll need to decide what kind of brainwaves you'd like to measure.
Ultimately, as our goal here is to draw a smiley face, anything that conflicts with our visual creativity is undesirable.
However, there are several options in gathering brainwaves that utilize flashing lights. These options are much easier to use than simply "focusing on a certain kind of thought," and so we'll probably end up using both along the way.
Let's talk about the flashing light method first.
When you look at a light that's flashing consistently at a certain frequency the visual part of your brain will go into sync with that frequency without any conscience effort on your part.
This is great, because if you were to look at a light that's flashing at say 5hz, the back of your brain will start creating a 5Hz wave (or, it will also emit waves in multiples thereof, i.e. 10Hz, 15Hz, etc.).
These waves are known as SSVEP and it's easy for OpenVIBE to detect them.
You can get a more detailed description here.
You can also see a cool demo of developers using SSVEP to play chess.
The next kind of wave we'll consider are those of the parts of our brain that deal with moving our limbs.
If you were to put a little girl's plastic headband on, that headband would (basically) cover the part of your brain that deals with moving your physical body.
At the top of your head is the part of your brain that deals with feet. Coming down towards your ears you have the parts that detail with your hands, facial expressions, jaw, and tongue, and larynx respectively.
As I understand it right now, later we will be able to place electrodes on our heads in these areas, then think about moving a limb and the brain will create a corresponding brainwave.
Our OpenBCI headset picks this up, sends the info to OpenVIBE, which then detects the brainwave and sends it to our Python code to tell our computer to start moving the cursor.
If you like, right now you can scan over this great tutorial (for more advanced users) and get an idea of what we're trying to do.
It's too advanced to really dive into it right now, but should give you an idea of where we're going.
This tutorial was put together I believe by @jfrey .
Now, there's one other kind of brainwave that @ZimtCreme mentioned that might come in useful later, but I don't yet know for sure.
It's called the bereitschaftpotential.
Supposedly this is a popular brainwave to use in this kind of EEG BCI situation. But we'll see how it goes.
That's the summation of what I've accomplished today.
Here are the things I'm currently trying to figure out. If you have answers and can help, that will be great!
* The first question I have is: What am I missing in terms of connecting OpenBCI to OpenVIBE?
I understand that there are things I need to do in order to have OpenVIBE acquire all 8 (or even 16) channels. What are these things?
What do I do to tell the OpenVIBE Acquisition Server to look for a certain brainwave range? I ask because it looks as though the default settings in OpenVIBE Acquisition Server don't pick up the appropriate range.
What other settings in OpenVIBE Acquisition Server do I need to change before we head over to the OpenVIBE Designer?
* Second, as a general guesstimate, how much Python knowledge do you, any experienced users reading this, think we'll need? Are there any scripts available already? Or will we have to find a way to come up with something custom?
* Third, why is the OpenBCI driver in OpenVIBE labeled as unstable? Is there anything we need to be concerned about?
* Fourth, and finally, looking down through the tutorial by @jfrey, at a quick glance (I'm now looking back over it after several hours of learning in other areas) it seems like we won't need much programming language at the outset.
But am I wrong?
Thanks for any help. Love this stuff!
http://openbci.com/forum/index.php?p=/discussion/466/moving-cursor-with-brainwaves-need-some-help
Right now I'm 3D modeling a headset for the extended 10-20 system, or 10-10 system.
Open question:
What's the difference between the 10-20 system, extended 10-20 system, and 10-10 system?
My understanding right now, after all the research I could do, is that the extended system is simply placing the electrodes at 10% distance throughout--simply put. (I understand that there's a little more to it than that, namely in where you put the extra electrodes and where you don't.)
(The nasion is the indent in the nose and the inion is the protuberance on the back of the skull. They're the landmarks that we use in setting up the 10-20 system.)
Is it just that? Or do we change anything else?
I'll write a more detailed journal entry soon.
But for now I wanted to ask you a few questions, @wjcroft, as I'm shifting headset strategies to use the "velcro saline sensors" that you mentioned in other posts.
Thanks for putting it out there, by the way. Seems really really useful.
If you can find time to answer these questions, and if you like, when I write my final
description/instructions of the "creating the headset" part of my
experience here I can write them in such a way that you can simply
copy/paste them into your web page at the bottom as a Q&A answer.
I'll explain later to future eeg-novice reader why @wjcroft's method seems like a better approach than 3D printing a headset.
The questions:
1 - The ear clip that you have with the silver buttons, what would you recommend as an ear clip for those who don't want to do the silver button approach? Is there a medical ear clip (with a non-irritating amount of pressure) that will hold the gold cup electrode?
I did see @jfrey's ear clip here:
https://github.com/jfrey-xx/OpenBCI_3DPrint_misc/blob/master/stl/ear_gold_v2.stl
However, I don't know that it will have ample room for the chamois cloth. And, @jfrey, how comfortable is it? Looks like it might get irritating in sessions that last 2 hours+. ?
2 - With the KCl saline solution, how much KCl do you put in the water? You mentioned something about the Geodesic recommendations, but I couldn't find anything on their website nor elsewhere via Google.
3 - What's this about the contact lens cleaner? How much do you put in?
4 - How necessary is the contact lens cleaner to the mixture? If I wanted to save costs, being a beginner and just experimenting, what will happen if I skip the lens cleaner? What exactly does the lens cleaner do in the solution? Just a disinfectant, or more?
5 - The fact that the OpenBCI board is so vulnerable to being touched by conductive materials is frightening (and not to mention all the other worries about dropping or bashing it). Last thing I want is to fry my board by accidentally spraying a few drops of KCl on it, or having a drop drip onto it from my head.
Do you have any kind of protective casing for the board?
If not, has anyone created a 3D-printable protector for the board (and the bluetooth dongle, for that matter)?
Would a protective casing inhibit the data communication/reliability?
6 - The bag of KCl I'm purchasing from Amazon has a warning about getting it into your eyes. I'm no chemist and don't know if this is a serious worry, or if it's just as dangerous as getting shampoo in your eyes.
Having wet KCl on your head sounds a little dangerous, consequently. Is it, though?
Do these chamois's drip down your head at all?
Maybe the "ShamWow" effect keeps it from dripping?
7 - The directions for cleaning left me with a question or two. For one, the cleaning directions were in regards to the silver buttons. I'm assuming they're pretty much the same for the gold-cup electrodes? You just drop them in lukewarm water, swirl them around, and let them dry?
8 - The amp. Do we need an amp, if we have the most recent OpenBCI board? Or can we just plug the regular gold-cup OpenBCI electrodes in the way we did when we were using 10/20 Paste?
9 - If we do need an amp, what kind/brand would you recommend and where would we purchase it?
10 - When describing the application of the velcro to the back of the chamois pocket, you say to attach the soft side of the velcro to the pocket. This confuses me, because from what I understood, the headbands are supposed to be the soft side, and the back of the silver buttons were the sharp/hooked velcro side. Why do the chamois pockets not have hooks on their back, but loops? And where does the hooked velcro go that holds the gold cups to the headband, if not on the pocket?
11 - (I feel like someone's probably answered this elsewhere, but I haven't seen it in all my searches) What is the corrosion rate on these gold-cup electrodes when using the saline solution? Do these also last only about 30-40 sessions before they need replacing, or do they last longer/shorter?
12 - Where did you get that clamp/clip for the OpenBCI board--the one in the photo that holds the board to the shirt? It looks like a 3D printed file.
I might modify it to make a also be a protective case, if it's openly available.
Finally, one question that I have in general:
13 - While trying to figure out the 10/20 measuring system I came across one inconsistency in the different instructions.
Are O1 and O2 up 10% from OZ? Or are they on the same line?
The video I mentioned above doesn't say thing about going up 10%.
But this step-by-step pdf file says that you do.
And these are the best diagrams I found, but still to an inexperienced medical eye one can't really tell.
Thanks, guys! Hopefully the answers here will help others. Feel free to copy/paste anything I say.
Thank you very much! This all very helpful.
My Shamwow order gets here tomorrow, so I should be able to finalize everything at that point and sum up the creation process.
I haven't fully assembled it yet, so I will still discover a few things when it's done.
But I'm moving into learning how to use OpenVIBE today, and I want to record all my thoughts about headsets before I forget them.
So, some words on headsets for beginners.
When I first purchased my OpenBCI 8bit board I assumed that it would be enough for me to get what I needed.
However, upon completing the introductory tutorial I immediately knew that getting into and out of the EEG electrodes was going to be so time-consuming that I would likely not be able to use the device consistently.
Without being able to use it consistently, the kind of research I want to do with it would likely not progress.
The kit wound up sitting on the shelf for several months while I waited for the Spiderclaw V3 to come out.
The Spiderclaw V3 is a 3D printable headset that integrates natively with the OpenBCI kit.
You can see details and photos of it here.
(The headset was renamed to "Ultracortex," which is actually pretty cool when you stop to think about it. Ultra as a root word means "above" or "beyond," and "cortex" is the name of the outer layer of the brain. Cool.)
Well, when it finally came out I was pumped and ready to go with it, but quickly found that it has limitations.
There are two big ones: lack of customization options and print-volume.
First, concerning customization, the headset as you can see only works with the regular 10-20 system.
This is usually fine, but what if you need to connect the electrodes to your head with a different set up?
There's actually an expansion of the 10-20 system, logically named "The 10-10 system," or "10-20 system extended."
Basically, all it means is that you put electrodes in between all the ones you had earlier. Pretty simple.
And, in order to follow the instructions given in the tutorial by @jfrey, we're going to need to connect to certain spots on the 10-10 system.
Well, the downside to the Ultracortex is that it's designed such that you can only connect the electrodes to the 10-20 system, and to nowhere else.
More troublesome is the fact that the structural bars of the Ultracortex actually *cover* areas of the 10-10 system. That means that in order to put an electrode on a spot in the 10-10 system, you might have to actually squish the electrode in between the Ultracortex and your scalp.
Ouch?
When doing long sessions, this may or may not become uncomfortable. I can't tell without actually having one.
Now, I downloaded the Ultracortex model and pulled it into Maya (a software that has 3D modeling capabilities) and tried to see if I could make adjustments.
Maybe I could add more holes and structural bars until it fit the 10-10 system?
The 3D file, however, is far too complex and temperamental in its digital makeup for me to want to play with it.
I tried building my own, but after a few hours decided that I was probably reinventing the wheel. So I went looking for other ideas.
After searching through dozens of posts, websites, webstores, etc, I came across this design invented by @wjcroft, and it caught my attention.
"Velcro saline sensors"
@wjcroft has done an excellent job of explaining his idea.
I am a complete beginner, so it still took me a two or three read-throughs before I really understood everything.
All the questions I had I posted above. Thanks for answering them, @wjcroft.
Here are the reasons why I'm going this route, instead of printing a 3D headset file.
1 - It's highly customizable. The versatility of the velcro system creates limitless options for placement.
2 - It's more comfortable. (I've already put together part of it and it is very soft on the head. Wearing it for hours won't be a problem.)
* A brief note: Between deciding not to use the 3D print file and later discovering @wjcroft's invention I briefly entertained the idea of hiring a friend to simply sew together an EEG headcap for me, into which I would then attach my electrodes myself (maybe through 3D printing some little electrode holders that @jfrey invented.)
She was willing to do it, too, for a very reasonable price: $20.
That is a far cry better than the other headsets I've seen, such as the g.Gamma cap, which I've heard costs $230 and doesn't seem to do anything special.
So, if you would prefer to go the route of finding a head cap, you might post around on Facebook etc. and see if you can find a friend who will do it for you.
I decided not to go this route, however, because of what @wjcroft mentioned at the beginning of his Velcro Saline Sensor's page--that using such caps for extended periods can cause discomfort.
My long-term intentions in EEG (beyond the scope of "drawing a smiley face in photoshop") will likely include sessions that last 2+ hours, so finding a comfortable solution is better for me. Whatever works for you, though!
3 - Low cost investment. I'm still very new to the EEG community, and I don't want to be shelling out cash for things that I may not need a month or two down the road.
The set up that @wjcroft invented cost me somewhere between $40 and $80 on Amazon, not including shipping. (I have an Amazon Prime membership, which means that shipping was free.)
I'd have to go back and check how much it was exactly, because I had it mixed it with other unrelated items.
But, bottom line, it's cost effective.
4 - I can do it myself. No need to trek over to a 3D print shop and have to communicate what I'm trying to do to someone, then wait for it to actually go through. With this chosen method, once the stuff arrives you can set the velcro headset up in no time.
One thing I should add is that for the spray bottle in the velcro headset setup I purchased a travel-ready bottle.
You can see it here: http://www.amazon.com/gp/product/B006XDJCCU?psc=1&redirect=true&ref_=oh_aui_detailpage_o01_s00
I purchased this instead of the larger bottles because I wanted something that can go in my backpack without my having to worry about it spilling. (Even then, I'll still likely put it inside of a Ziplock bag.)
Lastly, there are still two things I'm going to print:
1 - An ear clip for the gold cup electrodes.
@jfrey made this as a modification he saw somewhere else. I haven't printed it yet, so I don't know if it's comfortable. We'll find out.
2 - This OpenBCI board protector that clips to your belt.
You can download the files here.
https://github.com/OpenBCI/MemoWave/tree/master/OpenBCI/STL/Belt-Shield
Click on each one of the files and it will take you to a page within where you'll see a 3D rotating image of the pieces that make up the belt buckle.
To download the files, you click the button labeled "Raw."
Confused me for awhile.
I don't know that I'll actually be clipping it to my belt. But I do appreciate the idea of having some protection.
There's always the danger of accidentally smearing some paste on your board, spilling saline solution, or even just having one of those sparks from your finger that you get walking across carpet happen when you touch your board, which would then be permanently fried.
I might modify that belt clip eventually and post it here. We'll see.
Ahh, one final thing...
So, originally I was working with the simpler 8bit OpenBCI board, which can measure 8 channels.
But I have a long term interest in EEG and I want to have be able to measure more channels.
Furthermore, in this simple tutorial, @jfrey mentions that it's best to have 16 channels placed around the "motor cortex" on your head so that you can get more accuracy.
This may or may not be fully necessary. It looks like from the tutorial that you might get away with less.
But all the same I decided that since there were some kits that had 16 channels available in the store, I might as well grab one while they were there and use that.
The first problem I ran into (immediately, actually), is that in order to assemble this "R&D kit," as it is called, is that you are expected to be able to solder together two computer boards.
Hmm, not good for a novice like me. Don't know the first thing about how to melt together computer parts.
I'd probably ruin them if I tried.
I called a friend that's a welder and asked him if it was up his alley, and he said it wasn't. However, he told me that most computer repair stores could probably handle it.
Sure enough, he was right. I called a local store, Orem Computer Repair here in Utah Valley, and they said it shouldn't be too much of a problem.
Their initial estimate is that it should cost around $25, maybe a little more. And they can do it while I wait.
We'll see how that goes down later.
But for any of you who are confused about what to do with the two separate R&D boards that come in the kit, now you know.
Thanks for the help everyone. Hope this journal helps other.
Next up: getting down and dirty with OpenVIBE.
As far as I can tell, they're simply not working properly.
I set up everything as per this tutorial.
In order to do the soldering job I hired a guy with 20 years of soldering experience. He runs a business that specializes in fixing motherboards.
As far as I can tell he did everything just right. I can't see any difference between his solders and the ones that the OpenBCI board came with originally.
And he seemed completely professional.
My 8bit board works perfectly, so I know it's not my computer.
Here's a more detailed description.
Here are photos in my dropbox account for reference.
Included is a photo of what my hardware set up looks like (operating on
a Wacom Cintiq Companion 2 with Windows 10) and then some screenshots
of the OpenBCI GUI's behavior.
After soldering in the female connectors to the 32bit board and inserting the daisy module I then turned on the OpenBCI GUI and proceeded to do a test run.
Channels 9-16 behave quite erratically and channels 1, 2 and 4 *constantly* pick up noise, even if nothing's affecting the male pins on the board.
I'm assuming that channels 9-16 are the daisy module channels.
At
first they just showed repetitive noise. It did not look like anything
from a human or non-symmetrical rhythmic source. It looks like something
that might be either digital or chemical.
Here's a screenshot.
The
thing is, the male pins are clearly connected and active, because if I
stroke my finger across them, channels 9-16 in the OpenBCI GUI register by going crazy.
Now
sometimes after I stroke my finger across the male daisy module pins
several times they suddenly calm down and behave normally. But not
always, and any kind of movement of the OpenBCI board immediately starts
them repeating their rhythmic vibrations.
Sometimes some of the
channels amongst 9-16 would calm down, while others would continue
different rhythmic beats. And sometimes all all the channels (I think)
would oscillate without a stimulus.
Secondly, channels 1, 2 and 4
behaved erratically throughout the experiments. I have no idea why.
They constantly had a rapid and small pattern and then also a larger
pattern that oscillated up and down on a very smooth wave.
I
really have no idea why any of this would be. Why would the daisy module
behave properly sometimes, and then freak out at other times? And why
would channels 1, 2 and 4 show incessant patterns while the other
channels on the 32bit board had no problems at all?
Again, I
really don't think this has anything to do with the soldering job. I'm
no expert, but I was there the whole time, the guy was very
professional, and there's nothing in any of the work he did that looks
out of the ordinary. I've checked over the board closely. No drips of
metal, no burns, no sloppy edges to the soldering job, same kind of
metal, etc. I can't see anything wrong with his work, and he was very
friendly and happy throughout--no behavior that would make me suspect he
made a mistake and was trying to cover it up.
Here are the photos again of the set up and screenshots.
Thoughts?
Hope the board's not defective.
On this tutorial here you mention the creation of a "Y cable."
Where did you get the male pin? Did you cannibalize on of the extra female/male pins that can be used for soldering on the board?
Does it matter what kind of wire you use for the male pin?
The guy who did the soldering job for me also made me a Y cable using a common aluminum wire for the male pin. We just cannibalized the extra non-gold cup wires, the ones that have the male-female ends, to make the female ends of the Y cable.
What do you think?
I tried all kinds of things today. I tried unplugging the daisy module and running the 32bit board by itself.
Alas, 1, 2, and 4 still behaved oddly.
Sometimes, after long periods they would settle down and rail, like the channels on my 8bit board do.
But then, for no reason at all, they would suddenly start rocking around again.
When turning on each channel, 1 through 16, one-by-one some of the daisy channels behaved "better," though they would never settle down to the point of being railed.
Some of the channels--channel 10 in particular--kept their odd behavior despite anything I could do.
I looked over the chip in daylight. There's really nothing here that my inexperienced eye can see that would cause this problem. The board looks clean and professionally created.
? I'm at a loss. This R&D kit is brand new, straight out of the package.
I tried running my 8bit board (which has always run great) just to see if there was something new in the environment that was changing things.
The 8bit board still runs beautifully.
I took more screenshots of the behavior in the OpenBCI GUI and wrote down notes. Take a look, if you can, and let me know what you think.
https://www.dropbox.com/sh/tbp0ai6gvdkjj8t/AAAhKjoSQX4q9pl2WdE_I9sQa?dl=0
Here is where my inexperience is coming in.
What do you mean by "no connection to SRB2 / Bias..." ?
Is there some kind of feature that I'm supposed to enable in the GUI to tell each individual channel to look to the SRB2/Bias channel for reference?
When you say "stick various electrodes together," do you mean to put paste on them and stick the electrodes actually one to another, or just put them on my head?
Finally, if you take a look in the folder here:
https://www.dropbox.com/sh/tbp0ai6gvdkjj8t/AAAhKjoSQX4q9pl2WdE_I9sQa?dl=0
you'll see that there are a number of screenshots, and then also a folder labeled "old."
The screenshots in the root folder all are setup thus: The 32bit board has electrodes attached to every pin, while the daisy board has no electrodes attached.
The 8bit board screenshots are of a board with bare pins.
If you look in the "Old" folder you'll find more screenshots, this time all of the 32bit board.
Here the 32bit board did not have any electrodes attached.
The behavior is erratic on the 32bit board in all situations.
It sounds like from what you said that there may be a feature or requirement that I've forgotten about when setting this up.
The 8bit board will rail completely--or come close to railing--when it doesn't have any electrodes attached and is left alone. I thought that was normal, but maybe I'm wrong.
Thanks again for the help.
Fun stuff!
Thank you very much, @wjcroft, @jfrey, and @JakeStew for your help. I could not be doing this without you, quite literally.
It's time to dig into OpenVIBE.
But first, a question for you, @wjcroft, about the saline headset.
Here's a picture of the actual hardware.
To test it out I set it up using the instructions on the webpage and then followed that same "Getting Started" tutorial in the docs section.
Here's the what the EKG signal on channel 4 is supposed to look like in the OpenBCI GUI.
Earlier I tried the 32bit board with the regular 10-20 paste and it got the exact same result.
And I also tried adding on the daisy chain and repeating the exact same thing, only with the EKG nodes attached to channel 12 instead. It worked fine the first time I tried. Afterwards I seemed to mess things up in the GUI and the signal went funky. But by all appearances it was just a user error.
The signal looked almost exactly the same as the one in the demo. I didn't take a screenshot, but I don't think it was necessary.
Today I set up the velcro headset and attached it to my head and arms. I used the same velcro straps to attach the saline chamois to my arm and wrist so as to gather data on the EKG.
Here's what the EKG signal looks like with the velcro setup.
(Ignore the funky signal on the right. That's from when I moved my arm to press the screenshot keyboard buttons.)
Notice that the EKG is much more dramatic than it was with the 10-20 paste.
Is this good, bad, or meaningless?
Thanks for the help, @wjcroft.
I disappeared for awhile because I was out on honeymoon. My wife and I married this last January and did not have time to go anywhere until fall break at her university. We went up to Alaska and went hiking out into the middle of nowhere. Really fun trip. Hope to get back.
Moving forward.
The design that you invented seems quite effective, @wjcroft. I really like it and recommend it to anyone who is looking for a similar solution.
After getting it all assembled I did a 25 min. meditation session. Here's a screenshot of what my brainwaves looked like a few minutes in.
As far as I can tell the headset is working perfectly.
I'm not sure how you handled all the points on the 10-20 system, @wjcroft.
Obviously, due to the curvature of the head one cannot just simply strap long horizontal bands across points F3, F4, P3, and P4 and expect the bands not to twist around at odd angles.
I came up with a solution as I went along. Here are shots of it.
(Oh, one note: I had to do this primarily on my own, using nothing more than a flexible drafting ruler and the actual velcro bands. Because of this the measurements are a little off. If you can get someone to help you measure, do. My wife was in the middle of finals week at the time. But the good news is that the measurements are just done in velcro, so we can go back and fix things later.)
I came up with my own solution.
As you can see, I cut three small strips for each of the four difficult points and have the strips act like a tripod in holding that sensor.
Do you have a different method, @wjcroft, that you would like to share?
The saline solution that you posted works great. No drips and easy to create. Love it. Thanks so much for sharing!
Well, I'm ready to start working in OpenVIBE, and that's what I'm going to be doing all day today.
But I still have one big question. After looking over the tutorial by @jfrey, I'm thoroughly confused about how to get the daisy module working properly--specifically about the bias and ground channels, and the "Y" connector that we make in this tutorial, and how to connect it all properly and set it up in the software.
It's been a few weeks since I last put on the system, so I'll wait to ask questions about that until later today, so that my questions come from a fresh memory.
It took awhile to get back to where I was before, and something's wrong right now with the velcro saline headset and I can't figure out what it is.
At first when I hooked it up everything went haywire.
I finally took off the daisy module and went back to the 10-20 gel just to figure out if it was a hardware issue, and I went though the "Getting Started" tutorial, and with the paste the channels I tried worked fine. (The tutorial utilizes only channels 2, 4, and 7, and I didn't think to test all the channels while I had everything set up).
I went back to the velcro saline headset (and have not yet reattached the daisy module) and at first it went haywire again.
But then I tried turning on each channel individually at the program launch each time, and for whatever reason this time *most* of the channels calmed down.
The problem is that Channel 1 (and sometimes Channel) is malfunctioning and I'm not sure why.
I tried using different electrodes in different spots on the head, but always had the same crazy result.
If I tap the electrode it does seem to go even crazier, I think.
I haven't tried Channel 1 with the 10/20 gel yet, so I don't know if it's endemic to the velcro saline headset, or what else it could be.
Channels 2, 4, 5, 6, 7, and 8 all seemed to work perfectly. I picked up an alpha and everything when closing my eyes.
Channel 3, however, also behaved weirdly.
It's got a lot more noise for some reason, and I'm not sure that it's actually reading my brainwaves, because I tried switching the electrodes around and Channel 3 behaved in its own manner regardless of where I placed the electrode on my head.
And those waves seem too exaggerated, also, for me to think they're coming off my head.
What's going wrong here? Any ideas?
I think I can move forward with OpenVIBE tonight just using the working Channels (and still without the daisy module). But I'm always worrying (needlessly?) that the OpenBCI module is malfunctioning.
I hate to be a bit of a dunce, but I still don't understand what the deal is with the "Y" cable.
From what I understand, when the daisy module is attached one doesn't need to hook up separate bias/SRB electrodes for just the daisy module. However, using a "Y" cable to have the Bias/SRB electrodes import to both the daisy and the base modules increases the accuracy. Is that correct? Is there anything I need to do in the software so that system understands what's happening? Should I do this all the time, or is it only important while doing @jfrey 's tutorial and similar projects?
That does leave me with one question, though: Do we need a Y cable for the bias, too? Or does the main board's Bias channel connect with the daisy module's channel?
Concerning the unexplained noise:
The good news is that Channel 3 is functioning properly.
The bad news is that I am now 99% certain (and I could still be wrong) that Channel 1 is malfunctioning.
I know this because I have both an 8bit and a 32 bit board.
I used the exact same velcro saline setup with an EKG wrist/arm setup (from the Getting Started Tutorial) on both my 8bit and 32 bit boards.
Channel 1 on the 8bit board behaved normally. On the 32bit board, with the exact same setup, it behaved erratically.
From what I can remember, Channel 1 on the 32bit board has never behaved properly. The image I have posted far above where the Channel was behaving is, to my recollection, an image created using the 8bit board. (Learning to us the 32bit board and daisy module while simultaneously creating the velcro saline setup was too complicated. So I went back to familiar territory to get the headset working. After that my wife and I left on our trip.)
Not sure what to do. There are no signs of external damage and I see no reason why it would malfunction. I've been ridiculously careful with this thing.
Suggestions? I can contact @conor_obci via the contact page, but I suspect it will take a long time to get an answer.
In the meantime I can move forward to the best of my ability, but missing this signal may make the task more difficult. And sending this thing in for repairs is going to make the time-sensitive nature of this project stressful.
Thanks for offering to help!
I'll be happy to try swapping the lead connections. I am a beginner, though, so I'm not sure what you mean by "lead connections." Do you mean swapping electrodes that work on another channel, such as channel 2, so that they're on channel 1 instead? If so, then yes, I did try that and it produced the same unusual behavior.