Archive:TiVo Slide

From Official Kodi Wiki
Revision as of 01:18, 5 June 2014 by NedBot (talk | contribs) (Bot: Automated text replacement (- XBMC + {{name}} ))
Jump to navigation Jump to search

Tivo Slide

Full-tivo-slide-remote.png

Tivo Slide is made for use with the Tivo DVR, but can be used with an HTPC. It features both IR and Bluetooth, and has a slide-out QWERTY keyboard. It functions well under Windows, though a program to remap the keys is needed (EventGhost, Intelliremote, etc.). It is functional under XBMCBuntu 11.0 Eden, though there are 4 buttons which do not work. Support for these buttons is in the Linux kernel, the next release of XBMCBuntu should work fine.


Overview

The Tivo Slide is a wonderful remote control featuring:

  • Slide-out QWERTY keyboard
  • Backlit keys
  • RF (bluetooth) operation for most keys
  • Ability to program some keys (Volume/Power) to use IR

There is a lot of discussion regarding this remote on the XBMC Forums.

Prerequisites

Hardware:

  • Tivo Slide remote with supplied dongle

Software:

  • XBMCbuntu Eden 11.0

Configuration:

There are two modes of operation for this remote

  • USB HID Emulation [Recommended]
  • The dongle presents itself to the computer as a USB keyboard. It uses bluetooth to communicate with the remote, but does not expose bluetooth to the computer in any way - it is just a USB keyboard.
  • Bluetooth Device [Not Recommended]
  • The dongle presents itself to the computer as a bluetooth adapter. Through this adapter, you can connect to the remote as a bluetooth keyboard. This setup has been problematic, and therefore is not described here.

Configuring which mode is a bit of a mystery. Simply plugging into a XBMCbuntu 11.0 machine seems to put the dongle into bluetooth adapter mode. In order to force it into USB HID Emulation mode, you need to completely disable bluetooth on the computer, as described below.

Step by step walkthrough:

Disable Bluetooth

Disabling bluetooth is necessary to force the dongle into USB HID Emulation mode. There may be another way to do that, but so far this is the only method discovered. From a command line, issue the following commands:

  1. sudo apt-get remove bluez
  2. sudo apt-get remove blueman
  3. sudo sh -c "echo 'blacklist btusb\nblacklist bluetooth' > /etc/modprobe.d/blacklist-tivoslide.conf"
  4. sudo reboot -now

Pair Remote and Dongle

You can now pair the remote with the dongle as described in the manufacturer documentation

  1. On the TiVo Slide remote, press and hold the TiVo button and the blue "B" button simultaneously until the activity indicator light blinks blue
  2. On the dongle, press and hold the button until the LED starts blinking
  3. After a few seconds, the remote's activity light will blink rapidly 5 times and then go off if pairing is successful

Test with evtest

Optional - instructions need to be written!

Re-map Problem Keys

There are several reasons why you need to re-map keys on the Tivo Slide remote. First, due to a limitation of X.org no keycodes with values larger than 255 can be used. There are several such keys on this remote. Therefore they need to get re-mapped from large keycodes (>255) into smaller ones so that applications like XBMC can use them. Second, you may want to re-map some keys to do something more useful than their default. The proper way to re-map your keys is using the Linux udev system. To do this:

  • Create this file: /lib/udev/keymaps/tivo-slide
  • 0x000C0041 enter     #SELECT
    0x000C0069 f2        #C (RED)
    0x000C006A f3        #D (GREEN)
    0x000C006B f4        #B (BLUE)
    0x000C006C f5        #A (YELLOW)
    0x000C006D f6        #ZOOM
    0x000C0082 f7        #INPUT
    0x000C0083 f8        #ENTER
    0x000C008D f9        #GUIDE
    0x000C009C f10       #CHUP
    0x000C009D f11       #CHDN
    0x000C00B1 playpause #PAUSE
    0x000C00B2 record    #RECORD
    0x000C00F5 stop      #SLOW
  • Add this line to the file: /etc/udev/rules.d/95-keymap.rules
  • SUBSYSTEM=="input", SUBSYSTEMS=="usb", ENV{ID_VENDOR_ID}=="150a", ENV{ID_MODEL_ID}=="1201", RUN+="/lib/udev/keymap $name /lib/udev/keymaps/tivo-slide"

