• 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 13
Bluetooth TiVo Slide Remote with QWERTY keyboard / keypad finally goes retail
#46
leoslion Wrote:Do you know if his patch made it in to the kernel? It's time to do a software upgrade (Ubuntu, Kernel, XBMC, VAAPI, etc.), Patchwork has been down for a few months now, and I'm hoping I don't need a custom kernel this go-around.

It's a long and winding story... ultimately I don't know if it made it into the kernel. There was some trouble getting it pushed upstream, though I don't know why. Jarrod split it into two separate patches - one that covered the remote and most of the buttons, and a second which covered support for the last 4 buttons.
Patch number one is here: https://patchwork.kernel.org/patch/718581/
Unfortunately patchwork is down, so I don't know if the patch ever landed. I don't know about the second patch - once patchwork comes back online we can search for it.

EDIT:
Did some searching. Patch #1 (gets everything but 4 keys working) went in on 5/18/2011: http://git.kernel.org/?p=linux/kernel/gi...8e5fc7c720

Patch #2 is discussed here:
http://www.spinics.net/lists/linux-input/msg17758.html
It has been submitted to the Linux Input list, but I found no evidence of it (drivers/hid/hid-tivo.c doesn't exist) in the latest 3.2 kernel source.

In summary, all keys except the 4 strange ones should work with kernel 3.0.9 and newer. To get the extra 4 keys, it's still a kernel patch Sad
Reply
#47
Ok. So you found out a bit more than what I found after about an hour of looking at the git trees.

I did find the reference to hid-tivo.c, googled it, and found Jarod's patches @ http://people.redhat.com/jwilson/misc/tivo-slide . Apparently, there were three of them.

1. 0001 (include.h) - Already patched.
2. 0002 (hid-input.c) - Already patched as you mentioned above.
3. 0003 (Kconfig, Makefile, hid-ids.h, hid-tivo.c) - NOT patched and targets 4 files.

It looks like I'm grabbing Ubuntu's Oneric kernel (3.0.X variant), patch, and building. I hope patchwork comes back so we can track patches in the future.

EDIT: If you're trying to compile using the patches above then you will need an extra patch not there.

1. open include/linux/hid.h
2. @ line 203 (under HID_UP_LOGICVENDOR), add
#define HID_UP_TIVOVENDOR 0xffff0000
3. save
4. compile
Reply
#48
I'm wondering how you guys where able to pair reliably with your tivo slide.

I'm able to pair with it with blueman, but after 10 minutes, the remote goes to sleep and while it sometimes reconnect, it's not always the case. And when it does reconnect, it takes nearly a minute to do so.

Just to note, I'm not using the supplied usb dongle because I could not make it to work.

I'm using bluez 4.96.
Reply
#49
goyman Wrote:I'm wondering how you guys where able to pair reliably with your tivo slide.

I'm able to pair with it with blueman, but after 10 minutes, the remote goes to sleep and while it sometimes reconnect, it's not always the case. And when it does reconnect, it takes nearly a minute to do so.

Just to note, I'm not using the supplied usb dongle because I could not make it to work.

I'm using bluez 4.96.
As I mentioned in a previous post, I don't use bluetooth at all on the host. You are not using the supplied dongle, so you are in uncharted territory as far as I know.
If you use the provided dongle, then it acts like a USB keyboard - and NOT a bluetooth device. You don't need any bluetooth configuration at all, and in fact I had to disable all bluetooth components in Ubuntu. The dongle talks to the remote via BT, but that is not exposed to the host in any way.
Reply
#50
I tried to use the USB dongle but it's not working on my linux box.

It is seen as a normal bluetooth dongle by linux, but when I press the physical button on the dongle, the dongle led never blink.

On my mac, I can use the USB dongle, when I press the button the led starts blinking after 1 second. On my mac the dongle is seen as a bluetooth dongle, and the remote is shown as paired via bluetooth when it is paired using the dongle.

UPDATE: I removed the bluetooth driver from the linux box, and now when I press the usb receiver button, I can pair the remote. But after a few minutes, the pairing is lost.
Reply
#51
Eden xbmcbuntu update:
I spent all day upgrading to 11.0 Eden, and thought I would share my experience. The easiest way to get this remote working is to:
1. remove bluetooth
- sudo apt-get remove bluez
- sudo apt-get remove blueman
- sudo rm /etc/init.d/bluetooth (this shouldn't be necessary, bluez uninstall is supposed to remove this)
2. disable bluetooth modules
- put these lines into a /etc/modprobe.d/blacklist* file:
blacklist btusb
blacklist bluetooth

At this point, you should be able to reboot, pair the dongle and remote (press Tivo+Blue on remote, then press dongle button), and use evtest to make sure the keys are working.
To get the keys working that are normally mapped strangely, I use keyfuzz. It's very non-standard, I think udev is a better way to go - but I haven't done that yet.

Side note: xbmcbuntu has a lot of unecessary packages with it. If you are using this remote, you don't need lirc for example - I highly recommend removing it.
As a follow up to my experiments today with Eden. There are two ways to use this remote, which has led us to lots of confusion. The two methods are:
1. as a USB keyboard. This means no bluetooth, it uses something called USB HID Emulation. The dongle talks via bluetooth to the remote, but it presents itself to the operating system as a USB keyboard. This is what I describe in my previous post, you need to completely disable bluetooth.
2. as a bluetooth keyboard. The dongle presents itself as a Bluetooth adapter to the operating system, and allows you to connect to the remote as a BT device. This is what most people are trying to do, and I found it quirky and unreliable. To do this I used blueman (which is based on bluez) to pair with the keyboard using PIN 0000. It works, but my experience was that it needed manual re-pair'ing after the remote timeouts (about 5 minutes), and every time you reboot your htpc.

I highly recommend method #1. The only drawback is that you can't use other bluetooth devices - which isn't a problem for me.
Reply
#52
Deinstalling bluetooth packages and blacklisting kernel module was the solution. It now works, thanks!
Reply
#53
One more note about this remote under Eden - there are a few keys that are not working. The good news is that the remote is recognized and works "out of the box" thanks to the kernel patches from Jarod Wilson. Bad news is that the "Tivo", "Thumbs Up" and "Thumbs Down" are all non-functional. I tried them out with evtest, and strangely enough they are all mapped to the exact same event:
Code:
Tivo button:
Event: time 1314577025.927747, type 3 (Absolute), code 40 (Misc), value 0
Thumbs Up button:
Event: time 1332900114.212816, type 3 (Absolute), code 40 (Misc), value 0
Thumbs Down button:
Event: time 1332900475.884858, type 3 (Absolute), code 40 (Misc), value 0

This event isn't even a keyboard keycode - it is for a absolute positioning device (like a Wacom tablet). Worse, all three buttons produce an identical event so even if we could catch the event and translate it, we still couldn't differentiate between these three keys!
Reply
#54
Thanks for the posting ... with this information I was able to get the tivo slide working with ubuntu 12.04 LTS.

I am having issues with remapping the channelup and down button (402 and 403).

I have modified the /etc/X11/xorg.conf and added the following lines but the remap is not working.. any ideas?

Section "InputClass"
Identifier "tivo-slide"
Driver "evdev"
Option "event_key_remap" "116=1 402=103 403=108"
MatchProduct "HID 150a:1201"
EndSection

here is the output from evtest:
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x150a product 0x1201 version 0x111
Input device name: "HID 150a:1201"
Supported events:
....
Testing ... (interrupt to exit)
Event: time 1334009379.183743, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0030
Event: time 1334009379.183752, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 1334009379.183755, -------------- SYN_REPORT ------------
Event: time 1334009379.319668, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0030
Event: time 1334009379.319676, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 1334009379.319683, -------------- SYN_REPORT ------------
Event: time 1334009383.325364, type 4 (EV_MSC), code 4 (MSC_SCAN), value c009c
Event: time 1334009383.325371, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 1
Event: time 1334009383.325373, -------------- SYN_REPORT ------------
Event: time 1334009383.517252, type 4 (EV_MSC), code 4 (MSC_SCAN), value c009c
Event: time 1334009383.517258, type 1 (EV_KEY), code 402 (KEY_CHANNELUP), value 0
Event: time 1334009383.517264, -------------- SYN_REPORT ------------
Event: time 1334009383.925032, type 4 (EV_MSC), code 4 (MSC_SCAN), value c009d
Event: time 1334009383.925039, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 1
Event: time 1334009383.925042, -------------- SYN_REPORT ------------
Event: time 1334009384.172884, type 4 (EV_MSC), code 4 (MSC_SCAN), value c009d
Event: time 1334009384.172889, type 1 (EV_KEY), code 403 (KEY_CHANNELDOWN), value 0
Event: time 1334009384.172895, -------------- SYN_REPORT ------------




Reply
#55
(2012-04-10, 00:11)jschimmoeller Wrote: I am having issues with remapping the channelup and down button (402 and 403).

I have modified the /etc/X11/xorg.conf and added the following lines but the remap is not working.. any ideas?
First, it's interesting that your evtest output for those buttons is so different than mine. I can only assume the linux kernel has changed quickly with regards to this device. Anyway, I think your problem is that X11 sucks Blush (see post #9)
X cannot deal with keycodes larger than 255, so it doesn't even see the button presses for those keys (codes 402, 403). You show the evtest output for those keys - my guess is if you ran xev instead, you would see nothing.
I got around this by doing the mapping outside of X, using a program called keyfuzz. I don't think this is a very good solution, but it does work.

As a note, you don't need to modify xorg.conf to do key re-mapping for xbmc anymore! If you look at the wiki page for keyboard.xml, it looks like Eden added the ability to do this. It will only work inside xbmc, but that's all we care about anyway Wink


Reply
#56
(2012-04-10, 02:23)teaguecl Wrote: my guess is if you ran xev instead, you would see nothing.

Yes, when I run xev i do see nothing ... crap!

(2012-04-10, 02:23)teaguecl Wrote: It will only work inside xbmc, but that's all we care about anyway

I was hoping that there might be something I was missing ... thanks for the quick reply.
Reply
#57
Okay, my remote came in the mail today and here's my impression: it functions well, but takes a little work.

1) Works out of the box (with the exception of a few buttons) with kernel 3.3.1.
2) I'm using the device as a usb keyboard, no bluetooth enabled at all.
3) I tried patching the kernel to make the extra buttons work a la this patch discussed earlier in this thread. It applied cleanly, and created a new kernel config option. However, it only managed to break the remote's function entirely. (does this patch only apply to bluetooth functionality?)
4) It is easy to remap buttons using udev:

