Picture of The EyeWriter 2.0
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)

Remove these adsRemove these ads by Signing Up
Omar Amir9 months ago
@Abhi131: Here's the compiled version for Windows!103 Good luck!

Hey, I've made the hardware and now that I'm testing it, the software won't recognize my eye. Shouldn't I be ale to control the green dot with my eye? However, I can use the cursor and everything else works perfectly fine. It is just that the eye cannot control the system (like type, play "Catch Me" or "Pong" etc.) What should I do?

main.h file missing in your program :(

please help me how can i make this project trying for months but no vain :(

I've made the eyewriter hardware but the software won't recognoze my eye. I am not able to control the green dot in order calibrator or do anything with the use of my eyes. What should i do to make it work?

Screen Shot 2014-03-03 at 5.14.55 PM.pngScreen Shot 2014-03-03 at 5.17.19 PM.png
tkhalid12 months ago

please tell me if some one has made this project on win plateform as i am trying to make this project for past few months but not even suucceded to compile code in code block..

inZet4 months ago
The EyeFinder works depending on IR illumination and threshold, but the pupilFinder can't find anything, nor the glintFinder. Did I missed something? Any help?
TryinHarder inZet4 months ago
It's difficult to help without more information.  Please provide everything you can.

Are the IR LEDs flashing rapidly?
Have you tried tweaking the potentiometers for brightness of the LEDs?
Can you send a screen cap of your screen with the system operational and the software running?

inZet TryinHarder4 months ago
The VSync signal seems to work: I attached visible light leds and I can see them blinking on Arduino pin 11 and 12, alternated.
I also replaced the potentiometer with a 470 Ohm because the IR leds seemed too bright.
Today the software can't even catch the eye, it's like playing a russian roulette.
I don't see any reason why it shouldn't work: the only one is the infrared filter I used, taken from an unexposed film instead of Wratten 87c.
TryinHarder inZet4 months ago
Can you take a picture of your setup? And also your screen? I found that my eyes had to be looking directly on into the camera, and the glints needed to be positioned a certain way to reflect off the pupil.
inZet TryinHarder4 months ago
I attached a picture of my setup and a screenshot.
I can't figure out what's going wrong.
DSC_5142_1024.jpgSchermata 2013-11-29 a 22.14.28.png
TryinHarder inZet4 months ago
Here are some tips based on the images:

Your pupils look very small to me - try turning down the ambient lighting.

You are looking at the camera at an angle. Try looking at it straight-on.

For mine to work, I needed to raise the camera closer (but not all the way) to eye level. (It did obscure the bottom center of my monitor a bit.)

I also needed to tweak my Eye, Pupil, and Glint thresholds to 39, 66, and 221, respectively.

Be sure to experiment with the potentiometers.  The brightness/dimness of the LEDs does make a difference.  They need to be "just right".

Try each eye - my left works better than my right - and make sure the glints are pointed directly at the eye.

I ended up re-doing my glints and putting a space between each LED on the circuit board.  This is because they are otherwise too close together and not pointing straight ahead (they are pointing in different directions) because they don't actually fit in the adjacent holes.  Getting them all pointing straight ahead really made a big difference for me.

Hope this helps!
inZet TryinHarder4 months ago
Thank you! It has something to do with the camera driver; on the Mac, it still can't recognize the pupil but compiled on WinXP, it works. Same hardware, same position of the glints.
It is a try-and-control process and sometimes the process fails. You have seen my setup, I hope the leds are soldered at the same distance as yours.
I was able to calibrate the system but at the end the aiming is not precise. I can't shot the square, or with extreme difficulty. There are parameters on the software I'm not aware what they do: I'm studying the source code to understand as they influence the behaviour. Any suggestion here?
TryinHarder inZet4 months ago
Hi, again - Interesting about the cam driver. I also had a problem with it, and found I had downloaded the wrong version. Then I found the version here:

and it worked fine.  Not sure that's your problem as well, but thought I'd mention it.  :)

I'm afraid I can't help much with the software settings.  Without documentation, I find them... stupefying.  ;)   If it helps, I didn't need to change anything past screen one of the settings to get my setup to work.  I would be interested in knowing what you find through your source code review.

Regarding the glints, it does look like yours are spaced the same as mine, although they do look a bit uneven to me.  The resolution of your pic isn't super high, so I'm not sure if I'm seeing it accurately.  I'll add an image of my re-worked version here.  Once I got mine all pointing directly ahead, it made a big difference in finding (and keeping) the pupil.

Another thing I didn't mention: It helps enormously if you have your head completely still.  I use an ad hoc chin stand to keep my head in place.  Once I did that I found the tracking became much more accurate.

On your camera rig, what are those four white things just under the screw corners?  Are they extra LEDs?  Wondering what their purpose is...

Also, out of curiosity, what version of OS X and Xcode did you use to build the EyeWriter software?  Were you able to get it compiled on anything newer than Snow Leopard and Xcode 3?

Thanks - I've been enjoying our thread.


inZet TryinHarder2 months ago

I'm still trying to get a stable pupil catch. It often get out-of-sync and stops. I can't move the green pointer on the letters I'm looking for, so the system can't write complete words.

