Adding IR Remote Control Support to the Raspberry Pi

In my last post I took you through how I created a small portable media centre that I can easily take on holiday to hook up to the hotel TV.

To reduce the amount space it took up, I used a cheap USB keypad which could be used to control the media center. It worked really well & having something hard-wired meant I didn’t have to worry about a Bluetooth-paired device needing re-pairing.

However, what I then realised was it would be good to be able to use a spare remote control instead. I was using the OpenElec distribution and looked through their documentation for how to do this, but only found references to version 3 of the software (it’s on version 7) and how to get LIRC working with it. There were plenty of blog posts on hooking up IR support, but a lot of them were written 2-3 years ago, and the software has moved on somewhat.

Hardware Setup

What I did first was buy a suitable IR receiver. I chose the Vishay TSOP4838 (which costs less than £1) because of the voltage range (2.5-5.5v) and receiver frequency (38KHz). If you look at the datasheet for the product, you’ll see which pins should get wired up to the Pi;

Simply wire pin 1 to GPIO 18, pin 2 to GND, and pin 3 to a 3.3v power pin, e.g.

By using some short F-F jumper wires and a small cut in the side of the case, I was able to position the reciever neatly(ish) on the side.. it’s still easily removable, but you could integrate it into the case a bit more seamlessly than this ;)

Software Setup

Before this project I was using OpenElec, but had limited success getting the IR support working properly. I switched to OSMC which I’d read had better IR support through the main UI. I think I was actually on the right track with OpenElec, but I realised later that the old vintage Xbox remote I was trying to use wasn’t 100% working.

If you’re going to use a remote control that’s officially recognised, then you can jump this part about learning IR remote control codes.

Learning IR remote commands

The remote I found in the loft was an old DVD player remote which (unsurprisingly) wasn’t in the list of pre-recognised remotes in the OSMC installation. I needed to get the Pi to learn the IR pulses being sent out by the remote and map them to the Kodi functions.

1. First off, you need to telnet to the Pi. Username: osmc, Password: osmc.

2. Next you need to stop the LIRC service which is being locked/used by Kodi

sudo systemctl stop lircd_helper@lirc0

3. Now you can run the IR learn mode.. this will record what it finds to the config file you specify;

irrecord -d /dev/lirc0 /home/osmc/lircd.conf

4. Follow the on-screen instructions which will recognise your remote.

One observation I had was that this only worked properly if I stopped after the first prompt to press lots of keys on the remote.. if I completed the second stage, the key mapping didn’t work, e.g.

If I ignored the second phase & let it abort, the learn process worked

When it’s working, you’ll be able to enter the Kodi function (like KEY_UP, KEY_DOWN, etc) & map it to a key press on your remote;

Once you’ve mapped all the functions you want, we then need to move back to OSMC and tell it to use that config file we’ve just written.

OSMC Settings

In OSMC you need to do the following;

1. Disable the CEC service (via System Settings > Input > Peripherals > CEC Adapter), which seems to be needed for LIRC to work.

2. Now go into OSMC settings and pick the Raspberry Pi icon

3. Go into Hardware Support and enabled LIRC GPIO Support. You shouldn’t need to change anything if you connected the sensor to GPIO 18.

4. Now go back and select the Remote Control option.

5. Ignore the list of pre-installed remotes and select Browse;

6. Navigate to the folder where LIRC wrote your config file;

7. Confirm the change & reboot the box;

That should be it.. your remote should be able to control everything in Kodi.

Advertisements

Portable Raspberry Pi Media Center

We recently went on holiday and I took my laptop & VGA cable with me. It was my intention to hook it up to the TV and play some media on it to keep the kids happy on rainy days. However, It turned out the TV had the VGA port covered up by the wall mounting bracket, and my laptop doesn’t have HDMI.. so we ended up putting the laptop on a chair and watching videos from there; it did the job, but wasn’t ideal.

At home we have a Fire TV Stick that could run Kodi, but the problem with Fire TV is that it has to have an internet connection, otherwise it doesn’t work (you can’t even get to Kodi!). Tethering it to my phone isn’t an option, since there are poor mobile signals in a lot of the places we visit.

Next time I’m going to be more prepared, with a more compact and flexible setup consisting of a Raspberry Pi 2 running OpenElec (and Kodi) together with a set of cables allowing me to hook it up to pretty much any TV. The Pi 2 runs Kodi really well, and the OpenElec distribution boots really quickly & has good Wifi and BlueTooth support. I initially chose a compact/travel USB-based keyboard instead of Bluetooth in case OpenElec ‘forgot’ the keyboard and I’d have nothing to navigate the menus to re-pair it.

Cable-wise, I’ve got a 1m standard HDMI cable, which will be fine in most situations.. with a 2m HDMI extension lead if I can’t get the Pi near enough to the TV (some accomodation doesn’t have power sockets where you’d expect them). I’ve also got a RCA lead, with a SCART adapter as well.. so that helps if we get stuck with an older TV.

