The EyeWriter is a low-cost eye-tracking apparatus + custom software that allows graffiti writers and artists with paralysis resulting from Amyotrophic Lateral Sclerosis to draw using only their eyes.

The original design, as shown here, featured a pair of glasses as the basis for the eyewriter design:

Since that first video, we've been hacking on and developing the project, and we have a new design, which we've called "eyewriter 2.0" which improves the accuracy of the device, and allow for people who's heads are moving slightly to also use an eye tracker. The original eyewriter, designed for a paralyzed Graffiti artist TEMPT1, is designed to be worn on a completely motionless head. The 2.0 design, which uses a camera and LED system mounted away from the head, can be used by people whose heads are moving slightly, such as MS patients, and people who wear glasses, etc.

This eyewriter system is cheap, and completely open source.  At the moment, it costs about 200$ in parts.  Traditional commercial eye trackers costs between $9000-$20,000, so this is a magnitude of order cheaper, and is designed to help anyone who wants or needs an eyetracker.

This fall, we've been showing off and demoing the 2.0 device -- check out the eyewriter 2.0 in action --  we even hooked it up to a robotic arm, to draw the artwork people make with their eyes: 


(The 2.0 device was designed with help and input from Takayuki Ito, Kyle McDonald, Golan Levin and students of the eyewriter collab at Parsons MFADT.  Thanks also to the Studio for Creative Inquiry / CMU for hosting a session for development)

Step 1: Overview

The basic idea approach is that we'll be doing a few things. First, we'll be making LED illuminators for the sides of the screen and the center. Second, we'll be hacking the PS3 eye camera to get the vertical sync (when the frame of video is being taken) and to make it sensative to IR. Third, we'll be programming and building the arduino / cirucit to control the blinking. Finally, we'll setup the base for the system and go through the basics of the software.

