DroidMote Server and Client F.A.Q.s

1) What is DroidMote Client ?

DroidMote Client is an Android application which you can control another Android device, a Windows pc or a Linux pc. It simulate a mouse, a keyboard, a multitouch touchpad, a real controller with 16 buttons and 6 axes and you can also remote control, with the touch profiles, games and apps that support only touch actions. The latter function, allows you to map the buttons and sticks of the gamepad with touches in specific locations of the remote screen. In this way you can play with all Android games, even those that do not support an external gamepad, but only touch actions.

2) What is DroidMote Server ?

DroidMote Server is an application that you can install on the device that you want control. It communicates with DroidMote Client over ethernet wifi or cable and send to the OS all the events that receive from the client. There are different versions of DroidMote Server, depending on your operating system. The main versions are three, one for Android, one for Windows and one for Linux, but i have also compiled it for Android x86 and for different Linux distributions for ARM processors.

3) What are the prerequisites of the DroidMote Server ?

For Android: you must have root permissions and the uinput module in the kernel.(96% of Android devices already have this module by default). For Linux: you must have in your kernel the uinput module. (to date, almost all distributions have it by default). For Windows: no particular prerequisite, you need only install the drivers provided with the server.

4) What are the prerequisites of the DroidMote Client ?

No particular prerequisite, work on all Android devices.

5) DroidMote Client connect to DroidMote Server for Android, but when i press a button nothing happen.

In this case you not have the uinput module loaded in the kernel (SOLVABLE). If you not have this module, not only DroidMote Server not work, but many others good programs and external devices. 96% of Android device especially all those with a bluetooth module, have already by default this module,and there is no problem. Some Android device not have the uinput module by default, especially the ALLWINNER A10, but it is very easy to find it and load it. Make sure you have this module or download and load it in your kernel with the command insmod, before testing DroidMote Server. See the nr. 31 of this FAQ.

6) How can customize DroidMote in Android ?

In the Server part you can edit the file /data/system/devices/keylayout/droidmote.kl for change all the keys, buttons and axis default actions. In the Client part you can create touch profiles with the application "Touch Profile Creator" for assign to the gamepad buttons and axis, touch actions to the remote device.

7) How can edit the customization file droidmote.kl ?

The droidmote.kl is automatically created in android device with version > 3.2. The file is stored in the folder /data/system/devices/keylayout but this folder in Android by default is read only. You can copy this file and put it in your computer or in different location of your android device, edit it and after the changes put it in the sdcard folder of you android device with the server installed. Go in settings of DroidMote Server, click on change keylayout and select the new kl file modified by you.

8) How can create a Touch Profile ?

You can create a touch profile with the app "Touch Profile Creator" that you can download from DroidMote forum at this location http://www.videomap.it/forum To create a touch profile is very simple, take a screenshot of your game or application, put the image on the app "Touch Profile Creator" and map the gamepad button and axis like in this video: http://www.youtube.com/watch?v=bN5jCXgEUfo

9) Where can I download the free versions of DroidMote Server and ask for support ?

For now, you can download all you need and ask for support at this location DroidMote Support Forum

10) On my Android device i not have the uinput module in the kernel how can i solve ?

You can compile this module by yourself from the source code of your kernel or request this to other users of your device community that have the same kernel version. Once obtained this file called uinput.ko , you must copy this file to your device in a system folder, make the permissions 644 and load the module with the command: insmod /folder-location/uinput.ko If you have an Android device A10 ALLWINNER, you can obtain this file reading this F.A.Q. nr. 33

11) I have an MK802 Android mini pc with original firmware, DroidMote not work.

Is simple, you must install a firmware with the uinput inside. At this location you can find one and all the instuctions Custom LiveSuit image built with uinput bundled - DroidMote with MK802

12) I not have a wifi router, can i control my tablet with my phone ?

Sure. You can establish a connection point to point between the two devices with the function Tethering / Portable Hotspot of your device. (you do not need bluetooth,the bluetooth is slow and cover small distances).

13) When i try to connect to the Server, the Client show the message "The Server is not reachable". What can i do ?

Be sure that the Client and the Server are on the same local network and have a valid ip of the same class. To be sure you can ping both the Client and the Server from your Pc. Control the ports on the Server and Client in the settings, the ports must be the same. As a last resort, to be sure that you not have network problems, try to connect the Client and he Server point to point with the function Tethering / Portable Hotspot of one of your device.

14) How to know, in Android, the scancodes that the Client send to the Server if i want replace it in droidmote.kl to make a custom action ?

