full-setup-sideways.jpg
IMG_4560.jpg
IMG_4561.jpg
IMG_4520.jpg
IMG_4578.jpg
P1160822.jpg
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: 

http://www.switched.com/2010/12/13/eyewriter-teams-up-with-robotagger-to-print-kids-ocular-artwork/print/


(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

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.  
1-40 of 99Next »
zeryu91 says: Apr 15, 2013. 1:55 AM
Hi,I want to build the eye writer but I'm not sure about the lens.Is this one ok for the project?

http://www.ebay.co.uk/itm/25mm-Board-Lens-Day-Night-for-CCTV-Cameras-Foscam-Cameras-/110971149583?pt=UK_CCTV&hash=item19d6655d0f#ht_685wt_890

Thx in advance for your help

Julien
marcusduhon says: Mar 4, 2013. 12:47 PM
I'm currently trying to do this project on a mac osx 10.7, Xcode 10.4.2, OF 0.061, and the Eyetracker Software from this instruct able, and it doesn't seem to be working.
When it says to "build and run the software" does it mean to simply run the xcodeproj file or am I missing something?
Any and all help would be greatly appreciated!

When I try to run the Xcodeproj file I get the errors in the picture included
Screen Shot 2013-03-04 at 2.45.50 PM.png
mmenisy says: Feb 24, 2013. 7:30 AM
Great effort I really appreciate this keep it up!
I was wondering if I can use another MOSFET other than the one specified since I can't find it in my country given these specifications. I read its data sheet and it shows that it can handle up to 36A, why do we need that much amperes anyways?
haruka141 says: Feb 19, 2013. 10:23 AM
Thanks,
nicovama says: Feb 7, 2013. 6:30 AM
Hello, my name is Nicolas. I'm glad to say I finished the Eyewriter 2.0

I know many of you have questions regarding the electronic parts. I am glad to help as much as I can! I can answer questions in English, French, Spanish, Swedish, Cambodian, Korean and Japanese.
Please visit my blog. I'm working on a tutorial for the eyewriter with a little bit more details, and possibly more specific explanations.
Cheers

http://hikarielectronics.blogspot.jp/
dolfyner in reply to nicovamaFeb 11, 2013. 6:22 AM
Hi Nicovama! tx for replying to my transistor question and for posting your tutorial to shine some light in the darkness for the unenlightened among us ;) I am attaching the diagram I had some questions about if you don't mind helping some more ;)
Cheers!
EW_manual_breadboard01.jpg
OmarAmir123 says: Feb 8, 2013. 10:13 AM
Hello, I am starting this project and I searched for the PS3 eye but I didn't find it (I live in egypt) and I cannot buy it online because most shops don't ship to my country, so is there ANY substitution for the PS3 eye camera ? also the arduino, I have only Uno R3 (revision 3), Leonardo and Mega but the Duemanilove is not available at my country so can I use the Uno R3 instead of it or not ? and thank you.
bsancken says: Jan 26, 2013. 5:18 AM
If anyone has finished the build portion it would be nice if you did a how to video (:
dolfyner says: Jan 20, 2013. 6:31 AM
Hi! I think this is a great project, well done with making this available to all! I work as a carer for a man in a wheelchair whose arm usage has become more and more impaired over the years so this would be ideal for him to keep on painting.
I am at step 11 with assembling the final breadboard which besides the programming would be my weakest point not having much electronic experience. I sourced most of the parts here in Sweden except for the Lens and lens holder.
The transistor I received is of the "older" kind (see attached image) and I am unsure of where the collector, base and emitter should go (excuse my electric ignorance ;) seeing as we are connecting it to two positives and one negative?
Seeing as I am such a novice it has been tough "reading between the lines" where I guess the author took for granted anybody attempting this would have some kind of base knowledge (which I have had to google ;) So it would be nice to hear somebody say: 'Now I have finished the whole project and it works like a charm!' Pls some light at the end of the adventurous tunnel ;)
Thanks in advance!
2N2222.jpg
willh9913 says: Jan 9, 2013. 7:06 PM
I got everything and assembled it but when i run the software on Xcode the IR LEDs flicker once and stop. They will flash once. I already loaded the Arduino code. Is there anyway to fix this?
jfernández16 says: Jul 11, 2012. 2:19 PM
Just wanted to comment that on Mac OS 10.5.8, the v0.061 of openframeworks combined with the gitHub download from 2010 compiled for me using xCode.
tmandragora says: Nov 26, 2011. 7:24 AM
I can't compile the project with xcode and the newest openframeworks download. Lots of errors, warnings that some stuff is deprecated. Do I need an older openframeworks version?
RealMaxwell in reply to tmandragoraApr 26, 2012. 12:18 PM
I used OpenFrameworks pre release v0.061 - you can download it here:

