(And God said, Let there be light...)
Humans have been using light and sound to achieve altered states of consciousness for thousands of years. Primitive cultures used flickering fires and rythmic drumming to induce these altered states. Today, you can choose from a wide variety of electronic brain-wave machines which use light and/or sound to alter brain-wave activity. Brain-wave activity ranges from fully awake to deep dreamless sleep. This activity is categorized into five primary groups: Delta, Theta, Alpha, Beta, and Gamma.
By using light and sound to induce these brain states we are able to gain greater control and efficiency of brain usage. Furthermore, improvements in relaxation, memory, creativity, stress management, sleep disorders, and even ESP(!) can be had by utilizing a brain-wave machine.
Commercial brain-wave machines cost hundreds of dollars, but you can build your own using only a few dollars worth of components. In this document I will walk you through hardware construction and software control of an easy to build brain-wave machine.
Disclaimer: I am not an electronics expert or a biofeedback specialist. If you fry your hardware (or your wetware) don't come whining (or drooling) to me. I assume no responsibility for what you do with this information.
Building the Hardware
(Always yield to the hands-on imperative.)
With simplicity being the goal, brain-wave goggles can be constructed from suitable eyewear, such as safety glasses, and an array of LED's (Light Emitting Diodes). I'm using the PC's parallel port to control the flashrate of the LED's. Audio stimulation can be provided by a stereo and headphones or the PC's soundcard.
I'm using 8 LED's, one per parallel port data out line. This provides an easy way to control each individual LED allowing for some variations in pattern and intensity. Each lense on the goggles will hold four LED's in a diamond pattern. The LED's are powered by the parallel port and controlled via software.
Basic electronics experience is recommended but not necessary to construct this brain-wave machine.
8 LED's (choose green, yellow, or red LED's)
Note: Radio Shack charges about $20 for 8 LED's. I got 20 LED's from a real electronics store for $3.
Hmmm, they look kind of silly. But that's not the point, we're here to explore the phenomenon of biofeedback, not for a fashion show.
Browse the Brain-Wave Machine Image Gallery for pictures of readers goggles as well as modifications and variations.
Programming and Software
(Code is the essence of everything.)
Development of the control software is being carried out primarily in QBasic and C. I've provided a quick introduction to parallel port programming in BASIC so anyone can experiment with writing their own code. BASIC is also handy for quickly writing little routines to help test the hardware you're building. A few complete BASIC applications are provided to get you started and we've got some reader-submitted C code and a microcontroller implementation too. And finally, I've provided some links to software you can use to create your own brainwave audio sessions in order to greatly enhance your Brain-Wave Machine experience.
The PC parallel port has eight data lines out. These data lines can be turned on and off by sending a byte to the port where each bit in the byte represents the on or off state of one of the data lines out. In BASIC you do this with the OUT function. The OUT function accepts two parameters, port address and a byte in decimal format. The most common addresses for LPT ports in hex are 378h, 278h, and 3BCh. LPT1 is almost always 378h, or 888 in decimal. The address parameter can be in hex (i.e. OUT &H378, #) or decimal format (i.e. OUT 888, #). Now let's take a look at bit patterns...
Look at the example bit pattern included in the table above. The byte 0101010101 will turn on all of the even numbered data lines. To convert this binary byte to a decimal value we just add up the "on" bits. (2 + 8 + 32 + 128 = 170) So the function call would be OUT 888, 170. So, OUT 888, 0 will turn off all eight data lines (0 = 00000000 in binary) and OUT 888, 255 will turn on all eight data lines (255 = 11111111 in binary). For example, the following code will flash all of the LED's fifty times with a short delay in between.
Obviously we need something better for timing than a FOR/NEXT loop. Unfortunately QBasic doesn't offer any timing functions with millisecond accuracy. Note: hz and cycles/second both refer to the flashrate of the LED's, so 15 hz = 15 flashes/second. I've written a small sample application which demonstrates one method of dealing with the timing issue in QBasic (using the SOUND function of all things). The program also has timed sessions, selectable frequencies, and three different flash patterns. Feel free to experiment with it.
Sample QBasic App: BWM.BAS.
Brainstar 1: Smoother interface and more features. Edit, save, and load patterns. QBasic source as well as a packaged run-time version are included. Contributed by Fractal (HardCore Software), May 6, 2000.
Note 1: QBasic can be found on your Windows CD under OTHER/OLDMSDOS or search for olddos.exe on microsoft.com.
C / C++
Using the Brain-wave Machine
(This is your brain on Theta.)
The key here is to experiment and do what works for you. Lying down in a quiet place where you won't be disturbed is recommended. Close your eyes and relax while the LED's are flashing. Sessions can be from 5-25 minutes or longer. Longer sessions seem to work better.
You can use the brain-wave goggles with or without audio. However, the effects of the brain-wave machine are more powerful when used in conjunction with suitable audio. Many brain-wave stimulation and subliminal CD's and cassettes can be purchased from new-age bookstores. I highly recommend the "Brainwave Suite" 4 disc box-set by Dr. Jeffrey Thompson. Doctor Thompson has also produced several other brainwave CD's.
Some Suggested Uses
Copyright © 1999 - 2007 CYBØRG/ASM