How do I set up IRUSB? Where are the setup instructions? You need to follow the quick setup instructions on the IRUSB webpage
How does IRUSB control the FireTV or Shield. Is it IR? IRUSB provides full 2 way IP control of your Android device (FireTV or Shield). It will ALSO give you the ability to send and receive IR to control OTHER devices. It is single device which provides TWO functions independently.
No device ID. What do I do? For FireTV, you need OTG cable, and DISABLE ADB in the developer options. For Shield, DISABLE USB debugging in the developer options. Then follow install instructions.
How do I verify the IRUSB device is working? You need to obatin device ID first. You can then use the "send IR" button in the irusb app to verify the IRUSB is working (one side of the device will flash the led when the button is pressed). If that is working, then the problem is a network connectivity issue between Control4/RTI and Amazon/nVidia device.
I installed the Control4 and/or RTI driver, it doesn't control IRUSB? You need to download and install the IRUSB app from Amazon/Google app store BEFORE installing the driver. Follow install steps.
How do I get your free drivers for Control4 and RTI? All our free drivers are available for download here.
How do I connect the driver for Control4 or RTI to IRUSB? Enter the IP address of the device IRUSB is attached to (ie. Fire TV, Shield, et). Use a static IP on that device.
There is no multiple instance driver in RTI for IRUSB? You can use an instance of the driver for each IRUSB with the unique IP address from the Amazon/nVidia device they are attached to.
What does the 'HOLD' parameter on the RTI driver commands do? If you set the HOLD parameter to TRUE and your IRUSB is on firmware v225+, then that key press will be a 'long' press instead of a normal 'short' press. This is to activate special 'long' press functions on keys. To prevent the 'long' press issue, you need to set the HOLD parameter to FALSE in your RTI programming. Refer to the IRUSB RTI driver documentation for more details.
I did a soft reboot of the Fire TV, but IRUSB did not auto start after the reboot. Hard reboot (power cycle) will auto restart IRUSB.  If your device loses power, IRUSB will auto start 1 minute after it boots.  Soft reboots (from the menu) will not auto restart IRUSB on some platforms (such as FireTV).  Note that soft reboots are not part of typical operation.
Where do I find the QLAUNCH commands?
The App I want to launch isn't in the list.
How do I write my own QLAUNCH commands?
See the information below regarding how to find and construct the QLAUNCH command for any app
One of the mini drivers or app launch commands don't work (app doesn't launch). The App url has likely changed.  Please see the instructions below for QLAUNCH commands to find the new URL.  Please notify Video Storm via our ticket system with the correct URL if you would like the standard drivers updated.
I have an app that I can't properly control the menus of. This can occur if you are using non standard Android box which uses apps that were designed only for tablets (touch screen interface).  You can resolve this by sideloading the proper version of the app that was designed for keyboard / remote control (all Android TV apps are designed for keyboard control).
I updated to Control4 OS 3.0, but now my mini drivers don't launch Please update your IRUSB driver to the latest version from our website.
How do I know which Android device I have? Please use Google to find device manufacturer information or versions.

Don't see the answer to your question? More answers are in our online Knowledge Base.

QLAUNCH command creation

QLAUNCH commands use standard Android Intent URLs with the following format:

QLAUNCH android-app://PACKAGE_NAME#Intent;component=COMPONENT_TO_LAUNCH;end

Both the PACKAGE_NAME and COMPONENT_TO_LAUNCH names are required.  You can find these by looking at the ADB log output when manually starting any app.  You can filter the log with cmp= to find these (after manually launching the app using the gui).

ADB logcat instructions for Windows

  1. First download the ADB tools for windows from Google  Download link
  2. Unzip that zip file is an easy to find folder.
  3. Run CMD.exe (command line tool).  You can find this by typing CMD in the windows search box in the lower left corner.
  4. Change directory to the folder you unzipped the tool at  (cd to change directory, dir to list files)
  5. Make sure ADB (USB / network debugging) is already enabled on your Android device
  6. Connect to your Android device using:   adb connect ip_address_of_device    (adb connect
  7. You must "allow device connection" on the Android device screen
  8. Enter the connect command again:  adb connect ip_address_of_device    (adb connect
  9. Start the logcat filtered for components:  adb logcat | find "cmp="
  10. Start the app or apps you need the URL for on the Android device.
  11. You will see a line printed on your screen for each app you start.  Example:

11-30 18:04:36.364 1602 1613 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000} from uid 10124 on display 0

The BOLD text above is the COMPONENT_TO_LAUNCH for that app.  The PACKAGE_NAME is the first part before the "/", in this case

The full QLAUNCH url for this example would be

QLAUNCH android-app://;;end

  1. CTRL-C to stop the logcat when done
  2. adb disconnect to disconnect from the android device

If Android 7.0+, here is an easier method:

  1. Steps 1-8 above to get ADB connected
  2. Run the command:  adb shell pm list packages -f
  3. That command will give you a list of ALL the apps installed on your device.  The PACKAGE_NAME for each app is after ".apk="
  4. Get the COMPONENT_TO_LAUNCH using the desired PACKAGE_NAME and the resolve-activity cmd

Deep links:

IrUSB support several methods to link directly to programs or channels within apps. This is known as 'Deep linking'.

  1. Using the web site URL syntax
  2. Using the 'intent://' URL syntax
  3. Using the 'android-app://' URL syntax

Web site URL syntax (try this method first):

This method is the most straightforward. You simply find the web url syntax for your title, video, or show. For Youtube, examples are:

Remember to include the 'www' in the address!

'intent://' URL syntax:

This method is better if your device can't figure out which app to send the web url to. You are adding the package name as well as the web url. For Youtube, examples are:

Remember to include the 'www' in the address! Also keep in mind the package name will be different on Amazon devices.

'android-app://' URL syntax:

This method is just a different format of the 'intent' type. The following examples are for Netflix which requires extra data (see below):

Keep in mind the package and component names will be different on Amazon devices.

Extra Data syntax:

Some apps require sending 'extra data' in order to select content directly. Both intent types and android-app types support this.


The format of EXTRADATA is

DATA is usually a web url (http://host/path)

As there is no standard covering what values can be passed to different apps, Google is the best way to find information on what values are needed. 

For Netflix, the app requires S.source=30           (NETFLIXID is a unique value per title)

Further information on the Android Intent URL formats can be found at Android developer docs

Additional information can also be supplied in the app URLs (uncommonly used):