RId
===

Onkyo RI (Remote Interactive) interface control daemon.

The Interface
-------------

The Onkyo RI (Remote Interactive) interface has been designed for wired remote control communication between various Onkyo devices, such as AV receivers, CD and DVD players, HDD's and other home entertainment appliances. Devices use simple protocol to communicate directly over the wire without relying on infrared (IR) signals. Although set of commands is very limited it can be still very useful for switching inputs.

Protocol has been reverse engineered and [documented](http://lirc.sourceforge.net/remotes/onkyo/Remote_Interactive). Some information found on the internet can be imprecise, incomplete and details can differ between different hardware.

This little daemon is intended to run on Raspberry PI. You need to connect PIN 26 on RPi's GPIO header to RI jack tip and ground to the RI jack sleeve. It is OK to use stereo jack.

Daemon runs OSC server on port UDP port 9137 and listens for incoming [OSC](https://opensoundcontrol.stanford.edu) messages on port 9137. Recognized addresses triggers sending commands via Onkyo's RI proprietary interface.

Example
-------

Raw codes cand be send using `@osc` tool like this:

```sh
athost=$RI_CONTROLLER @osc /8bus/amp/code 0x20
```

Give me the Codes
-----------------

These are tested on Onkyo TX-SR504e and TX-SR674e. 

action                 | code    | OSC address             | OSC arguments
---------------------- | ------- | ----------------------- | -----------------
Select Input CD        | `0x020` | `/8bus/amp/input/cd`    |
Select Input MD        | `0x030` | `/8bus/amp/input/md`    |
Select Input TAPE      | `0x070` | `/8bus/amp/input/tape`  |
Select Input DVD       | `0x120` | `/8bus/amp/input/dvd`   |
Select Input CDR       | `0x130` | `/8bus/amp/input/cdr`   |
Select Input HDD       | `0x170` | `/8bus/amp/input/hdd`   |
Select Input Video*    | `0x1a0` | `/8bus/amp/input/video` |
Volume `+`             | `0x1a2` | `/8bus/amp/vol/up`      |
Volume `-`             | `0x1a3` | `/8bus/amp/vol/down`    |
Volume mute            | `0x1a4` | `/8bus/amp/vol/mute`    |
Volume unmute          | `0x1a5` | `/8bus/amp/vol/unmute`  |
AMP Standby            | `0x1ae` | `/8bus/amp/power/off`   |
Input Video + wake up  | `0x1ae` | `/8bus/amp/power/on`    |
Dimmer brightness Hi   | `0x2b0` |                         |
Dimmer brightness Mid  | `0x2b1` |                         |
Dimmer brightness Lo   | `0x2b2` |                         |
Dimmer brightness Hi   | `0x2b8` |                         |
Dimmer brightness Lo   | `0x2bf` |                         |
Test mode 1            | `0x421` |                         |
Test mode 2            | `0x422` |                         |
Test mode 3            | `0x423` |                         |
Test mode 4            | `0x424` |                         |

* Please refer to the manual on which video port input will be selected

These hasn't been confirmed yet

Radio search next      | `0x430` | Tune next radio station when radio is selected.
Radio search previous  | `0x431` | Tune previous radio station when radio is selected.
Radio Stereo/Mono      | `0x432` | Switch between Stereo and Mono when FM radio is selected.
Radio station next     | `0x433` | Jump to next stored radio station when radio is selected.
Radio station previous | `0x434` | Jump to previous stored radio station when radio is selected.

### Sending code

You will need tool that sends OSC messages

### Limitations

As you can see is number of commands is quite limited. It was designed to allow some other Onkyo hardware to control. 
On tested amplituners you can only switch between two video (DVD and one of video inputs marked in manual) and two audio inputs. Additionally you can switch input to HDD, CDR or MD, but this can be done only by assigning switchable video input and there is no way around that.

### Useful links

 - http://lirc.sourceforge.net/remotes/onkyo/Remote_Interactive
 - http://fredboboss.free.fr/articles/onkyo_ri.php
 - http://www.intl.onkyo.com/downloads/manuals/pdf/tx-sr504_manual_e.pdf
 - https://github.com/mkulesh/onkyoUsbRi

Some information found online has been tested and corrected here.

