OpenEyeTap: 3D Printed & Programmable Smart Glass
by SteveMann in Circuits > Raspberry Pi
17856 Views, 170 Favorites, 0 Comments
OpenEyeTap: 3D Printed & Programmable Smart Glass
Welcome to the Open EyeTap's Instructables page! We are a few enthusiastic makers with a big ambition to build the world's most active Smart Glasses and Wearable Augmented Reality Community. We wish to make accessible a framework on which augmented reality can thrive. We wish to share our EyeTap with the tinkerers of the world. Together, as a community, we can improve this open-sourced technology.
Our primary goal in this Instructable is to simplify the construction of the EyeTap. We hope it helps you build your own and decreases the barrier to entry into the augmented reality field. We also hope you’ll find interesting functionalities and designs – perhaps specific to your lifestyle – that can be added and shared on our website forum: openeyetap.com! We believe that we, as a community, can be the disruptive force necessary to develop the first open-sourced augmented reality glass.
We have presented below in detailed fashion the steps required to construct your very own EyeTap for under 200$. In brief, we will be using 3D printed components, a micro-display with built-in optics, a spy camera and a Raspberry Pi Zero Wifi. We have currently developed a cyborglogging ("dash-cam" -like) function that you will be able run with your EyeTap, and more modules & functionalities will come soon.
Functionality #1: Dash-Camera + Snapshot Function
- Take a picture when pressing the button #1.
- Take a Dash-Camera Video* when pressing the button #2. Saves 1 min 30 sec PRIOR to when the button was pressed and 30 sec AFTER the button has been pressed. Automatically uploads to your YouTube channel if connected to wifi. If the EyeTap is not connected to wifi, saves to its local SD card.
*What is a Dash-Camera Video function?
Dash cameras are common in cars to record accidents or unusual events. They run on circular buffer, constantly recording and over-writing the oldest material. In similar sense, we can now have personal Dash-Cams in 1st person's view. If you witnessed or were involved in any kind of accident, or just simply wanted to record funny/memorable moments, we can press the button to save the recent past. When button #2 is pressed, the most recent 1 minute 30 seconds IN THE PAST, plus 30 seconds AFTER THE BUTTON PRESS will be recorded and saved as one video file. This will be automatically uploaded to your YouTube channel if connected to wifi, or saved locally if wifi is not connected.
Materials Needed
3D Printed Parts Needed (Step 2 includes STL files and is about HOW to 3D print at home)
- 1x 3D printed headframe
- 1x 3D printed left earpiece
- 1x 3D printed right earpiece
- 1x 3D printed nosepiece holder
- 1x 3D printed raspberry pi zero case*
- 1x 3D printed raspberry pi zero cover*
- 1x 3D printed micro display housing
- 1x 3D printed micro display circuit housing
*Horizontal or Vertical, you choose. In this instruction, we will use horizontal version despite the vertical shown in the photo
Electronics and Mechanical Parts Needed
- 1x Raspberry Pi Zero Wifi Processor (www.canakit.com/raspberry-pi-zero-wireless.html)
- 1x Micro Display (openeyetap.com or at Alexnld)
- 1x Spy Camera (https://www.adafruit.com/product/1937)
- 1x Spy Camera Flex Adaptor (openeyetap.com)
- 1x Spy Camera to R-Pi Flex (https://www.adafruit.com/product/1645)
- 1x Nose piece and 1.5mm screw (openeyetap.com)
- 1x Beam-splitter (openeyetap.com)
- 4x Wires length of 35 cm
- 4x Wires length of 15 cm
- 2x Buttons
Tools Needed
- 8x 16 mm M2 Screws
- 2x 14 mm M2 Screws
- 4X 12 mm M2 Screws
- 1x 10 mm M2 Screws
- 3x 8 mm M2 Screws
- 1x 1.5 mm screws for the nose piece
- Screw driver (Philips)
- Pliers and/or small files
- Soldering Iron and Solder
- Hot Glue
3D Print the EyeTap Parts
If you have access to a 3D printer of any kind at your home, school or a nearby public library, you can download the following STL files and print the parts yourself. If you do not have access to a 3D printer, you can also purchase the 3D Printed Kit from us, just to make things convenient.
A few tips on how to 3D print the parts successfully.
- 100% infill all the parts, especially the main headband frame, 20% infill will be too fragile for you to play around with it.
- Parts that do NOT need support materials if printed in correct position: Head frame, Micro-Display Circuit Housing, R-Pi Housing and Cover.
- Parts that need support materials: Both Ear Pieces, Display Housing, Nose Piece Holder
Assembling the EyeTap Frame
- If you printed your own components, remove the support material. Excess material will mostly be found on the ear supports and on the micro display housing. File down the rough surfaces if necessary.
- Assemble the EyeTap frame by sliding the right earpiece onto the head frame.
- The earpiece should be positioned on the second groove - when counting from the extremity.
- The earpiece should curve towards the inside of the user’s head.Use two screws (M2x16mm) and nuts to secure the earpiece to the head frame.Repeat for left earpiece.
Assembling the Micro-Display Module
- Insert M2x8mm screw into the center piece of the micro-display component.
- Slide micro-display into the 3D printed micro-display housing. The two protruding pegs of the micro-display should fall into place within the housing. The insertion will require some force.
- Fix the circuit board into the 3D printed circuit board housing. Let the yellow flex fold naturally in the bottom part of the housing. Thereafter, fasten the circuit board housing to the micro-display housing with a screw.
- Using three screws (two M2x8mm and one M2x10mm), fasten the beam splitter to the micro-display module.
- Fasten the module to the EyeTap head frame by using two M2x12mm screws.
Assembling the Nose Piece Module
- Insert metal nose piece into the 3D printed nose piece holder. Fasten using screw.
- Insert both nose pads into the metal nose piece and tighten with screw.
- Do not fasten the nose piece module until all hardware is connected and integrated to the frame. When wiring is done, place the nose piece onto the EyeTap head frame and secure it with a M2x12mm screw. The nose piece should protrude into the head frame towards the user.
Building the Raspberry Pi Module With Spy Camera
- Connect the converting flex, flex PCB board, and the spy camera with Raspberry Pi as shown in the picture.Make sure the blue side is upwards on both ends of the R-Pi and the PCB board. Make sure the spy camera's flex has the silver side upwards.
Connecting Micro-Display to Raspberry-Pi Zero
- The connector that comes with the Micro-Display has 7 wires in total, of which only 4 will be used. Use the 2 wires from each end and cut the middle 3 wires out as shown in the photo.
- Each wire is colour coded and has the following function.
-Red Wire: Power
-Black Wire: Ground
-White Wire: Another ground
-Orange Wire: Video feed - Likewise, you will need to prepare 4 wires from the 35cm black wire. You can discard the other 3, or keep for future endeavours. The 4 black wires will be used to connect the R-Pi to the Micro-Display connector.
- Solder the four coloured wires to four black wires of length 35 cm.
- Solder the four black wires to R-Pi as instructed on the photo.
- Plug in the Micro-Display connector to the Micro-Display, and route the black wires through the inner side of the Head Frame back to the R-Pi. The tabs in the inner side of the frame are to house and protect the wires.
- Place the R-Pi to the R-Pi Case.
Connecting Buttons to Raspberry Pi Zero
- Two buttons will be connected to R-Pi, one (#1) for 'Taking Pictures Function' and the other (#2) for 'Dash-Cam Video Function +YouTube Upload Function'.
- Prepare two buttons, two 10k resistors, and four ~15 cm length wires.
- Connect them as schematic shown above. Button #1 is connected to GPIO 17 and ground for the Pictures Function. Button #2 is connected to GPIO 18 and ground for Dash-Cam Function.
- Raspberry Pi Zero GPIO map is included in the photo. Ones are used are highlighted in yellow for reference.
Integrating Hardware and Mechanical Parts
- Insert the Raspberry Pi Zero Wifi module into the 3D printed R-Pi case. Make sure to route the Micro-Display Connector and the soldered buttons through the R-Pi case.
- Insert the wires in the inner side of the Head Frame all the way to the Micro-Display Module.
- Insert the Connector to the Micro-Display Circuit Board. Now R-Pi is connected to give an output to the display.
- Fasten the R-Pi case to the left extremity of the head frame.
- Route the Spy Camera on the outside surface of the Head Frame. Super glue the Spy Camera to EyeTap's main frame. It should be located above the user's nose, facing the same direction as the user's eyes.
- Gently fold the Spy Camera flex a few times within the R-Pi Case.Fasten the R-Pi Case Cover to the Case using 4 M2 screws to enclose the R-Pi.
- Hot glue two buttons
Now the assembly of a working EyeTap is completed - Ergonomic mechanical assembly with all the hardware components properly connected. The only component missing is the software. At this point you are fully equipped to program your own functions if you know how to work with Raspberry Pi and Python. Resources and unlimited ideas are online, and this is exactly how we will eventually build our own Wearable AR Community where we share our new programs for each other to try. However, if you would like to test our existing programs, go see the next 2 steps!
Software #1 (Dash Camera + Snapshot Function)
The first option for you to download and "plug and play" is the Dash Camera + Snapshot Function. You can burn the customized raspbian image with the function pre-configured here. If you want step-by-step instructions how to install an image on your sd card, go here.
Automatic Execution of Program
The provided image has the dashcam functionality configured to start automatically - to kill this process at any time press ctrl + c, and to disable the autostart remove or comment the "python /home/pi/Eyetap/dashcam/dashcam.py" line from the /home/pi/.bashrc file."
A script called autostart.sh is provided in the dashcam folder that automatically configures the dashcam functionality to start on boot (if it is not already configured to do so). Do this by running the command /home/pi/Eyetap/dashcam/autostart.sh
Connecting EyeTap to Your YouTube Channel
The dashcam code is configured to upload to YouTube automatically, however it requires your personal youtube credentials. When running the code for the first time, it should redirect you to YouTube through a web browser where you can enter your YouTube login credentials securely. It will then generate a .youtube-upload-credentials.json file which you can place in your home directory (/home/pi). You can also change the title and description of the uploaded video as well as parameters such as resolution, framerate, and video length as described in the code.
Powering Up the EyeTap!
When finished setting up your sd card, simply plug it into the Raspberry-Pi Zero. To power the EyeTap, plug in the power source - Micro-USB on the Raspberry-Pi zero, and USB connected to a portable battery (any phone charger connected to a portable battery will work). Put the portable battery in your pocket and be mobile with EyeTap running!
Share Your EyeTap Experience!
Please share your EyeTap Experience here or on our forum at openeyetap.com. Furthermore, if you have tried programming your own functions, do share as well and help us build the most active wearable AR community!
Upcoming EyeTap Modules:
- Thermal Camera Module
- Memory Aid Module
- Open CV, Facial Recognition Module
- Air Quality Sensing Module
- Humidity Sending Module
- Eye Tracking Module (research in progress)
You Can Try:
- Display time (Clock)
- Timer function
- IMU EyeTap
- Connect EyeTap to your phone
- AR Maps & Directions using Google Maps
- Google translator, display translated text
- Open CV, Facial Recognition
- Connect EyeTap to your car
- Speedometer
- Fuel Guage