TRemote for ARM Linux v2.0

TRemote lets you remote control things on ARM Linux computers, specifically over Bluetooth. All functionality is specified on the host and is mapped to buttons on a remote control.

Updates and additional info can be found here.

My sample implementation below is music oriented. But TRemote is in no way limited to that. It is best to think of TRemote as a "remote control construction kit."

This remote control was made with the following 10-line mapping.txt:

P1, Talk Radio, play_stream |DLF=http://st01.dlf.de/dlf/01/104...
P2, Music Radio, play_stream |TheJazzGroove.org=http://199.180.75.26...
P3, Jazz, play_audio |/home/pi/Music/Jazz
P4, Rock, play_audio |/home/pi/Music/Rock
P5, Vol-, volume_down
P6, Vol+, volume_up
P7, Mute, volume_mute
P7L, Stop, media_stop
P8, Latest News, play_stream |DLF News=http://ondemand-mp3.dradio.de/file/d...
P8L, Pause, media_pause

In mapping.txt each button definition consumes one line. This line holds a button ID, a label name and a function call with optional parameters. The function name in the 3rd column can be picked from the list of internal commands, like shell_command, http_request, volume_down, volume_up, volume_mute, media_stop, etc.

In release 2.0 the list of internal functionality can be extended via plugins. play_stream and play_audio in the above example refer to two plugins "play_stream.so" and "play_audio.so" stored in the TRemote folder. These type of plugins can be created very easily.

New in Release 2.0

1. Native code extensions

It is now possible to extended the TRemote service with plugins written in the Go language. This means that there are no limits to what can be done via remote control. A plugin does not know anything about remote controls, about Bluetooth or how button events are being delivered to it. It only cares about implementing a specific response action. TRemote service and the mapping file bind the two sides together.

The following plugins are available with full source code:

play_audio - MP3+FLAC Jukebox with 24/96 support
github.com/mehrvarz/tremote_plugin_play_audio_mp3flac
See my comments about bitperfect audio reproduction.

play_stream - Internet Radio Streamer
github.com/mehrvarz/tremote_plugin_play_stream_cvlc

rpi_gpio - Raspberry Pi GPIO Plugin
github.com/mehrvarz/tremote_plugin_rpi_gpio

2. New remote controller app for Android

This Android app mimics existing TRemote controllers:

In this video you see an Android phone connecting to a Raspberry Pi via Bluetooth LE. Turn your speakers on.


Download

TRemote usually comes with a hardware remote controller. With the new Android app available I can offer a free download for the first time. In this release only one plugin can be used at a time. There are no other restrictions or time limits. If you use TRemote on a regular basis I ask you to buy the full release. For personal use only.

Step 1: Download TRemoteHost 2.0 for ARM Linux (8 MB) to the home drive of your ARM Linux device (say, a Raspberry Pi). There is no need to create a folder manually. Unzipping the archive will create a folder with all files inside. From the command line enter the following (not as root):

$ unzip tremotehost-ix-arm-20180903.zip
$ cd tremotehost-ix-arm-20180903
$ more readme.txt

Step 2: Follow the instructions in readme.txt. This will help you get TRemote Host up and running.

Step 3: Install TRemoteClient-2.0.12-20180902e.apk from the "android-client" folder to your Android device. Whenever this app is started, it will immediately connect to the next host and offer it's services.