From a technical perspective, the 2.0 system works by strobing 3 IR illuminators every frame. On even frames, it uses the center illuminator (located around the camera lens) and on odd frames it uses the 2 side illuminators. On even frames, the pupil appears bright, since the IR light is actually bouncing off the back of your eye, like red eye effect. On odd frames, your pupil appears dark. The difference between the two allows us to isolate and track the pupil in realtime. Additionally, the glints (reflections of the IR illuminators) of the dark frame are tracked, and these, plus the info on the pupil, is calibrated to screen position using a least squares fitting process for an equation that provides a mapping of glint/pupil position to screen position.  
<p>Hi guys i really like the project, and im thinking on building it, but i have a quick question before fully committing to the project. Can these glasses and this software be used for statistical analysis and experiments? Thank you so much in advance</p>
<p>need help with the potentiometers, I cant find the one you use, the lowest ones i can find is 1k ohms 0.5watts, I dont know if I can use those instead but the watt used in the eye writter is 3watts, will it efect if I use .5watts? </p>
Could anyone suggest me a way to solder the v-sync of the ps3 eye camera(since its tiny,also what did you do instead(if anything new)) ? <br>Also which eye-tracking software did you guys use? And could you give me detailed steps on how to calibrate the eye tracking software once everything else is ready.<br>Help needed urgently.<br>Thank you !
<p>got output in windows platform with our crew members nikhil,anjana,divyasree,angel,chippy</p>
<p>Congratulations on successfully completing it!!</p><p>I am trying this out too and iam halfway stuck somewhere.</p><p>Could you suggest me a way to solder the v-sync of the ps3 eye camera(since its tiny,also what did you do instead(if anything new)) ? Also which eye-tracking software did you guys use? And could you give me detailed steps on how to calibrate the eye tracking software once everything else is ready?! </p><p>Thank you.</p>
<p>You have a replacement for the mosfet? Other than IRL3714ZSTRLPBF or IRL3714ZPBF because where I am there qulaquer shop even on the internet that sell and if necessary import does not arrive in time for what I need</p>
Help ! When i build the code, it does work : it is writen build completed no errors found. But when I run the code, nothing happens. Do you have an explanation ? Thank you very much
<p>I will try to precise my problem : when i run the code, it is writen</p><p> &quot;Checking for existence: C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin\EyeWriterB.exe<br>Executing: &quot;C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin\EyeWriterB.exe&quot; (in C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin)<br>Process terminated with status 0 (0 minutes, 0 seconds)&quot;</p><p>And when I try to open the EyeWriterB.exe directly in the folder bin, it does also not work. Any explanations ? Sorry to insist on that problem, but it is very important for me</p><p>OS : Windows 7</p>
<p>In the menu bar go to Build --&gt; Select target --&gt; check debug.This option allow you to see all the steps (errors include) in a console, while the program is running. After this, build the program again and look at what the console is showing. </p><p>But i'm pretty sure the problem, is that you're in video mode, it has to be in live mode. to change that go to: C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin\data\Settings</p><p>Open inputSettings.xml change &lt;mode&gt;1&lt;/mode&gt; to &lt;mode&gt;0&lt;/mode&gt;, save it. </p><p>Try to run the program again. </p>
<p>which IR Leds i have to use?</p><p>thank you</p>
<p>HSDL-4220, check the parts list</p>
<p>s but these are unavailable here</p><p>currently i m building with normal ir leds</p>
<p>Yes it did work thank you ! I do have three more questions : </p><p>1. Me and my friends are working on a project to control a radio-controlled car thanks to the movement of the eye. That's why we want to understand the code you made to extract the information which could be useful for us. Is there a documentation of the code ? I saw that there were few comments in the code, but only with that it is difficult to understand it.</p><p>2. I am currently using the webcam of my computer. But I think it is badly calibrate because the images I get on the screen are not very relevant (cf. photo below). Is that possible to use the webcam of my computer and calibrate it properly ? Or is it compulsory to do all the stuff with the PS3 webcam even if we don't need very precise results ?</p><p>3. I got a little problem because the problem doesn't end by itself when I close it. I have to do ctrl+alt+suppr to end it. Is there a way to correct this bug ? </p><p>Again, thank you very much for your help, I really like this project and It would be great if I succeed in making it work properly !</p>
<p>I didn't make the code, in the link i provide, Ben Mattinson did those modifications.</p><p>To understand the logic behind the code, you have to read, some paper about eye tracking and gaze tracking based on corneal reflections (glint) and pupil center. Here one: (<a href="https://onedrive.live.com/view.aspx?resid=10CDA58407A779C1!45834&ithint=file%2cpdf&app=WordPdf&authkey=!ACb8H1VszYZ5SUA" rel="nofollow">https://onedrive.live.com/view.aspx?resid=10CDA584...</a>) </p><p>The code is based on bright pupil and black pupil effect, that's mean you have to use IR light. You won't have good results with your built in webcam. To work with the program, it's necessary to do those modifications on the PS3eye or any other usb webcam.</p><p>Well, i don't have this problem on mine, it's closing perfectly. Try to run the program on debug instead of release.</p><p>And google is a great tool, you'll find a lot info. about what you need for your project. And good luck !!</p>
<p>Ok thank you : I was indeed in the video mode, now here is what I got. Am I supposed to get that ? Sorry but I want to be sure that the software works before starting to construct the eyewriter. Thank you for your help.</p>
<p>The webcam isn't turn on. Again go to InputSetting.xml, if you're using the built in webcam change those parameters like this.</p><p>&lt;grabberType&gt;0&lt;/grabberType&gt;</p><p>&lt;deviceId&gt;0&lt;/deviceId&gt;</p><p>Some advice, setting the build target to Debug like i said before, the message log will help you see the status of the program, and check the README file here https://github.com/x15bmu/eyewriterb</p>
<p>how to run these software</p><p>using eyewriter software drawing</p><p>typing etc</p>
<p>need help||||||||||||||</p><p>please provide me the &quot;M12 Board lens&quot; alternative site for buying</p>
<p>hi</p><p>which i IR led i have to use????</p><p>thank you</p>
<p>which i have to buy ?????????there are many options</p>
<p>The one they use on the Eyewriter 2.0, has 25mm focal length with a F2.5 aperture. I can't really tell you which one, but knowing the function of those parameters can help you choosing. The focal length give you more wide angle meanwhile the aperture is use to obtain light as much as possible even in poor lighting conditions. But i guess the 8mm or 12mm will be fine.This guy use the 8mm on a similar project <a href="http://jdarpinian.blogspot.com/2014/06/homebrew-oculus-rift-eye-tracker.html" rel="nofollow">http://jdarpinian.blogspot.com/2014/06/homebrew-oc...</a> and it goes well for him. </p><p>And here the parameters for different type of M12 lens. <a href="http://www.uniel-denshi.co.jp/CCTV-LENSES/MINI-LENSES/MINI-LENSES.html" rel="nofollow">http://www.uniel-denshi.co.jp/CCTV-LENSES/MINI-LEN...</a></p>
<p>please guide me for the </p><p>is this install on windows ?</p><p>or only osx supported ?</p><p>facing problem with installation of gui</p>
<p>I forgot to mention that if you want the exe file without compiling you can just go to \eyewriterb-master\eyewriterb-master\Setup. After download the zip file. </p>
<p>Here a new version of Eyewriter that works perfectly with Windows <a href="https://github.com/x15bmu/eyewriterb." rel="nofollow"> https://github.com/x15bmu/eyewriterb. </a> Download it and unzip it. I'm using Windows 7 SP1. First download:</p><p>-OpenFrameworks (of_preRelease_v0061_win_cb_FAT) CodeBlocks 10.05 Additions for CodeBlocks (http://openframeworks.cc/setup/codeblocks/#additions)</p><p>Install CodeBlocks Unzip codeblocks_additions (there're 2 files on this folder)</p><p>Put &quot;add_to_codeblocks_mingw_include&quot; into &quot;C:\Program Files\CodeBlocks\MinGW\include&quot; Put &quot;add_to_codeblocks_mingw_lib&quot; into &quot;C:\Program Files\CodeBlocks\MinGW\lib&quot;</p><p>on this link they show you how to do it (http://openframeworks.cc/setup/codeblocks/#additions)</p><p>Install OpenFrameworks and put the folder in your Local Disc C. Put the eyewriterb-master folder in C:\of_preRelease_v0061_win_cb_FAT\apps</p><p>Launch the &quot;RemoteEyeTracker.workspace&quot; to see if it works.(eyewriterb-master\EyeWriterB 2_1_2\eyeWriterTracker)</p><p>if it show Unable to open ...\OpenFrameworks.lib.cbp Just change the location of the folders on eyewriterb-master,</p><p>for me it works like that C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2</p><p>I put the files of eyeWriterTracker on EyeWriterB 2_1_2. </p>
<p>thanks Ogvs </p>
<p>Help ! when I try to run and compile the workspace RemoteEyeTracker, it is written : error 'exit is not a member of 'std'. I have the correct version of openframeworks and I did exactly what you said in the post below. </p><p>I have a more recent version of codeblocks (13.12) but it doesn't have an influence does it ? Thank you for your answer.</p>
<p>I have just download the version 10.05 of codeblocks but it still doesn't work. I got two messages : in function void initialize Quicktime ; 'exit' i not a member of 'std'.</p><p>Thank you for your help !</p>
<p>http://forum.openframeworks.cc/t/new-code-blocks-10-05-quot-exit-is-not-a-member-quot-fix/4048 </p>
<p>ok it worked perfectly thank you. Yet I do have another problem : when I run and build the code, it is written : build completed, 0 errors. However, nothing happens : I get a message &quot;executing C:/... EyeWriterB.exe&quot;. And when I try to open directly EyeWriterB.exe in the bin folder, nothing happens : the application does not open. Do you have an explanation ?</p><p>Thank you very much for your help !</p>
I need help! I'm in China and I'm trying to make one for my former teacher, although I knew very little about digital stuff. I'm buying parts from local digital market in China. Can I replace IR Led 875nm with 850nm? Can I replace rheostat 25Ohm-3w with rheostat 33Ohm-5w. Can I replace the 24 AWG wire with 22 AWG wire? Thank you!
<p>my ir leds aren't working , neither is the vsync, what could be the problem?</p>
<p>URGENT: any alternative for the mosfet and the lens?</p>
So i can use the 6mm lens instead of the 25 mm?
Will the ps3 camera default lens work or is it necessary to change the lens. Please reply as soon as possible
<p>helloo</p><p>please provide video tutorial for GUI </p>
<p>guide me for the software part </p><p>i m trying ti install on this on windows</p>
<p>Do you get the site</p><p>#abhijeet</p>
<p>yes </p><p>http://peauproductions.com/store/index.php?main_page=product_info&amp;products_id=2</p>
<p>ITS URGENT!!!!Provide me an alternate site for buying &quot;M12 LENS&quot;</p>
<p>What is the alternative mosfet for IRL3714Z ???</p>
<p>You can find them on this website <a href="http://www.tme.eu/en/details/irl3714zpbf/tht-n-channel-transistors/international-rectifier/" rel="nofollow">http://www.tme.eu/en/details/irl3714zpbf/tht-n-channel-transistors/international-rectifier/</a></p>
<p>Can that eye tracking software simulate the PC mouse's movements and clicking?</p>
<p>Hello, thank you for the awesome work!<br>I have a question: can that eye tracking software simulate the PC mouse's movements and clicking, so that the user could actually use the whole pc's programs and options (including the digital keyboard provided by most operating systems)? Or is avaiable out there any program built for giving that chance to the user?<br>Thank you again :) </p>
<p>This is totally awesome. I have ALS and am also an amateur arduino hobbyist. I still have a lot of abilities (especially my right hand still works well) but I know what my likely future will be. I think I'll start trying to put this together now. </p>
<p>MOSFET - IRL3714ZPBF is obsoleted and no more available for buying. </p><p>can any one point me alternative MOSFET can be used here. </p><p>also asked on the circuit forum :<a href="http://forum.allaboutcircuits.com/threads/alternative-for-mosfet-irl3714zpbf-used-in-eyewriter-2-0.109954/" rel="nofollow"> http://forum.allaboutcircuits.com/threads/alternat...</a></p>
<p>Did you use the alternative on the circuit forum ? One tech guy at Digi-Key propose me this as an alternative. http://www.digikey.com/product-detail/en/FDP6030BL/FDP6030BL-ND/977181</p>
<p>There are two other things I would like to know:</p><p>1- does the EyeWriter work with an external display connected to a macbook pro?</p><p>2- does the EyeWriter software work with any higher OS X than Snow Leopard? Mountain Lion or Lion?</p><p>thanx a lot!!!</p>
<p>hi everybody, </p><p>I have a question about step 9 - getting the v-sync off the camera and LED flashing <br></p><p>- I build the circuit for the test</p><p>- Arduino is connected via USB</p><p>- I load StrobeEye.pde</p><p>- PSEye (v8.2) is connected via USB </p><p>- I start the macam driver</p><p>Before even the VSync contacts the thin wire the red LED flashs rapidly and continuously. </p><p>Is this the way it should be? If not what have I done wrong? </p><p>thanx</p>

About This Instructable


482 favorites


More by thesystemis: The EyeWriter 2.0
Add instructable to: