iTMSRemote app for iOS and Android


This is an app for iPhone, iPad (all versions), and Android, that is a client for the TMSRemote TAP for the TMS Topfields. It WILL NOT WORK with SD Topfields such as the 5000/6000.

It is functionally equivalent to the PC client, except for support for Direct Mode. The TAP was written by FireBird and updates are managed through the TAPtoDate TAP or by downloading updates when available. Support for TMSRemote is generally managed through the Topfield Europe Forums here.

This page is to document the iOS and Android app that I've written to interact with the TMSRemote TAP.

Below is an image of the app on a tablet.

Below is an image of the app on a phone.


A pre-requisite is that your PVR is networked on your Home Network. You will need the ability to edit a file and FTP it to the PVR, usually done from a PC/Mac on the same network.

You must first download and install the TMSRemote TAP on the PVR. The easiest way to do this is if you have TAPtoDate installed then you just need to select it from the list of taps and install it. After installing the TAP you need to configure it by setting a port and a password which is usually done through a PC client (included in the TMSRemote TAP kit), or by directly editing the configuration file and copying it to TMSRemote settings area on the PVR. The installation guide for TMSRemote is documented in the TAP's file, readme.txt.

Installation of the iTMSRemote iPhone/iPad app is done through the Apple AppStore in iTunes. The Android version is installed via the Android Market - now Google Play.

Once installed, you should first press the Settings button and configure the PVR Address, the TMSRemote port and the TMSRemote password.

Now you're ready to begin. Press the Connect button.


Interaction with the iTMSRemote app is done through touching various parts of the app's display. There are 3 areas that will respond to touches (see tablet image above):

  1. The OSD (on screen display) image
  2. The remote control image
  3. The buttonbar at the bottom

The app notices when you rotate your device and will size itself accordingly. For example, on a small device such as a phone, it may be easier to use the app in landscape mode so that you can see some of the OSD while the Remote is visible.

Also, the app notices when the device suspends/resumes for power management and it will disconnect/re-connect automatically, if that option is selected.

Button Bar

The Button Bar consists of the following buttons in order from left to right:

  • Connect/Disconnect
  • Show/Hide Remote Control
  • Show/Hide OSD on PVR
  • Settings
  • Expand image

All buttons show in blue initially. When set (if they have an on/off) they will be grey. For example, when connected the Connect button will show as grey, and when disconnected it will be blue. Same for Show/Hide OSD - this button, when set, will stop the OSD being seen on the PVR, for example if you wish to do things on the PVR while others are watching a show. The other 3 buttons are "action" buttons and hence will not show as on or off.

The button bar can be swiped off the screen to make room for the OSD area if required. You do this by swiping down over the button bar from just above the button bar area. To bring it back, swipe up from the bottom edge.


First ensure that you have setup the PVR's address, port, and TMSRemote password via the Settings button. The port and password must match those set in the TMSRemote_Network.ini (see the TMSRemote TAP installation guide). The password is case sensitive so please ensure it is matched exactly.

Next, press the Connect/Disconnect button. The main screen area should show "Trying to connect to address..." and when connected, the button will be grey. It may take a while to connect or timeout if there is a problem with the setup. The timeout can be set in the Settings screen.

Once connected, you will see whatever the OSD is showing on the PVR, which could be nothing and in this case the screen will be black.

Show/Hide Remote Control

Touching this button will cause the remote control to slide in or out depending on where it currently is.

Show/Hide OSD on PVR

Press this button to set whether the OSD should be hidden on the TV. If the button is grey then the OSD will not be seen on the TV, and if blue it will be seen.


Press this button to bring up the prompts for settings for connection etc. See here for more.

Expand image

Press this button to cycle through 4 preset OSD image scaling settings. You can also scale the OSD by touching the OSD image area with 2 fingers and expanding.

OSD Image

The OSD image can be expanded or shrunk by using expand/pinch gestures with 2 fingers. It can also be moved around using one finger. You must be touching the OSD area to act on it. iTMSRemote will remember the position and size of the image between invocations.

The OSD image is totally black if no OSD (menu options) is showing on the PVR. It's only when you select certain menu options that the OSD displays and this will, in turn, be shown on the app.

The OSD image is only "live" when connected (the Connect button should be grey). When "live" it will show the active OSD dynamically, that is if something changes on the PVR you will see those changes on the app.

Remote Control Image

iTMSRemote supports several sizes and types of remote control images. The 2 types are the 2400/2100 type and the 5000. Additionally to support other machines such as the 7100+/7160/7170, you can select the 7100 remote, which is actually the 2400 remote image but sending 7100 compatible key codes.

The remote control type can be selected from the Settings button.

The remote control responds to the following types of touches:

  • Button presses. You can press on the remote button to send that key to the PVR and the output should be seen in the OSD image if applicable. Sometimes, especially with the small remote images, it may take a couple of presses to get on the button accurately.
  • Slide Up/Down. You can slide the remote control up and down to make it more visible or usable.
  • Swipe out/in. If you swipe from right to left across the remote image it will disappear off the screen. To bring it back you can swipe from right to left from the right edge or press the Show/Hide Remote Control button.


Settings contains a number of pages as seen below.


Settings List

Setting Description Default Value
Hostname/IP The DNS address (name or n.n.n.n) of the PVR None
Port number The port number that TMSRemote is listening on 1413
Password The TMSRemote passport - must be the same (case sensitive) as the one set for TMSRemote TAP blank
Remote Type 1=2400/2100 Large
2=2400/2100 Small
3=2400/2100 image sending 7100 keycodes
4=5000 Large
Boot Timeout # of seconds to wait for toppy boot request  
# of boot retries # of times a boot request will be sent before timing out  
TMSRemote timeout # of seconds to wait on connection attempt before timing out  
Use TFIR If set, the app will use the TFIR settings to connect first to the TFIR device before connecting to the PVR. If you don't have a TFIR device set this to False. False
TFIR IP address DNS address of the TFIR device  
TFIR Port number Port number used to connect to TFIR  
TFIR Response Timeout # of seconds to wait for response from the TFIR device  
TFIR retries # of times to try to connect to the TFIR device  
TFIR remote mode Type of remote TFIR will use to setup PVR with  
TFIR power on mode    
TFIR ping IP address to ping to check whether PVR is alive
TFIR ping MAC MAC address of PVR to check with