Philips Pronto

From MythTV Official Wiki
Revision as of 01:26, 12 September 2010 by Wagnerrp (talk | contribs) (remove links)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introduction

The Philips Pronto NG

The Philips Pronto line of remotes provide more flexibility than any other remote control I've seen. Unfortunately, this flexibility comes at a cost -- Pronto remotes aren't cheap. So when I first set up MythTV, I decided on a relatively cheap version, the Pronto TSU-3000, also known as the Pronto NG. This particular version doesn't come in full color (as some of the others do) but it certainly has enough bells and whistles to meet any demand I could throw at it. One thing I would definitely recommend is the optional charging base. (Philips markets the base as optional, but without it, the batteries will die every couple of days. It isn't really feasible to use the remote without a charger.)

While the Pronto allows the user to program any number of buttons in any configuration, and program each of those buttons to send any combination of signals, the options can be daunting.

To start, I spent some time figuring out what size of buttons works best, and how many buttons I could fit on a screen without accidentally hitting the wrong buttons. I also had to figure out what graphics are the most visible in grayscale. (Although many of the Pronto models have color LCD screens, mine provides 16-shades of grayscale.) This page details the end result, with a working Pronto.

Pronto NG PCF Configuration

I wanted a full-feature remote control, complete with keyboard characters (upper and lower cased), a number pad, and video control keys. After doing a considerable amount of playing, I created a template that gives all my components a common look and feel. I finally ended up with this Pronto NG PCF configuration, which can be viewed, edited, and demoed with freely downloadable software by following the "PC Software" link on the Philips main pages for the Pronto NG.

Lirc Configuration Files

After having an idea of how I wanted my remote control to work, I had to get it to actually send the correct signals to the MythTV box, and get MythTV to recognize said signals.

lircd.conf

The first thing I had to do was tell lirc how to receive commands from my remote control. Initially, I had planned to grab another remote control configuration file and modify it for my uses. But because a Pronto can have an unlimited number of buttons, I couldn't find any configuration files with enough hex codes to easily modify. So I grabbed the remote that came with my Hauppauge PVR-250 , and used lirc to read the hex code from one of its buttons. From there, I created my own hex set, which I programmed into both the remote control (in the PCF file) and into the following lirc.conf file.

# brand: lirc.conf
# model no. of remote control: Pronto TSU-3000
#

begin remote

name PhilipsPronto
bits 13
flags RC5
eps 30
aeps 100

one 0 0
zero 0 0
gap 200966
repeat_bit 2