To know which scan codes send the client, you can install in the server part the free tool Keyevent Dispaly from Goole Play.
Then follow these simple steps:
You can find the list of custom action to this android developer page:
http://developer.android.com/reference/android/view/KeyEvent.html

15) What are the default scancodes of the gamepad in Android ?

When in the Client setting's the checkbox "Arrow to Buttons" is checked, the default scancodes for the gamepad are:
  • Arrow up is scancode 314
  • Arrow down is scancode 316
  • Arrow left is scancode 317
  • Arrow right is scancode 318
  • Arrow up-left is scancode 312
  • Arrow up-right is scancode 313
  • Arrow down-left is scancode 288
  • Arrow down-right is scancode 306
  • A button is scancode 304
  • B button is scancode 305
  • X button is scancode 307
  • Y button is scancode 308
  • Z button is scancode 309
  • SQUARE button is scancode 310
  • CIRCLE button is scancode 311
  • TRIANGLE button is scancode 315

16) How are mapped the axes of the gamepad in Android ? (left stick, right stick and accelerometer)

  • left stick x is 0x00
  • left stick y is 0x01
  • right stick x is 0x02
  • right stick y is 0x05
  • accelerometer x is 0x10
  • accelerometer y is 0x11

17) How can change the default configuration of the left stick, right stick and accelerometer in Android ?

Edit in the Server part the file /data/system/devices/keylayout/droidmote.kl and refer to the axes part at the bottom of file. If you have a racing game or you want move the character with the accelerometer, you can change the defaul axes 0x10 and 0x11 with all you want.

18) I have the Server on an old version of Android that not support gamepad. How can I use the gamepad ?

Well, you have an Android version < 3.2 - Android from Honeycomb and later version support Gamepad. Your Server understand only keyboard actions, but you can use a little trick. Open the file system/usr/keylayout/querty.kl and edit it in this mode:
  • key 304 A
  • key 305 B
  • key 306 C
  • key 307 X
  • key 308 Y
  • key 309 Z
  • key 310 D
  • key 311 E
  • key 312 F
  • key 313 G
  • key 314 H
  • key 315 I
  • key 316 L
  • key 317 M
  • key 318 N
Now when you press a gamepad button you press a keyboard key, this is usefull for emulators and others games that support keyboard events.

19) How many DroidMote Client can connect at the same time to DroidMote Server ?

DroidMote Server accept ten Client at same time. You can play games with your friends or make presentations with many people. Another usefull thing is that you can create different touch profile for different Client, and every Client perform a different touch action on the remote screen. In Windows 8, for example, where the applications support multiple focus, you can share the same computer with many friends, to perform different touch actions in different applications.

20) I have DroidMote Server installed on Android version greater than or equal to honeycomb but not have the files droidmote.kl and droidmote.kcm How can i do ?

DroidMote Server at first installation copy this to files and others configuration files in the right folder. If you not have this files, you can uninstall and reinstall DroidMote Server or go in settings/apps of your device and clear the data of DroidMote Server and after this action restart the Server. If you have good root permissions and busybox installed, all the configuration files will go to the right place.

21) How to install DroidMote Server in Windows 8 64bit version ?

You can download DroidMote Server for Windows from this page DroidMote Support Forum. You must install first the drivers and after you can run the server droidmote.exe followed by port and password, droidmote.bat automatically start droidmote.exe on port 2302 and password "password". To install DroidMote Server on Windows 8 64bit version, you must disable driver signing, therefore follow this instructions:
  • 1) From the Metro Start Screen, open Settings (move your mouse to the bottom-right-corner of the screen and wait for the pop-out bar to appear, then click the Gear icon).
  • 2) Click ‘More PC Settings’.
  • 3) Click ‘General’.
  • 4) Scroll down, and click ‘Restart now’ under ‘Advanced startup’.
  • 5) Wait a bit.
  • 6) Click ‘Troubleshoot’.
  • 7) Click ‘Advanced Options’
  • 8) Click ‘Windows Startup Settings’.
  • 9) Click Restart.
  • 10) When your computer restarts, select ‘Disable driver signature enforcement‘ from the list.
  • 11) open cmd (command prompt) as administrator.
  • 12) go to the driver folder.
  • 13) for installation type in cmd: install.
  • 14) after this type in cmd: bcdedit.exe -set TESTSIGNING ON.
*** If, when launch the server, you have a notification MSVCR100.DLL missing, install Microsoft Visual C++ 2010 Redistributable Package (x86) in any operating system you have 64 bit or 32 bit ***

22) How can i install DroidMote Server on Windows 7, Vista and XP 64bit version ?