For media storage I’ve gone with a USB3 Flash Drive with a capacity of 64Gb, which gives us more to play with than the microSD card, and it’s super-fast for copying media from a PC. As soon as you plug in the flash drive, Kodi will show it in the menus.

So that’s it.. nothing groundbreaking or overly difficult to put together. The whole system is small enough to fit in a small travel bag & gives us a lot of flexibility when dealing with different hotels/accommodation. You may just find the TV accepts the USB flash drive and can play back whatever is on it.. but at least you’ll have all the gear you need if it doesn’t ;)

After I made the video, I bought a USB numeric keyboard from eBay for a paltry £2.. that’s compacted the kit even further, allowing it to fit in an old camera bag.

The keypad isn’t instantly recognised by Kodi, but an easy way to get it up and running is to use the Keymap Add-on. Attach a normal USB keyboard and the keypad at the same time.. start the add-on and use the keyboard to activate the remap process. From there, it’s dead simple to map the keypad to the different Kodi functions.

Here’s the full kit list;

1 x Raspberry Pi 2
1 x 8Gb MicroSD card
1 x 2m HDMI extension cable
1 x 1m HDMI cable
1 x USB numeric keypad
1 x RCA to SCART adapter
1 x 3.5mm plug to RCA lead
1 x 64Gb USB3 Flash Drive
1 x USB power supply + cable

Update 1:

Just got back from a week at Center Parcs (Woburn) and was really pleased to find a HDMI socket on the wall, and a power socket.. it made it super easy to hook up the Pi to the TV :)

Update 2:

We spent a week near Blackpool, and the accommodation we stayed in had a patch panel as well! Seems like they’re quite common these days :)

 

Streaming video from the Humax HDR-Fox T2 to Android and Blackberry Playbook

One of the nice features of the Humax HDR-Fox T2 is that it’ll stream your standard definition recordings over your network to DLNA clients. I’ve had a it streaming video onto a PC running XBMC, but wanted something more portable for catching up with some TV whilst I’m getting ready in the morning.

As long as your Android phone is relatively recent, there are a bunch of DLNA clients.. the one I’ve had the best results with is Skifta. Then I’ve got MX Player installed which will handle video playback. The thing I like about MX Player is the gesture control for skipping through the program (swipe across), and adjusting volume (swipe up/down).

I’m running that on a Samsung Galaxy S3, and it works really well. It’s just slightly too small when it’s across the room. It would be better on a tablet, and I have a Blackberry Playbook (from their developer programme).. the only problem has been the lack of a DLNA client.. until just recently, when I found KalemSoft Media Player.

The app is currently being sold at £5, which was a bit more than I’m used to paying.. but the reviews were almost all really good, so I gave it a go. Here’s the app running with my Humax HDR-Fox T2;

As you can see, it’s really fast to browse the folders and start playing back video. It even manages HD if you’re running the auto-decode package, although I had buffering issues when trying to play it back over my network.

KalemSoft do a PC service which will share all your video from there too; I’ve found it works really well.. better than TVersity, and the built-in Windows media sharing stuff, both of which seemed to take ages to index my stuff, and then didn’t even work well after that. Apparently it can be configured to share stuff out over the Internet (password protected too), but I don’t need that feature. It can also stream live TV if you’ve got a TV card.

Blackberry Playbook: Bargain 7″ Tablet

In the last few weeks the price of the Blackberry Playbook has plummeted further, to £169 in the UK from retailers such as PC World. At that price it deserved some research into what it offers & whether it’s worth a look. The tablet itself is solidly built, with a decent amount of processing power & good multi-tasking abilities. There’s an app store that offers a fair number of apps, including the obligatory Angry Birds, Plants vs Zombies, and useful stuff like free VNC clients.

The 7″ screen looks crisp & vivid, and isn’t as cramped as I’d imagined it would be. I’d viewed someone’s Samsung 7″ tablet so knew what to expect. Browsing the web on it is slick & fast, plus it’ll play Flash videos, so iPlayer, 4oD and other sites all work on it without a hitch.

The OS is soon to get v2.0, and that’s where things get even more interesting; that opens the Playbook up to the Android Market, allowing it to run a majority/proportion (not sure which yet!) of Android apps. OS2.0 will also offer MKV support, but what codecs are actually covered is unclear.

Built-in storage is limited to what you initially purchase (e.g. 16Gb), and there’s no SD card expansion. However, if you root the Playbook, there’s a method to add USB-host functionality, allowing you to attach USB flash drives.

A micro-HDMI connector allows it to mirror the display to a TV without proprietary adapters & it just works!

Here’s what you need if you want to hook it up to a TV (a few different cable lengths included):

Micro HDMI to HDMI adapter = £3.56

0.5m standard HDMI lead = £1.18
1.0m standard HDMI lead = £1.14
5.0m standard HDMI lead = £3.19

And here’s what you’d need to connect a standard USB flash drive

