Thursday 29 January 2015

USB Remote v1.30

Now it's time for new version of USB Remote app (update will appear on GooglePlay in a few hours). Here is an overview of most important changes:

Keyboard customization. 

It is now possible to enabled additional key sets on keyboard screen: 
Settings -> Choose visible key sets

you can also choose distance between the sets:
Settings -> Distance between key sets

Depending on your device and selected distance, you'll be able to fit different number of key sets:

Example 1:
8" tablet,
Small distance between key sets,
Media buttons + Macro buttons + Lock keys + Navigation keys + Punctuation characters + Number keys
Mousepad enabled

Example 2:
8" tablet,
Very large distance between key sets,
Media buttons + Macro buttons + Lock keys + Navigation keys + Number keys,
Mousepad won't fit.

Example 3:
4.3" phone,
Small distance between key sets,
Lock keys + Navigation keys + Punctuation characters + Number keys,
Mousepad disabled. 

Example 4:
4.3" phone,
Small distance between key sets,
Navigation keys + Switchable row,
Mousepad enabled.

Macro buttons.

You can assign macros to M1-M8 buttons set, which can be enabled for keyboard screen. After recording a macro, rename it to:

  • m1.txt to assign it to M1 button,
  • m2.txt to assign it to M2 button,
  • ...
  • m8.txt to assign it to M8 button.

All macro files must be stores in /USBRemote/Macros/ directory.

Sound & Vibrations.

Sound and vibrations feedback can be enabled for keyboard screen:
Settings -> Play sound when key is pressed,
Settings -> Vibrate when key is pressed.

Note: vibrations will not work with most tablet devices.

Sleep, Power and USB host resume.

These three new buttons are now available on Media screen. Sleep and Power buttons behavior will depend on your OS and settings. Resuming USB host from sleep/suspended state will work only if following conditions are met:

  • InputStick is flashed with firmware 0.97 or later,
  • USB host supplies USB power when in sleep/suspended state,
  • OS allows this device to wake the computer.

Auto-connect bug fixed.

When auto-connect is enabled and user cancels "Select InputStick device" dialog, without selecting any device, USB Remote will no longer make another auto-connect attempt.

Tuesday 27 January 2015

InputStickUtility 1.20

New version of InputStickUtility is ready and will be uploaded to GooglePlay later today. Here's a quick preview:

Firmware Upgrade.

After InputStickUtility is updated, you will be notified about new firmware version during next connection attempt:

You can learn more about changes introduced in latest firmware from previous post. Firmware upgrade process looks following way:

click "Flash" when ready:

Flashing new firmware should take approximately 30 seconds. Do not interrupt this process, unless it gets stuck for a long period of time. In such case, you can always start over by manually going to Firmware Upgrade: select your device from the list:

click "more" (3 "dots" icon):

and choose "Firmware upgrade" option.

Note: if device was password protected, password will be restored after the upgrade process is finished.

Managing security and configuration settings.

Security screen is slightly different than before:

Note: some options will not be displayed if you are not using the most recent firmware.

Preventing unauthorized access.

In order to prevent unauthorized person form settings password or changing pairing PIN from default value (1234), firmware v0.97 introduces "lock" mechanism:
  • if InputStick IS NOT password protected, you will be allowed to set password or change pairing PIN only if connection was established during first 30 seconds after plugging InputStick into USB port. 
  • if password protection IS already enabled, no other protection is necessary and "lock" will not be used.
The point here is to make sure that no one will remotely set password or modify PIN if you leave InputStick without password protection, plugged into USB port.

  • Plug (0m0s), Connect (0m15s) - InputStick is unlocked. You can set password or PIN as long as you are connected.
  • Plug (0m0s), Connect (0m45s) - InputStick is locked.
  • Plug (0m0s), Connect (0m15s) - InputStick is unlocked. Disconnect (2m10s). Connect (5m20s) - InputStick is locked.

If you get "Device is locked" message, just follow the instructions:

  • Disconnect
  • Unplug InputStick.
  • Plug InputStick.
  • Connect again.

Manage password.

"Manage password" allows to enable or disable password protection and additional data encryption (AES-128). Device (InputStick) and application passwords can be set or removed separately or both at the same time. Both passwords must match. If you use your InputStick with more than one Android device, you must use one of them to set or remove both device and app passwords. On all other Android devices you will need to respectively set or remove app password only.
If access to your Android device is sufficiently protected (lock screen pattern etc), you can consider storing plain text version of your password. It may come in handy when you need to enter the password on other Android device later on.

Restore defaults.

This option allows to remove password protection and all settings. Use it in case when you forget your password. You will be asked to use your physical keyboard to set specified state of keyboard LEDs (NumLock, CapsLock, ScrollLock). After 1 minuter, InputStick will verify state of the LEDs. There are 10 such steps, after completing all of them, password and all settings will be erased and InputStick will be locked. You must unplug it form USB port before using it again.

Note: this will work only on Windows based PCs, since Linux and OS X keeps state of keyboard LEDs separate for each keyboard (InputStick will not be able to detect NumLock, CapsLock or ScrollLock changes made by user using physical keyboard).

Change pairing PIN.

New firmware allows to change Bluetooth pairing PIN. 

New PIN must consist of exactly 4 digits. Settings new PIN will be confirmed by toggling keyboard LEDs, after that InputStick will be locked. You must unplug it from USB port and plug again. After that, during next connection attempt you will be asked to enter new PIN. PIN can be stored in the app, just in case when you need to pair the InputStick with other Android device later on.

Reset pairing PIN.

This option will display instructions on how to reset pairing PIN in case you forget it:

Note: this will work only on Windows based PCs, since Linux and OS X keeps state of keyboard LEDs separate for each keyboard (InputStick will not be able to detect NumLock, CapsLock or ScrollLock changes made by user using physical keyboard).

USB Configuration.

Here you can modify some parts of USB descriptors:

This allows to make InputStick pretend to be some other hardware. First, you should get data from USB "Device descriptor" of the other device. Use this only if you know what you are doing! After uploading new settings, InputStick will simulate USB disconnect event and will reconnect in 3 seconds.
Note: at this moment it is not possible to modify configuration or report descriptors, also USB endpoints are always assigned following way:
  • keyboard interface: endpoint 1 (IN/OUT),
  • mouse interface: endpoint 2 (IN),
  • consumer control interface: endpoint 3 (IN).

Thursday 22 January 2015

Firmware 0.97

Firmware 0.97 is now ready. It will be available within next 1-2 days with upcoming InputStickUtility update. Here is a list of most important changes:

  • Supports both Bluetooth 2.1 and Bluetooth 4.0 modules. InputStick with Bluetooth 4.0 module will be available really soon, more details will be posted a bit later.
  • Pairing PIN can be changed.
  • Pairing PIN can be restored to default value (1234): press NumLock, CapsLock or ScrollLock 15 times during first 30 seconds after plugging InputStick into USB port (Windows only).
  • Fixed bug when mouse interface did not work when InputStick was plugged into USB port before turning on USB host.
  • Added gamepad functionality: 4 axes, 16 buttons.
  • Added USB resume functionality (wake up USB host). USB host must supply power when in suspended state.
  • Text can be typed up to 4 times faster.
  • USB PID and VID can be modified by user.
  • Authentication attempts limited to 1 every second to prevent bruteforce attack.
  • If password protection is not enabled, device will be locked 30 seconds after being plugged into USB port. When locked, it will be not possible to: set password, change PIN or upgrade firmware. Other functions will work normally.