diff --git a/tutorials/01-GettingStarted.md b/tutorials/01-GettingStarted.md index 072fd9a..f62b47d 100755 --- a/tutorials/01-GettingStarted.md +++ b/tutorials/01-GettingStarted.md @@ -3,7 +3,7 @@ ## I. What You Need -![OpenBCI Contents](../assets/images/Contents8bit.png) +![OpenBCI Contents](../assets/images/Contents8-bit.png) 1. OpenBCI board 2. OpenBCI Dongle @@ -13,9 +13,9 @@ ### 1. Your Board -![OpenBCI 8bit Top](../assets/images/8.jpg) +![OpenBCI 8-bit Top](../assets/images/8.jpg) -This tutorial can be followed if you are working with any OpenBCI board (8bit, 32bit, or 32bit with Daisy). I'll be working with the 8bit board. +This tutorial can be followed if you are working with any OpenBCI board (8-bit, 32-bit, or 32-bit with Daisy). I'll be working with the 8-bit board. ### 2. Your OpenBCI USB Dongle @@ -40,11 +40,11 @@ If you plan to work with your own electrodes, the touch-proof adapter may come i ![Battery Connection](../assets/images/batteryConnection.png) -Both the 8bit board and the 32 bit boards have specific input voltage ranges. These input voltage ranges can be found on the back-side of the board, next to the power supply. **BE VERY CAREFUL** to not supply your board with voltages above these ranges, or else you will damage your board's power supply. For this reason, we recommend that you always use the battery pack that came with your OpenBCI kit. +Both the 8-bit board and the 32-bit boards have specific input voltage ranges. These input voltage ranges can be found on the back-side of the board, next to the power supply. **BE VERY CAREFUL** to not supply your board with voltages above these ranges, or else you will damage your board's power supply. For this reason, we recommend that you always use the battery pack that came with your OpenBCI kit. ### 5. (x4) Plastic Feet -![Plastic Feet](../assets/images/8bitboard_wPlasticFeet.png) +![Plastic Feet](../assets/images/8-bitboard_wPlasticFeet.png) Your OpenBCI kit comes with 4 plastic feet that can be snapped into the holes of your board to provide extra stability while working. @@ -79,17 +79,17 @@ Plug this in (facing upwards!) and you should see a blue LED light up. **Note:** make sure your USB Dongle is switched to GPIO 6 and not RESET. The switch should be set closer to your computer as seen in the picture to the right. -### 3. Plug in your 6V AA batter pack (with batteries) +### 3. Plug in your 6V AA battery pack (with batteries) ![Battery Connection](../assets/images/batteryConnection.png) -Both the 8bit board and the 32 bit boards have specific input voltage ranges. These input voltage ranges can be found on the back-side of the board, next to the power supply. **BE VERY CAREFUL** to not supply your board with voltages above these ranges, or else you will damage your board's power supply. For this reason, we recommend that you always use the battery pack that came with your OpenBCI kit. There's a good reason we put this notice in here twice! +Both the 8-bit board and the 32-bit boards have specific input voltage ranges. These input voltage ranges can be found on the back-side of the board, next to the power supply. **BE VERY CAREFUL** to not supply your board with voltages above these ranges, or else you will damage your board's power supply. For this reason, we recommend that you always use the battery pack that came with your OpenBCI kit. There's a good reason we put this notice in here twice! ### 4. Switch your OpenBCI board to PC (not OFF or BLE) ![Power Up Board](../assets/images/PowerUpBoard.JPG) -Make sure to move the small switch on the right side of the board from "OFF" to "PC". As soon as you do, you should see a blue LED blink 3 times (if you’re using the 8bit board; the 32bit version doesn’t blink). If you don't, press the reset button just to the left of the switch. If the LED still does not blink 3 times, make sure you have full battery. If you're sure your batteries are fully charged, consult the [hardware section](http://openbci.com/index.php/forum#/categories/hardware) of our Forum. +Make sure to move the small switch on the right side of the board from "OFF" to "PC". As soon as you do, you should see a blue LED blink 3 times (if you’re using the 8-bit board; the 32-bit version doesn’t blink). If you don't, press the reset button just to the left of the switch. If the LED still does not blink 3 times, make sure you have full battery. If you're sure your batteries are fully charged, consult the [hardware section](http://openbci.com/index.php/forum#/categories/hardware) of our Forum. **Note:** it's important to plug in your Dongle before you turn on your OpenBCI board. Sometimes, if the data stream seems broken, you may need to unplug your USB Dongle and power down your OpenBCI board. Make sure to plug your USB Dongle in first, then power up your board afterwards. @@ -148,7 +148,7 @@ After creating a Playback file, it can be replayed by running the OpenBCI GUI wi ![Channel Count](../assets/images/channelCount.png) -The CHANNEL COUNT setting is defaulted to 8. If you are working with an OpenBCI Daisy Module and 32bit board (16-channel) system, be sure to click the 16 CHANNELS button before starting your system. +The CHANNEL COUNT setting is defaulted to 8. If you are working with an OpenBCI Daisy Module and 32-bit board (16-channel) system, be sure to click the 16 CHANNELS button before starting your system. ### 6. Select your SD setting @@ -203,7 +203,7 @@ In this quick demo, we'll be showing you how to set up 3 channels of electrophys For more information on these three signals, refer to wikipedia: * [Heart Acitivity - Electrocardiography (EKG or ECG)](http://en.wikipedia.org/wiki/Electrocardiography) - * [Muscle Acitivity - Electromyiography (EMG)](http://en.wikipedia.org/wiki/Electromyography) + * [Muscle Acitivity - Electromyography (EMG)](http://en.wikipedia.org/wiki/Electromyography) * [Brain Activity - Electroencephalography (EEG)](http://en.wikipedia.org/wiki/Electroencephalography) @@ -213,7 +213,7 @@ For more information on these three signals, refer to wikipedia: #### Necessary: -* Ten20 conductive elctrode paste (or other conductive electrode gel) +* Ten20 conductive electrode paste (or other conductive electrode gel) * Your OpenBCI board, USB Dongle, battery pack, and x4 AA batteries * x6 gold cup electrodes (from your OpenBCI electrode starter kit or other). If you are using an OpenBCI electrode starter kit, use the following electrodes so as to be consistent with the GUI's color-coding protocol: 1. Black @@ -260,7 +260,7 @@ b) Now apply this electrode to either one of your earlobes (either A1 or A2 as s ![Fp2](../assets/images/Fp2.JPG) -c) Follow the same procedure for the purple electrode and apply it to your forhead 1 inch above your left eyebrow (as if you were looking at yourself) and an inch to the left of your forheads centerline. +c) Follow the same procedure for the purple electrode and apply it to your forehead 1 inch above your left eyebrow (as if you were looking at yourself) and an inch to the left of your forehead's centerline. ![1020](../assets/images/1020.jpg) @@ -276,7 +276,7 @@ d) Now follow the same procedure for the red electrode and place it on the back e) Now follow the same procedure as step 2 above to apply the black electrode to your other earlobe (either A1 or A2 from the 10-20 system). The black electrode is connected to the BIAS pin, which is used for noise cancelling. It is similar to a GROUND pin, which establishes a common ground between the OpenBCI board and your body, but it has some extra destructive interference noise cancelling techniques built in! -You're now done connecting electrodes to our noggin! I like to use a cheap cotton hairband to add extra stability to all of the electrodes connected to my head, by placing it gently on top of all of the electrodes. +You're now done connecting electrodes to your noggin! I like to use a cheap cotton hairband to add extra stability to all of the electrodes connected to my head, by placing it gently on top of all of the electrodes. ![forearm](../assets/images/forearm.JPG) @@ -325,13 +325,13 @@ So there's a good chance your current setup isn't showing clean data like the sc Get rid of 60 Hz (or 50 Hz if you're in Europe or any country that operates on a 50 Hz power grid). The OpenBCI has a built-in notch filter, that does a decent job at eliminating 60 Hz noise. You can adjust the notch filter to 50 Hz by clicking the "Notch 60 Hz" button. Additionally, if your OpenBCI board is on a table with any power chords or devices that are plugged into a wall outlet, move it to a location away from any electronic devices plugged into the wall. This will drastically reduce the alternating current (AC) influence on your signal. -![Stablize Your Cables w/ Tape](../assets/images/secureCables.JPG) +![Stabilize Your Cables w/ Tape](../assets/images/secureCables.JPG) -#### Stablize your electrodes +#### Stabilize your electrodes Make sure your electrode cables are steady. If you shake the electrodes that are dangling from your head/body, you'll notice that it severely affects the signals. This movement noise is something that could be greatly improved with "active" electrodes, but when using the "passive" electrodes that come with the OpenBCI electrode starter kit, you have to be very careful to remain steady while using the system, in order to produce the best signal. Sometimes, I'll bind all of the electrode cables together with a piece of electric tape to secure them and minimize cable movement. If you do this, don't worry about including the blue and green electrodes in the bundle, since movement noise doesn't affect the EMG/EKG signal as significantly. -#### Ensure that your electrodes are securely connceted +#### Ensure that your electrodes are securely connected Ensure that your electrodes are connected securely (especially your reference)! diff --git a/tutorials/02-Upload_Code_to_OpenBCI_Board.md b/tutorials/02-Upload_Code_to_OpenBCI_Board.md index 06ba4ec..4f6760e 100644 --- a/tutorials/02-Upload_Code_to_OpenBCI_Board.md +++ b/tutorials/02-Upload_Code_to_OpenBCI_Board.md @@ -3,51 +3,6 @@ ##Overview The OpenBCI 8bit and 32bit boards have powerful microcontrollers on them which ship with the latest OpenBCI firmware to interface with the on-board ADS1299, Accelerometer, and SD card. This totorial explains how to program the firmware using the OpenBCI Dongle and you PC. If we come out with a firmware upgrade, or if your or someone comes up with a custom program, you should use the following method for your particular board. -##8bit Upload How-To -**You will need:** - -* Computer running Arduino IDE -* OpenBCI Dongle connected to USB port -* OpenBCI 8bit Board with battery power - -![OpenBCI Dongle](../assets/images/dongleConnection.png) - -Make sure that the slide switch on the OpenBCI Dongle is switched to the GPIO6 selection. That way the DTR reset signal will get passed over-air to the ATmega328. If it's on the other side, it will try to program the Dongle-mounted RFduino! -You can find the latest firmware and libraries on our github repository - -https://github.com/OpenBCI/OpenBCI_8bit - -You will need to install these files from our repository into your Documents/arduino/libraries folder - -* SdFat - * Supports writing raw data to on-board SD card -* OpenBCI_8 - * The OpenBCI 8bit Library - - -![ArduinoIDE](../assets/images/Arduino_IDE.png) - -Move the file OpenBCI_8bit_SD.ino into your Documents/arduino folder, and start up the Arduino IDE. you should then see the sketch in your Sketch folder. - -![selectBoardUno](../assets/images/BoardSelect.png) - -Select Arduino UNO from the Board drop-down menu. - -![selectSerialPort](../assets/images/SerialPortSelect.png) - -Select the correct serial port for your OpenBCI Dongle. - -* On Macs, this will be named **/dev/tty.usbserial-DN00nnnn** where the nnnn is a combination of numbers and letters specific to your openBCI Dongle. - -* On Windows, the serial port will be listed as a COM port. - -* On Linux, it will be different. - -![Upload](../assets/images/Upload.png) - -When you are happy with the code, simply press upload to program the OpenBCI 8bit target. That's it! You will see some blinky lights on the Dongle, and after a short while, the Arduino IDE will tell you that it's done. - - ##32bit Upload How-To **You will need:** @@ -62,7 +17,9 @@ When you are happy with the code, simply press upload to program the OpenBCI 8bi First, install the version 1.6.5 of Arduino IDE which can be found here: https://www.arduino.cc/en/Main/OldSoftwareReleases#previous - + +***Note***: To upload code to the OpenBCI board, you need 1.6.5, while you need 1.5.8 to upload code to the dongle. If you have already installed 1.5.8, you may see an error message while installing 1.6.5 saying that you need to uninstall 1.5.8. Instead of doing that, simply move the existing "Arduino" program folder (which should be 1.5.8) in your Program Files to another folder (such as "Documents"). Go to your program manager (called "Change or Remove Program" in Windows, press Uninstall Arduino 1.6.5, and confirm if told that there was an error in uninstalling 1.6.5. Then, install 1.6.5. Rename the new "Arduino" program folder (which should now be 1.6.5) to "Arduino 1.6.5", and rename the Arduino folder that you moved to the name "Arduino 1.5.8". Move this folder back to your Program Files where "Arduino 1.6.5" is located, allowing you to keep both versions. + You can find the latest OpenBCI firmware and libraries on our github repository. https://github.com/OpenBCI/OpenBCI_32bit @@ -116,6 +73,50 @@ When you are happy with the code, you will have to put the 32bit board into boot Now you should see the blue LED on the 32bit board blinking pleasantly. Press the upload button on the Arduino IDE. That's it! You will see some blinky lights on the Dongle, and after a short while, the Arduino IDE will tell you that it's done. Happy Hacking! +##8bit Upload How-To +**You will need:** + +* Computer running Arduino IDE +* OpenBCI Dongle connected to USB port +* OpenBCI 8bit Board with battery power + +![OpenBCI Dongle](../assets/images/dongleConnection.png) + +Make sure that the slide switch on the OpenBCI Dongle is switched to the GPIO6 selection. That way the DTR reset signal will get passed over-air to the ATmega328. If it's on the other side, it will try to program the Dongle-mounted RFduino! +You can find the latest firmware and libraries on our github repository + +https://github.com/OpenBCI/OpenBCI_8bit + +You will need to install these files from our repository into your Documents/arduino/libraries folder + +* SdFat + * Supports writing raw data to on-board SD card +* OpenBCI_8 + * The OpenBCI 8bit Library + + +![ArduinoIDE](../assets/images/Arduino_IDE.png) + +Move the file OpenBCI_8bit_SD.ino into your Documents/arduino folder, and start up the Arduino IDE. you should then see the sketch in your Sketch folder. + +![selectBoardUno](../assets/images/BoardSelect.png) + +Select Arduino UNO from the Board drop-down menu. + +![selectSerialPort](../assets/images/SerialPortSelect.png) + +Select the correct serial port for your OpenBCI Dongle. + +* On Macs, this will be named **/dev/tty.usbserial-DN00nnnn** where the nnnn is a combination of numbers and letters specific to your openBCI Dongle. + +* On Windows, the serial port will be listed as a COM port. + +* On Linux, it will be different. + +![Upload](../assets/images/Upload.png) + +When you are happy with the code, simply press upload to program the OpenBCI 8bit target. That's it! You will see some blinky lights on the Dongle, and after a short while, the Arduino IDE will tell you that it's done. + ## Troubleshooting If the upload fails with `No Target Found`: diff --git a/tutorials/03-Upload_Code_to_OpenBCI_Dongle.md b/tutorials/03-Upload_Code_to_OpenBCI_Dongle.md index 78de64d..cc6adb4 100644 --- a/tutorials/03-Upload_Code_to_OpenBCI_Dongle.md +++ b/tutorials/03-Upload_Code_to_OpenBCI_Dongle.md @@ -1,12 +1,12 @@ #Upload Code to OpenBCI Radios ##Overview -The OpenBCI 8bit and 32bit Boards come with a USB dongle that allows for communication between the Board and your computer. There is a BLE radio module (actually an [RFduino 22301](http://www.rfduino.com/product/rfd22301-rfduino-ble-smt/index.html)) on the Dongle and Board that make the communication happen. Here's some terms that are important to note: +The OpenBCI 8-bit and 32-bit Boards come with a USB dongle that allows for communication between the Board and your computer. There is a BLE radio module (actually an [RFduino 22301](http://www.rfduino.com/product/rfd22301-rfduino-ble-smt/index.html)) on the Dongle and Board that make the communication happen. Here's some terms that are important to note: * The radio module on the Dongle is called the **HOST** -* The radio module on the Board (8bit or 32bit) is called the **DEVICE** +* The radio module on the Board (8-bit or 32-bit) is called the **DEVICE** * Host-Device pairs can be programmed to transmit on up to **25** discreet channels -* There are *important* differences in the firmware for 8bit and 32bit systems +* There are *important* differences in the firmware for 8-bit and 32-bit systems This page covers how the radio link works, and how to upload new firmware to the Dongle radio and the Board radio. ##Setting up your system to program OpenBCI Dongle @@ -20,6 +20,8 @@ This page covers how the radio link works, and how to upload new firmware to the Download and install the Arduino BETA IDE. This is the one that works with the custom RFduino libraries that we install in the next step. +***Note***: To upload code to the OpenBCI board, you need 1.6.5, while you need 1.5.8 to upload code to the dongle. If you have already installed 1.6.5, you may see an error message while installing 1.5.8 saying that you need to uninstall 1.6.5. Instead of doing that, simply move the existing "Arduino" program folder (which should be 1.6.5) in your Program Files to another folder (such as "Documents"). Go to your program manager (called "Change or Remove Program" in Windows, press Uninstall Arduino 1.5.8, and confirm if told that there was an error in uninstalling 1.5.8. Then, install 1.5.8. Rename the new "Arduino" program folder (which should now be 1.5.8) to "Arduino 1.5.8", and rename the Arduino folder that you moved to the name "Arduino 1.6.5". Move this folder back to your Program Files where "Arduino 1.5.8" is located, allowing you to keep both versions. + Download the [OpenBCI_Radios](https://github.com/OpenBCI/OpenBCI_Radios) repo from our github, and place it in the proper location depending upon your OS. @@ -51,7 +53,7 @@ If you want to modify the firmware that the OpenBCI Dongle came with, or roll yo } -Also, make sure that you use the code that is specific to your board. There are important differences between the way the 8bit and 32bit code functions! Both the 8bit Host and 32bit Host code are downloaded with the RFduino libraries above. +Also, make sure that you use the code that is specific to your board. There are important differences between the way the 8-bit and 32-bit code functions! Both the 8-bit Host and 32-bit Host code are downloaded with the RFduino libraries above. #Uploading Device Firmware to OpenBCI Boards @@ -59,7 +61,7 @@ Also, make sure that you use the code that is specific to your board. There are ##Overview In order to upload code to the Board RFduino, you need to have a Serial connection to the computer. This is traditionally done with a FTDI cable breakout (SparkFun and Adafruit sell several). If you have an FTDI cable or breadout handy, make sure that it is a 3V device! **Using a 5V FTDI device could damage the RFduino on-board OpenBCI!** It is also possible to upload code to the Board mounted RFduino using the OpenBCI Dongle. This page will go over a few ways of uploading firmware to the OpenBCI Device radios. -Again, there is a small difference between the 8bit and 32bit boards, explained below. +Again, there is a small difference between the 8-bit and 32-bit boards, explained below. ##Program Device Radio with OpenBCI Dongle @@ -82,13 +84,13 @@ While you're at the store, might as well pick up some jumper wires and a breadbo * GPIO6 --> 0.1uF Cap --> RF RST * GND --> GND -![8bitDeviceConnection](../assets/images/8bitDeviceConnection.jpg) +![32-bitDeviceConnection](../assets/images/32-bitDeviceConnection.jpg) -On The **8bit Board**, the pins you need to connect to are accessed from the TOP of the board. Insert the jumpers into the holes in the correct position, and press them tightly agains the sides of the holes to make a strong connection. Now, you can upload Device code to the RFduino on the OpenBCI 8bit Board! +On the **32-bit Board** the pins you need to connect to are accessed from the BOTTOM of the board. Connect the jumper wires to the pads as shown and press tightly while uploading to the Device. -![32bitDeviceConnection](../assets/images/32bitDeviceConnection.jpg) +![8-bitDeviceConnection](../assets/images/8-bitDeviceConnection.jpg) -On the **32bit Board** the pins you need to connect to are accessed from the BOTTOM of the board. Connect the jumper wires to the pads as shown and press tightly while uploading to the Device. +On The **8-bit Board**, the pins you need to connect to are accessed from the TOP of the board. Insert the jumpers into the holes in the correct position, and press them tightly agains the sides of the holes to make a strong connection. Now, you can upload Device code to the RFduino on the OpenBCI 8-bit Board! ##Program Device Radio with Other FTDI Boards diff --git a/tutorials/06-Digital_Output_8bit_Example.md b/tutorials/06-Digital_Output_8bit_Example.md index 49bc7a9..4516b67 100644 --- a/tutorials/06-Digital_Output_8bit_Example.md +++ b/tutorials/06-Digital_Output_8bit_Example.md @@ -1,7 +1,7 @@ #Digital Ouput on OpenBCI 8bit Board Sometimes, when studying EEG or other biopotential signals, you will want to generate a stimulus during a recording or live session, and it may be important that the stimulus occurs at a specific timed frequency. We've had some experiments using visual stimulus to control a small [hex robot](http://eeghacker.blogspot.com/2014/06/controlling-hex-bug-with-my-brain-waves.html). and some other work with [visual entrainment](http://eeghacker.blogspot.com/2014/05/visual-entrainment-blinking-screen.html). One issue that we ran into when generating a visual stimulus on the PC was that the frequency of the visual stimuli is not always as accurate as we would like. This tutorial will go over how to flash LEDs from the OpenBCI 8bit board itself, and get really accurate frequency generation. Please read this entire page before jaunting off into hardware hacking. -##Flashing Two LEDs at Differnt Frequencies +##Flashing Two LEDs at Different Frequencies The OpenBCI 8bit Board comes with an ATmega32 with Arduino UNO bootloader. It programs with the Arduino IDE [download here](http://arduino.cc/en/Main/Software). The code that is running on your 8bit board is located [here](https://github.com/OpenBCI/OpenBCI_8bit). In this example, we will lash up 2 LEDs with series resistors on a breadboard. Here's what you'll need: * OpenBCI 8bit Board with Female Headers diff --git a/tutorials/10-OpenBCI_on_Windows.md b/tutorials/10-OpenBCI_on_Windows.md index 4371a5c..fa7beb2 100644 --- a/tutorials/10-OpenBCI_on_Windows.md +++ b/tutorials/10-OpenBCI_on_Windows.md @@ -18,7 +18,7 @@ Connect the OpenBCI dongle to the computer and power ON the OpenBCI board. 1. Allow windows to try to install usb drivers. 1. Open **Device Manager** from the start menu (or **Control Panel > Hardware > Device Manager**) and try to identify the OBCI board. It should be listed as either a COM port or an unidentified USB device. -#### 2. Unidientified device +#### 2. Unidentified device If the board is labeled as "Unidentified", follow the troubleshoot below: - Download [FTDI drivers](http://www.ftdichip.com/Drivers/VCP.htm). - Right click on Unidentified USB Device from the **Device Manager** tab and select **Update Driver Software**.