Brain-Wave Machine

(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.

    Delta 0.1 - 3 Hz deep sleep, lucid dreaming, increased immune functions, hypnosis
    Theta 3 - 8 Hz deep relaxation, meditation, increased memory, focus, creativity, lucid dreaming, hypnagogic state
    Alpha 8 - 12 Hz light relaxation, "super learning", positive thinking
    Low Beta 12 - 15 Hz relaxed focus, improved attentive abilities
    Midrange Beta 15 - 18 Hz increase mental ability, focus, alertness, IQ
    High Beta above 18 Hz fully awake, normal state of alertness, stress and anxiety
    Gamma 40 Hz associated with information-rich task processing and high-level information processing

    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.

    Parts List

    8 LED's (choose green, yellow, or red LED's)
    DB25 pin male parallel port connector (or butcher a printer cable, 25 conductor)
    Goggles (safety glasses or similar eyewear)

    Note: Radio Shack charges about $20 for 8 LED's. I got 20 LED's from a real electronics store for $3.

    Circuit Diagram


    Hole pattern for LED's.
    1. Drill four holes in each lense in a diamond pattern as shown in the diagram to the right. Make the holes just large enough for the LED's to fit through.
    2. Glue the LED's into the holes. Be sure there is room between the LED's and your face when you are wearing the goggles. Actually, the LED's fit tightly in 3/16" holes and I didn't need to use glue.
    3. Wire all of the LED's cathode leads together and connect (with a long wire) to a ground pin on the parallel port connector. Pins 18-25 are all ground so pick any one of those. Note: the flat side of the LED is the cathode lead.
    4. Connect the LED's anode leads to the parallel port connector. Follow the circuit diagram above which outlines which parallel port pin to connect each LED to. Use long wires, you are going to want to be lying down when you use the goggles. (If you are using a printer cable you can use a battery and a LED to figure out which pin each wire is attached to.)
    5. If your parallel port wires aren't already in a bundle tie them together with wire-ties so they don't get tangled. You will also want to provide strain-relief by attaching the wire bundle to the goggles so it doesn't get pulled off.

    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...

    Bit (or data line out): 1 2 3 4 5 6 7 8
    Decimal value: 1 2 4 8 16 32 64 128
    Example bit pattern: 0 1 0 1 0 1 0 1

    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.

    FOR i=1 to 50
       OUT 888, 255
       FOR x=1 to 500
       NEXT x
       OUT 888,0
       FOR x=1 to 500
       NEXT x
    NEXT i

    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.

    Brainstar 2: Now with audio support, graphical session editing, and more. Contributed by Fractal (HardCore Software), October 4, 2000.

    Note 1: QBasic can be found on your Windows CD under OTHER/OLDMSDOS or search for olddos.exe on
    Note 2: These programs will not work under NT unless a driver such as Direct I/O is utilized.

    C / C++

    Audio Tools

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

    Relaxation between 5hz and 10hz for different levels of relaxation
    Meditation between 4hz and 7hz, either cycle between a few, or stay at a particular frequency for different results
    Induce Sleep between 4hz and 6hz for starters, then go into frequencies below 3.5hz, settling on about 1.5hz to 2.5hz for sleep
    Creative Visualization about 6hz for a while, then up to 10hz works well
    Stress Reduction any use of frequencies below 11hz will reduce stress
    Self Hypnosis about 8hz to 10hz while playing any self-hypnosis tape, or guided meditation
    Super Learning about 7hz to 9hz while playing any learning tapes, like foreign language tapes, etc. to increase comprehension
    Subliminal Programming 5hz to 7hz while playing your favorite subliminal tapes
    Improve ESP / Intuition Theta frequencies help in this area, 4hz to 7hz
    Reaching Higher States of Consciousness Theta again, with daily half hour sessions
    Quick Refresher on long days low Alpha 8hz to 10hz for 15 minutes works well

Copyright © 1999 - 2007 CYBØRG/ASM