Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Headband Tutorial Documentation Change #8

Open
wants to merge 1,683 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1683 commits
Select commit Hold shift + click to select a range
c8756d1
Update tutorials.md
retiutut May 7, 2019
c2eb900
Merge pull request #201 from retiutut/master
retiutut May 7, 2019
31461a7
Merge pull request #200 from robertoostenveld/ganglion_wifi_power
retiutut May 7, 2019
7bd555f
Update arduino focus example
retiutut May 7, 2019
9968833
Merge pull request #202 from retiutut/master
retiutut May 7, 2019
ca2a4d3
added lsl to Matlab docs
andreaortuno May 9, 2019
0d10334
Update 01-Matlab.md
andreaortuno May 9, 2019
2cf4440
Updated Matlab readme
andreaortuno May 9, 2019
52573db
Merge branch 'master' into andrea
andreaortuno May 9, 2019
91c4214
Update 05-OpenBCI_Python.md
andreaortuno May 9, 2019
7e87431
Merge pull request #203 from OpenBCI/andrea
andreaortuno May 9, 2019
3f5c276
Update 01-OpenBCI_GUI.md
shirleyzhang867 May 10, 2019
cd44b31
Update 03-OpenViBE.md
retiutut May 12, 2019
0e7d0a2
Update 03-Wifi_Getting_Started_Guide.md
retiutut May 12, 2019
9b94ab1
Update 03-Wifi_Getting_Started_Guide.md
retiutut May 12, 2019
00b0307
Update 03-Wifi_Getting_Started_Guide.md
retiutut May 12, 2019
1ed4379
Fix #183
retiutut May 12, 2019
5ca5073
Merge pull request #204 from retiutut/master
retiutut May 12, 2019
3567d1a
Fix #173
retiutut May 12, 2019
aa952c5
Merge pull request #205 from retiutut/master
retiutut May 12, 2019
c7fca9f
Update custom widget information Fixes #158
retiutut May 12, 2019
dd69719
Merge pull request #206 from retiutut/master
retiutut May 12, 2019
457fb76
Include verbose print on custom_widgets.md
retiutut May 12, 2019
fb574f2
Merge pull request #207 from retiutut/master
retiutut May 12, 2019
22dc8ac
Update 00-OpenBCISoftware.md
conorrussomanno May 14, 2019
66059b7
Update 00-OpenBCISoftware.md
conorrussomanno May 14, 2019
c9597a4
Update 00-Tutorials.md
conorrussomanno May 14, 2019
10e41f0
Update 00-OpenBCISoftware.md
retiutut May 15, 2019
e2867f4
Add Linux serial port permissions fix
retiutut May 15, 2019
564e0ba
Merge pull request #208 from retiutut/master
retiutut May 15, 2019
f7b1e25
Update 01-OpenBCI_GUI.md
retiutut May 15, 2019
46831a1
Update Start_OBCI_Cyton.xml
retiutut May 16, 2019
4ed9d8c
Merge branch 'master' of https://github.com/retiutut/Docs
retiutut May 16, 2019
bb0b87b
Add disclaimer to Wifi shield hardware page
retiutut May 16, 2019
a490431
Merge branch 'master' of https://github.com/retiutut/Docs
retiutut May 16, 2019
9e4721f
Add GUI Widget Tutorials
retiutut May 16, 2019
17c872c
Add Widget tutorial for Playback history widget
retiutut May 16, 2019
9ca8474
Merge pull request #209 from retiutut/master
retiutut May 16, 2019
1069975
Added (RST) to reset button
produceconsumerobot May 16, 2019
bc3c596
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
e0eefd2
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
475053f
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
4a99cad
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
44b9530
Add ganglion impedance test screenshot to GUI doc
retiutut May 17, 2019
752f982
Merge pull request #213 from retiutut/master
retiutut May 17, 2019
9d9b001
Resize ganglion impedance image in GUI doc
retiutut May 17, 2019
244ae3c
Merge pull request #214 from retiutut/master
retiutut May 17, 2019
7d07da9
Update screenshot at top of the GUI doc to v4
retiutut May 17, 2019
7a7ef87
Make linux serial permissions a dropdown
retiutut May 17, 2019
ea042af
Merge pull request #215 from retiutut/master
retiutut May 17, 2019
1cebc65
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
38199d4
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
0e6a2a6
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
21f95cf
Deprecate Cyton Bluetooth doc
retiutut May 17, 2019
a3d7d20
Add: dongle blinks red during init due to channel settings
retiutut May 17, 2019
6521af7
Fix typo in openbci_gui doc
retiutut May 17, 2019
e796800
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
85e0eed
Update 01-OpenBCI_GUI.md
retiutut May 17, 2019
0703263
Merge pull request #216 from retiutut/master
retiutut May 17, 2019
4931896
Update docs to fully deprecate CSR information
retiutut May 19, 2019
342fb1e
Merge remote-tracking branch 'upstream/master'
retiutut May 19, 2019
2b64788
CSR EOL cleanup with valid links to deprecated doc
retiutut May 19, 2019
4645710
Merge pull request #217 from retiutut/master
retiutut May 19, 2019
a5dee95
Update windows high dpi fix using pictures
retiutut May 20, 2019
23cd88d
update screenshot meta in openbci gui
retiutut May 20, 2019
42736f0
modify overridehighdpiscaling picture gui
retiutut May 20, 2019
0dab633
update overrride high dpi scaling picture
retiutut May 20, 2019
31f295e
Merge pull request #218 from retiutut/master
retiutut May 20, 2019
d8efacc
Update 05-OpenBCI_Python.md
andreaortuno May 20, 2019
0205f44
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
7dc19b5
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
40d847b
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
11b92b3
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
e371dba
Update 05-OpenBCI_Python.md
andreaortuno May 21, 2019
b170690
Update 01-Matlab.md
andreaortuno May 21, 2019
1a9e6c1
Update 01-Matlab.md
andreaortuno May 21, 2019
d0262c0
Update 01-Matlab.md
andreaortuno May 21, 2019
0996254
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
c0b8e8d
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
17a9f24
Update 01-Matlab.md
andreaortuno May 21, 2019
a309b80
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
7df5671
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
4674d2e
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
9fab3cb
Add files via upload
shirleyzhang867 May 21, 2019
cddb8a9
Delete GND_pin_cap.png
shirleyzhang867 May 21, 2019
4ce5359
Delete cyton_pins_cap.png
shirleyzhang867 May 21, 2019
211facb
Delete cytondaisy_pins_cap.png
shirleyzhang867 May 21, 2019
982bad7
Delete ref_pin_cap.png
shirleyzhang867 May 21, 2019
2ff8fd5
Add files via upload
shirleyzhang867 May 21, 2019
a4429b8
Add files via upload
shirleyzhang867 May 21, 2019
37766b5
Add files via upload
shirleyzhang867 May 21, 2019
75ca6fb
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
ee46d91
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
043df11
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
da52f73
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
d54572a
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
a425d99
Update 01-OpenBCI_GUI.md
retiutut May 21, 2019
09502dd
Update 17-Arduino_Focus_Example.md
retiutut May 21, 2019
b210b22
Update 01-OpenBCI_GUI.md
retiutut May 22, 2019
9bf137f
Update 01-OpenBCI_GUI.md
retiutut May 22, 2019
37f1097
Update 17-Arduino_Focus_Example.md
shirleyzhang867 May 22, 2019
b93477b
Update 17-Arduino_Focus_Example.md
shirleyzhang867 May 22, 2019
cd6ecfc
Update 023-Electrode_Cap_Tutorial.md
shirleyzhang867 May 22, 2019
76f88c1
Update headband tutorial html formatting
retiutut May 23, 2019
3e13bc5
Merge pull request #219 from retiutut/master
retiutut May 23, 2019
751e31c
Update 022-Headband_Tutorial.md
retiutut May 23, 2019
d05547c
Remove embedded youtube videos
retiutut May 23, 2019
b170004
Merge pull request #220 from retiutut/master
retiutut May 23, 2019
6902475
Update 022-Headband_Tutorial.md
retiutut May 23, 2019
46c8366
remove embedded video picture link and convert to regular links
retiutut May 23, 2019
74855e6
Merge remote-tracking branch 'upstream/master'
retiutut May 23, 2019
b303918
Merge pull request #221 from retiutut/master
retiutut May 23, 2019
ce70d91
Update 022-Headband_Tutorial.md
shirleyzhang867 May 23, 2019
73253f3
Update 09-Ganglion_Programming_Tutorial.md
shirleyzhang867 May 23, 2019
05a3685
Update 09-Ganglion_Programming_Tutorial.md
shirleyzhang867 May 23, 2019
cf3064c
Update 05-Cyton_Board_Programming_Tutorial.md
shirleyzhang867 May 23, 2019
a789c4a
Update 06-Cyton_Radios_Programming_Tutorial.md
shirleyzhang867 May 23, 2019
0e9cd31
Update 14-MyoWare_Integration.md
shirleyzhang867 May 29, 2019
41484c5
Update 022-Headband_Tutorial.md
shirleyzhang867 Jun 3, 2019
d2c06bc
Update 022-Headband_Tutorial.md
shirleyzhang867 Jun 3, 2019
d77af5e
added link to store
conorrussomanno Jun 3, 2019
292ab02
added link to store
conorrussomanno Jun 3, 2019
2e4841f
added link to store
conorrussomanno Jun 3, 2019
a4bf287
fixed link to store
conorrussomanno Jun 3, 2019
43143e8
fixed link to store again
conorrussomanno Jun 3, 2019
ab986c0
again
conorrussomanno Jun 3, 2019
1988405
fixed link to store
conorrussomanno Jun 3, 2019
308dcfe
fixed link to store
conorrussomanno Jun 3, 2019
e14ac75
Update 022-Headband_Tutorial.md
lucamg Jun 3, 2019
330f83c
Update 022-Headband_Tutorial.md
lucamg Jun 4, 2019
3c1595e
Add files via upload
leanneapichay Jun 4, 2019
4857674
Update_022-Headband_Tutorial
leanneapichay Jun 4, 2019
e11bdda
Update 022-Headband_Tutorial.md
leanneapichay Jun 4, 2019
aaee8f5
Attach/detach spikey electrodes from headband lead
retiutut Jun 4, 2019
eb089bf
update headband tutorial
retiutut Jun 4, 2019
6d61758
update headband tutorial spikey electrodes
retiutut Jun 4, 2019
01ec188
typos in headband tutorial spikey electrodes
retiutut Jun 4, 2019
bf3673d
Update docs to reflect fix for OpenBCI/OpenBCI_GUI#535
retiutut Jun 5, 2019
625ce92
Merge pull request #222 from retiutut/master
retiutut Jun 5, 2019
b2b5541
update library install openbci_gui
retiutut Jun 5, 2019
03ac648
Merge pull request #223 from retiutut/master
retiutut Jun 5, 2019
c2f413f
Comment: Older version of GUI saves to SavedData
retiutut Jun 5, 2019
b4cbf5d
Merge pull request #224 from retiutut/master
retiutut Jun 5, 2019
6e82a38
Update 04-LSL.md
leanneapichay Jun 6, 2019
e9510cd
simplify FTDI instructions
daniellasry Jun 9, 2019
77edc51
Merge pull request #225 from daniellasry/FTDI_simpler
daniellasry Jun 10, 2019
aadbe98
Add images of spikey electrode assembly
leanneapichay Jun 10, 2019
a77d1b1
Update 022-Headband_Tutorial.md
leanneapichay Jun 10, 2019
27e719e
Update 022-Headband_Tutorial.md
leanneapichay Jun 10, 2019
fc51e9f
Update 01-OpenBCI_GUI.md
shirleyzhang867 Jun 10, 2019
d88cf5f
Add files via upload
leanneapichay Jun 11, 2019
e569d55
Update 023-Electrode_Cap_Tutorial.md
leanneapichay Jun 11, 2019
ff33e0d
Update 023-Electrode_Cap_Tutorial.md
leanneapichay Jun 11, 2019
7f6e708
Update 17-Arduino_Focus_Example.md
retiutut Jun 14, 2019
9d54c9d
Update OpenBCI_GUI-FocusArduino.ino
retiutut Jun 14, 2019
3b61abc
Update gui_arduino_uploadArduinoSketchIDE.png
retiutut Jun 14, 2019
cb602f4
Merge pull request #226 from retiutut/master
retiutut Jun 14, 2019
7b77592
Create OpenBCI_GUI-EMGArduino.ino
retiutut Jun 16, 2019
c00b380
Update OpenBCI_GUI-EMGArduino.ino
retiutut Jun 16, 2019
b907d34
Update OpenBCI_GUI-EMGArduino.ino
retiutut Jun 16, 2019
ceaec32
Update OpenBCI_GUI-EMGArduino.ino
retiutut Jun 16, 2019
4e165cc
Merge pull request #227 from retiutut/master
retiutut Jun 17, 2019
a02068c
Update arduino examples
retiutut Jun 17, 2019
8617132
Merge pull request #228 from retiutut/master
retiutut Jun 17, 2019
e755712
Update OpenBCI_GUI-EMGArduino.ino
retiutut Jun 18, 2019
49ed162
Merge pull request #229 from retiutut/master
retiutut Jun 18, 2019
894f906
Create OpenBCI_GUI-AccelArduino.ino
retiutut Jun 18, 2019
662bacd
Update OpenBCI_GUI-AccelArduino.ino
retiutut Jun 19, 2019
6436b67
Update OpenBCI_GUI-AccelArduino.ino
retiutut Jun 19, 2019
d5a3066
Merge pull request #230 from retiutut/master
retiutut Jun 19, 2019
061086e
Add files for EMG tutorial
leanneapichay Jun 25, 2019
ab41dd2
Delete EMG_Cyton_Setup.jpg
leanneapichay Jun 25, 2019
bba9a37
Add files via upload
leanneapichay Jun 25, 2019
4078fcc
Delete EMG_Cyton_Setup.jpg
leanneapichay Jun 25, 2019
ffe8f39
Add files via upload
leanneapichay Jun 25, 2019
f82efa3
Delete EMG_Cyton_Setup.jpg
leanneapichay Jun 25, 2019
cee7e28
Add files via upload
leanneapichay Jun 25, 2019
f38035c
Create 024-EMG-Setup.md
leanneapichay Jun 25, 2019
2d5a46e
Add files via upload
leanneapichay Jun 26, 2019
f6c113f
Add files via upload
leanneapichay Jun 26, 2019
c5315d2
Add files via upload
leanneapichay Jun 26, 2019
d2f21c8
Rename GUI Widget Guide.md to 02_GUI_Widget_Guide.md
leanneapichay Jun 26, 2019
3907fc3
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 26, 2019
0c59999
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 27, 2019
9834f63
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 27, 2019
240e7e7
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 27, 2019
4c1a58f
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 27, 2019
b68b063
Update 02_GUI_Widget_Guide.md
jartuso Jun 27, 2019
c5d11ea
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 27, 2019
fa27573
Update 02_GUI_Widget_Guide.md
jartuso Jun 27, 2019
9fd09d2
Update 02_GUI_Widget_Guide.md
jartuso Jun 27, 2019
e9a653c
Update 02_GUI_Widget_Guide.md
jartuso Jun 27, 2019
6f88bfb
Add files via upload
leanneapichay Jun 28, 2019
af4f2f0
Add files via upload
leanneapichay Jun 28, 2019
be117fb
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 28, 2019
af840f6
Update 02_GUI_Widget_Guide.md
leanneapichay Jun 28, 2019
d046734
Delete 18-GUI_Widget_Tutorials.md
retiutut Jul 1, 2019
553e52d
Update 02_GUI_Widget_Guide.md
shirleyzhang867 Jul 2, 2019
8d8cdc1
Update 022-Headband_Tutorial.md
shirleyzhang867 Jul 8, 2019
c3f25d8
Update 024-EMG-Setup.md
shirleyzhang867 Jul 10, 2019
9974e42
Update 16-Custom_Widgets.md
leanneapichay Jul 11, 2019
21e9c5a
Update 00-Welcome.md
shirleyzhang867 Jul 11, 2019
163e858
Update 01-GeneralFrequentlyAskedQuestions.md
shirleyzhang867 Jul 11, 2019
3dbb608
Update 00-FAQ.md
shirleyzhang867 Jul 11, 2019
c3796a7
Update 00-FAQ.md
shirleyzhang867 Jul 11, 2019
3657c9e
Update 01-GeneralFrequentlyAskedQuestions.md
shirleyzhang867 Jul 12, 2019
22ae731
Update 03-Wifi_Getting_Started_Guide.md
retiutut Jul 15, 2019
8b185b1
Update 03-Wifi_Getting_Started_Guide.md
retiutut Jul 15, 2019
5998110
Add files via upload
leanneapichay Jul 18, 2019
f91439c
Delete Wifi+Ganglion.JPG
leanneapichay Jul 18, 2019
7e8a806
Add files via upload
leanneapichay Jul 18, 2019
170fb39
Updated Wifi/Ganglion image
leanneapichay Jul 18, 2019
503a604
Add files via upload
leanneapichay Jul 18, 2019
8ff17eb
Update 01-OpenBCI_GUI.md
leanneapichay Jul 18, 2019
02603a1
Update 03-Wifi_Getting_Started_Guide.md
leanneapichay Jul 18, 2019
0c3b539
Add info for processing on linux Fixes #157
retiutut Jul 18, 2019
72d2c9d
Merge pull request #232 from retiutut/master
retiutut Jul 18, 2019
a0a5b5f
formatting openbci_gui
retiutut Jul 18, 2019
1afa571
Merge pull request #233 from retiutut/master
retiutut Jul 18, 2019
fea83ec
Update 01-OpenBCI_GUI.md
retiutut Jul 18, 2019
d598138
Update 01-OpenBCI_GUI.md
retiutut Jul 18, 2019
90e1cd1
Update 01-OpenBCI_GUI.md
retiutut Jul 18, 2019
509131d
Update 01-OpenBCI_GUI.md
retiutut Jul 18, 2019
9243ed7
Update 01-OpenBCI_Hardware.md
leanneapichay Jul 22, 2019
21e7c1b
Update 01-OpenBCI_Hardware.md
leanneapichay Jul 22, 2019
8862359
Update 01-Cyton_Getting Started_Guide.md
shirleyzhang867 Jul 26, 2019
a775c41
add focus+motor arduino example
retiutut Jul 28, 2019
8d29aeb
Update OpenBCI_GUI-FocusArduino.ino
retiutut Jul 28, 2019
2161363
Update OpenBCI_GUI-FocusArduinoWithMotor.ino
retiutut Jul 28, 2019
088fc6d
Merge pull request #234 from retiutut/master
retiutut Jul 28, 2019
281c45b
Create OpenBCI_GUI-FocusFan.ino
retiutut Jul 29, 2019
92274ce
Update OpenBCI_GUI-FocusFan.ino
retiutut Jul 29, 2019
2ece9d6
update header for arduino/focus ino files w/ motor involved
retiutut Jul 29, 2019
0bd7503
Update OpenBCI_GUI-FocusArduinoWithMotor.ino
retiutut Jul 29, 2019
5443444
Merge pull request #235 from retiutut/master
retiutut Jul 29, 2019
bf9116a
Update 00-Welcome.md
shirleyzhang867 Jul 30, 2019
66f22a0
Update 00-FAQ.md
shirleyzhang867 Jul 30, 2019
8e3573d
Update 01-GeneralFrequentlyAskedQuestions.md
shirleyzhang867 Jul 30, 2019
4ca5778
Update 02-HowProductsGoTogether.md
shirleyzhang867 Aug 5, 2019
525dc1e
Update 03-HardwareFAQ.md
shirleyzhang867 Aug 5, 2019
2229a6a
Update README.md
retiutut Aug 8, 2019
f57b0ad
Update README.md
retiutut Aug 8, 2019
c1c8c56
Update 04-PaymentFAQ.md
shirleyzhang867 Aug 13, 2019
5e2c815
Update 05-ShippingFAQ.md
shirleyzhang867 Aug 13, 2019
99b5dc5
Add files via upload
shirleyzhang867 Sep 3, 2019
7e2b5b7
Update 02_GUI_Widget_Guide.md
shirleyzhang867 Sep 3, 2019
2214f06
Update 01-Ultracortex-Mark-IV.md
shirleyzhang867 Sep 3, 2019
6f69728
Add files via upload
shirleyzhang867 Sep 4, 2019
dda4840
Update 02_GUI_Widget_Guide.md
shirleyzhang867 Sep 4, 2019
eeb1f47
Update README.md
retiutut Sep 9, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
.DS_store
.idea
Binary file added .vscode/ipch/13fa5e800ec9bcf3/mmap_address.bin
Binary file not shown.
Binary file added .vscode/ipch/b2da3bb9852b827d/mmap_address.bin
Binary file not shown.
Binary file added .vscode/ipch/cc8cca2f171f8059/mmap_address.bin
Binary file not shown.
65 changes: 0 additions & 65 deletions 01-8bitstart.md

