Sony PS3 BD Remote
Sony uses Bluetooth for wireless controllers including the BD Remote (Blueray Disc). The makes for a decent remote option
Here are the advantages
- Inexpensive ($25 USD)
- Reasonable layout (51 buttons with separate arrows/seeking controls)
- Radio Frequency operation (better range, non-line-of-sight)
- Bluetooth pairing - multiple remotes don't interfere, no picking channels to use
Contents |
Linux
Cakemote - Python script that reads key presses
bdremote - Daemon that directs bdremote data to LIRC (a cakemote successor)
myth-btremote - Daemon that supports the bd remote with mythtv's network remote infrastructure
Build
Get latest source (0.2 at this writing), unpack, and make
cp -p bdremoted /usr/local/sbin/bdremoted
Bluetooth Address of Remote
Hold 'Start' and 'Enter' buttons on the remote
# hcitool scan
Scanning ...
00:19:C1:4F:BE:64 BD Remote Control
#
bdremote Configuration
/etc/bdremote.conf
# Port number for incoming LIRCD connections # Default is 8888 BDREMOTE_PORT= # Disconect timeout for remote in minutes # Default is 60 BDREMOTE_TIMEOUT= # Bluetooth address of remote # Set to address obtained from 'hcitool scan' # Leave empty to disable BDREMOTE_ADDR= # Key repeat rate in repeats per second # Default is 10 BDREMOTE_RATE= # Debug level # Default is 0 BDREMOTE_DEBUG=
bdremote Startup script /etc/init.d/bdremote
#!/bin/sh
#
#
BDREMOTED=/usr/local/sbin/bdremoted
BDREMOTE_CONF=/etc/bdremote.conf
test -f "$BDREMOTED" || exit 0
if [ -f "$BDREMOTE_CONF" ]; then
. "$BDREMOTE_CONF"
fi
case "$1" in
start)
echo -n "Starting bdremote daemon: "
BDREMOTE_ARGS="$BDREMOTE_ARGS ${BDREMOTE_PORT:+-p $BDREMOTE_PORT}"
BDREMOTE_ARGS="$BDREMOTE_ARGS ${BDREMOTE_TIMEOUT:+-t $BDREMOTE_TIMEOUT}"
BDREMOTE_ARGS="$BDREMOTE_ARGS ${BDREMOTE_ADDR:+-a $BDREMOTE_ADDR}"
BDREMOTE_ARGS="$BDREMOTE_ARGS ${BDREMOTE_RATE:+-r $BDREMOTE_RATE}"
BDREMOTE_ARGS="$BDREMOTE_ARGS ${BDREMOTE_DEBUG:+-d $BDREMOTE_DEBUG}"
if [ -z "$BDREMOTE_ADDR" ]; then
echo -n "none configured"
else
start-stop-daemon --start --quiet --exec "$BDREMOTED" -- $BDREMOTE_ARGS
fi
echo
;;
stop)
echo -n "Stopping bdremote daemon: "
start-stop-daemon --stop --quiet --exec "$BDREMOTED"
echo
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/bdremote {start|stop|restart}"
exit 1
esac
exit 0
Configure lircd
Modify /etc/lirc/hardware.conf
# Arguments which will be used when launching lircd LIRCD_ARGS="-H null --connect 127.0.0.1:8888"
Configure bluetooth
hidd doesn't seem to get along with bdremoted. The distribution default seems ok.
/etc/default/bluetooth
BLUETOOTH_ENABLED=1 HIDD_ENABLED=0
Enable startup scripts
# Turn on bdremote before lirc
for runlevel in 2 3 4 5; do
ln -s ../init.d/bdremote /etc/rc${runlevel}.d/S18bdremote
done
for runlevel in 0 1 6; do
ln -s ../init.d/bdremote /etc/rc${runlevel}.d/K82bdremote
done
Configure Applications
# ln -s ~/.lircrc ~mythtv/.mythtv/lircrc
~mythtv/.lircrc
include ~/.lirc/mythtv
Mythtv
Some editing of mythtv key bindings required for the lircrc below through Utilities/Setup → Edit Keys Context Action Original Setting New Setting Note Global EJECT <none> Ctrl+4 Eject Removable Media JumpPoints Main Menu <none> Ctrl+1 Main Menu JumpPoints Program Guide <none> Ctrl+2 Program Guide JumpPoints TV Recording Playback <none> Ctrl+3 TV Recording Playback TV Playback SPEEDDEC J Ctrl+J Decrease the playback speed (match with SPEEDINC) TV Playback SPEEDINC U Ctrl+U Increase the playback speed (avoid miskey for TV Frontend→DETAILS) TV Playback STRETCHDEC <none> Ctrl+9 Decrease time stretch speed TV Playback STRETCHINC <none> Ctrl+0 Increase time stretch speed TV Playback TOGGLECC608 <none> Ctrl+8 Toggle VBI CC
~mythtv/.lirc/mythtv
##########
# LIRC mappings for mythtv
# Need to edit key for Global->EJECT
begin
prog = mythtv
remote = SonyBDRemote
button = eject
config = Ctrl+4
end
begin
prog = mythtv
remote = SonyBDRemote
button = audio
config = +
end
begin
prog = mythtv
remote = SonyBDRemote
button = angle
config = W
end
# Need to edit key for desired captioning behavior, e.g.,
# TV Playback->TOGGLECC608 Toggle VBI CC
# TV Playback->TOGGLECC708 Toggle ATSC CC
# TV Playback->NEXTCC Next of any captions
begin
prog = mythtv
remote = SonyBDRemote
button = subtitle
config = Ctrl+8
end
begin
prog = mythtv
remote = SonyBDRemote
button = clear
config = Backspace
end
begin
prog = mythtv
remote = SonyBDRemote
button = time
config = F8
end
begin
prog = mythtv
remote = SonyBDRemote
button = num1
config = 1
end
begin
prog = mythtv
remote = SonyBDRemote
button = num2
config = 2
end
begin
prog = mythtv
remote = SonyBDRemote
button = num3
config = 3
end
begin
prog = mythtv
remote = SonyBDRemote
button = num4
config = 4
end
begin
prog = mythtv
remote = SonyBDRemote
button = num5
config = 5
end
begin
prog = mythtv
remote = SonyBDRemote
button = num6
config = 6
end
begin
prog = mythtv
remote = SonyBDRemote
button = num7
config = 7
end
begin
prog = mythtv
remote = SonyBDRemote
button = num8
config = 8
end
begin
prog = mythtv
remote = SonyBDRemote
button = num9
config = 9
end
begin
prog = mythtv
remote = SonyBDRemote
button = num0
config = 0
end
#begin
# prog = mythtv
# remote = SonyBDRemote
# button = red
# config = XXX
#end
#begin
# prog = mythtv
# remote = SonyBDRemote
# button = green
# config = XXX
#end
#begin
# prog = mythtv
# remote = SonyBDRemote
# button = blue
# config = XXX
#end
#begin
# prog = mythtv
# remote = SonyBDRemote
# button = yellow
# config = XXX
#end
# Need to edit key for TV Frontend->DETAILS
begin
prog = mythtv
remote = SonyBDRemote
button = display
config = U
end
# Need to edit key for JumpPoints->Main Menu
begin
prog = mythtv
remote = SonyBDRemote
button = topmenu
config = Ctrl+1
end
begin
prog = mythtv
remote = SonyBDRemote
button = popup
config = M
end
begin
prog = mythtv
remote = SonyBDRemote
button = return
config = Esc
end
##########
# Need to edit key for JumpPoints->TV Recording Playback
begin
prog = mythtv
remote = SonyBDRemote
button = ps
config = Ctrl+3
end
begin
prog = mythtv
remote = SonyBDRemote
button = select
config = Return
end
begin
prog = mythtv
remote = SonyBDRemote
button = start
config = Space
end
begin
prog = mythtv
remote = SonyBDRemote
button = triangle
config = M
end
begin
prog = mythtv
remote = SonyBDRemote
button = circle
config = Esc
end
# Need to edit key for JumpPoints->Program Guide
begin
prog = mythtv
remote = SonyBDRemote
button = square
config = Ctrl+2
end
begin
prog = mythtv
remote = SonyBDRemote
button = cross
config = I
end
begin
prog = mythtv
remote = SonyBDRemote
button = up
repeat = 1
delay = 4
config = Up
end
begin
prog = mythtv
remote = SonyBDRemote
button = down
repeat = 1
delay = 4
config = Down
end
begin
prog = mythtv
remote = SonyBDRemote
button = left
config = Left
end
begin
prog = mythtv
remote = SonyBDRemote
button = right
config = Right
end
begin
prog = mythtv
remote = SonyBDRemote
button = enter
config = Return
end
begin
prog = mythtv
remote = SonyBDRemote
button = l1
config = Home
end
begin
prog = mythtv
remote = SonyBDRemote
button = r1
config = End
end
# Need to edit key for TV Playback->STRETCHDEC
begin
prog = mythtv
remote = SonyBDRemote
button = l2
config = Ctrl+9
end
# Need to edit key for TV Playback->STRETCHINC
begin
prog = mythtv
remote = SonyBDRemote
button = r2
config = Ctrl+0
end
begin
prog = mythtv
remote = SonyBDRemote
button = l3
config = [
end
begin
prog = mythtv
remote = SonyBDRemote
button = r3
config = ]
end
##########
begin
prog = mythtv
remote = SonyBDRemote
button = play
config = Space
end
begin
prog = mythtv
remote = SonyBDRemote
button = stop
config = Esc
end
begin
prog = mythtv
remote = SonyBDRemote
button = pause
config = P
end
begin
prog = mythtv
remote = SonyBDRemote
button = scanrev
config = <
end
begin
prog = mythtv
remote = SonyBDRemote
button = scanfwd
config = >
end
begin
prog = mythtv
remote = SonyBDRemote
button = prev
config = Q
end
begin
prog = mythtv
remote = SonyBDRemote
button = next
config = Z
end
begin
prog = mythtv
remote = SonyBDRemote
button = steprev
config = Left
end
begin
prog = mythtv
remote = SonyBDRemote
button = stepfwd
config = Right
end
Linux MythTV Networked Bluetooth Remote
This module follows the work of MythControl on source forge and Antion Starikov's work for the PS3 BD remote driver. The two code bases are combined into a single element.
The file can be downloaded at: myth-btremote
The setup is the same as the standard LIRC interface, apart from the LIRC configuration, except that within the archive is a file for compiling/installing the driver, and also a set of files that are listed above, i.e. /etc/myth_btremote.conf, /etc/init.d/myth-btremoted which are useful for registering the daemon as a service.
The configuration file for the remote looks like :
#enter #ps #select #l3 #r3 #start #up #right #down #left #l2 #r2 #l1 #r1 #triangle #circle #cross #square num1 key 1 num2 key 2 num3 key 3 num4 key 4 num5 key 5 num6 key 6 num7 key 7 num8 key 8 num9 key 9 num0 key 0 return key escape #clear #eject #topmenu #time #prev #next #play #scanrev #scanfwd #stop #pause #popup #steprev #stepfwd #subtitle #audio #angle #display #blue #red #green #yellow
All that is needed is to uncomment a line as you decide which key you want to use, and you just assign
an action that is supported by the network interface List of supported commands
Mac OS X
Not so much for free support yet
Remote Buddy
Features virtual keyboard; support for keyspan, ps3bd, wiimote; ~$20/single license, less for more
Remote Buddy - Product Page
WiiLi - GNU Linux Port to Wii: Remote Buddy
DarwiinRemote
Cocoa app to receive/data Nintendo Wii Remote
SourceForge - Source
Hiro Blog - Announcing DarwiinRemote
WiiLi - GNU Linux Port to Wii: DarwiinRemote