Build one

Hapkit Labeled

At this time, we are not able to distribute complete Hapkits to the public. However, you can build your own Hapkit if you would like purchase the components and have access to a laser cutter, 3D printer, and/or other machine tools. You can modify the design to enable use of whatever prototyping facilities you have available. If you have any questions, please contact us, and we will try to post the answer as soon as possible.




The mechanical components of Hapkit are primarily laser-cut 1/4" acrylic. In addition, the drive wheel (mounted on one end of the motor shaft) and the magnet holder (mounted on the other end of the motor shaft) were 3D printed. Click here to download a zip file of Hapkit Solidworks and DXF Files. We will provide more explanation of these files in the near future!

Mechatronic (actuator and sensors)

The actuator is a Maxon A-Max26 motor. Here's the one place where you might say that the price of Hapkit is not realistic – we got many of these motors for $8 from Jameco. However, the cost of these motors if ordered directly from Maxon is on the order of $150! (It's likely that Jameco got these motors surplus.) Thus, it is not clear if there is a long-term low-cost source for these high-quality motors. We caution you against using inexpensive motors in your Hapkit, because they will likely have much high friction, inertia, and cogging torque than the A-Max. All of these undesirable dynamic properties will make it much harder to feel the haptic effects that you program.

The position sensor is a magnetoresistive (MR) sensor, which is mounted directly on the custom PCB. In Hapkit, the MR sensor works as a position sensor by changing its resistance in the presence of a rotating magnetic field. The rotating magnetic field is generated by a magnet mounted on the shaft of the motor. Interpreting the signal is a little complicated (as you'll see in the code provided below) because the motor (and therefore magnet) rotates many times throughout the workspace of Hapkit. So the code keeps track of not only the current orientation of the magnet, but also how many times it has already rotated.

The force sensor is a force-sensitive resistor (FSR). Not the most accurate forcesensing method, but it is robust and inexpensive. The FSR changes its resistance when force is applied. You can use measurements from the FSR to use as another input to determine what haptic feedback is provided, or as a way of recording data about how much force Hapkit is applying to your finger.


We worked closely with Seeed Studio, an open hardware facilitation company, to design an all-in-one controller board. This custom PCB is approximately the size of an Arduino Uno and includes a microcontroller, motor driver/amplifier, Micro SD card port for recording data (you'll need to by an SD card), Hapkit-specific sensor connections, as well as other digital and analog lines. The Hapkit board is now available for purchase from Seeed. Note that Seeed sells just the board, not the entire Hapkit. Also, note that Stanford's listed board cost of $13 (as shown on the parts list linked below) is much less than what it will cost the public to get the board in small quantities.

You can also make your own PCB using Seeed's design as a starting point (see these files, which can be viewed with CadSoft EAGLE PCB design software). Or you can use a combination of a standard Arduino, motor driver shield (such as the Ardumoto board), and circuitry (for the sensors). The Hapkit hardware has been specifically designed to fit the Seeed Hapkit PCB, especially since the MR sensor is mounted on the board.



We provide this Arduino code to get you started programming haptic virtual environments with your Hapkit. The virtual environments rendered (a virtual wall, a spring, a damper, and a texture) can be changed by uncommenting the appropriate lines of code in "Section 3". The code provided also includes code for reading values from the FSR and computing the measured handle force in Newtons. However, if you do not have a FSR, then this code can simply be ignored or commented out.

Build-your-own purchase list


Here is a purchase list if you would like to gather the parts to make your own Hapkit from scratch. Note that some components need to be laser-cut or 3D-printed. In addition, the costs listed here may be lower than what you find, since we purchased some items in bulk.

Assembly instructions


Once you have all the parts purchased and made, here are instructions for assembling your Hapkit into a functional haptic device. You can use these instructions along with this step-by-step video. If you want to jump to a particular step, here are the times to look for:

  • Step 1: Check Hapkit -- 0:00:37
  • Step 2: Assemble Hapkit frame -- 0:01:02
  • Step 3: Assemble Hapkit sector pulley -- 0:05:00
  • Step 4: Attach parts to Hapkit frame -- 0:08:35
  • Step 5: Set up Hapkit electronics -- 0:14:47