http://www.openframeworks.cc/download/older.html
cpeñafiel says: Sep 22, 2011. 5:17 PM
Hi I'm from chile, I want to build an eye writer, but I can get only arduino uno, arduino not coming out in the instructions. alduino uno serves?
Kernsville says: Sep 6, 2011. 7:30 AM
My wife has ALS and has very little movement capability. We have tried some commercial "EyeGaze" systems, but they are fairly inaccurate and are integrated into sub-standard computers with large mounting systems that take up a large amount of space. I'm looking to build an EyeWriter 1.0/2.0 so she can use her existing desktop PC.

One Question: We use a LOREX IR Baby Monitor to keep tabs on her when we are not in the room with her. We have a spare camera unit, which has the IR LED's already integrated. I'm not sure if it strobes the IR's, or how to find the vSync pin. Can anyone recommend someplace I can find this information, or if anyone has had success using this type of camera before?

Thanks,
CK
lkwhite says: Jul 26, 2011. 4:53 PM
Hi all,
I work at a science museum and we are trying to get this working. The guys in the shop have done their part with all the hardware, and now it's up to me, for the software side. I've gotten the software running on both Windows 7 and Mac OS X, and it does recognize my eye-- however, I can't seem to get to the different modes (calibration, drawing, pong, etc) from the app. If I change the mode in the code and re-compile, I can see those different screens. But it sounds like I should be able to press the spacebar from within the main app, and find the calibration screen. Seems like this is crucial to get to interact with it as a mouse!

I'd really appreciate any pointers or suggestions you might have.
RealMaxwell says: Jun 2, 2011. 8:11 PM
I got it to work on XP SP3 and uploaded a (50mb) zip of the bin directory to a skydrive account and made it public:

http://cid-f966c677a7c86219.office.live.com/embedicon.aspx/Remote%20Eye%20Tracker%20Windows

Refer to the instructables to change from demo mode to live. No documentation on the settings so you are on your own. Took me a long time to find the sweet spot to get the glints to lock on, but I overlook a lot of obvious things. Couldn't get the typing program to speak the words but I'm thrilled I got it to work at all.

Real
darkarrow916 in reply to RealMaxwellJul 7, 2011. 9:54 PM
So just realised that changing the deviceId has no effect on the exe. Would you know if there's a fix? Thanks so much. I do appreciate it.
RealMaxwell in reply to darkarrow916Jul 8, 2011. 7:50 AM
I'm afraid that's way out of my league - maybe message an author at openframeworks or github directly - sorry and good luck!
darkarrow916 in reply to RealMaxwellJul 8, 2011. 8:42 AM
And by that I mean to say... OH DEAR GOD PRETTY PLEASE!
RealMaxwell in reply to darkarrow916Jul 8, 2011. 9:27 AM
Be happy to - what's a solution file and where would I find it?
darkarrow916 in reply to RealMaxwellJul 11, 2011. 1:48 PM
I just realised you used code blocks. So it would be your cbp file? It'll be easier if you zipped the project folder and upload it I'll do the rest of the work. Thanks so much again. You have no idea how much I appreciate it.
RealMaxwell in reply to darkarrow916Jul 11, 2011. 9:47 PM
No problem -
Uploaded the cbp file and others in the directory, then zipped everything except the bin directory which is already zipped and uploaded. Lemme know if thats what you needed.
darkarrow916 in reply to RealMaxwellJul 12, 2011. 12:14 PM
Fantastic.... Had an error under the inputManager.cpp - undefined reference to ofxThread::stopThread(bool). Have you encountered this error? What version of OpenFrameworks did you use?
RealMaxwell in reply to darkarrow916Jul 13, 2011. 8:22 AM
I used 61. I had many errors but that seems familiar. My only tool was commenting out sections until it kept going. As a result, I've noticed much of the draw program doesn't work. I'm mostly concentrating on getting mine to track consistently and the typing program. If you get a full working version, let me know.
Thanks!
darkarrow916 in reply to RealMaxwellJul 13, 2011. 10:46 AM
Thanks. For now I'm going to have a friend with a Mac test it until I figure out a concrete solution to this.
darkarrow916 in reply to RealMaxwellJul 8, 2011. 8:11 AM
Any chance you could upload the whole solution file? I could take a look.
darkarrow916 in reply to RealMaxwellJul 7, 2011. 9:30 PM
Hey, your app works very well. I just need help with the camera set up. I keep getting the following error.
OF_ERROR: Error allocating a video device.
OF_ERROR: Please check your camera with AMCAP or other software

