- Introduction
- Bill of Materials (BOM)
- 3D Printing Parts
- Critical Dimensions
- Mechanical Assembly
- Electronic Assembly
- Modifying the Source Design
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.
| 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 |
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 | ![]() |
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.
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.
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.
Coming soon.
























