Introduction: 3D Mouse

There is no need now to have 2 separate devices in order to operate in 2D and 3D. We present a newly developed 3D mouse, which combines both 2D and 3D features. This instructions will guide through the process of creating your own 3D mouse, so called FabMouse.

Abstract

Our basic idea is to make a mouse which is not only usable for normal 2D interactions on a computer (like browsing, or using different programs). It is also able to interact with 3D objects, which the user manipulates with a 3D software. When both these interaction techniques are combined, the user has a mouse suitable for all programs without changing devices, which costs time and could limit the concentration.
Having this is mind, two aspects are of importance: The mouse housing and the hardware.

Mouse Housing
The mouse housing is not only suitable for normal mouse movements, but also comfortable for 3D interactions in the air. Therefore, the design includes formings to easily pick up and manouvre in midair, as well as being comfortable to grip and hold for a while. Holes on the side can support this. 
The mouse is also customizable to fit in all different formed hands of the users.

Hardware
The hardware includes not only a mouse sensor and additions for 2D interactions, but also additional hardware for 3D interaction. The hardware is small enough to fit in the housing as well as being light weigh for comfortable midair interaction.
For the 3D interaction, an accelerometer and a gyroscope are needed to get the data of height, rotation and therefore also movement of the mouse in midair. A bluetooth module is also needed to transfer the data to the computer/ system.

Step 1: 1st Step: Buy All Components

1.1 Bluetooth SMD Module
Datasheet and module at: http://www.watterott.com/de/Bluetooth-SMD-Module-RN-42-HID

1.2 IMU Fusion Board
Datasheet and board at: http://www.watterott.com/de/IMU-Digital-Combo-Board-6-Degrees-of-Freedom-ITG3200/ADXL345

1.3 Wattuino pro mini adv 5V/16MHz
Datasheet and sensor at:
http://www.watterott.com/de/Wattuino-pro-mini-3V3-8MHz

1.4 FTDI Breakout Reloaded
Datasheet and sensor at:
http://www.watterott.com/de/FTDI-Breakout-Reloaded-V11

1.5 Mouse
Mouse Logitech OEM RX250 Optical Mouse at
http://www.amazon.co.uk/Logitech-RX250-Optical-Mouse-Black/dp/B000QWICZW/ref=sr_1_fkmr0_1?s=computers&ie=UTF8&qid=1389792777&sr=1-1-fkmr0&keywords=logitech+mouse+rx250+810+00245

1.6 Breakout board for Bluetooth SMD Module
The following file can be used with the CNC milling machine to get the breakout board. Find needed file attached

Step 2: 2nd Step: Customize and Print the Housing

2.1 Customize housing
Go to Thingiverse for:

Customizable parts:
http://www.thingiverse.com/thing:255991
http://www.thingiverse.com/thing:255938

or

openSCAD source file
http://www.thingiverse.com/thing:257387

You can also find openSCAD source file attached

If you choose our components use the following values for the parameters:

Bottom part:
bottom_back_connector_position = 80
bottom_left_connector_position = - 46
bottom_right_connector_position = 44
bottom_length = 10.8
bottom_width = 6.8
bottom_height = 7
bottom_hole_radius = 25
bottom_hole_length = 1
bottom_hole_width = 0.5
screw_hole_size = 3

Top part:
ellipse_length = 10.8
ellipse_width = 6.8
ellipse_height = 7
thickness_of_the_walls = 0.08
screw_hole_size = 3
thumbsize = 20

With specified above parameters real sizes of the mouse: 121mm * 76mm * 40mm

2.2 Print housing
You can print it on your own 3D printer or search online for available 3D printing services

In order to print the housing on the home printers one can follow the instructions to http://hci.rwth-aachen.de/rostock, http://hci.rwth-aachen.de/reprap and http://hci.rwth-aachen.de/makerbot printers

Special offer for people who live Aachen, Germany:
To print at FabLab Aachen (our choice): http://hci.rwth-aachen.de/oeffnungszeitenfablabeng
book a meeting at http://www.meetme.so/fablabaachen
To print at Shapeways: http://www.shapeways.com/create?li=nav

Step 3: 3rd Step: Assemble Everything

3.1 Disassemble mouse

1) Unscrew three screws
2) Take upper part off
3) Only take the hardware in the picture above (+ cable)

3.2 Assemble Bluetooth module with Breakout Board

1) Connect RX with RX and TX with TX (to send commands to the bluetooth module)
2) Take the processor out of the Wattuino (to function as USB serial to Bluetooth breakout)
3) Open the serial monitor of the Arduino environment
4) Select “115200 baudrate”
5) select "no line ending"
6) Type “$$$” in the command line (Get response with CMD)
7) Switch to “newline”
8) Tye “E” to see information
9) Type “D” to see other information. Some of these settings will be changed in the following steps.
10) Type “S~,6” to switch to HID mode (Get response with AOK)
11) Type “R,1” to reboot (Get response with Reboot)
12) Type “$$$” in the command line (Get response with CMD)
13) Type “no line ending”
14) Type “SH,0220” to switch to mouse HID flag
15) Modify the service class with SC,xxxx (TODO check number)
16) Disconnect Wattuino from power
17) Put processor back in
18) Connect RX with TX and TX with RX
19) Load the mouse sketch onto the Wattuino by attaching the FTDI Breakout.
20) Connect the bluetooth 3DMouse on your Mac (from title bar)
21) Computer should recognize device as a mouse.

3.3 Assemble Wattuino with FTDI Breakout Reloaded
The FTDI Breakout should be mounted on the Wattuino on the only narrow side with five pins. Make sure that the component sides of the Wattuino and the Breakout Board are facing eachother.

Connect the FTDI board via mini usb to your computer. In the Arduino program, select the pro mini 5V board. Make sure the right serial port is selected too. Now you should be able to upload code to the wattuino. If you upload the blink sketch, you should see an LED on the Wattuino blinking.


3.4 Assemble IMU Fusion Board with Wattuino

3.5 Assemble housing with sensors
Insert the assembled board in the supporting structure from the bottom part. Then screw bottom and top part together (use 4 screws).

Congratulations! You now have your own FabMouse! Enjoy! :)

Customizable parts of the mouse are available on the thingiverse:
http://www.thingiverse.com/thing:255938
http://www.thingiverse.com/thing:255991
Link to openSCAD source file:
http://www.thingiverse.com/thing:257387

wiki page:
http://hci.rwth-aachen.de/fabmouse