chrisveigl / brainbay Goto Github PK
View Code? Open in Web Editor NEWOpen Source Biofeedback Software
Home Page: http://brainbay.lo-res.org
License: Other
Open Source Biofeedback Software
Home Page: http://brainbay.lo-res.org
License: Other
system: win11 (all updates), python 3.11 (brainflow 5.8.2), brainbay 2.7
testing if the device will connect to my laptop:
starting the default connection example (first one on https://brainflow.readthedocs.io/en/stable/Examples.html ) with (i have a muse s = board id is 39):
python brainflow-connection-test.py --board-id 39
the device will be found, connected to, and some data will be recorded.
doing the same in brainbay (choosing the muse s, not the muse s BLED because i do not have the dongle) will return 'failed to prepare session 17' (instandly, no scanning done, just some error).
i tried the same today on win10 (before reformating in installing win 11) and got the same error (it would also connect through pure python-brainflow).
is it possible to use brainbay/muse without the BLED bluetooth dongle?
could there be any other problems?
thank you for, writing this program. it seems amazing, i cant wait to try it out :-)
Hi @ChrisVeigl - I am using a 5th electrode with the Muse 2, but BrainBay does not recognize it. Using an alternate app, I can see that the electrode is producing signal - so the Muse and electrode are ok.
On the Brainflow website it appears that it should be supported. Is this something that I have to enable with a config string, or does this require an update to the code?
When using copy/paste, the new elements should be placed in front of all other elements
Hello,
When I'm trying insert EEG amplifier block for Neurobit Optima 4, BrainBay throw \NeurobitRuntime\NeurobitDrv.dll. Does anyone have any ideas?
Hi @ChrisVeigl
While playing a session, there are interruptions that have the following symptom:
Is this due to a design complexity issue? Are certain widgets more to blame? Or is it a BLED connectivity issue?
Often when trying to restart the session (but not always) I get a session 3 error.
Sometimes I get a session 18 error. Many times when I get session 18 I have to exit the app, pull the BLED, then reinsert. This does not always work.
What do these errors mean, how should I begin to troubleshoot them?
Muse 2 with BLED dongle
Hi Chris,
I am experimenting creating various protocol designs, and many of these would require continuous audio rewards for eyes closed. I have not been able to make a continuous, ongoing sound that would also trigger cleanly with a short burst reward. I have attached an example file with an edf that has plenty of examples. (The first few mins of the file are where the headset is "settling" and you can skip ahead by a minute or two)
The file also uses FFT for band isolation...just playing around with that, the settings are not finalized yet. :)
J
Muse_EC_15min.zip
Muse_FR_incAlpSMR_3.zip
the display of the time in the osci element disappears, when there are more than 2 channels to show
Select & Copy more than 1 Element incl all connections
Chris, hi.
The Muse LSL package can output an LSL stream from both the original and new model of the Muse. Might be more incentive for LSL support.
And... Consider that if Ganglion access through the Hub ever gets redefined in a future GUI revision -- that LSL output from OpenBCI will always be supported. The devs at OpenBCI are not fond of the support headaches involved in the Hub mechanism, and are considering (long term), in dropping the Hub idea and using low level C library routines to access each type of device. These would likely be linked with the Processing / Java / JNI mechanism.
Here's the Muse LSL,
https://github.com/alexandrebarachant/muse-lsl
Cheers,
William
I want to use a threshold with the power of a section of the bandwidth.
I'm using Magnitude to isolate the SMR bandwidth then FFT to output Power.
This requires the use of a FFT window that I don't want to display.
Is there another way to access the power of a bandwidth (smoothed over N time)?
Thank you for supporting Brainflow, I think BrainBay v2.6 could record EEG using openBCI (Ganglion) without going through openBCI-Hub.
Insert Element > Source > Biosignal/EEG Amlifilter > BrainFlow-Compatible
When I try to create a new design file using the above procedure, BrainBay is forced to shut down.
Do you have any solution?
Hi Chris
I am a neurobit + bbay user.
Going to download latest version (once saved my favourite cons)
The question is what open BCI items may I buy to make proper 8 channel analysis and Neurofeedback.
Thanks
I have a design that measures the balance of 2 channels. Values can be -100 through 100 as channel dominance fluctuates. When I apply a threshold at 90% and the average value for the interval is negative (e.g., -50) the calculation results in a new value of -45, a value greater than the average.
Here's the current calculation in threshold:
to_input = avgsum/interval*smalladapt/100.0f;
My anticipated behavior is that the percentage is determined as the ratio of the max-min range (like the way globals.cpp's size_value method works)
Example of desired behavior:
An average of -50 would be 25% of the -100 through 100 range and a 90% threshold calculation would result in a value of -55.
Desired calculation:
(-50 - -100)/(100 - -100)*0.9 = 0.225 (90% threshold is 0.225 into the max-min range)
-100 + 0.225 * (100 - -100) = -55 (90% of the average of -50 is -55)
I'm currently working around this by adding 100 to the input values so all my values used in the threshold are positive.
Are there examples to filter out artifacts from eye blinks or moving electrode cords?
I thought I might be able to use the meter/threshold for it, but could not figure out settings that worked.
Filters either attenuate too much signal or produce too much ringing.
I was hoping to find a tool in Brain Bay to provide limits on microvolt spikes in the raw signal, but could not figure that out either.
Any help much appreciated
I have detected spike-like, periodric artifacts (approximately once/sec) .
Can you confirm the same phenomenon?
https://drive.google.com/file/d/1PcMA2AaPY8alvtLz1Z3Hecffr0SZEjht/view?usp=sharing
I use the Ganglion boards to monitor signals, the electrodes are not connected to the board or body.
The following are the conditions.
・win10 machine
・Newest Brainbay (v2.3) - OpenBCIHub (OpenBCIHub-v2.0.7-win-64bit),
・Bandpass filtered(0.5-50Hz)
・Does Not matter BLED 112 or CSR4.0 dongle
・Disappear with the combination of Brainbay v2.1- Hub v1.4.6 - CSR 4.0 dongle
・Artifacts are Not identified in the OpenBCI GUI measurements
・They seems not to be derived from measurement environment, because I can confirm them in different lab.
・They seems not to be derived from Ganglion boards temselves, because I can confirm them on different boards
Thank you,
Otemo
Bring element to front on the stage, when selected in the design
Greetings !
I am developing a project of EEG Kit (8 channel) using ADS1299 MMBO board interfaced with Arduino UNO board. I have done the Code for Reading Registers and SPI works Perfectly and somewhere am able to read the Raw EEG Data. Can someone please help me to Use BrainBay and Read perfectly accurate Brain Signal using only BrainBay. Since it is one of the best Application to plot the EEG Graph.
Also what type of filters should be used and the arduino code also.
Mainly , if a pre written Arduino code is available , please provide me along with the steps to use it.
Link to ADS1299 Data sheet: https://www.ti.com/lit/ds/symlink/ads1299.pdf
Thank You
Oddly, after installing this new 2.3.1 version, every time I start my design, I get a dialog box "ganglion connection error", with the contents, "Is the Ganglion board switched on and connected". Yes it is, I was just using it with the previous version of BrainBay (2.3). The Hub does get started.
When I access the Ganglion from the GUI, everything is working fine.
After the 2.3.1 install, I did re-enter the appropriate items into the Options panel, 200Hz and path,
C:\Program Files\OpenBCI_GUI\data\OpenBCIHub\OpenBCIHub.exe
I honestly can't see what I'm doing wrong. Should I have uninstalled first? I did not, I just installed over the old version.
I just did a complete uninstall followed by reinstall of 2.3.1. Same dialog box when starting the design.
Dear Chris,
First of all, thank you for creating BrainBay! It's fantastic.
I would like to describe my issue:
I've purchased recently the OpenBCI Cyton (version v3-32) and the Daisy Module to record with 16 channels. I've tested my set up in the OpenBCI software and it works. However, I would like to use BrainBay to be more flexible and modular.
Unfortunately, I can't get the signal for 16 channels, when I choose the EEG amplifier from BrainBay: OpenBCI (16 channel EEG). Also no signal from the accelerator. It seems that the connection is not established (no red light on the USB Dongle).
However, if I chose the EEG amplifier: OpenBCI (8 channel EEG) and can establish the connection (red light on the Dongle) and get a Signal from 8 electrodes. So, it seems that there's an issue with the setting in the EEG amplifier: OpenBCI (16 channel EEG).
I've used both time the same port (COM4) and the same Baudrate.
Do you have any idea, if there's a bug or I'm doing anything wrong.
Thank you very much for your help and all the effort to create BrainBay!
Best,
Nicolas
Although I am using a Muse 2, I am not sure that this issue has anything to do with the device or the driver per se - when I am fiddling around with MIDI settings to make the sounds come out best, suddenly Brainbay stops, often requiring a reset then hitting play again.
Sometimes it *does require exiting the app entirely, and powering down/restarting the Muse. But I haven't seen that so often.
I am guessing that it's the MIDI because that is the common factor when it happens. Let me know if there's data that I could gather the next time.
Windows 10, happens on a brand new desktop system and also on an ancient ASUS laptop. Using a BLED dongle with the Muse 2
Hi Chris, are there any examples that contain and use ERP-Detector?
There is a message about the successful emotiv sdk libraries loading in the logs, but in the settings everything is empty and there is no signal and any information about the device: wireless quality and battery life. Also, I can see the device data in the Emotiv Control Panel.
21.04.19 - 11:36:12 now trying to open C:\Program Files (x86)\Emotiv Research Edition SDK v2.0.0.20\dll\32 bit\edk_utils.dll
21.04.19 - 11:36:12 open was successful
21.04.19 - 11:36:12 LOADING EDK_UTILS.DLL succeeded.
21.04.19 - 11:36:12 LOADING EDK.DLL succeeded.
21.04.19 - 11:36:12 INFO: Sucessfully loaded Emotiv EDK dll from C:\Program Files (x86)\Emotiv Research Edition SDK v2.0.0.20\dll\32 bit```
There is an output "other" for Muse 2, what is in that output? is that the extra electrode?
Hello,
I would like to know if it will be possible to make a design similar to the 4 channel multivariate coherence training developed by Coben (recently published) with the 4-channel Ganglion device.
I'll look forward for your answer
Regards,
For evaluations and presentations it would be very useful if a video could be included to play synchronously with the timeline (+/- some offset to adjust the video-time)
Source: EDF-File
Filter: Alpha range
Target Oscilloscope
When reaching the middle of the timeline, all graphics goes flat (0).
Thank you
Select multiple elements to move in the Design panel
Chris, hi.
Since the fall of 2018, OpenBCI has dropped the old CSR dongles originally used with the Ganglion. This is because quite a few users were encountering problems with configuration of Zadig, and other issues.
The new dongle being shipped is the BLED112. Unfortunately there are probably hundreds of old CSR dongles in the field. So optimally BrainBay will be able to work with both. My guess is that this selection could be a dropdown in the Ganglion configuration box. "CSR" vs "BLED112" dongle type.
As far as your code change goes, it is just using the string "ble112" vs the original "ble" on line 323 of ob_ganglion.cpp. That tells the Hub what type of dongle you have.
Best regards, William
Hi @ChrisVeigl - I like using FFT as filters, using power as output. They are straightforward to set up and for some purposes are great as they don't suffer from "ringing" as butterworth filters can. But, when used this way, I don't need to see the graphic output.
Is it possible to add that checkbox that hides the widget in an upcoming release?
Chris, hi. Apparently the philosophy of "leaving the Hub running in the background for other programs", that was promoted in the first versions of the Hub -- has been abandoned.
The OpenBCI GUI starts the Hub at the beginning of the session, then kills it when exiting.
BrainBay currently starts the Hub, but leaves it running on exit. This causes confusion if the user tries to start a GUI after a BrainBay session. The GUI starts a Hub again, and gets error (EADDRINUSE, 2nd Hub cannot bind to the fixed listening socket.)
I think the simplest answer for the moment is to just kill the Hub on BrainBay exit, if you have it's process id handy.
To be honest I think you are the only other program currently (in the known universe) ;-) which is using the Hub API. Apologies for the shifting sands...
Regards,
Under the CONFIGURATIONS\ directory brainflow_error_log.log file keeps being written out and filling up my hdd.
The file is reaching above 150GB in size and will keep increasing.
Any ideas on how to debug this issue and prevent the log file from being written out?
I noticed that the use of median seemed to favor the last value of the range instead of the whole range of values used in the interval. I checked the calculation and the median calculation only uses the last iterator value:
for (i = 0, sum = 0; (i <= 1024) && (sum < numtrue); i++)
{
sum += buckets[i];
}
to_input = size_value(0.0f,1024.0f,(float)i,in_ports[0].in_min,in_ports[0].in_max,0);
It looks like the buckets need to be sorted then the middle value in the list should be chosen.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.