begin codes
	Power 0x0000000000001F80
	ArrowUp 0x0000000000001F81
	ArrowDown 0x0000000000001F82
	ArrowLeft 0x0000000000001F83
	ArrowRight 0x0000000000001F84
	Action 0x0000000000001F85
	Menu 0x0000000000001F86
	Info 0x0000000000001F87
	Esc 0x0000000000001F88
	
	Underscore 0x0000000000001F89
	Zero 0x0000000000001F90
	One 0x0000000000001F91
	Two 0x0000000000001F92
	Three 0x0000000000001F93
	Four 0x0000000000001F94
	Five 0x0000000000001F95
	Six 0x0000000000001F96
	Seven 0x0000000000001F97
	Eight 0x0000000000001F98
	Nine 0x0000000000001F99

	Play 0x0000000000001Fa0
	Replay 0x0000000000001Fa1
	CommSkipFwd 0x0000000000001Fa2
	JumpBack 0x0000000000001Fa3
	Rewind 0x0000000000001Fa4
	FastForward 0x0000000000001Fa5
	JumpForward 0x0000000000001Fa6
	Stop 0x0000000000001Fa7
	Record 0x0000000000001Fa8
	Pause 0x0000000000001Fa9
	CommSkipBack 0x0000000000001Fae

	ChanHistory 0x0000000000001Fb0
	PIP_On 0x0000000000001Fb1
	PIP_Focus 0x0000000000001Fb2
	PIP_Swap 0x0000000000001Fb3
	Aspect 0x0000000000001Fb4
	CaptCardToggle 0x0000000000001Fb5

	Tab 0x0000000000001F00
	Ctrl 0x0000000000001F01
	Alt 0x0000000000001F02
	Space 0x0000000000001F03
	Shift 0x0000000000001F04
	Enter 0x0000000000001F05
	Backspace 0x0000000000001F06
	- 0x0000000000001F07
	. 0x0000000000001F09
	, 0x0000000000001F0a
	( 0x0000000000001F0b
	) 0x0000000000001F0c
	' 0x0000000000001F0d
	" 0x0000000000001F0e
	< 0x0000000000001F0f
	> 0x0000000000001F10
	/ 0x0000000000001F11
	\ 0x0000000000001F12
	~ 0x0000000000001F13
	! 0x0000000000001F14
	@ 0x0000000000001F15
	Hash 0x0000000000001F16
	$ 0x0000000000001F17
	% 0x0000000000001F18
	^ 0x0000000000001F19
	& 0x0000000000001F1a
	* 0x0000000000001F1b
	+ 0x0000000000001F1c
	= 0x0000000000001F1d
	[ 0x0000000000001F1e
	] 0x0000000000001F1f
	| 0x0000000000001F20
	: 0x0000000000001F21
	? 0x0000000000001F22

	F1 0x0000000000001F30
	F2 0x0000000000001F31
	F3 0x0000000000001F32
	F4 0x0000000000001F33
	F5 0x0000000000001F34
	F6 0x0000000000001F35
	F7 0x0000000000001F36
	F8 0x0000000000001F37
	F9 0x0000000000001F38
	F10 0x0000000000001F39
	F11 0x0000000000001F3a
	F12 0x0000000000001F3b

	a 0x0000000000001F40
	b 0x0000000000001F41
	c 0x0000000000001F42
	d 0x0000000000001F43
	e 0x0000000000001F44
	f 0x0000000000001F45
	g 0x0000000000001F46
	h 0x0000000000001F47
	i 0x0000000000001F48
	j 0x0000000000001F49
	k 0x0000000000001F4a
	l 0x0000000000001F4b
	m 0x0000000000001F4c
	n 0x0000000000001F4d
	o 0x0000000000001F4e
	p 0x0000000000001F4f
	q 0x0000000000001F50
	r 0x0000000000001F51
	s 0x0000000000001F52
	t 0x0000000000001F53
	u 0x0000000000001F54
	v 0x0000000000001F55
	w 0x0000000000001F56
	x 0x0000000000001F57
	y 0x0000000000001F58
	z 0x0000000000001F59

	A 0x0000000000001F60
	B 0x0000000000001F61
	C 0x0000000000001F62
	D 0x0000000000001F63
	E 0x0000000000001F64
	F 0x0000000000001F65
	G 0x0000000000001F66
	H 0x0000000000001F67
	I 0x0000000000001F68
	J 0x0000000000001F69
	K 0x0000000000001F6a
	L 0x0000000000001F6b
	M 0x0000000000001F6c
	N 0x0000000000001F6d
	O 0x0000000000001F6e
	P 0x0000000000001F6f
	Q 0x0000000000001F70
	R 0x0000000000001F71
	S 0x0000000000001F72
	T 0x0000000000001F73
	U 0x0000000000001F74
	V 0x0000000000001F75
	W 0x0000000000001F76
	X 0x0000000000001F77
	Y 0x0000000000001F78
	Z 0x0000000000001F79
end codes
end remote 

lircrc config

And finally, I created a custom lirc config file for the buttons I had created:

# ~/.mythtv/lircrc
#
# MythTV native LIRC config file 

# Channel Up
begin
prog = mythtv
button = ArrowUp
repeat = 3
config = Up
end

# Channel Down
begin
prog = mythtv
button = ArrowDown
repeat = 3
config = Down
end

# Channel History
begin
prog = mythtv
button = ChanHistory
repeat = 3
config = H
end

# Video Capture Card Toggle
begin
prog = mythtv
button = CaptCardToggle
repeat = 3
config = Y
end

# Left
begin
prog = mythtv
button = ArrowLeft
repeat = 3
config = Left
end

