NO I WILL NOT “GIVE” you the software. I get dozens of people every single day asking me to give them the software, some even want source code. NO. This project have been abandon due to extreme technical dificulties in getting the code running on a phone, there is no easy way for users to install it. Also there is already software like this for sale. I am leaving this up purely to poke phone manufacturers into maybe supporting this themselves. I think it would be a great value-add for Nokia to do this.
Recently I saw an article on a USB Optical mouse that had been modded to include a Nokia Colour LCD Screen. This got me thinking, The screen was quite usefull but why go to all the effort of modding a mouse, why not use the whole Nokia?
Bluetooth connection, no cable
Standard Java code, simple to port to other phones
Selectable buttons on phone for mouse buttons
Normal or Flipped orientation for phone (right way or upside down)
Uses existing Nokia Sync software to transfer data
Standard Bluetooth mouse HID for no driver install!
Mouse over GPRS for PCs with net but no bluetooth
Display PC screen on Nokia phone
Many laptop owners carry a spare mouse because they dont like the built in control, or because they just like to use a mouse. This adds weight, things to remember etc when you go anywhere. Also, if you use somebody elses laptop you may not be able to use their pad at all! I often setup software for somebody else on a laptop and curse the wigglestick on the keyboard that they fumble on with because they are that slow anyway but it holds me up. If I had a mouse with me at all times that would be amazing. So, the NokiaMouse was born.
Most phones now have a camera and can run Java, there is no reason that some software couldnt be written to watch for movement in the camera, and translate that into mouse signals for the PC. Bluetooth could be used to send the data to the PC.
So there was my challenge, a java program that took multiple frames from the nokia camera, translated that into direction and speed and sent it to the PC as mouse movements.
I dont intend to release this code as im trying to develop the Bluetooth HID before any kind of release, but it means any laptop owner need not carry a spare mouse or use the crappy touchpad!
Things didnt go entirely smoothly of course. The first thing everybody is probably saying is, but the camera only shows black when its flat on the mousepad! You are of course right, Light is needed. My temporary solution is to hold the phone about .6cm above the pad, letting light in the side. My camera picks up enough to see at this distance.
The initial code didnt use bluetooth, but a usb cable to the phone as I wasnt sure about accessing the bluetooth interface directly in java or how to make a real BT Mouse HID so it would pair as if it was a mouse. For now custom driver code runs on the PC and the phone, and data is sent over a usb lead.
After giving up on the idea of a proper mouse HID I used the bluetooth to just link the phone as normal and send the data over the Nokia driver to a special driver on the PC again, this isnt as convenient as the original plan as it needs software on the PC as well as the phone, if I can be bothered ill develop a proper HID mouse bluetooth driver for the nokia, this would mean that it could be used on ANY bluetooth pc without installing software!
A lot of thought went into the interface. Originaly the phone was the right way up with the screen at the top, but this put the buttons at the bottom! Not a good shape for a mouse. So, the phone was inverted with the screen where your palm would rest. This makes the keypad available for buttons. Not surprisingly I used three buttons, Star, Zero and Hash (pound for US’ites). Originally I intended to make the volume up/down on the side into a scroll wheel but it seems that its just not positioned right when the phone is upside down, and I decided that left right buttons were more important than scroll wheel.
The pattern is important. A nokia camera is no where near as good as a proper optical mouse detector and needs a good pattern to look at. Something with high contrast pattern that isnt too fine because,
Focus! At this distance the focus is wrong because its too close. You can artificialy sharpen the image, but something with clean edges and well defined patterns works better than the grain on your wooden desk or a one colour mouse pad.
Selectable buttons! You can now choose what buttons do what. This makes it easy to configure to your liking.
Flip-ably X/Y axis! The phone will now work either way up.
Bluetooth is now working over the Nokia PC kit
This software is only tested working on my nokia at the moment, I hope to make it work with almost any phone with both java and camera, but of course the camera interface is different on other devices…