Create this file: /etc/udev/keymaps/tivo-slide
Code:
0xC0041 0x1C #SELECT
0xC00F5 0X3F #SLOW
0xC0083 0x1C #ENTER
0xC006D 0X40 #ZOOM
0xC008D 0X42 #GUIDE
0xC009C 0x41 #CHUP
0xC009D 0x6D #CHDN
0xC006C 0x1D #A
0xC006B 0x3C #B
0xC0069 0X3D #C
0xC006A 0X3E #D
0xC00B6 0X0E #RETURN

Add this line to your udev rules: /etc/udev/rules.d/10-local.rules
Code:
SUBSYSTEM=="input", SUBSYSTEMS=="usb", ATTRS{product}=="BCM2070B0", RUN+="/lib/udev/keymap $name /etc/udev/keymaps/tivo-slide"

[Edit: I fixed the tivo-slide file above and now all buttons except the ones below work]

Of course, the tivo button, thumb buttons, and live tv buttons will be nonfunctional without a kernel patch.
Reply
#58
Thanks count_zero for the udev solution - that is much better than my current setup using keyfuzz. I am not surprised that the kernel patch didn't work - I am pretty sure the patch is very out of date. I'll have to do some digging and see what we can do to get the last four buttons operational.
Also, I created a wiki page for documenting all of our knowledge on this remote. http://wiki.xbmc.org/index.php?title=TiVo_Slide
Reply
#59
teaguecl,