# Right
begin
prog = mythtv
button = ArrowRight
repeat = 3
config = Right
end

# OK/Select
begin
prog = mythtv
button = Action
config = Space
end

# Play
begin
prog = mythtv
button = Play
config = Return
end

# Stop
begin
prog = mythtv
button = Stop
config = Esc
end

# Escape/Exit/Back
begin
prog = mythtv
button = Esc
config = Esc
end

# Power Off/Exit
begin
prog = irxevent
button = Power
config = /home/mythtv/bin/mythpowerbutton.sh
end

# Pause
begin
prog = mythtv
button = Pause
repeat = 3
config = P
end

# Fast forward (30 sec default)
begin
prog = mythtv
button = FastForward
repeat = 3
config = Right
end

# Rewind (10 sec default)
begin
prog = mythtv
button = Rewind
repeat = 3
config = Left
end

# Skip forward (10 min default)
begin
prog = mythtv
button = JumpForward
repeat = 3
config = PgDown
end

# Skip backward (10 min default)
begin
prog = mythtv
button = JumpBack
repeat = 3
config = PgUp
end

# Record
begin
prog = mythtv
button = Record
repeat = 3
config = R
end

# Display EPG while in live TV,
# View selected show while in EPG
begin
prog = mythtv
button = Menu
repeat = 3
config = M
end

# Bring up OSD info
begin
prog = mythtv
button = Info
repeat = 3
config = I
end

# Change display aspect ratio
begin
prog = mythtv
button = Aspect
repeat = 3
config = W
end

# Seek to next commercial cut point
begin
prog = mythtv
button = CommSkipFwd
repeat = 3
config = Z
end

# Seek to previous commercial cut point
begin
prog = mythtv
button = CommSkipBack
repeat = 3
config = Q
end

# Backspace
begin
prog = mythtv
button = Backspace
repeat = 3
config = ?
end

# Enter
begin
prog = mythtv
button = Enter
repeat = 3
config = 
end

# Space
begin
prog = mythtv
button = Space
repeat = 3
config = Space
end

# Plus
begin
prog = mythtv
button = +
repeat = 3
config = +
end

# Minus
begin
prog = mythtv
button = -
repeat = 3
config = -
end

# Minus
begin
prog = mythtv
button = -
repeat = 3
config = -
end

# Underscore
begin
prog = mythtv
button = Underscore
repeat = 3
config = _
end

# Left Paren
begin
prog = mythtv
button = (
repeat = 3
config = (
end

# Right Paren
begin
prog = mythtv
button = )
repeat = 3
config = )
end

# Less Than
begin
prog = mythtv
button = <
repeat = 3
config = <
end

# Greater Than
begin
prog = mythtv
button = >
repeat = 3
config = >
end

# Tilda
begin
prog = mythtv
button = ~
repeat = 3
config = ~
end

# Exclamation
begin
prog = mythtv
button = !
repeat = 3
config = !
end

# @
begin
prog = mythtv
button = @
repeat = 3
config = @
end

# +
begin
prog = mythtv
button = + 
repeat = 3
config = + 
end

# =
begin
prog = mythtv
button = = 
repeat = 3
config = = 
end

# |
begin
prog = mythtv
button = | 
repeat = 3
config = | 
end

# ?
begin
prog = mythtv
button = ?
repeat = 3
config = ? 
end

# Numbers 0-9

begin
prog = mythtv
button = Zero
repeat = 3
config = 0
end

begin
prog = mythtv
button = One
repeat = 3
config = 1
end

begin
prog = mythtv
button = Two
repeat = 3
config = 2
end

begin
prog = mythtv
button = Three
repeat = 3
config = 3
end

begin
prog = mythtv
button = Four
repeat = 3
config = 4
end

begin
prog = mythtv
button = Five
repeat = 3
config = 5
end

begin
prog = mythtv
button = Six
repeat = 3
config = 6
end

begin
prog = mythtv
button = Seven
repeat = 3
config = 7
end

begin
prog = mythtv
button = Eight
repeat = 3
config = 8
end

