Introduction
I have developed a full series of videos on the Beaglebone – an Embedded Linux device that is perfect for getting started and great for embedded Linux development. An alternative to the Beaglebone is the Raspberry PI – it is a great platform that is low cost and relatively powerful – however, it has one major advantage over the Beaglebone and that is in playing MPG4 and MPG2 video files as it has built in hardware decoders for these video formats. As a result my work with the Raspberry PI on this site, mainly discusses the use of the Raspberry PI for multimedia type applications.
The first use of the Raspberry PI here is in deploying XBMC on the Raspberry PI using the OpenElec Linux Distribution.
Building OpenElec for the Raspberry PI
In this video series I am going to explain how you can build a XBMC (xbmc.org) Media Player for a home television using the OpenELEC Linux distribution and deploy this on the Raspberry PI platform. This video starts from the very first steps and is aimed to be an introductory guide for those who are not used to compiling and building software under Linux.
Warning – Please make sure you have at least 15GB free on your building system and be warned that the compile could take up to 10-12 hours (or more) depending on the performance of your machine and the speed of your download link.
The Raspberry PI is a very low cost and small single-board computer developed in the UK by the Raspberry Pi Foundation. It is a powerful device and additionally it has hardware accelerated support for MPG4 and MPG2 decoding, making it a perfect choice for a home media centre.
[youtube id=”OHDddt4LhEk” width=”600″ height=”350″]
Video 1 – Building and Deploying XBMC and the OpenElec Linux Distribution
Just to remind me – the default username is root and the password is openelec.
Adding IR Remote Control to XBMC on OpenElec/Raspberry PI
This video demonstrates how we can add infra red (IR) remote control functionality to the setup using a cheap IR receiver that is connected directly to the GPIO pins of the Raspberry PI.
The three electronics parts used for this video are:
1. An IR Receiver the TSOP34838 (google that code with digikey, farnell, mouser etc.) For example – digikey part number 751-1386-5-ND ~1.41 ea.
2. A 100 ohm through hole resistor (any power dissipation) For example – digikey part number P100BACT-ND ~0.08 ea.
3. A 4.7uF electrolytic capacitor (any voltage) – please note the polarity on this component. The +ve lead (longer one) needs to be connected to the 3.3V line (red) and the -ve lead (shorter one) to the GND line (black). For example – digikey part number P5177-ND ~0.17 ea.
[youtube id=”QV_QmDKx0kQ” width=”600″ height=”350″]
For reference, here is my full lircd.conf file (/storage/.config/lircd.conf):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# # this config file was automatically generated # using lirc-0.8.0(userspace) on Fri Jul 28 02:45:39 2006 # # contributed by Lloyd Williams <binary_frog|chatcircuit.com> # # brand: SKY # model no. of remote control: URC 1650-00 B00 - 9RC16P-1014 Sky+ Rev 6 # devices being controlled by this remote: SKY+ DVB-S receiver & PVR # # Modified by Derek Molloy for the Raspberry PI OpenELEC Distribution # begin remote name SKY+_DVB-S bits 8 flags RC6|CONST_LENGTH eps 30 aeps 100 header 2691 890 one 427 460 zero 427 460 pre_data_bits 17 pre_data 0x3FF3 gap 20000 suppress_repeat 4 min_repeat 1 toggle_bit 0 rc6_mask 0x100000 begin codes KEY_POWER 0xF3 KEY_EPG 0x33 KEY_BACK 0x82 KEY_EPG 0x81 KEY_POWER2 0x0A KEY_INFO 0x34 KEY_UP 0xA7 KEY_LEFT 0xA5 KEY_RIGHT 0xA4 KEY_DOWN 0xA6 KEY_OK 0xA3 KEY_CHANNELUP 0xDF KEY_CHANNELDOWN 0xDE KEY_TEXT 0xC3 KEY_EXIT 0x7C KEY_AUDIO 0x7E KEY_REWIND 0xC2 KEY_FASTFORWARD 0xD7 KEY_PLAY 0xC1 KEY_PAUSE 0xDB KEY_RECORD 0xBF KEY_STOP 0xC0 KEY_RED 0x92 KEY_GREEN 0x91 KEY_YELLOW 0x90 KEY_BLUE 0x8F KEY_NUMERIC_1 0xFE KEY_NUMERIC_2 0xFD KEY_NUMERIC_3 0xFC KEY_NUMERIC_4 0xFB KEY_NUMERIC_5 0xFA KEY_NUMERIC_6 0xF9 KEY_NUMERIC_7 0xF8 KEY_NUMERIC_8 0xF7 KEY_NUMERIC_9 0xF6 KEY_NUMERIC_0 0xFF KEY_MENU 0x7F TV 0x7B end codes end remote |
Adding Connectors to the Raspberry PI Header
Ideally you need leads with a female header so that they can connect to the male header of the Raspberry PI. These are often referred to 0.1″ as there is 1/10th of an inch between each pin. In metric they are referred to 2.54mm spacing leads.
This is a very quick video guide to working with custom PCB connectors. I recently had to make a custom connector for my Raspberry PI, which has a bank of male headers. I looked at a few different options and in the end I decided I would invest in a crimp tool to create my own custom cables. While the experiences are still fresh in my mind I decided I would make this video in case that it will be of benefit as an introductory guide to others who are trying to do the same sort of thing. The video will discuss regular ribbon cables, fixed length pre-crimped cables, and custom crimped cables. I will also give a guide to how to crimp 0.1″ male and female PCB interconnect cables and describe what a proper crimp connector should look like.
[youtube id=”GkbOJSvhCgU” width=”600″ height=”350″]
These videos are not as education focused as other videos that I have presented; however, it does allow us to build a platform on which I can demonstrate how we can integrate electronics devices in the home; in fact, a smart television is the perfect point to act as an information hub for the built environment… and to do this, we may need to integrate sensor inputs from all over a house together and provide aggregated intelligent analysis of that information to the householder.