You can download DroidMote Server for Windows from this page DroidMote Support Forum. You must install first the drivers and after you can run the server droidmote.exe followed by port and password, droidmote.bat automatically start droidmote.exe on port 2302 and password "password". To install DroidMote Server on Windows 64bit version, you must disable driver signing, therefore follow this instructions:
    DRIVER INSTALLATION:
  • 1) Go to the Start menu and type cmd.exe in the Search Bar. Right click on cmd.exe and choose Run as Administrator
  • 2) In the shell window, copy paste the following and hit Enter. (for disable driver signature verification)
  • bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
  • bcdedit.exe -set TESTSIGNING ON
  • 3) restart the computer
  • 4) Go to the Start menu and type cmd.exe in the Search Bar. Right click on cmd.exe and choose Run as Administrator.
  • 5) go to your driver folder x64 because you have windows 64 bit
  • 6) In the shell window, copy paste the following and hit Enter
  • uninstall.bat
  • install.bat
*** If, when launch the server, you have a notification MSVCR100.DLL missing, install Microsoft Visual C++ 2010 Redistributable Package (x86) in any operating system you have 64 bit or 32 bit ***

This video ca be usefull: http://www.youtube.com/watch?v=G6uJDkc0HZg
This guide can help you: How to Use Android Smartphone as Accelerometer Enabled Wireless Joystick for Computer Games

23) How can i install DroidMote Server on Linux ?

You can download DroidMote Server for Linux from this page DroidMote Support Forum. There are for now 3 different versions for Linux, one for generic Linux x86, one for ubuntu compiled for ARM-EL processor and one for ubuntu compiled with linaro toolchain for ARM-HF. The versions for ARM-EL and ARM-HF are for devices like your tablet or your phone or device like mk802 where you installed Linux instead of Android, or for those with dual OS.

To install DroidMote Server on Linux follow this instructions:
  • Disable the firewall on port 2302 (if you have one)
  • sudo su
  • chmod 777 ./droidmote
  • ./droidmote 2302 password
Now start the Client, put the ip that you see on the Server and click connect.

24) How can be sure to have all functions of DroidMote Server working in Android ?

If the mouse works, does not mean that all the functions of DroidMote work. To be sure, you should control to have all configurations files installed in the Server part. DroidMote Server at first start up with the help of Busybox install in your system same configurations files. (only in Android vesions > 3.0).
  • droidmote.kl in /data/system/devices/keylayout
  • droidmote.kcm in /data/system/devices/keychars
  • droidmotemt.idc in /data/system/devices/idc
  • droidmotegt.idc in /data/system/devices/idc
If you have all this files well you are ready. Otherwise, to solve, uninstall DroidMote Server, update or install Busybox from market (free), restat your device, reinstall DroidMote Server.

25) How can test if my Android device have the uinput module already loaded in the kernel ?

Is simple. Buy DroidMote Server, start it and connect the Client, move the mouse. If the mouse work, you have the uinput module, otherwise you can delete your purchase and automatically you are refunded. You have 15 minutes to test, but in essence it takes only two minutes to test if the mouse work. If you not have the module, you can solve reading other parts of this FAQ and is simple to find or compile this module. All the best Android devices already have this module inside, without this you can't connect many other external devices, and many good apps not work.

26) How can test if my Android device have the uinput module already loaded in the kernel without buying DroidMote Server ?

Open terminal emulator and look if you have /dev/uinput or /dev/input/uinput in this mode: (ATTENTION: Terminal Emulator and not a File Manager)
  • 1) Open terminal emulator
  • 2) su
  • 3) cd /
  • 4) cd dev
  • 5) ls
  • read if you have /dev/uinput
or
  • 1) Open terminal emulator
  • 2) su
  • 3) cd /
  • 4) cd dev/input
  • 5) ls
    read if you have /dev/input/uinput
It is understood that your device must have root permissions and BusyBox installed.

27) What are the basic gesture on the Touchpad of DroidMote Client ?

The Touchpad of DroidMote Client accept one and two fingers gesture.

28) What Soft Keyboard are supported from DroidMote Client ?

To write with the software keyboard of DroidMote Client, you must use the US/English keyboard on the Client and on the Server. Only latin character are supported. But you have an alternative to write not latin character and other language specific symbol, infact you can use the software keyboard of the remote device. When DroidMote is connected, by default you can't use the remote device software keyboard, but if you want this, you can set "phisical keyboard off" on the little keyboard icon that show on the notification bar when you are on a text edit. Alternatively you can enable the software keyboard in the "Settings / Language and input / Default" general settings when DroidMote is connected.

