RC-5
The RC-5 protocol was developed by Philips in the early 1980s as a semi-proprietary consumer IR remote control communication protocol for consumer electronics. It was subsequently adopted by most European manufacturers, as well as by many US manufacturers of specialty audio and video equipment. The other main protocol relevant to consumer electronics is the NEC protocol, which is largely used by Japanese manufacturers.
The RC-5 protocol, when properly implemented, has the advantage that any CD handset may be used to control any compatible brand of CD player. By comparison, the NEC protocol assigns each brand its own unique header after which may follow any desired command set; this confers the advantage that there cannot be any interference between remote handsets for pieces of equipment made by different manufacturers.
Protocol details
The basics of the protocol are well known. The handset contains a keypad and a transmitter integrated circuit driving an IR LED. The command data is a Manchester coded bitstream modulating a 36 kHz carrier. The IR signal from the transmitter is detected by a specialized IC with an integral photo-diode, and is amplified, filtered, and demodulated so that the receiving device can act upon the received command. RC-5 only provides a one-way link, with information traveling from the handset to the receiving unit.The command comprises 14 bits:
- A start bit, which is always logic 1 and allows the receiving IC to set the proper gain.
- A field bit, which denotes whether the command sent is in the lower field or the upper field. Originally a second start bit, the field bit was added later by Philips when it was realized that 64 commands per device were insufficient. Many devices still use the original system.
- A control bit, which toggles with each button press. This allows the receiving device to distinguish between two successive button presses as opposed to the user simply holding down the button and the repeating commands being interrupted by a person walking by, for example.
- A five-bit system address, that selects one of 32 possible systems.
- A six-bit command, that represents one of the 128 possible RC-5 commands.
System and command codes
While the RC-5 protocol is well known and understood, what is not so well documented are the system number allocations and the actual RC-5 commands used for each system. The information provided below is the most complete and accurate information available at this time. It is from a printed document from Philips dated December 1992 that is unfortunately not available in electronic format, nor is an updated version available. This information is provided so that companies that wish to use the RC-5 protocol can use it properly, and avoid conflicts with other equipment that may or may not be using the correct system numbers and commands.Accuracy of information
The information in the tables on this page is known to be accurate. Yet it is also clear that there are many gaps in these tables. For example, there is no category listing for DVD players in the system table. It would obviously be useful therefore to expand these tables with known accurate information. At this time, there are only a few possible ways to do so.The first would be to capture the IR bitstream from the handset of newer Philips products, such as DVD players and analyze them to see what system number is used. The other would be to use the popular Philips Pronto series of programmable remote controls. These can be programmed to operate Philips components using the RC-5 protocol. Again, the bitstream output of the handset would need to be captured and analyzed. The only other way is to obtain the appropriate documents directly from Philips.
System number allocations
System number | Description | Command tables |
0 | TV 1 | 2, 3, 4a |
1 | TV 2 | 2, 3, 4a |
2 | Txt | 2, 3, 5 |
3 | Extension to TV 1 and TV 2 | 2, 4b |
4 | LV | 2, 3, 6 |
5 | VCR 1 | 2, 3, 7a |
6 | VCR 2 | 2, 3, 7a |
7 | Reserved | |
8 | Sat 1 | 2, 3, 8 |
9 | Extension to VCR 1 and VCR 2 | 2, 7b |
10 | Sat 2 | 2, 3, 8 |
11 | Reserved | |
12 | CD-Video | 2, 3, 9 |
13 | Reserved | |
14 | CD-Photo | 2, 3, 10 |
15 | Reserved | |
16 | Preamp 1 | 2, 11 |
17 | Tuner | 2, 12 |
18 | Rec 1 | 2, 13 |
19 | Preamp 2 | 2, 11 |
20 | CD | 2, 14 |
21 | Combi | 2, 15 |
22 | Sat | 2, 16 |
23 | Rec 2 | 2, 11 |
24 | Reserved | |
25 | Reserved | |
26 | CD-R | 2, 17 |
27 | Reserved | |
28 | Reserved | |
29 | Lighting | |
30 | Reserved | |
31 | Reserved |
System number recommendations
As can be seen, this information is out of date. There are no longer any systems using CD-Video or CD-Photo, for example. In addition, many of the "Reserved" system numbers have no doubt been allocated by Philips during the intervening 16 years. In order to maintain compatibility, it would be helpful to obtain this information. Unfortunately, this has proven to be difficult.When designing a product using the RC-5 protocol, the designer must follow the published information as closely as possible. For example, one surround-sound processor from a US specialty manufacturer used the system number 16, designated for "Preamp 1". This caused many problems with home theater installations that also included a separate two-channel preamplifier, which if of US or European origin, would also use the RC-5 protocol with system number 16. If the designers of the surround-sound processor had the correct information available to them, it would have been obvious that a better choice would have been to use system number 19, designated for "Preamp 2", as this would have avoided needless conflict between products.
Command tables
Over time, the information will also be added for the command tables so that all of the available information regarding the RC-5 protocol is gathered in one place. The information in the command tables shown in standard font was obtained from the Philips publication referenced at the bottom of this page. Information in italics is information that is known to be accurate, as it was derived by one of the methods described above.Command | Function | Command | Function |
0 to 9 | Digit entries 0 to 9 | 78 | Decrease linear control setting |
16 | Increase sound volume | 80 | Move cursor or actuator upwards |
17 | Decrease sound volume | 81 | Move cursor or actuator downwards |
18 | Increase screen/display brightness | 82 | Switch screen/display menu on |
19 | Decrease screen/display brightness | 83 | Switch screen/display menu off |
22 | Increase bass response | 84 | Display A/V system status |
23 | Decrease bass response | 85 | Move cursor or actuator to the left |
24 | Increase treble response | 86 | Move cursor or actuator to the right |
25 | Decrease treble response | 87 | Acknowledge; execute function selected by cursor |
26 | Shift sound balance to the right | 118 | Select functions defined as sub-mode |
27 | Shift sound balance to the left | 119 | Select functions defined as options sub-mode; e.g., calendar, alarm, time |
63 | Select system mode of RC transmitter | 123 | Connect two items via Euroconnector |
71 | Dim local display | 124 | Disconnect two items connected via Euroconnector |
77 | Increase linear control setting |
Command | Function | Command | Function |
20 | Increase color saturation | 95 | Select PIP source |
21 | Decrease color saturation | 96 | Mosaic/multi-PIP |
88 | PIP on/off | 97 | Digital noise reduction of picture |
89 | PIP shift | 98 | Store main picture |
90 | PIP/main picture swap | 99 | PIP strobe; displays a photo-finish |
91 | Strobe main picture on/off | 100 | Recall main stored picture |
92 | Multi-strobe | 101 | PIP freeze |
93 | Main picture frame frozen | 102 | Step up PIP options and display source |
94 | 3/9 multi-scan: | 103 | Step down PIP options and display source |
Commands for video extension systems 3 and 9 which use the common video command numbers are given in Tables 4b and 7b.
Command | Function | Command | Function |
10 | 1/2/3 digit entry | 59 | View data; advance |
11 | Channel/program/freq; 11 | 60 | TXT/TV toggle; 12 |
12 | Standby | 61 | System standby |
13 | Master mute/de-mute | 62 | Picture crispener |
14 | Personal preference settings | 64 | |
15 | Display user info on screen | 65 | |
28 | Increase picture contrast | 66 | |
29 | Decrease picture contrast | 67 | |
30 | Search up | 68 | |
31 | Decrease tint/hue | 69 | |
32 | Channel/program up | 70 | Audio response for speech/music |
33 | Channel/program down | 72 | |
34 | Last viewed program/channel | 73 | |
35 | Select stereo sound channel/language | 74 | |
36 | Spatial stereo | 75 | |
37 | Stereo/mono | 76 | |
38 | Sleep timer | 79 | Select sound functions in sequence |
39 | Increase tint/hue | 104 | Alter PIP size step-by-step |
40 | Switch RF inputs | 105 | Select vision functions in sequence |
41 | Store; Vote | 106 | Actuate colored or other special keys |
42 | Display time | 107 | Actuate function highlighted red |
43 | Scan forward; increment | 108 | Actuate function highlighted green |
44 | Decrement | 109 | Actuate function highlighted yellow |
45 | 110 | Actuate function highlighted cyan | |
46 | Secondary control/menu | 111 | Index page/white function |
47 | Show clock | 112 | Next option |
48 | Pause | 113 | Previous option |
49 | Erase/correct entry | 114 | |
50 | Rewind | 115 | |
51 | Go to | 116 | |
52 | Wind | 117 | |
53 | Play | 120 | |
54 | Stop | 121 | |
55 | Record | 122 | Store open/close |
56 | External 1 | 125 | |
57 | External 2 | 126 | |
58 | 127 | Parental access via PIN code |
Command | Function | Command | Function |
10 | 4 default video settings | 67 | Program 10 |
11 | 4 default audio settings | 68 | Program 11 |
12 | 69 | Program 12 | |
13 | 70 | ||
14 | 72 | 4 default video settings | |
15 | 73 | 4 default audio settings | |
20 | 74 | ||
21 | 75 | ||
28 | Pay TV channel + | 76 | |
29 | Pay TV channel − | 79 | |
30 | Radio channel + | 88 | Pay TV channel + |
31 | Radio channel − | 89 | Pay TV channel − |
32 | Tilt cabinet forward 10 degrees max | 90 | Radio channel + |
33 | Tilt cabinet backward 10 degrees max | 91 | Radio channel − |
34 | 92 | ||
35 | 93 | ||
36 | 94 | ||
37 | 95 | ||
38 | 96 | ||
39 | 97 | ||
40 | 98 | ||
41 | 99 | ||
42 | 100 | ||
43 | 101 | ||
44 | 102 | ||
45 | 103 | ||
46 | 104 | Tilt cabinet forward 10 degrees max | |
47 | 105 | Tilt cabinet backward 10 degrees max | |
48 | 106 | ||
49 | 107 | ||
50 | 108 | ||
51 | 109 | ||
52 | 110 | ||
53 | 111 | ||
54 | 112 | ||
55 | 113 | ||
56 | External 3 | 114 | |
57 | External 4 | 115 | |
58 | 116 | ||
59 | 117 | ||
60 | 120 | External 3 | |
61 | 121 | External 4 | |
62 | Change 4:3 picture format to 16:9 | 122 | Channel setting menu |
64 | 125 | ||
65 | 126 | Change 4:3 picture format to 16:9 | |
66 | 127 |
Command | Function | Command | Function |
10 | Next page | 59 | |
11 | Previous page | 60 | |
12 | Standby | 61 | |
13 | 62 | News flash | |
14 | 64 | ||
15 | 65 | ||
28 | Enter page number in memory | 66 | |
29 | Sequential display of pages w/stored numbers | 67 | |
30 | Sequential display/deletion of pages w/stored numbers | 68 | |
31 | 69 | ||
32 | Exchange | 70 | |
33 | Main index | 72 | |
34 | Row zero | 73 | |
35 | 74 | ||
36 | 75 | ||
37 | 76 | ||
38 | Print displayed page | 79 | |
39 | Mix Antiope/TV pictures | 104 | |
40 | 105 | ||
41 | Page hold | 106 | |
42 | Display time/timed page | 107 | |
43 | Large top/bottom/normal | 108 | |
44 | Reveal/conceal | 109 | |
45 | TV/TXT | 110 | |
46 | TV + TXT/subtitle | 111 | |
47 | 112 | ||
48 | 113 | ||
49 | Erase/correct entry | 114 | |
50 | 115 | ||
51 | 116 | ||
52 | 117 | ||
53 | 120 | ||
54 | 121 | ||
55 | 122 | ||
56 | 125 | ||
57 | 126 | ||
58 | 127 |
Command | Function | Command | Function |
10 | Display picture number/time | 59 | Freeze segment indicated by picture numbers |
11 | Display chapter number | 60 | TXT/TV toggle; RF switch |
12 | Standby | 61 | |
13 | Mute/de-mute | 62 | CX 1, 2, 3; toggle for CX noise reduction |
14 | 64 | ||
15 | Display user info. on screen | 65 | |
28 | Total shuffle play once/repeat once | 66 | |
29 | TSP/repeat continuously | 67 | |
30 | Select next option | 68 | |
31 | Fast run reverse | 69 | |
32 | Entry | 70 | |
33 | Auto-stop at pre-programmed point | 72 | |
34 | Slow run reverse | 73 | |
35 | Select stereo sound channel 1/language 1 | 74 | |
36 | Select stereo sound channel 2/language 2 | 75 | |
37 | Still increment reverse | 76 | |
38 | Increase speed | 79 | |
39 | Decrease speed | 104 | |
40 | Slow run forward | 105 | |
41 | Still increment forward | 106 | |
42 | Fast run forward | 107 | |
43 | Automatic search for user choice | 108 | |
44 | Search in reverse | 109 | |
45 | Open/close lid | 110 | |
46 | Search forward | 111 | |
47 | Play reverse/play opposite sound track | 112 | |
48 | Pause | 113 | |
49 | Erase/correct entry | 114 | |
50 | 115 | ||
51 | 116 | ||
52 | 117 | ||
53 | Play | 120 | |
54 | Stop | 121 | |
55 | 122 | ||
56 | 125 | ||
57 | 126 | ||
58 | Clear memory all | 127 |
Command | Function | Command | Function |
10 | GEQ L | 67 | |
11 | GEQ R | 68 | |
12 | Standby | 69 | |
13 | Master mute/de-mute | 70 | |
14 | Personal preference settings | 72 | |
15 | Display user info on local display | 73 | |
20 | 74 | ||
21 | 75 | ||
28 | GEQ L+R | 76 | |
29 | Speaker select | 79 | Scroll linear sound functions |
30 | Scratch filter on/off | 88 | Random noise generator on/off |
31 | Rumble filter on/off | 89 | Timer on/off |
32 | Step function + | 90 | News timer on/off |
33 | Step function − | 91 | |
34 | Signal path scroll | 92 | |
35 | Speaker A on/off | 93 | |
36 | 94 | ||
37 | Scroll surround sound options | 95 | |
38 | Sleep timer | 96 | |
39 | Speaker B on/off | 97 | |
40 | Speaker C on/off | 98 | |
41 | Timer program mode | 99 | |
42 | Time set mode | 100 | |
43 | Timer + | 101 | |
44 | Timer − | 102 | Center channel volume + |
45 | Open timer memory | 103 | Center channel volume − |
46 | Open acoustic control setting memory | 104 | Delay front to surround increment |
47 | Select acoustic settings in memory | 105 | Delay front to surround decrement |
48 | 106 | Linear phase | |
49 | Erase/correct entry | 107 | |
50 | 108 | ||
51 | 109 | ||
52 | 110 | ||
53 | 111 | ||
54 | 112 | ||
55 | 113 | ||
56 | 114 | ||
57 | 115 | ||
58 | Clear memory all | 116 | |
59 | 117 | ||
60 | Dynamic range expand | 120 | |
61 | 121 | ||
62 | Dynamic range compress | 122 | Tape monitor |
64 | Surround sound on/off | 125 | |
65 | Balance front | 126 | |
66 | Balance rear | 127 |
Command | Function | Command | Function |
10 | Scroll local display cursor | 67 | |
11 | Scroll local display function | 68 | |
12 | Standby | 69 | |
13 | Mute/de-mute | 70 | |
14 | 72 | ||
15 | Display user info on local display | 73 | |
20 | 74 | ||
21 | 75 | ||
28 | Total shuffle play/repeat once | 76 | |
29 | Repeat continuously | 79 | |
30 | Select increment | 88 | |
31 | Select decrement | 89 | |
32 | Next | 90 | |
33 | Previous | 91 | Digital signal processing on/off |
34 | Index next | 92 | Music mode |
35 | Index previous | 93 | Select room acoustics |
36 | Play/program | 94 | Jazz/s-hall effect |
37 | Speed nominal | 95 | Pop/s-hall effect |
38 | Increase speed | 96 | Classic/church music for music/room mode |
39 | Decrease speed | 97 | Easy/club music for music/room mode |
40 | 98 | Disco/stadium music for music/room mode | |
41 | Store execute | 99 | |
42 | 100 | ||
43 | Scan disc forward | 101 | |
44 | 102 | ||
45 | Open/close tray | 103 | |
46 | 104 | ||
47 | Fast/select disc from cartridge | 105 | |
48 | Pause | 106 | |
49 | Erase/correct entry | 107 | Second favorite track selection |
50 | Rewind/reverse | 108 | Favorite track selection |
51 | Scroll local display cursor | 109 | Title into memory |
52 | Wind/fast-forward | 110 | |
53 | Play | 111 | |
54 | Stop | 112 | |
55 | 113 | ||
56 | 114 | ||
57 | 115 | ||
58 | Clear memory all | 116 | |
59 | Repeat program marked A/B | 117 | |
60 | Dynamic range expand | 120 | Fade in/out audio |
61 | 121 | ||
62 | Dynamic range compress | 122 | |
64 | 125 | ||
65 | 126 | ||
66 | 127 |