Design and early testing of first iteration of hardware platform for Eyewriter 2.1 eye-tracking system

Added on May 24, 2013

As part of the open-source eye-tracking system that I am working on, Eyewriter 2.1, I recognized that one of the major components of the overall system is some sort of physical platform that holds all the circuit boards for you and allows you to reposition them.

The original Eyewriter 2.0 system did not have any standard hardware platform, so every prospective user needed to construct their own platform using wooden dowels and various hardware bits. Many DIY enthusiasts enjoy this type of work, but I had a feeling that the intended audience (individuals with some type of physical disability) may not be able to create such a platform, even through a caregiver.

So I decided I wanted to make a flexible, standardized platform that could be easily put together and adapted for a variety of uses like with laptops, desktops, on wheelchairs and in beds. In particular, I wanted to hit the following goals:

  1. Rely on easily obtainable hardware like threaded rods and hex nuts.
  2. Easily assembled and modified by non-techies.
  3. Use low-cost 3D printed parts for anything that can’t be easily bought from a hardware store. It would be important to design these to be as cheap as possible so that users who do not have access to a 3D printer could buy a set of parts through 3D printing services like Shapeways.
  4. Allow the platform to be easily expanded or made smaller to literally clamp onto nearly any laptop or sit on desks.
  5. Allow each of the Eyewriter’s circuit boards (the two glint modules and the central camera module) to be repositionable independent of the platform.

Overview of the platform

Full mockup

The platform consists of two types of printed parts; flat platforms for mounting for the circuit boards (three total), and end blocks with a small ledge used to clamp the platform onto laptops (one on each end). All of the printed parts were designed in OpenSCAD.

Modified-ballEach of the three flat platforms in the middle have a hole in the center so I can mount a single “ball” from this cool ball and socket chain published on Thingiverse. My intention is to create housings for the circuit boards that have a built in ball or socket connector which can connect (through a chain of ball-sockets) to these platforms. This will allow each board to be easily tilted and repositioned to fit the user.

Inspired by the construction style of the Prusa Mendel open-source 3D printer, each of these printed parts easily slides onto two lengths of M8 (or 5/16″) threaded rod, which is readily available at most hardware stores. To hold everything in place, hex nuts are used on each side of each piece. It gets a little annoying to thread and unthread each of these nuts, but it’s a good compromise between mechanical strength and flexibility (and price!).

In fact, here are all of the non-printed parts required to build the platform. Notice they are all from McMaster-Carr and the lowest available quantities are MUCH more than you actually. If you can find these parts at a local hardware store you’ll pay even less!

Assembling the platform

To assemble the platform, all of the printed parts just need to be slid onto the threaded rods and secured using hex nuts. Each part has a hex nut on each side of it (on each rod) so you can easily move every part around just by loosening and tightening a couple of nuts.

I’m really happy with how well the platform clamps onto my laptop, and how secure each of the pieces feel when the nuts are tightened.

I learned that it is best to print the “end blocks” vertically to prevent them from breaking easily. If they are printed flat against the 3D printer’s bed, the ledge is parallel to the “grain” of the plastic filament, which means it can break apart quite easily. When printed vertically, the filament “grain” is perpendicular to the forces that are being applied, so it should stand up to more punishment. However, to print such a tall part I had to add mouse ears to the base to help it stick to the printer’s bed better.

[flickr-gallery mode=”photoset” photoset=”72157633266460675″]

Improvements and future work

This first iteration of the platform is really more of a “sketch” of the platform that I’m ultimately trying to make. I consider a kind of clunky proof-of-concept that will serve it’s function, but could benefit from some very obvious changes. Specifically, I am planning the following updates for the next iteration:

  1. Make each platform much thinner. When held by the hex nuts on the rods they are actaully very sturdy, so I can save a lot of plastic just by slimming these down a bit.
  2. Use a web structure on the end blocks to reduce plastic and curling issues during printing. Something that looks more like this printable Eggbot would be ideal.

Separate from the platform, I need to make the actual housings for the circuit boards, which will be happening very soon.

You can grab all of the ready-to-print STLs and the OpenSCAD source files at the following Thingiverse page:

Get the source files on Thingiverse