Assign Keys To XBMC Functions

Use the file /home/xbmc/.xbmc/userdata/keymaps/keyboard.xml to assign keys to functions withing XBMC. Below is a recommended keyboard.xml, but you can customize this all you want.

<!-- Tivo Slide Keymap  -->
<keymap>
  <global>
    <keyboard>
      <prev_track>ParentDir</prev_track>
      <f6>PreviousMenu</f6> <!-- ZOOM = previous menu -->
      <f10>VolumeUp</f10>   <!-- CHUP = xbmc volume up-->
      <f11>VolumeDown</f11> <!-- CHDN = xbmc volume down-->
      <volume_up>Yellow</volume_up>     <!-- map volume keys to "do nothing" -->
      <volume_down>Yellow</volume_down> <!-- map volume keys to "do nothing" -->
      <f5>ActivateWindow(Videos,Files)</f5> <!-- A (YELLOW) = launch Video files -->
      <f4>ActivateWindow(Videos,TvShowTitles)</f4> <!-- B (BLUE) = launch TV Shows -->
      <f2>ActivateWindow(Videos,MovieTitles)</f2> <!-- C (RED) = launch Movies -->
      <f3>ActivateWindow(MusicFiles)</f3> <!-- D (GREEN) = launch Music files -->
    </keyboard>
  </global>
  <Home>
    <keyboard>
    </keyboard>
  </Home>
  <VirtualKeyboard>
    <keyboard>
    </keyboard>
  </VirtualKeyboard>
  <MyFiles>
    <keyboard>
    </keyboard>
  </MyFiles>
  <MyMusicPlaylist>
    <keyboard>
    </keyboard>
  </MyMusicPlaylist>
  <MyMusicPlaylistEditor>
    <keyboard>
    </keyboard>
  </MyMusicPlaylistEditor>
  <MyMusicFiles>
    <keyboard>
    </keyboard>
  </MyMusicFiles>
  <MyMusicLibrary>
    <keyboard>
    </keyboard>
  </MyMusicLibrary>
  <FullscreenVideo>
    <keyboard>
      <prev_track>SmallStepBack</prev_track>
    </keyboard>
  </FullscreenVideo>
  <VideoTimeSeek>
    <keyboard>
    </keyboard>
  </VideoTimeSeek>
  <FullscreenInfo>
    <keyboard>
    </keyboard>
  </FullscreenInfo>
  <PlayerControls>
    <keyboard>
    </keyboard>
  </PlayerControls>
  <Visualisation>
    <keyboard>
    </keyboard>
  </Visualisation>
  <MusicOSD>
    <keyboard>
    </keyboard>
  </MusicOSD>
  <VisualisationSettings>
    <keyboard>
    </keyboard>
  </VisualisationSettings>
  <VisualisationPresetList>
    <keyboard>
    </keyboard>
  </VisualisationPresetList>
  <SlideShow>
    <keyboard>
    </keyboard>
  </SlideShow>
  <ScreenCalibration>
    <keyboard>
    </keyboard>
  </ScreenCalibration>
  <GUICalibration>
    <keyboard>
    </keyboard>
  </GUICalibration>
  <SelectDialog>
    <keyboard>
    </keyboard>
  </SelectDialog>
  <VideoOSD>
    <keyboard>
    </keyboard>
  </VideoOSD>
  <VideoMenu>
    <keyboard>
    </keyboard>
  </VideoMenu>
  <OSDVideoSettings>
    <keyboard>
    </keyboard>
  </OSDVideoSettings>
  <OSDAudioSettings>
    <keyboard>
    </keyboard>
  </OSDAudioSettings>
  <VideoBookmarks>
    <keyboard>
    </keyboard>
  </VideoBookmarks>
  <MyVideoLibrary>
    <keyboard>
      <record>ToggleWatched</record>
    </keyboard>
  </MyVideoLibrary>
  <MyVideoFiles>
    <keyboard>
      <record>ToggleWatched</record>
    </keyboard>
  </MyVideoFiles>
  <MyVideoPlaylist>
    <keyboard>
    </keyboard>
  </MyVideoPlaylist>
  <ContextMenu>
    <keyboard>
    </keyboard>
  </ContextMenu>
  <FileStackingDialog>
    <keyboard>
    </keyboard>
  </FileStackingDialog>
  <Scripts>
    <keyboard>
    </keyboard>
  </Scripts>
  <Weather>
    <keyboard>
    </keyboard>
  </Weather>
  <Settings>
    <keyboard>
    </keyboard>
  </Settings>
  <MyPicturesSettings>
    <keyboard>
    </keyboard>
  </MyPicturesSettings>
  <MyProgramsSettings>
    <keyboard>
    </keyboard>
  </MyProgramsSettings>
  <MyWeatherSettings>
    <keyboard>
    </keyboard>
  </MyWeatherSettings>
  <MyMusicSettings>
    <keyboard>
    </keyboard>
  </MyMusicSettings>
  <SystemSettings>
    <keyboard>
    </keyboard>
  </SystemSettings>
  <MyVideosSettings>
    <keyboard>
    </keyboard>
  </MyVideosSettings>
  <NetworkSettings>
    <keyboard>
    </keyboard>
  </NetworkSettings>
  <AppearanceSettings>
    <keyboard>
    </keyboard>
  </AppearanceSettings>
  <Profiles>
    <keyboard>
    </keyboard>
  </Profiles>
  <systeminfo>
    <keyboard>
    </keyboard>
  </systeminfo>
  <shutdownmenu>
    <keyboard>
    </keyboard>
  </shutdownmenu>
  <submenu>
    <keyboard>
    </keyboard>
  </submenu>
  <MusicInformation>
    <keyboard>
    </keyboard>
  </MusicInformation>
  <MovieInformation>
    <keyboard>
    </keyboard>
  </MovieInformation>
  <AddonInformation>
    <keyboard>
    </keyboard>
  </AddonInformation>
  <AddonSettings>
    <keyboard>
    </keyboard>
  </AddonSettings>
  <LockSettings>
    <keyboard>
    </keyboard>
  </LockSettings>
  <ProfileSettings>
    <keyboard>
    </keyboard>
  </ProfileSettings>
  <PictureInfo>
    <keyboard>
    </keyboard>
  </PictureInfo>
  <Teletext>
    <keyboard>
    </keyboard>
  </Teletext>
  <Favourites>
    <keyboard>
    </keyboard>
  </Favourites>
</keymap>

Configure the IR keys

Some of the keys can be programmed to send IR commands instead of bluetooth. See the following resources for more information:

Issues:

Non-functional Keys

There are four keys that currently do not work. They require a Linux kernel patch to get functional - instructions on doing that are not yet available. The four keys are:

  • Thumbs Up
  • Thumbs Down
  • Tivo
  • Live TV

Skin Problems

The Tivo remotes are designed for use with the Tivo user interface, which is not very similar to any known XBMC Skin. This leads to some strange inconsistencies. For example:

  • Tivo has no "Stop" button, and therefore neither does it's remote. If I remember correctly, on a Tivo you hit "Left" to exit a playing video.
  • Tivo has no "Menu" button (which XBMC uses to bring up the Context Menu)
  • Tivo has a "slow motion" button, but XBMC doesn't support slo-mo.

Hopefully, someone will design a Tivo-like skin for XBMC!