begin
prog = mythtv
button = Nine
repeat = 3
config = 9
end

# Function Keys

begin
prog = mythtv
button = F1
repeat = 3
config = F1
end

begin
prog = mythtv
button = F2
repeat = 3
config = F2
end

begin
prog = mythtv
button = F3
repeat = 3
config = F3
end

begin
prog = mythtv
button = F4
repeat = 3
config = F4
end

begin
prog = mythtv
button = F5
repeat = 3
config = F5
end

begin
prog = mythtv
button = F6
repeat = 3
config = F6
end

begin
prog = mythtv
button = F7
repeat = 3
config = F7
end

begin
prog = mythtv
button = F8
repeat = 3
config = F8
end

begin
prog = mythtv
button = F9
repeat = 3
config = F9
end

begin
prog = mythtv
button = F10
repeat = 3
config = F10
end

begin
prog = mythtv
button = F11
repeat = 3
config = F11
end

begin
prog = mythtv
button = F12
repeat = 3
config = F12
end

# Alphabet a-z A-Z

begin
prog = mythtv
button = a
repeat = 3
config = a
end

begin
prog = mythtv
button = b
repeat = 3
config = b
end

begin
prog = mythtv
button = c
repeat = 3
config = c
end

begin
prog = mythtv
button = d
repeat = 3
config = d
end

begin
prog = mythtv
button = e
repeat = 3
config = e
end

begin
prog = mythtv
button = f
repeat = 3
config = f
end

begin
prog = mythtv
button = g
repeat = 3
config = g
end

begin
prog = mythtv
button = h
repeat = 3
config = h
end

begin
prog = mythtv
button = i
repeat = 3
config = i
end

begin
prog = mythtv
button = j
repeat = 3
config = j
end

begin
prog = mythtv
button = k
repeat = 3
config = k
end

begin
prog = mythtv
button = l
repeat = 3
config = l
end

begin
prog = mythtv
button = m
repeat = 3
config = m
end

begin
prog = mythtv
button = n
repeat = 3
config = n
end

begin
prog = mythtv
button = o
repeat = 3
config = o
end

begin
prog = mythtv
button = p
repeat = 3
config = p
end

begin
prog = mythtv
button = q
repeat = 3
config = q
end

begin
prog = mythtv
button = r
repeat = 3
config = r
end

begin
prog = mythtv
button = s
repeat = 3
config = s
end

begin
prog = mythtv
button = t
repeat = 3
config = t
end

begin
prog = mythtv
button = u
repeat = 3
config = u
end

begin
prog = mythtv
button = v
repeat = 3
config = v
end

begin
prog = mythtv
button = w
repeat = 3
config = w
end

begin
prog = mythtv
button = x
repeat = 3
config = x
end

begin
prog = mythtv
button = y
repeat = 3
config = y
end

begin
prog = mythtv
button = z
repeat = 3
config = z
end

begin
prog = mythtv
button = A
repeat = 3
config = A
end

begin
prog = mythtv
button = B
repeat = 3
config = B
end

begin
prog = mythtv
button = C
repeat = 3
config = C
end

begin
prog = mythtv
button = D
repeat = 3
config = D
end

begin
prog = mythtv
button = E
repeat = 3
config = E
end

begin
prog = mythtv
button = F
repeat = 3
config = F
end

begin
prog = mythtv
button = G
repeat = 3
config = G
end

begin
prog = mythtv
button = H
repeat = 3
config = H
end

begin
prog = mythtv
button = I
repeat = 3
config = I
end

begin
prog = mythtv
button = J
repeat = 3
config = J
end

begin
prog = mythtv
button = K
repeat = 3
config = K
end

begin
prog = mythtv
button = L
repeat = 3
config = L
end

begin
prog = mythtv
button = M
repeat = 3
config = M
end

begin
prog = mythtv
button = N
repeat = 3
config = N
end

begin
prog = mythtv
button = O
repeat = 3
config = O
end

begin
prog = mythtv
button = P
repeat = 3
config = P
end

begin
prog = mythtv
button = Q
repeat = 3
config = Q
end