Micro USB to USB adapter (270 angle means it doesn’t clash with HDMI output) = £3.17
USB Female to Female adapter = £1.14

For the back of the car, I’ve gone for a generic headset mount that can also mount an iPad:

Universal tablet mount

And to protect it from scratches and minor droppage in the house I bought the official faux leather convertible case, which beats the hell out of the horrible case it ships with.

Faux Leather Convertible Case

After a few hours of research I knew it was a good deal, bought one & haven’t been disappointed. It *is* a bargain for what you get :)

Custom Firmware on the Humax HDR-Fox T2

After the untimely death of my Topfield box, and less than stellar performance of the 3view box, I ended up sending that back & buying the Humax HDR-Fox T2. Since I bought it over a year ago there’s been a huge amount of progress on a custom firmware which enables you to install ‘packages‘ that add a whole bunch of new features, including;

– Web-based interface for controlling the box, searching the EPG, etc.
– Smartphone optimised web interface
– Auto-filing script for placing series linked programs in designated sub-folders
– Remote scheduling interface for setting timers on the box remotely
– Recording trimming to cut off unwanted segments of recordings
– Custom TV portal (offering Sky Player support)
– And loads more!

There are some videos on YouTube that show a lot of these features in action, together with a guide showing exactly how to install it onto your box. It’s a simple, and reversible process & the guys that have worked on it have helped improve the features on the box no end!

Harmony 600 Replacement

Due to a clash with a toddler and my Harmony 555 all-in-one remote I bought a Harmony 600 in September last year. In the last month it’s been repeatedly rebooting/restarting. A new set of batteries sorts the issue out, but only for a couple of weeks, and then it starts happening again. There’s a thread on Logitech’s support site which talks about the problem, so it’s not an isolated issue.

The good thing is, that after raising a support ticket on Sunday, it only took a couple of message exchanges before they said it was faulty & shipped a new remote. They don’t even ask for the old one back, since they can de-activate it on their servers so that it can never be updated online.. pretty much rendering it useless, because there’s no way to update it without using their online app.

Kudos to Logitech for sorting this out so quickly! Really impressive.

Building a Zotac ION-based HTPC

I’ve been looking to replace my ageing Xbox which has reliably run XBMC for over 7 years with a box that can handle HD content, as well as acting as a NAS & download server. The Zotac ION box caught my eye, since the latest media center apps now support hardware acceleration for video playback & the nVidia ION GPU is supported.

Components

I bought the kit as a bundle from Mini-ITX.com and fitted a 32Gb SSD for the operating system, and a 1TB Western Digital Essentials HDD which would be attached via USB & powers down when not in use. The shopping list looks like this;

– Zotac ION-ITX-A Motherboard with Dual Core 1.6GHz Atom N330
– 2GB or 4GB DDR2 800 RAM included
– M350 Universal Mini-ITX Enclosure
(bundle costing £233 from Mini-ITX)

– OCZ Onyx 32GB SATA II 2.5in Solid State Disk
(about £50 from Amazon)

– 1TB Western Digital Essentials
(about £45 from Amazon)

OS

For the OS I wanted to use Windows 7; that’s what I’m most comfortable writing scripts + code for. The Linux distros for XBMC Live look pretty good, but there was too much of a learning curve involved for adding in the extra features I wanted.

Installing OS From USB

Since there’s no optical drive, I opted to install Windows 7 from a USB key. I actually used a 4Gb SD card from my camera & a SD card reader, and followed these instructions to make it bootable & have the Windows 7 installation on it. Installation went without a hitch.

Media Player

After installing the OS, I updated with the latest nVidia drivers, and started installing apps like XBMC. The latest Dharma release of XBMC supports hardware acceleration using DXVA2, however I was unable to get it working with 1080p content & gave up after a couple of hours. I then tried Media Portal which worked perfectly with whatever I threw at it. There’s a brilliant guide on how to configure Windows 7 and MediaPortal by Rhys Jones, which is useful to follow if you want to optimise your HTPC setup.

Remote Control

Next up was getting the remote control working correctly. I had a cheapo CyberLink remote, plus a Harmony 600.. I used the Cyberlink IR Reciever & mapped up keys into the Harmony 600. Some of the buttons worked, some didn’t. I ended up re-mapping the numeric keys to certain MediaPortal features using one of the plugins. I also re-mapped the MCE Green Button so that it runs MediaPortal (see this guide.. scroll to the Green Button heading).

Scripts

The HTPC also acts as a NAS + handles any downloads, so I’ve written a bunch of scripts to handle certain situtations.

– Timed execution of certain download tasks using Windows Scheduler. Making sure that the tasks don’t bring the HTPC out of sleep.
– Execution of scripts when the HTPC is brought out of sleep (like making sure MediaPortal is running)

Keyboard + Mouse Control

For times when I need a keyboard, I’m running Unified Remote on the HTPC and the client on my Android phone. This allows me to control most aspects of the HTPC via my phone, without having to buy extra hardware like a wireless mouse/keyboard.