Browsing git.kernel.org [1], it appears there are two versions of the tivo slide: 0x1201 and a BT-driven 0x1200. Patches for the second one are more recent, but I'm not familiar enough to say which kernel will end up supporting it (3.3 or 3.4 ?)

Can you provide output of lsusb?

[1] http://git.kernel.org/?p=linux%2Fkernel%...mit&s=tivo

Edit: there appears to be support for TiVo, Live TV, thumbs down and up buttons as well since february [2], so perhaps no patch is needed anymore?

[2] http://git.kernel.org/?p=linux/kernel/gi...634e6823e3
Reply
#60
My device is definitely the 1201 variant, I didn't know the other one existed. Any info on the differences? It looks to me like Linus pulled in the changes to support this remote on 4-20-2012, so all we need to do is upgrade our kernel to get it working! Does anyone know if they rebuild the kernel on the nightly or monthly release cycle builds?
lsusb for the device is:
Code:
Bus 003 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 003 Device 003: ID 150a:1201  
Bus 003 Device 004: ID 0a5c:4503 Broadcom Corp. Mouse (Boot Interface Subclass)
Bus 003 Device 005: ID 0a5c:2190 Broadcom Corp.

Verbose version:
Code:
Bus 003 Device 003: ID 150a:1201
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x150a
  idProduct          0x1201
  bcdDevice            1.00
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     336
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Reply
  • 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 13

Logout Mark Read Team Forum Stats Members Help
Bluetooth TiVo Slide Remote with QWERTY keyboard / keypad finally goes retail3