Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Contents

Introduction

This document provides the hardware documentation for HapCompass. Please note that we made slight modifications to the version described in the paper to improve the mechanical stability of the device.

Bill of Materials (BOM)

Name Quantity Specifications Image Link Price (USD) Notes
LRA 1 Titan Haptics TacHammer DRAKE LFi (4ohm) Product Link $180/4 pieces
Servo Motor 1 Dynamixel XL330-M077-T Product Link $27.49
Driving Belt 1 MXL trade size, width 1/8'', outer circle 5.6'', 70 teeth, pitch 0.08'' Product Link $1.63
Ball Bearing 2 Inner diameter 5mm, outer diameter 8mm, width 2.5mm Product Link $14/1 pack
O-ring 2 Inner diameter 20mm, outer diameter 22mm, width 1mm Product Link $6.49/1 pack Optional
Screws & Nuts 3 M2*4mm Product Link -
Audio Amplifier Board 1 PAM8406 Amplifier Board 5V Product Link $13
Servo Driver Board 1 Waveshare Serial Bus Servo Driver Board Product Link $5

3D Printing Parts

We printed all parts using a Formlabs Form 3 printer (using Grey resin material, 0.050mm layer thickness). We provide the .stl files of all parts under stl/ folder.

Name Quantity stl file Image
Rotor 1 Rotor_bare_pulley.stl
Motor Pulley 1 Motor_Pulley.stl
Shell - Upper Outer 1 Shell_upper_outside.stl
Shell - Upper Inner 1 Shell_upper_inside.stl
Shell - Bottom Outer 1 Shell-bottom-outside.stl
Shell - Bottom Inner 1 Shell-bottom-inside.stl

Critical Dimensions

Some dimensions of the HapCompass are critical to vibration transmission. If the fit is too tight, the device may be difficult or impossible to assemble; if it is too loose, a significant portion of the vibration energy may dissipate before reaching the user's fingertip.

The effective vibration transmission path is:

  • LRA -> Rotor -> Ball Bearings -> Inner Shells (yellow) -> Fingertip

Therefore, the dimensions shown in the figure below are critical to vibration transmission:

Due to hardware variations, such as differences between 3D printers or slight variations in bearing diameter, you might need to adjust these dimensions. If you find that:

  • the fit is so tight that assembly is almost impossible; or
  • the fit is loose enough that some parts can move slightly along these dimensions (for example, the LRA can move slightly along its vibration axis inside the rotor),

then you can adjust these dimensions by modifying the source design.

Mechanical Assembly

Step 1: Attach the two bearings and the two inner shells to the rotor.

Step 2: Attach the motor pulley to the servo motor (using the short screws from the servo package).

Step 3: Pass the driving belt through the long slot in the shell, then mount the servo to the shell (using the long screws from the servo package).

Step 4 (Optional): install the two rubber O-rings to the outer shells. This step may be easier if you use tweezers and a small amount of glue.

Step 5: Fit the belt around the pulley and the rotor.

Step 6: Assemble the upper shell and the bottom shell using screws and nuts.

Electronic Assembly

Step 1: The wires on the Drake actuator (LRA) are very short when purchased (left), so extend them by soldering on additional wire (right).

Step 2: Install the LRA into the rotor. The arrow indicates the direction of the pulling sensation produced by the asymmetric vibration.

Step 3: Connect the LRA wires to the right-channel output of the audio amplifier board, making sure to observe the correct polarity. Connect the board to the PC's speaker output using a 3.5 mm audio cable, and connect a 5 V power supply to the board.

Step 4: Connect the servo to the driver board with extended wires. For connector details, see the XL330-M077 Connector Information. Then connect the board to the PC using a USB-C cable, and connect a 5 V power supply to the board.

Modifying the Source Design

Coming soon.