About Me

My Photo

I previously worked on Virtual Reality and other hardware at Valve.  I currently work at Google[x].

Prior to starting at Valve, I built computer peripherals such as keyboards, mice, and joysticks that were designed to be used inside MRI machines.  My company, Mag Design and Engineering, sold these devices directly to researchers at academic institutions who used them to publish scientific papers in peer-reviewed journals.

After work, I spend time on many different types of projects that usually involve circuit design, machining, material selection, and general fabrication/hacking.  My favorite place to be is my home workshop.

ben dot krasnow at gmail




Sunday, December 19, 2010

Fiberoptic joystick with quadrature encoders and arduino

I have designed and built a joystick that contains no electronic parts -- only fiberoptics. The motion is sensed via quadrature encoding, and the signal processing is handled by an arduino microcontroller.

Here is a similar project for linear position tracking:

This joystick is designed for use in MEG and MRI scanners where the electronics may interfere with the scanner's operation.

Fiber transmitter and receivers:
Avago HFBR-2412TZ (mouser)
Avago HFBR-1414TZ

Quadrature decoder:
Avago HCTL-2032-SC (mouser)

Fiberoptic cables:
62.5 um glass fiber custom cables from http://www.ecablemart.com/

Code wheel from http://usdigital.com/


  1. Dear Mr. Krasnow,

    Hello, my name is George and I am currently working on a project that needs to use a fiber optic cable as a micro bending sensor in a mouth piece to measure bite force while in a MRI. I am looking for small attenuation of a light signal in order to determine if the fiber has been bent. I have to utilize an arduino board and was thinking about incorporating an lcd display. If you have any ideas on how to get a useable signal and what type of receivers I have to use or any other relevant information would be greatly appreciated thank you for your time. My email address is gju2@njit.edu

  2. Hi Ben,

    I am a grad student and I am working on a similar project. I am using an Avago HCTL 2022 and an Arduino Mega to read the position of a Maxon motor with quadrature feedback. In your video you mention that you will post the code you used for the joystick however I have not been able to find the code on your website. Would you mind sending me your code, or informing me where I might be able to find it? My email is nerdowell84@gmail.com. I am having some difficulty and any guidance you could offer would be great.