Do It Yourself : How to Build Hallucinogenic Goggles

This post will describe how to construct a pair of goggles which can be used to induce geometric visual hallucinations (1 2 3) via strobe light patterns. This tutorial should be accessible to anyone familiar with Arduino, and I do not cover details of the electronics design. These goggles can be constructed for 25 to 50 dollars, depending on how good you are at scavenging parts.

WARNING : this and similar projects have been known to induce seizures in susceptible individuals.

Device Summary

This device consists of three major components : a physical interface to provide the visual stimulation, electronics to control the physical interface, and code which governs the behavior of the interface. The physical interface consists of ping pong balls in swimming goggles with LEDs inside. The electronics are an Arduino pro-mini, and a few additional interface parts. The code is Arduino SDK C style driver code.

Component 1 : Physical Interface
Update : This later post suggests there might be an easier, faster, and more durable way to construct the goggles. The design posted here works fine, but is tricky and time consuming to make, and also fragile.

parts :
  • 4 to 10 Ping pong balls
  • 2 RGB LEDs, frosted clear casing (this is important, sand down the outside if not frosted)
  • 2 4x1 male headers, .1" spacing
  • 2 4x1 female headers, .1" spacing
  • 1 8x1 female header
  • 1 Dolfino medium sized silicone adult swim goggles ( had to buy in a 3 pack )
  • 2-3 ft of elastic ribbon
  • 3-4 ft of ribbon cable, only 8 channels required. Other cables with 8 channels also work.
Description :

Ping-pong balls, cut as if by a plane penetrating approximately 15% of the ball diameter, and rejoined with with smaller section inverted to form a cup like structure. RGB LEDs are affixed via solder to male headers which penetrate the corner of the ping pong balls (near the joint of the two sections). Light is emitted from the LEDs, reflects off the back of the larger section of sphere, and creates uniform illumination in the smaller cup. Two ping pong balls are nestled in a modified pair of swimming goggles. A ribbon cable connector is affixed with female headers which interface between the male headers on the spheres, and the male header output from the electronics. Note that logos or text printed on the ping pong balls can usually be removed with acetone ( nail polish remover ).

Tools :
  • one minute epoxy
  • superglue
  • soldering iron
  • solder
  • sharp razor
  • scissors
  • medium to fine sandpaper
  • wire cutters
  • tweezers
  • pin
  • toothpick, etc. for mixing and applying epoxy
Instructions :

Construct (2x) ping pong ball shells which are mirror images of eachother:

  1. Imagine the section cut by a ray displaced 34-40 degrees from vertical and rotated around the z axis. Alternatively imagine the section of a circle cut by an arc of 70-80 degrees. This partition defines the sizes of the large and smaller sections which form the spherical diffuser. You will not be able to cut both sections from the same ball, since material is lost in cutting, and a 1-2 mm edge is required for overlap to bond the sections together. Additionally, neither side should have a company logo on it, since this will ruin light diffusion. Ping pong balls have a ridge where the two halves are joined in manufacture, avoid cutting through this ridge since it will create an uneven joint that will prevent the balls from being re-assembled. I don't have exact measurements, but on my model the diameter of the circle at the interface of the two sections is 1.365"
  2. Prepare the larger section first, as described above. With a razor, cut a crude circular hole in the ping pong ball, perhaps circumscribing the logo if one is present. Slowly and carefully expand this hold by cutting around its circumference with a pair of fine scissors. Stop approximately 2mm from the final desired hole. At this time lightly sand the hemisphere on a flat piece of medium to fine sandpaper to create a fine, flat interface.
  3. From a new ping pong ball, prepare the smaller section. Cut the ball crudely in half using a razor, then carefully trim one half down to the intended size of the smaller section, plus 3mm.
  4. The smaller section should rest in the larger cup, and be large enough not to fall inside. Do not glue the sections together yet.
  5. Using a pin, create evenly 0.1" spaced holes for the male header in the larger section as shown. You may want to practice on a spare bit of plastic first. Insert the short end of the male header through these holes, and super-glue the header in place. Trim the LED leads so that the LED rests as shown, and bend down the last 2mm of leads to align with the inner header pins. If you do not have frosted housing for the LEDs, lightly sand the exterior of the LED with fine sandpaper. Clear housing creates light that is too focused for uniform diffusion in the eyepiece. Tin both the LED leads and the header pins in advance. Solder the LED onto the header from the inside; do not to melt the plastic. Super-glue the smaller piece into the large piece to make a finished eyepiece. Once the super-glue thoroughly hardens, you may want to finish the joint in the plastic with additional careful trimming and fine sanding ( don't sand through the joint )
  6. The final pair of eyepieces should be mirror images of each other, which is just a matter of correctly positioning the LED leads :