AMCAP and the CL Eye Test both show that the camera works correctly. Not sure what to do next. Tried values 0,1,2,3,4 under DeviceId in the settings file but it still shows "SETUP: Setting up device 0"
vzdemon in reply to RealMaxwellJun 4, 2011. 8:00 PM
i wonder if i can just use a ps3 eye without the Aurdino
RealMaxwell in reply to vzdemonJun 4, 2011. 8:45 PM
The arduino syncs the outer and inner leds with the frame rate of the camera so the the inner (pupil) and outer (glint) alternate frames - but you could use something other than an arduino (I don't know what)
vzdemon in reply to RealMaxwellJun 4, 2011. 10:27 PM
thank you, have you ever seen this one? the eyewriter 1.0  it can work with only a ps3eye and some IR LEDs, but the developer gives two separate application on googlecode, do you know how to let the tracker and drawer work together? 
RealMaxwell in reply to vzdemonJun 5, 2011. 10:01 AM
Yeah the eyewriter 1.0 was what I saw on the TedTalk video that got me interested. I never worked on it because it seemed the head had to be completely still to work. I'm sorry... I don't know anywhere near enough to tell you how to get tracking and draw to work together - I just learned how to solder for this project, and I'd never compiled a program before the eyewriter 2 software.
I had a little luck emailing the people who wrote the code directly when I got stuck compiling but the question had to be very specific to get a usable answer. Most responses were "I don't know what you are doing wrong" and "Keep trying until you figure it out".
vzdemon in reply to RealMaxwellJun 5, 2011. 11:23 PM
thank you
darkarrow916 says: Jun 23, 2011. 11:23 PM
Hi just started my quest to build this. Problem? I'm in Canada. I was wondering if anyone up here has found a cheap equivalent to the M12 lens and lens holders.
Thanks!
d_dooms says: May 27, 2011. 10:16 AM
I'm not able to open RemoteEyeTracker.xcodeproj with Visual C++ IDE, could you walk me through?

Thank you!!
atl1 in reply to d_doomsJun 20, 2011. 7:55 PM
I was going to ask the same thing, I did some research and someone was nice enough to compile it for windows. Here give this link a try:

https://skydrive.live.com/?cid=f966c677a7c86219&sc=documents&id=F966C677A7C86219%21103
pgadegast says: Jun 10, 2011. 2:04 PM
Hi,

I recently started to build an eyetracker and tried the eyewriter.

First question:
I use the linked eyewriter project, but it looks as the first eyewriter-version and calibration does not work... The software UI looks much simpler. (I got the eyewriter code working with the current open frameworks version...)

Second question:
Do I really have to do the strobing stuff? I want to build an head mounted device, using right now just one IR-Led... does the software work with a head mounted device, using only one, not strobing ir-led?

RealMaxwell says: Apr 30, 2011. 3:06 PM
Built EyeWriter 2.0 hardware and it works great in the cl-eye test window.

I am not a programmer. Trying to compile the project to run in Win XP via Code::Blocks and after shuffling missing files into place, I'm now at line 52 of trakingmanager_controlpanel.cpp with error message ofxLibdcPtGrey was not declared in this scope & cam was not declared in this scope. Where should I go for help?
Better yet (as russ_hensel posted), is there a windows executable of the eyewriter software available anywhere?

Thank you for posting the project!
Real
wingnut87 in reply to RealMaxwellMay 11, 2011. 7:01 AM
did you ever get this working in windows?
RealMaxwell in reply to wingnut87May 11, 2011. 5:19 PM
Not yet but only able to work on it short stretches. The only thing I lack more than time is ability. I'm pretty sure I'm making a lot of very basic mistakes - I've never seen the inside of a program before this so it might be a while...
1-40 of 99Next »
Pro

Get More Out of Instructables

Already have an Account?

close

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!