begin
prog = mythtv
button = R
repeat = 3
config = R
end

begin
prog = mythtv
button = S
repeat = 3
config = S
end

begin
prog = mythtv
button = T
repeat = 3
config = T
end

begin
prog = mythtv
button = U
repeat = 3
config = U
end

begin
prog = mythtv
button = V
repeat = 3
config = V
end

begin
prog = mythtv
button = W
repeat = 3
config = W
end

begin
prog = mythtv
button = X
repeat = 3
config = X
end

begin
prog = mythtv
button = Y
repeat = 3
config = Y
end

begin
prog = mythtv
button = Z
repeat = 3
config = Z
end

begin
prog = mythtv
button = [
repeat = 3
config = [
end

begin
prog = mythtv
button = ]
repeat = 3
config = ]
end

begin
prog = mythtv
button = ;
repeat = 3
config = ;
end

begin
prog = mythtv
button = '
repeat = 3
config = '
end

begin
prog = mythtv
button = "
repeat = 3
config = "
end

begin
prog = mythtv
button = ,
repeat = 3
config = ,
end

begin
prog = mythtv
button = .
repeat = 3
config = .
end

begin
prog = mythtv
button = /
repeat = 3
config = /
end

begin
prog = mythtv
button = \
repeat = 3
config = \
end

### MPlayer lirc setup

# Show OSD
begin
prog = mplayer
button = MENU
repeat = 3
config = osd
end

# Pause playback
begin
prog = mplayer
button = PAUSE
repeat = 3
config = pause
end

# Skip ahead a minute if playing
# If paused, resume playing
begin
prog = mplayer
button = PLAY
repeat = 3
config = seek +1
end

# Stop playback and exit
begin
prog = mplayer
button = Esc
repeat = 3
config = quit
end

# Stop playback and exit
begin
prog = mplayer
button = STOP
repeat = 3
config = quit
end

# Mute
begin
prog = mplayer
button = MUTE
repeat = 3
config = mute
end

# Seek back 10 seconds
begin
prog = mplayer
button = Rewind
repeat = 3
config = seek -10
end

# Seek forward 30 seconds
begin
prog = mplayer
button = FastForward
repeat = 3
config = seek +30
end

# Seek forward 10 minutes
begin
prog = mplayer
button = JumpForward
repeat = 3
config = seek +600
end

# Seek backward 10 minutes
begin
prog = mplayer
button = JumpBack
repeat = 3
config = seek -600
end

# Toggle full-screen
begin
prog = mplayer
button = Aspect
repeat = 3
config = vo_fullscreen
end

### Xine lirc setup

begin
prog = xine
button = Play
repeat = 3
config = Play
end

begin
prog = xine
button = Stop
repeat = 3
config = Stop
end

begin
prog = xine
button = Esc
repeat = 3
config = Quit
end

begin
prog = xine
button = Pause
repeat = 3
config = Pause
end

begin
prog = xine
button = ArrowUp
repeat = 3
config = EventUp
end

begin
prog = xine
button = ArrowDown
repeat = 3
config = EventDown
end

begin
prog = xine
button = ArrowLeft
repeat = 3
config = EventLeft
end

begin
prog = xine
button = ArrowRight
repeat = 3
config = EventRight
end

begin
prog = xine
button = Action
repeat = 3
config = EventSelect
end

begin
prog = xine
button = Menu
repeat = 3
config = Menu
end

begin
prog = xine
button = FastForward
repeat = 3
#config = SpeedFaster
config = SeekRelative+60
end

begin
prog = xine
button = Rewind
repeat = 3
#config = SpeedSlower
config = SeekRelative-60
end

begin
prog = xine
button = Menu
repeat = 3
config = RootMenu
end

begin
prog = xine
button = JumpForward
repeat = 3
config = EventNext
end

begin
prog = xine
button = JumpBack
repeat = 3
config = EventPrior
end

begin
prog = xine
button = Info
repeat = 3
config = OSDStreamInfos
end

--0verdrive 11:00, 6 September 2006 (UTC)