Volume Down + Keys simulate Ctrl + Keys

29) I experience disconnecting problem. What can i do ?

This is valid not only for DroidMote but with all programs that utilize the wifi connection. Go in Settings / Wi-Fi / Menu / Advanced / click on Keep Wi-Fi on during sleep and click on Always. This must be set on Client and on Server devices (already default setting for many devices). In this mode when your device go in standby not close the active connections.

30) I experience lag problem. What can i do ?

If you have a sufficient wifi signal, and your device not have software/hardware problem on the wifi network module, DroidMote not have lag. In the video below, i want show you that if you have a sufficient device, DroidMote work very well. I used Fruit Ninja as test because is the game that require the maximum movement speed.

31) I can't buy DroidMote Server from my Android device in Google Play. What can i do ?

Same Android devices, with not compatible build.prop or in same country that you can't purchase from Google Play or with not compatible Google Play app, can't download DroidMote Server. To solve this problem, you can buy DroidMote Server with another android device with the same google accont of your first device, and put the apk of DroidMote Server on your first device. The license is linked to the google account and not to the device.

32) The Accelerometer of DroidMote Client not work with my games. What can i do ?

The accelerometer work only in games that support real gamepad. Not all android games support a real gamepad. When a gemae support a real gamepad, you have two mode to use the accelerometer of your DroidMote Client with your remote game. First of all you must enable the accelerometer in the settings of DroidMote Client. First Mode: In the games Beach Buggy Blitz or Riptide Gp, for example, you go in the menu of the game in which you can customize the controller, select controller and assign to the left and right directions, the axis of the accelerometer by moving your phone on the left or on the right depending on which button you are assigning the action. Second Mode: Same games, support real gamepad but not have the in-game menu for controller customization. In this case you can also use the accelerometer of you DroidMote Client device in this game modifying the droidmote.kl configuration file and assigning to the accelerometer axis different value. For example values X and Y instead of the default HATX and HATY. For that reason, DroidMote Server, in the settings, have the ability to load a different .kl files.

33) From where can I download the uinput module for my Android device if this is not present ?

In the following list there are modules that you can test on your device divided by macro-category assigned based on the CPU and the Kernel version. To test the module, you must copy it to a system folder where you have other files with the .ko extension (ex. /system/lib/modules), assign 644 permissions to this file with the command chmod (ex. chmod 644 /system/lib/modules/uinput.ko), load the module in the kernel with the command insmod (ex. insmod /system/lib/modules/uinput.ko). Don't restart the Android device and test DroidMote. If the module works well, you can load it automatically when the device start in different ways, the most common is to edit a startup script in the folder /etc/init.d You can know the vermagic of your kernel opening a file with .ko extension, already present on your device, with a text editor and search the word vermagic, or with the command: modinfo -F vermagic your-module.ko If you are unfamiliar with linux commands, but you want to try one of these modules try to use this tool Module Loader

34) I can't control my game what can I do ?

The main concept, to control a game, is: If a game support a controller, you can play with DroidMote Client in the default controller simulation mode and you can use also the accelerometer. If the game is a multi-touch-only game, you can play with DroidMote Client in Gamepad2touch mode and you must load a touch profile for this game. Is the same thing, even if you hook an hardware controller on DroidMote Client. When you can't click on a menu game button with the mouse, you can use the touch mouse, that require a touch profile to be activated. (in the TouchMouse case only server screen size and orientation is important in the touch profile)

35) The DPAD CENTER BUTTON don't work. What can I do ?

This is not a DroidMote bug. This happen only in some rom of some rk3066 and rk3188 android mini pc. You can easily solve installing the rk3066.kl keylayout file in DroidMote Server. Open DroidMote Server, menu, settings, change keylayout and select rk3066.kl. But first you must download and copy the file rk3066.kl in the sdcard of the device with the server installed. Download the rk3066.kl from this forum post http://www.videomap.it/forum/viewtopic.php?f=4&t=642#p1464http://www.mediafire.com/?guffo1cg4b41ody An ALTERNATIVE way is to patch your libinput.so: Be sure that you can use adb from your pc and backup a copy of the original libinput.so, in case of errors you can restore the original one.

36) When sideload an apk i can't click on INSTALL button. What can I do ?

Use the directional arrows of DroidMote Client in the second tab to move on the install button and click on it with the central button. This is not a bug of DroidMote, but is a security policy of Android. Infact for all apps that have the permission to draw on top of other windows, Android disable the use of this button with the mouse. This special permissions that DroidMote Server require, is necessary to have the TouchMouse.


      





F.A.Q. in Progress....