Introduction: High Response Tactile Feedback Mouse

About: I am interested in designing something curious but functional. Please take a look at my summary page, https://shiura.com/dfab/index-en.html

Modified mouse that gives us tactile (haptic) feedback if the mouse cursor is on the links of web pages, objects and handles of the drawing software, etc.

  • Contrary to the existing vibration-based haptic feedback devices, it gives very high response and realistic feel to our finger. Its response time is below 30 milli second.
  • The host side program (for Mac) watches the shape of the mouse cursor to drive the solenoid. Therefore, this mouse can be used with any software with mouse cursor change.

Supplies

Step 1: Disassemble and Reverse Engineering of Mouse

  • Disassemble the mouse.
  • Measure here and there to design the body of the mouse. Especially, the dimensions around the optical sensor should be precise or the mouse cursor does not move.

Step 2: Design and Print the Mouse Body

  • design the mouse body so that the optical sensor, buttons and the scroll wheel work properly.
  • Arrange the solenoid. The pusher pin should touch the bottom of the left button.
  • To realize the high response of tactile feedback, the stroke of the solenoid should be shortened. It also lower the power consumption (low voltage). In my case, the solenoid does not move with 5V power source when the stroke is not shortened.
  • The STL files below are examples of mouse body design. Note that it can be used with DAISO 110yen mouse only.

Step 3: Soldering the Wires

  • Electric wire with 6 lines can integrate the wires of both mouse and solenoid. 4 lines for mouse (USB) and 2 lines for the solenoid.

Step 4: Assembly

  • Attach a long screw to the bottom of the upper body to adjust the stroke of the solenoid.

Step 5: Flash the Program to the Micro Controller

  • Change the source code to configure the port for controlling the solenoid (I used port 4).
  • Flash the program to your micro controller such as Arduino nano.
  • Memorize the name of the serial port device of the micro controller (such as /dev/cu.wchusbserial1440 ).

Step 6: Compile the Program to Watch the Shape of Mouse Cursor

  • Download the source code file, haptic.c
  • Rename the file name from haptic.c to `haptic.m`
  • Edit `haptic.m` to configure the name of the serial port device (such as /dev/cu.wchusbserial1440 ).
  • Compile the program using the command,
cc -o haptic haptic.m -framework Cocoa

Attachments

Step 7: Enjoy!

  • Connect two USB lines (one is for original mouse, and the other is for micro controller)
  • Check if the optical sensor, buttons and wheel of the mouse works properly
  • Run the sender program on your Mac. It starts the feedback.
  • To stop the feedback, close the terminal window of the sender program.

Step 8: (optional) Case for the Micro Controller and Amplifier

  • If you enclose the micro controller (Arduino nano) and amplifier board (ULN2003 driver board for 28BYJ-48 stepper motor), please use the STL files as follows.
  • In this case, the Arduino nano should be directly soldered to the driver board using D4-D7 pins.
Anything Goes Contest

Participated in the
Anything Goes Contest