Construct ribbon cable connector:

EDIT : this is a terrible, tedious, way to build a cable. The correct way involves some sort of headers that are actually designed to clamp into ribbon cable, or using these little header connectors that use pins which clamp onto the wire (pins sold separately ?). I will post a writeup if I build a pair using better technique.

I found that it was important to have a separate cable that would disconnect from the goggles under force. This prevents the inevitable accidents from destroying the tediously constructed eyepieces, and modularity makes the whole thing easier to repair. This step is open to improvisation. Here is what I did :
  1. Tear a band of 8 lines from a section of ribbon cable. The cable should be as long as you would like the strap from the electronics to the goggles to be. I think 3-4' is fairly good.
  2. Cut the ribbon cable diagonally such that the spacing between the lines matched the 0.1" spacing of the 8 pin female connector
  3. Strip 2mm bare wire of each line
  4. Solder the line to the 8 pin female connector. Tinning the contacts in advance helps.
  5. Apply 1 minute epoxy to the contact, to provide both insulate and structural stability. Make sure there are no shorts between lines before you do this.
  • EDIT : Hot glue works better here, for a number of reasons. Hot glue remains flexible once cool, which allows for smooth transfer of strain on the cable without breaking the contact. Epoxy hardens, which results in an inflexible interface which slowly cuts and degrades the cable. Breaking of the cable, as well as squishing of the ping-pong balls, seem to be the two most common failure modes of this design. If anyone knows of any commercial connectors that would be better for this design, let me know.
  • Tear the line in two for ~1.5', creating a split from 8 lines to two ribbons of 4 lines. Prepare 4-pin female headers similarly to the 8 pin female header, in a symmetric fashion as pictured below. I used a clip that came with the swimming goggles' strap to stabilize the point where the cable splits in two.
  • The assemblage of this connector cable with the eyepieces should have the indicated pinout at the 8 pin female header :

  • Modify swimming goggles and complete physical interface assembly :

    1. Locate suitable swimming goggles. This is harder than it sounds. The only goggles I found suitable were the mid-sized silicone pair in a three pack of Dolfino goggles. The goggles must be of a correct size to snugly fit the eyepieces, and be able to deform to the circular shape of the eyepieces. The goggle must also be able to hold together with the lenses removed. Many goggles are bridged by an attachment to the lenses, rendering them unsuitable. Ideally, you would also be able to affix a strap to the goggles even with the lenses removed. Due to the limited availability of suitable goggles, this step may require improvisation.
    2. Remove the lenses. In the pair I used, the lenses were held in with a weak silicone glue. It was difficult to remove the lenses without damaging the goggles. Superglue proved effective at repairing large accidental tears in the silicone goggles
    3. Attempt to insert the eyepieces. If necessary, create an opening in the silicone to feed the male headers though. I used either a razor, or a hole-punch, depending on the thickness of the silicone. Insert the eyepieces.
    4. Create a head-strap. I used elastic ribbon, threaded through the hole used for the header pins, held in place by plastic loops, and super-glued back on to itself. One end was folded and kept free to adjust tension.
    5. Attach ribbon cable headers to the eyepieces, check that you have oriented the ribbon cable pinouts correctly.
    6. If the eyepieces are loose, optionally super-glue them in place to the goggles. Note that this will make repairs and maintenance more difficult.

    Component 2 : Driving Electronics

    Parts :
    • 1 Arduino pro-mini ( and FTDI breakout for programming ) (other options 1 2 3 4)
    • 1 6x1 right angle male header
    • 1 8x1 right angle male header
    • 2 12x1 straight male headers
    • 6 Resistors for the 6 LED channels as determined by your board voltage and LED datasheet (voltage, current) specifications. Use this handy LED resitor calculator. For 3v boards, a resistor may be un-necessary for the (green, blue) channels.
    • hookup wire
    • 1.5"x2.5" radioshack protoboard
    • Battery Pack
    • Power Switch
    • optional : LED displays, pushbuttons for a hardware user interface. I used a 16 segment display for some of my models, and a couple designs have pushbuttons to cycle through the various strobe light patches.


    There are probably a million and one ways to make 6 LEDs blink quickly in a controlled fasion. You can drive your LED goggles however you wish. I used an Arduino because the programming interface is easy to use. I also hope to figure out the serial interface to the arduino so I might write a control sketch in processing, for real time tweaking of the waveform patterns. My construction consisted of an arduino board, with the 6 pulse-width-modulation ( PWM ) output pins attached to the LED goggles. I also attached a 16 segment display and some push buttons to the design, but you can experiment with whatever features you wish.

    Tools : Soldering iron, Solder, Soldering accessories

    Assembly of an example control board :
    1. Since the arduino chip rests on raised headers, and the 16-segment LED display has ~1.5mm clearance, we can hide some of the circuitry underneath these components. Since this is a 3 volt board, I only needed 56ohm resistors for the red channels. Your LEDs and board may have different constraints. Also solder on the 6x1 right angle male header to the Arduino pro-mini serial FTDI interface ( I think thats what those 6 pins are called anyway ).
    2. We then solder in place the arduino chip and LED diplay. The LED display is set up for multiplexing, so the corresponding segments of each digit are connected, and the display is driven by alternately drawing both digits, controlled by switching on and off the common cathodes. Since I was short on pins, several display pins also double as input pins for the switches. Every so often, the sketch switches the display pins into read mode and polls the state of the buttons.
    3. I used a lot of tedious surface-mount style wires on the back to keep the design clean. It took some practice for me to get used to this type of soldering. Attaching the battery pack and power switch is not shown.

    Assemble All components :

    This is open ended, Experiment !. Prototype your design on a larger Arduino and breadboard. Tweak the driver code to your preferences. Make a more permanent device using your favorite prototyping technique ( Or design and order a custom PCB ! Please tell me if you do, I'd probably buy a couple! ).

    Component 3 : Code

    I've put some files up on Sourceforge

    Arduino sketch

    ( and here, another example adapted for the AtTiny13a)


    1. Anonymous5.9.09

      Thank you so much for posting the goggle's design. Is it necessary to use a chemical hallucinogen to get any effect? I fear that using a chemical might destroy my remaining sanity, which you posted about a while back.


      Just ordered a Arduino clone, can't wait for it to arrive!


    3. Anonymous30.9.09

      Quick tip: this works on your brain because it confuses your eyes so much you brain eventually drops the signal and makes up its own.

      To amplify this effect, grab a radio and find a frequency that's just static (white noise). This can have the same effect on your hearing and raise your overall experience. Have fun :)

    4. Does the effect actually require goggles? Are you driving different signals to each eye? Just wondering, if staring superbright LED on the table would do the trick? Or bunch of those.

      Superb project though, going to build this.

    5. Thanks for the great project, I cant wait to get started! I'd like to try this with just white LEDs, has anyone done this? I'm pretty new to arduino and it would be nice to have some code to start from :) Thanks for any help!
      ps. Kurt Henschlager's ZEE is in New York right now, if any of you happen to be there, I wish I were!

    6. Anonymous26.8.10


      As far as building the cables, here's a way using low-cost tools:


    7. Thanks for that, very useful.

    8. Anonymous28.8.10

      Slapped mine together real quick today. I used LabView to control a NI USB-6008. This way i can play with the timing real easy.

      Instead of cutting the ping pong balls i just pushed them into themselfs. Stuck dual red/green leds in and glued the ping pong balls to some saftey glasses. Took about 20 minutes to make.

      I think i saw hackaday post another project like this that involved REM sleep. Blinking red green while sleeping to increase your dream state or soemthing? ah found it


      Would be cool to try that too. Just need some brain sensors to help out ;)

    9. Anonymous31.8.10

      Someone wanna sell me one,
      ill pay you 50 bux

      email me at Rohilc123@gmail.com

    10. While you can save your self a nickel and make them this way, I have a PR2X and it is worth every penny. It's like being able to hack your brain. Check out the Tech here;

    11. Craig24.3.11

      Hey which arduino do I need to run this the best as i noticed the source says attiny13a now?

      I have a duemilanove - Will the atttiny13a download work with my arduino

      Please tell me what the other Bard download is for too. I'm new to all of this but project looks great!

      Many thanks


      will this code work on a Duemilanove as bit confused by the source code saying attiny13a.

    12. Download the file linked under "Arduino Sketch". This should work, though you may want to modify it.

      The AtTiny13 is a small AVR, the code is straing AVR-C and it will not work with Arduinos.

    13. craig25.3.11

      Thanks for the reply.

      Is there any advantages speedwise on the attiny13 as I'd be interested in the maximum led frequency attainable.

      Loaded the files up. Any suggestions on the spec for leds, brightness, power requirements etc).

      Assuming I can use some single colour leds from each of the pwm outputs for now on my current arduino.

      Fun weekend ahead! :)

    14. The AtTiny is cheaper, but it is much less powerful than the Arduino and harder to program. I would go with Arduino at first, if you have one lying around. Radioshack probably sells ( overpriced ) RGB leds. Its worth noting that most people can't see flicker above 60-100 Hz, which is well within the capabilities of both Arduino and AtTiny, even with PWM.

    15. craig25.3.11

      Thanks - I've found some led's with the following ratings and would be great if you could tell me how you work out whether any resistors are needed:

      Red - Drive voltage 1.95-2.5v Luminous flux 500-1200mcd
      Green -Drive voltage 3.3-3.8v Luminous flux 1200-3000mcd
      Blue - Drive voltage 3.3-3.8v Luminous flux 1000-2500mcd
      (forward current 20mA on all)

    16. The Pyro uses these and he can escape his Arsonist endeavors and hallucinate from the true nature of his reality and I think I will use it too, i assume its preferable to have some dmt before trying these on?

    17. Anonymous4.3.13

      you guys should save your money and just buy lsd. its hella cheaper

    18. Hi. Awesome project. I'm doing mine own set right now.
      I have a question though.
      I've seen on your code that you preset the leds to adjust the whitepoint for each eye. How do you calculate the whitepoint for your eyes? it's just a try and error? or is there any other way?


    19. Trial and error. Very subjective.

    20. Thanks for this fantastic work. I like it very much. You made a code for processing to controll flickering and colours in realtime ? That would be awesome !

    21. This comment has been removed by the author.

    22. So this is how LED is made for LED outdoor signs to be used for ads and signs. Amazing!


      Is Your Computer Sluggish or Plagued With a Virus? – If So you Need Online Tech Repairs
      As a leader in online computer repair, Online Tech Repairs Inc has the experience to deliver professional system optimization and virus removal.Headquartered in Great Neck, New York our certified technicians have been providing online computer repair and virus removal for customers around the world since 2004.
      Our three step system is easy to use; and provides you a safe, unobtrusive, and cost effective alternative to your computer service needs. By using state-of-the-art technology our computer experts can diagnose, and repair your computer system through the internet, no matter where you are.
      Our technician will guide you through the installation of Online Tech Repair Inc secure software. This software allows your dedicated computer expert to see and operate your computer just as if he was in the room with you. That means you don't have to unplug everything and bring it to our shop, or have a stranger tramping through your home.
      From our remote location the Online Tech Repairs.com expert can handle any computer issue you want addressed, like:
      • - System Optimization
      • - How it works Software Installations or Upgrades
      • - How it works Virus Removal
      • - How it works Home Network Set-ups
      Just to name a few.
      If you are unsure of what the problem may be, that is okay. We can run a complete diagnostic on your system and fix the problems we encounter. When we are done our software is removed; leaving you with a safe, secure and properly functioning system. The whole process usually takes less than an hour. You probably couldn't even get your computer to your local repair shop that fast!
      Call us now for a FREE COMPUTER DIAGONISTIC using DISCOUNT CODE (otr214427@gmail.com) on +1-914-613-3786 or chat with us on www.onlinetechrepairs.com.

    24. 1 Problem: HP Printer not connecting to my laptop.

      I had an issue while connecting my 2 year old HP printer to my brother's laptop that I had borrowed for starting my own business. I used a quick google search to fix the problem but that did not help me.
      I then decided to get professional help to solve my problem. After having received many quotations from various companies, i decided to go ahead with Online Tech Repair (www.onlinetechrepairs.com).
      Reasons I chose them over the others:
      1) They were extremely friendly and patient with me during my initial discussions and responded promptly to my request.
      2) Their prices were extremely reasonable.
      3) They were ready and willing to walk me through the entire process step by step and were on call with me till i got it fixed.
      How did they do it
      1) They first asked me to state my problem clearly and asked me a few questions. This was done to detect any physical connectivity issues with the printer.
      2) After having answered this, they confirmed that the printer and the laptop were functioning correctly.
      3) They then, asked me if they could access my laptop remotely to troubleshoot the problem and fix it. I agreed.
      4) One of the tech support executives accessed my laptop and started troubleshooting.
      5) I sat back and watched as the tech support executive was navigating my laptop to spot the issue. The issue was fixed.
      6) I was told that it was due to an older version of the driver that had been installed.

      My Experience
      I loved the entire friendly conversation that took place with them. They understood my needs clearly and acted upon the solution immediately. Being a technical noob, i sometimes find it difficult to communicate with tech support teams. It was a very different experience with the guys at Online Tech Repairs. You can check out their website www.onlinetechrepairs.com or call them on 1-914-613-3786.
      Would definitely recommend this service to anyone who needs help fixing their computers.
      Thanks a ton guys. Great Job....!!

    25. Anonymous12.10.14

      Apple software on http://sourceforge.net/ ?! epic Fail !

    26. This is great article. You have raised such great points to think about how to use the swimming goggles. I I’d like to introduce one of the shopping store that, Sports 4 Change is one of the best online sports store in India. As we have different kinds of swimming goggles online at affordable rates. http://sports4change.com/swimming-equipments/swimming-goggles

    27. I know - long time passed. But is any chance to get a schematics diagram on this AVS device? Thank you in advance!

    28. Amazing post. Great blog just loves to read it. It has the great collection which looks just cool. For Polarized Running Sunglasses one can search in online.

    29. Nice blog and the details about it really interesting.
      I liked your blog.

      goggles for you

    30. Really it is a very amazing post. This is very nice post about of hallucinations goggles. thank you for sharing this information.
      buy womens sunglasses

    31. Anonymous31.7.18

      I am using isochronic tones for brain entrainment. Works really well.
      Is it possible to hook up your device to the audio signal, and use those frequencies for the glasses?