This file was deleted.

8 changes: 0 additions & 8 deletions 02-applyingelectrodes.md

This file was deleted.

13 changes: 13 additions & 0 deletions 3rd Party Software/00-3rdPartySoftware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 3rd Party Software

Welcome to the **3rd Party Software** section! Here you will find guides to help you better undertand external software tools that the OpenBCI platform easily interfaces with. There are a number of great signal processing and data analysis platforms out there that greatly extend the powers and capabilities of OpenBCI hardware and software. We hope to interface OpenBCI with all of them!

If you are a developer of a 3rd Party Software platform that would work well with OpenBCI hardware, please [don't hesitate to reach out](mailto:[email protected]). If most cases, we'll help provide technical assistance in the creation of drivers and data bridges between platforms.

As of right now, we have tutorials for connecting OpenBCI to the following software tools:

* [MATLAB](http://docs.openbci.com/3rd%20Party%20Software/01-Matlab)
* [Neuromore](http://docs.openbci.com/3rd%20Party%20Software/02-Neuromore)
* [OpenViBE](http://docs.openbci.com/3rd%20Party%20Software/03-OpenViBE)
* [LabStreamingLayer](http://docs.openbci.com/3rd%20Party%20Software/04-LSL)
* [BrainBay](http://www.shifz.org/brainbay/)
193 changes: 193 additions & 0 deletions 3rd Party Software/01-Matlab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
# MATLAB

[MATLAB](https://en.wikipedia.org/wiki/MATLAB) is a powerful numerical computing language and environment that is widely used in a wide variety of academic, research, and industry applications.

A few Matlab toolboxes have been created specifically for working with EEG and BCI. [EEGLAB](http://sccn.ucsd.edu/eeglab/), [BCILAB](http://sccn.ucsd.edu/wiki/BCILAB), [ERPLAB](http://erpinfo.org/erplab), and [FieldTrip](http://www.fieldtriptoolbox.org/) are a few toolboxes that have helped OpenBCI users work in MATLAB.

This tutorial will walk through setting up your Matlab environment for use with OpenBCI hardware, as well as some basic uses and functionalities that Matlab offers for working with brain-computer interfaces.

## Installation
Go to the [MathWorks website](http://www.mathworks.com/help/install/ug/install-mathworks-software.html) for MATLAB installation instructions.

*Please note that MATLAB is commercial software. Licenses must either be purchased or acquired through academic or professional institutions.*

Several useful MATLAB toolkits (EEGLAB, BCILAB, FieldTrip, etc) have been created for collecting and analyzing EEG data, so this tutorial will focus on using MATLAB through these toolkits.

## Loading OpenBCI Data

There are two main ways to get your OpenBCI data from the boards into MATLAB for analysis. The first is to import a CSV file from a recorded session, and the second is to use the Lab Streaming Layer (LSL) to stream the board data into MATLAB. We will go over both methods.


### Method 1: Import CSV file from the OpenBCI GUI

To get started, use your OpenBCI board (like the Cyton or Ganglion board) and the OpenBCI GUI to stream some data. Whenever you stream data to the GUI, it's also automatically saved in .csv format on your computer. GUI data and recordings are saved to */Documents/OpenBCI_GUI/Settings/* on all operating systems.

The OpenBCI Processing GUI saves data in text (txt) or comma separated value (csv) files. Import the CSV file into MATLAB as a matrix by using the "Import Data" wizard:

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/images/matlab_tutorial/matlab_import_data.png?raw=true" width="80%">

Select a saved OpenBCI data file. Once the data import screen is open, select the "Numeric Matrix" import option. Deselect all of the header rows. Also deselect the final column, the timestamp values, since the import wizard can only parse numeric values. Feel free to give your matrix a conveneint name, like "eeg_data":

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/images/matlab_tutorial/matlab_import_screen.png?raw=true" width="80%">

Click "Import Selection". Your matrix should now appear as an object in your workspace! Keep reading to learn more about processing your data with MATLAB toolboxes.

### Method 2: Stream OpenBCI data via LSL

#### Stream the OpenBCI Data from the OpenBCI GUI

You can also stream live OpenBCI data into MATLAB using the Lab Streaming Layer either from the OpenBCI GUI or from Python. We will go over how to import data using the OpenBCI GUI, for the python LSL tutorial please go to [OpenBCI Python]().

Open the OpenBCI GUI and "Start System" with your setup as you would do. On the widget dropdown menu select "Networking". At the right upper corner of the Networking widget there is another dropdown menu, select LSL.

![](/assets/Matlab/Networking_LSL1.gif?raw=true)

Now you can select the OpenBCI Data you want to send, the Name of the LSL stream, the data advertised by the LSL and the number of channels you will be sending. Once you select your parameters make sure to turn on your LSL stream at the bottom of the widget. Then click start and you are ready to go.

#### Import the LSL stream into MATLAB

There are two ways to import an LSL using the liblsl-Matlab library to stream into MATLAB or using the BCILAB toolbox.

##### liblsl-Matlab
Follow the instalation instructions on the [liblsb-Matlab GitHub Repo](https://github.com/labstreaminglayer/liblsl-Matlab). Once you successfully added the correct directories and files you can use the following script to stream the OpenBCI data from your LSL stream.

```Matlab
%% instantiate the library
disp('Loading the library...');
lib = lsl_loadlib();

% resolve a stream...
disp('Resolving an EEG stream...');
result = {};
while isempty(result)
result = lsl_resolve_byprop(lib,'type','EEG'); end

% create a new inlet
disp('Opening an inlet...');
inlet = lsl_inlet(result{1});

disp('Now receiving data...');
while true
% get data from the inlet
[vec,ts] = inlet.pull_sample();
% and display it
fprintf('%.2f\t',vec);
fprintf('%.5f\n',ts);
end
```
##### BCILAB

From the [BCILAB wiki](http://sccn.ucsd.edu/wiki/BCILAB): "BCILAB is a MATLAB toolbox and EEGLAB plugin for the design, prototyping, testing, experimentation with, and evaluation of Brain-Computer Interfaces (BCIs), and other systems in the same computational framework."

BCILAB provides a GUI from which you can control the plugin, but batch scripting can be used for those well-versed in MATLAB programming.

###### Installation
To install BCILAB, download the [development version of BCILAB](https://github.com/sccn/BCILAB/tree/devel) and extract it to any directory that is not your EEGLAB folder. Note: I found that the non-developer version (found [here](https://sccn.ucsd.edu/wiki/BCILAB#Quick_Start_Guide)) had bugs that were fixed by using the BCILAB-devel version instead.

Open up MATLAB, and set your current MATLAB directory to the unzipped BCILAB file:
```
>> cd your/path/to/bcilab;
```
Once you're in the file, just type the command:
```
>> bcilab
```
###### Import LSL
To start running BCILAB. After some console output, you should see the text "Welcome to the BCILAB toolbox!" and then a new GUI with the BCILAB menu should appear.

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/Matlab/bcilab_menu.png?raw=true" width="80%">

Once a stream has been started on your computer, open BCILAB within MATLAB (>> cd your/path/to/bcilab; bcilab) and from the menu, select **Online Analysis > Read input from... > Lab streaming layer...**

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/Matlab/bcilab_lsl.png?raw=true" width="80%">


## Analyzing OpenBCI data

There are many ways in which you can use MATLAB to analyze the data from the OpenBCI board, we will go over a few common ones to get started.

### EEGLAB

From the EEGLAB wiki: "EEGLAB is an interactive Matlab toolbox for processing continuous and event-related EEG, MEG and other electrophysiological data using independent component analysis (ICA), time/frequency analysis, and other methods including artifact rejection."

#### Setup
Go to the [EEGLAB downloads page](http://sccn.ucsd.edu/eeglab/downloadtoolbox.html) and follow the instructions for your operating system.

Download the zip file of the most current version of EEGLAB and extract it into a directory on your system. Then, make this toolbox accessible from Matlab by adding a path to this directory (the steps to do this vary by OS - see the "EEGLAB downloads page" link above).

To check if EEGLAB is correctly set up, go to the Matlab prompt and type:
> \>\> eeglab

If the toolkit is not yet correctly implemented, the console should output:
"Undefined function or variable 'eeglab'."

If it is set up correctly, a pop-up window should appear with the EEGLAB GUI.

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/Matlab/eeglab_gui.jpg?raw=true" width="70%">

#### Preparing OpenBCI Datasets for EEGLAB Use

OpenBCI saves data in the opposite orientation from what EEGLAB needs. So, after importing your OpenBCI data to MATLAB as described above, perform a simple matrix transposition:
```
eeg_data = eeg_data'
```
Your data matrix is now ready to use with EEGLAB.

#### Using EEGLAB

If EEGLAB isn't already running, enter "eeglab" into the Matlab command line to start the program. Import your matrix into EEGLAB using the EEGLAB GUI: File -> Import Data -> Using EEGLAB functions and plugins -> From ASCII/float file or Matlab array

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/Matlab/eeglab_dataimport.png?raw=true" width="80%">

In the pop-up window that appears, enter information about the data set. Select "Matlab variable", and enter the name of the variable where your matrix is stored. Enter the Data Sampling rate (it should be commented in at the top of the txt file - usually 250 Hz by default in the OpenBCI GUI). The other fields can be left at default, and EEGLAB will automatically fill in the information from the data set.

Channel locations are useful for plotting EEG scalp maps in 2-D or 3-D format. OpenBCI uses the standard 10-20 format for the 8 and 16 channel models, which can be found within these sfp files: [8 channel](../assets/Matlab/electrode_positions_8channel.sfp) and [16 channel](/assets/Matlab/electrode_positions_16channel.sfp). You can then import channel data by click "Browse" next to "Channel location file or info" and locating the OpenBCI sfp file you downloaded.

The data is now imported into EEGLAB and ready to use!

#### Plotting Data in EEGLAB

To double check your data is imported correctly, and to get familiar with EEGLAB's interface, try plotting your data. Select Plot -> Channel data (scroll) from the EEGLAB pop-up window.

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/images/matlab_tutorial/EEGLAB_plot.png?raw=true" width="50%">

Your data should appear in a window like the image below:

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/images/matlab_tutorial/EEGLAB_plot_image.png?raw=true" width="80%">

Check out the links in the Further Reading section to learn more about processing data with EEGLAB!

#### Streaming into EEGLAB
From what we can tell, EEGLAB seems to work primarily with datasets and recorded data.

### ERPLAB

From the [ERPLAB homepage](http://erpinfo.org/erplab): "ERPLAB Toolbox is a free, open-source Matlab package for analyzing ERP data. It is tightly integrated with EEGLAB Toolbox, extending EEGLAB’s capabilities to provide robust, industrial-strength tools for ERP processing, visualization, and analysis. A graphical user interface makes it easy for beginners to learn, and Matlab scripting provides enormous power for intermediate and advanced users."

#### Setup
[Download](https://github.com/lucklab/erplab/releases) and extract the latest ERPLAB release to the "plugins" folder of your EEGLAB directory (if you have an old release of EEGLAB, you will also have to enter the path to this directory in MATLAB by *File > Set Path*)

Next time your launch EEGLAB, the ERPLAB menu should appear in the EEGLAB GUI:

<img src="https://github.com/OpenBCI/Docs/blob/master/assets/Matlab/erplab.png?raw=true" width="70%">

#### Analyzing EEG Data Sets
To use ERPLAB for analyzing EEG datasets, import your data set as seen in the [Using EEGLAB Section](#Using EEGLAB). After the EEG data is imported into EEGLAB, you can then use ERPLAB functions to analyze your data. [Read more on using ERPLAB on their website](http://erpinfo.org/erplab/erplab-documentation/manual_4/)

### FieldTrip
From the [FieldTrip hopmepage](http://www.fieldtriptoolbox.org/development/realtime): "The toolbox offers advanced analysis methods of MEG, EEG, and invasive electrophysiological data, such as time-frequency analysis, source reconstruction using dipoles, distributed sources and beamformers and non-parametric statistical testing."

#### Setup
[Download](http://www.fieldtriptoolbox.org/download) the latest version of FieldTrip from the download page (you will have to provide an email address and descriptiption of research).

Add the FieldTrip directory to your MATLAB path and check out FieldTrip's [getting started guide](http://www.fieldtriptoolbox.org/getting_started).

## Further Reading

[EEGLAB Wiki](http://sccn.ucsd.edu/wiki/EEGLAB)

[BCILAB Wiki](http://sccn.ucsd.edu/wiki/BCILAB)

[ERPLAB Homepage](http://erpinfo.org/erplab)

[FieldTrip Homepage](http://www.fieldtriptoolbox.org/)
Loading