Raspberry Pi + RaspBMC = Awesome Media Center
So over the Christmas holiday, one of the gifts I’ve received was a small little device called Raspberry Pi. It was the only gift I asked for (only $35 bucks, what could go wrong?). This little device is actually quite impressive. I gotten the model B (which I think is all they sell now) which runs a 700 MHz ARM processor, 512 MB of RAM, 1080p30 HDMI output, Composite RCA video out, 3.5 mm stereo jack out, 10/100 RJ-45 Ethernet Port and 2 USB ports all running off of a micro USB power cable and uses a SD Card for storage.
Needless to say, the overall processor and RAM isn’t too much but is enough for playing with as it’s design for getting people back into programming and hardware creations with an ARM processor. But here’s the kicker, it also makes for a great media center!
XBMC is one of the more popular media centers that’s available and there’s 3 different flavors that was ported to the Raspberry Pi, once of which is called RaspBMC and is the one I’m currently running on. The installation was pretty straight forward as well. On a windows system, pop a SD Card into a SD Card reader, run the installer, select your SD Card and hit install, it pops the basic files it needs and formats the card in the proper format. Once you do that you pop the SD Card into the Raspberry Pie, connect it to an Ethernet connection, and power it up. It then goes through an installation without user interaction. Once everything came up, using a keyboard to navigate around (no mouse) was pretty smooth.
Now comes the question, what about my remote control? On my original media center setup I had an IR (Infrared) receiver that’s connected via USB to the front and it worked fine for how I use it and with what I had setup via the software that came with it but in this case since it’s Linux based and not Windows based I had no clue rather or not this same receiver would work or not. I gave it a try anyways and the media center’s device list sees it but can’t talk to it. Hmm.. I wondered what would work. I started doing some more research. One suggestion was to make your own using the GPIO pins. That’s where I also learned that it supports HDMI-CEC (High-Definition Multimedia Interface Consumer Electronics Control).
Wait, wait, CEC? Really? Then it dawns on me, this is a feature that allows devices connected on HDMI to control each other and my Sony TV is able to turn on my A/V (Audio/Video) Receiver (which is also a Sony) and when I turn off the A/V Receiver while keeping the TV turned on, the TV automatically switches the audio from the external speakers to the internal speakers so I started thinking, can my TV remote really control XBMC without an IR Receiver? Sure enough it does, that’s a good step in the right direction. So I tried all the buttons is this is what I found out.
So all the standard features works and every time I do channel up or down or use any of the channel numbers it takes me off of my video mode and onto actual TV but easily fixed by turning off that feature within the TV menus. But I still need to get the context window to open using the remote (so I don’t have to worry about pulling out the keyboard to press “C” to open the context window and put the old keyboard away) and able to go through the pages so I don’t have to go through one item at a time.
That’s when I looked at my A/V Receiver remote. I went ahead and pulled it out, batteries were dead (go figures since I hasn’t used it forever since I just use my smart remote) so put in new batteries and got it programmed for my TV. Now, the question is, does the same basic features still work? And does the TV pick up the 4 additional buttons that this remote has?
Yes, the TV does, in fact, pick up the 4 additional buttons (red, green, blue, and yellow) as XBMC tried to do something when I pressed those buttons. So the next question, does XBMC actually sees the buttons as their rightful color? Only one way to find out! Turn on debugging and watch the log via SSH! So off to SSH into my XBMC and ran a trail on it to get the latest log. Pressed the Yellow button, sure enough it sees the Yellow button. Tired it for the last 3 buttons and yes, the TV does get those buttons and forwards it to Raspberry Pi where the XBMC software is able to pick it up with their respectful colors.
Alright, that’s all great, I know that I have 4 extra buttons I can use now. So I just need to get those assigned to what I actually need them for. To test this out I made a new remote.xml file changing the global keys for only the red, green, blue, and yellow buttons and place them in the /home/pi/.xbmc/userdata/keymaps/ and restarted the media center. When I came up I tried those buttons again and sure enough it’s working, so my page up, page down, and context window works now with the remote.
So now that I know I can use that remote to control the functions, I want my smart remote to do all the work. One small problem, I can’t simply tell the remote to send the the color keys of the A/V Receiver to the TV since it’s just going to send it to the A/V Receiver. But wait, what if I told my remote to learn the code from the remote thinking it was for the TV? Time to bust out Logitech’s software and go through the learning mode and see how it comes out. So after I had it learned a couple of codes and tested it after I mapped only one of the keys, it worked!
So yeah, that was my wonderful adventure of trying to get everything working with this Raspberry Pi and it works great so far. Only thing I noticed is that there’s one 1080p file that causes it to restart but I think it’s mainly because it’s of a different type and trying to do way too much but so far so good. I’m still doing a lot of work on it along with getting my custom file services going and will talk about that as well once it’s all setup.No related links found