Perhaps the best thing to do for me is to use glasses as EyeWriter 1.0. Or re-doing the glints as you did.

I tried to compile on OSX Mavericks with no success.

Hello Friends.
some weeks ago i took eyewriter 2.0 as my project. I started working on it. I am using windows 7. I downloaded the latest version (13.2) of codeblocks and also the latest openframeworks. i also downloaded codeblocks additions and placed them in the required directories of codeblocks. I downloaded eyewriter-remoteEyetracker from github. i placed eyewriter-remoteEyetracker (which includes project.pbxproj file) in openframeworks apps folder. when i opened remoteeyetracker.workspace file in codeblocks. codeblocks replied "unable to open ......\openframeworkscompiled\project\win_cb\openframeworksLib.cbp

Please tell me, What should i do???

visitlynn2 months ago

Hi Everyone,

Is it possible to use the v2 code for the v1 hardware? Thank you

I'm using the v8.2 PS Eye camera and I can not get any wires to connect to the VSync of the camera. What should I do? Any ideas?
nnaveed14 months ago
hey i am from pakistan and am slecting eyewriter as a my final year project .... should i m taking right step ? or i will b hanged in this project ?
What version of Xcode needs to be used to for this project?
I was able to get it compiled and working, per the instructions, using Xcode 3.2.6 on OS X 10.6.8.

I could not get it compiled on Mountain Lion with Xcode 4.

However, I was able to copy the executable to the Mountain Lion machine and it works fine.

Hope this helps.
Is there any way to compile the code on a Mac OS newer than 10.6.8 (Snow Leopard)?
I don't know the answer to that. I have searched extensively and have not found anyone who successfully built it on later versions.

If it would help, I would be happy to send you the executable I built on 10.6.8. It works on Mountain Lion.
That would be very, very helpful! If it is possible then could you please send me the executable that you built for the eye writer software.
Here you go - I posted it to Google Drive:

When you go there, click File, then Download. Then unzip it and you should be able to run the app by double-clicking on it.

Hope this helps :)
If you can, please send me a copy of the executable you have made! Thank you.
Is there any way to compile the code on a Mac OS newer than 10.6.8 (Snow Leopard)?
I have 10.8 OSX (Mountain Lion). What version of Xcode do I need to successfully compile the source code according to the instructions?

Otherwise, what would you recommend so that I can successfully compile the code and get the eyewriter software to run?
TryinHarder7 months ago
@hvilla, the answer to your question is, Yes: you need to load the Arduino EyeWriter sketch described in Step #5.

You must also have the PSEye driver installed on your computer, and the Arduino software application. These are described in Step #4.

To get this test to work, you also need to have the PSEye camera plugged into your computer (USB), and the PSEye software running (you will see yourself on your computer screen via the PSEye application). Then, when touching the wire to the VSync contact as described, the red LED should flash rapidly and continuously.

jpark418 months ago
Hello, I'm trying to make the eyewriter in Mexico but I'm stuck in making the bread board. Can someone post a picture of a finished bread board or a video making the bread board?
maayanco8 months ago
Help! we got stuck soldering the IR lights to the PS3 camera. We are using PS3 version 8.2, and tried finding Vsync stop without success.
We tried two locations on the board:
one located about R25 and the other one between R11 and R26.
Did anyone else have this problem? please let us know if you found the right Vsync spot!
loginein8 months ago
Anyone have an idea of which cam to use instead of ps3 cam?
I'm currently trying to build this eyewriter 2.0 on my own. Meanwhile I've found that the PS3 cam is no longer available in where I live now(South Korea). Any recommendation on which webcam has a v sync spot so that I can work on hacking its circuit board? Any advice will be of great help to the patients I'm trying to help out.

Many thanks
glaskows9 months ago
Has anyone have a good experience with the software (running on win with a ps3 camera)? I recently updated it to win and of 7.4 so I want to know if I did something wrong or the setup is just not too reliable. I am getting the camera input, but it tends to lost the alternation very easily, tweeking the eye threshold helps, but not good enough for getting eye tracking. Also, after calibration (even without blue lines, which I guess it is a good thing) I can make the system to move the cursor in neither scene.
I would appreciate any experience you can share. Cheers!
glaskows glaskows9 months ago
Sorry, I mean, " I cant make the system to move the cursor in neither scene."
Omar Amir9 months ago
@Abhi131: As for the Macintosh, you can do it yourself as stated in the steps, but you'll need to use an older version of open frameworks to avoid the countless errors that appear when building and running the code. In a nutshell, use Xcode, but with an older version of open frameworks. Use the pre release v0.061 - you can download it here:
@OmarAmir123 Will this work on a Mac? Do you know where I can find a compiled version of the EyeWriter software for the macintosh?
Can someone provide me with the EyeWriter software so that once I open up the application it functions properly?
Where is the already compiled version of the EyeWriter software?
Omar Amir9 months ago
This works without any errors or warnings! I used OpenFrameworks pre release v0.061 - you can download it here:
Omar Amir9 months ago
For all who faces errors when they build and run the code, please use the already-compiled version provided as I faced these problems with the software two and I used the code provided that is compiled ready.

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!