[0001] The present invention relates to a method according to the generic part of claim
1 and to a device according to the generic part of the first device claim.
[0002] It is well known that consumer electronic devices can be controlled with the aid
of a remote controller. It is also known that such a remote controller can be realised
as learning remote control device, having a learning capability in which a remote-controlled
signal can be stored in a memory after such remote-controlled signal has been received
and analysed and can be reproduced for transmission on the basis of data stored in
the memory.
[0003] There are also known so-called satellite commanders, which are used e.g. in the video
cassette recorders (VCR) TELEFUNKEN M9445. These commanders are able to control satellite/cable
boxes for timer programming. Therefore the VCR has to store a vast number of infrared
(IR) timing data codes for each individual satellite/cable box. This will take up
a lot of memory space on the microcontroller of the VCR. As normally only a particular
type of satellite/cable box is used, the remaining unused code results in a waste
of memory space. Thus a more efficient way to store just the particular set of IR
data for a satellite/cable box is desired. This necessitates a built-in learning remote
feature on the VCR.
[0004] The conventional portable learning remote control device on the market normally consists
of complicated circuitry to capture the incoming IR signal. As costs play an important
role in the profitability of a consumer good, a low-cost design of the built- in learning
remote on the VCR is required.
[0005] It is also often observed that the conventional learning remotes do not identify
the toggle bits which are present in some IR signals.
[0006] The German patent application DE 43 08 441 A1 shows a method and a device for remote
control, comprising an IR receiver, a microprocessor, a keyboard, a memory, a display,
an oscillator and a transmission photo diode. This known learning remote control device
is able to learn toggle bits with different frequency ranges. The toggle bits are
detected by comparing two sets of data at different times for the same key or command.
The meaning of toggle bits is well described in DE 43 08 441 A1. That is why a detailed
description in the present application is made just as it is necessary for the understanding
of the present invention.
[0007] The European patent application EP 0 380 371 A2 shows a memory remote control device
which comprises a wave shaping circuit for shaping a received remote-controlled signal
and for outputting a pulse signal and an envelope signal in the microcomputer capable
of converting the remote-controlled signal into data for storage in a memory and of
reproducing the remote-controlled signal on the basis of the data stored in the memory.
This microcomputer comprises an input port for receiving the received remote-controlled
signal, a determining circuit for determining whether or not the received remote-controlled
signal is a remote-controlled signal of particular format on the basis of the pulse
signal and the envelope signal, a memory capable of converting the remote-controlled
signal into data and storing the data in the memory on the basis of the remote-controlled
signal input to the input port in the event that the received remote-controlled signal
has been the remote-controlled signal of particular format, and a reproducing circuit
for reproducing the remote control signal of particular format on the basis of the
data stored memory.
[0008] These known learning remote control devices have the disadvantages, that they have
poor user interfaces in so far as they only have blinking LEDs or at best LCD displays,
so that the learning process becomes complicated, and that their circuitry is too
complicated.
[0009] It is therefore the object of the invention to provide a learning remote control
device which can be used as part of a remote control unit or being incorporated e.g.
in a VCR, TV or GEMSTAR G-code/Showview unit, which comprises a simple circuitry and
provides a convenient user interface.
[0010] This object is solved by the features of the independent claims.
[0011] Preferred embodiment of the invention are given in the dependent claims.
[0012] A learning remote control device according to the invention comprises a controlling
means, a memory means connected to the controlling means, an IR transmission means,
and an IR receiving means connected to the controlling means, wherein the learning
remote control device further comprises a second IR receiving means. In a preferred
embodiment the second IR receiving means is formed by a photo diode circuitry and
the first IR receiving means is formed by an IR module.
[0013] Preferably the learning remote control device according to the invention further
comprises a switching means interconnected between the controlling means and the first
and second IR receiving means, so that the switching means switches between the first
and second IR receiving means with the result that only one IR receiving means is
input to the controlling means.
[0014] It is also possible to connect the first and second IR receiving means directly to
the controlling means. Preferably the controlling means is formed by a microcontroller.
[0015] The learning remote control device according to the invention can be part of television
unit, a videocassette recorder (VCR), a GEMSTAR unit or a remote control unit.
[0016] The method for learning an IR code according to the invention comprises the following
steps:
a) determining whether the incoming signal is of a pulse type or a modulated type;
b) determining whether the incoming signal comprises toggle bits;
c) determining the data codes;
d) determining the transmission format;
e) testing the learned codes and formats.
[0017] Preferably the method starts with step a and ends at step e, wherein the order of
the steps b, c and d is changeable. Normally, first the photo diode circuitry is activated
with an appropriate setting of the switching means, so that first the pulse width
or carrier period is determined.
[0018] The carrier period is determined in the following way:
When the first low signal comes in, a timer is started, which counts down a predetermined
time period T, preferably 250 µs, a register W is incremented every time period t,
t < T and preferably t = 8 µs, for a low signal and another register A is incremented
every time period t, preferably t = 8 µs, for a high signal, when a transition from
high to low occurs both registers W and A are cleared while another register C is
incremented, so that after a time period of T + t
0, t
0 << T, preferably (T+t
0) = 255 µs a timer interrupt is generated and the period of the carrier is calculated
from the following formula:

[in appropriate units].
[0019] According to the result it is decided whether the incoming IR signal is of carrier
or pulse type. Then the switching means is set to the photo diode circuitry when the
incoming IR signal is identified as a pulse type and is set to the IR module, when
the incoming IR signal is identified as carrier type.
[0020] In the method according to the invention, preferably the data to be stored in memory
are compressed, which saves memory space.
[0021] To achieve the data compression same timing sets consisting of high and low timing
are grouped so that only one set of data will be stored together with a corresponding
IR timing data pointer. In other words, identical code sets (timing sets) will only
be stored once, because the respective pointer carrying the information how often
the set has to be repeated.
[0022] Further the invention comprises a user interface for implementing the method according
to the invention, wherein the stages of the learning procedure, i.e. steps a - e are
depicted on the TV screen.
[0023] Preferred embodiments of the device and the method including the user interface of
a learning remote control will be described in detail with reference to the accompanying
drawings, in which:
Fig. 1 shows a learning remote control device according to a first embodiment;
Fig. 2 shows a learning remote control device according to a second embodiment.
Fig. 3 shows a method to capture the carrier frequency; and
Fig. 4a to 4e show user interface for built-in learning remote control on a VCR.
[0024] As shown in Fig. 1, the learning remote control device, which could be built-in on
a VCR consists of a photo diode circuitry 1, an IR module 2, which is preferably an
existing part of the VCR, an IR transmission circuit 3, a microcontroller 4 and a
memory 5 like an EEPROM, which is also an existing part of the VCR. Further a remote
control unit 7 is shown which sends the coded IR signals.
[0025] Fig. 2 shows a modification of the first embodiment which further comprises a switching
circuity 6, which is interconnected between the microcontroller 4 on the one side
and the photo diode circuitry 1 and the IR module 2 on the other side. The switching
circuitry 6 switches between the two IR receiving units 1, 2, so that only one of
them is input to the microcontroller 4.
[0026] Fig. 3 shows a method for capturing the carrier frequency of the incoming IR signal.
To learn the incoming IR code, the photo diode circuitry 1 is first activated. If
a switching circuit 6 exists, it is set to allow only the signal from the photo diode
circuitry 1 to convey the microcontroller 4. When a user presses a key on his remote
control unit 7 (RCU) the software of the learning remote would determine whether the
IR signal is of a pulse or carrier type. At the same time, the pulse width (if pulse
type) or the carrier period (if carrier type) is determined by the software. The method
for determining the carrier period is illustrated in Fig. 3. When the first low signal
comes in, a timer is started, which counts down 250 µs. A register, for example REG
W, is incremented in a loop every 8 µs for a low signal, and another register, say
REG A, is incremented every 8 µs for a high signal. When the transition from high
to low occurs, both REG B and A are cleared while another register, say REG C, is
incremented. After 255 µs, a timer interrupt is generated. The period of the carrier
is now calculated from the following equation:

[0027] If the IR signal is of a pulse type, the software probing the high and low signals
would determine the length of the pulse width. The following describes the operation
of the learning remote control device. If the IR signal is of a carrier type, the
software would then set the switching circuit 6 to allow only the signal captured
by the IR module 2 to pass to the microprocessor 4. In the first embodiment this switching
is performed by the microcontroller 4 itself. The carriers of the IR signal are filtered
on the passing through the IR module 2 so that only the envelopes of the IR signals
are captured. The timings of the IR signal code are then stored in the form of the
hexadecimal data into the RAM 5 of the microcontroller 4.
[0028] If the IR signal is identified as a pulse type, the software would set the switching
circuitry 6 to allow only the IR signal captured by the photo diode circuitry 1 to
pass. In the first embodiment this operation is performed by the microcontroller 4
itself. The IR signal codes timings are then stored in the same way as for the carrier
type data.
[0029] A standard remote control IR signal normally consists of mark, space, synonym, followed
by 32 bits of data. However, there are remote control codes which have different numbers
of data bits. At the moment the longest data stream consists of 44 bits. In order
to cater for this long type of data stream, 48 bits of the signal from the remote
control unit of the satellite receiver are captured. If this amount of bits is not
enough the amount of data can expanded to 64 bits or more. Therefore at the moment
altogether 48 sets of high and low signals are captured. This is enough to cover IR
signals with an IR code of less than 46 bits. A one second window is used to detect
the IR signal which has less than 46 bits and sends data once only. After a set of
48 timing data is collected, the wait time for the IR signal captured is determined
by assuming that the wait time is the longest high timing. The wait time would then
be marked as the end of the IR signal set. Data after the wait time would be discarded.
The data are then compressed to minimize the memory space used to store the IR codes
in the EEPROM 5. Same timing sets, which consist of high and low timing would be grouped
so that only one set of data is stored together with a pointer for each set.
[0030] Example: assume that the key "1" of the remote control unit is pressed. Then assume
that the following data stream would be captured by the microcontroller timing counter:
[0031]
Table 1
(timing in hexadecimal codes) |
Logic |
high |
low |
high |
low |
high |
low |
Count |
002D |
0064 |
0031 |
01ED |
0031 |
01ED |
|
0031 |
01ED |
002D |
0064 |
002D |
0FEB |
[0032] If the time base for the timing counter ist 16 µs then 002D in hexadecimal represents
45 in decimal times 16 µs equal to 720 µs.
[0033] So the above data of table 1 actually represent the following data stream.
[0034]
Table 2
(timing in decimal values) |
Logic |
high |
low |
high |
low |
high |
low |
Timing |
720 |
1600 |
784 |
7888 |
784 |
7888 |
(usec) |
784 |
7888 |
720 |
1600 |
720 |
65200 |
[0035] In order to save on EEPROM 5 space, a compression method is used. First, identical
code sets, wherein a set consists one high and one low data, will be stored once only.
Therefore, the following data set are stored:
[0036]
Table 3
|
high |
low |
SET 0 |
002D |
0064 |
SET 1 |
0031 |
01ED |
SET 2 |
002D |
0FEB |
which represents the timing data group of the key "1".
[0037] Additional to this data the following IR timing data pointer for key "1" has to be
stored: 00 01 01 01 00 02, where 00, 01, 02 are pointers pointing to the addresses
of the timing data set SET0, SET1 and SET2, respectively. With these pointers and
the compressed data sets it is possible to restore the original data stream.
[0038] The above data are then stored into the EEPROM 5. The user can press another key
on his remote control unit 7 for the learning remote to learn. The whole procedure
will be repeated.
[0039] To determine toggle bit, the user is required to press a specific key for three times.
The three sets of compressed pointer data would then be compared. If data toggle at
a particular location throughout the three set of data has occurred, then the toggle
bits can be detected. After all the key on the user remote control unit has been learnt,
the stored IR codes could be retrieved from the EEPROM and be sent out through the
transmission circuitry.
[0040] The major advantage of this design is that it is low in cost, because it makes use
of the already existing IR module on the VCR, which saves a lot of costs if an external
circuitry for the same function has to be built.
[0041] The Figs. 4a to 4e show the user interface for built-in learning remote on a VCR,
for example. The built-in learning remote on the VCR provides an on-screen user interface,
i.e. the TV screen is used. This is a different concept from the conventional portable
learning remotes, wherein only LEDs or LCD displays are used, which is a hassle for
the user. The suggested stages of the learning procedure are given as follows:
Stage 1: Determination of Carrier Period/Pulse Width (Fig. 4a)
[0042] At this stage the digit "1" on the television screen would flash, prompting the user
to press the digit "1" key on his remote controller 7. After the IR signal has been
captured, the digit "1" would stop flashing and a wording "Decoding..." appear at
the bottom of the screen as shown in Fig. 3b. The software would determine the carriers'
period (if carrier type) or pulse width (if pulse type).
Stage 2: Determination of Toggle Bit(s) (Fig. 4b)
[0043] This stage requires the user to press digit "1" on his remote controller 7 three
times or more. The first set of digit "1" data is compared with the second set of
digit "1" data to check whether any bit toggled. If more than two bits were different,
the data acquired was assumed to be erroneous, thus would be discarded. The first
and second set of data would then be recaptured. If the two sets of data are two bits
or less different then the third set would be used to confirm the toggle bits location
and timing data. If any error found in the third set (e.g. toggle bit location does
not tally) then the whole procedure of stage two is repeated. The screen display for
capturing digit "1" signal is same as stage 1.
Stage 3: Learning of Digits (Fig. 4c)
[0044] After learning digit "1" of the user RCU, the learning of the other digits on the
RCU begins. The digit (e.g. "2") after the word "Press" would flash to prompt the
user to press the digit indicated. After capturing the digit signal, the flashing
stops and a "Decoding ..." line appeared at the bottom of the screen. The line "1
2 3 4 5 6 7 8 9 0" would be highlighted until the digit just captured as shown in
Fig. 5b. The captured codes are then stored to EEPROM.
Stage 4: Learning of Transmission Format (Fig. 4d)
[0045] Some IR signals have special format, some of which are listed below:
1. Modes which have an 'ENTER' key. ENTER key should be sent out after the digits
to fix the channel setting.
2. Modes which send '-/--' or 'CH' first. It is the leading signal for channel codes.
Channel digits should be sent out after this -/-- codes.
3. Modes which have '1*','2*','3*' codes. These codes are sent first for channel greater
than nine. E.g. to send 23, '2*' is send first, followed by '3'.
4. Modes which have '+10' key. It is also used for channel greater than nine. E.g.
to send 30, '+10' is sent three times before '0' is sent.
[0046] Stage 4 is used to learn the special format. Each key would flash on the screen to
prompt the user to press the key. If that particular key does not exist on the user
RCU, the user could skip by pressing the digit "1" on the RCU. After a key code is
captured or skipped, that particular key would stop flashing on the screen. The next
subsequent key starts to flash and capturing of code for the key started.
Stage 5: Testing Learnt Codes (Fig. 4e)
[0047] This stage allows user to test whether the codes were learnt correctly. The user
would select two digits of which he would like to test using the VCR RCU. The software
would then retrieve the data codes stored and transmit them through the transmission
circuitry 7 (Fig. 1).
List of References
[0048]
1 - photo diode circuit
2 - IR module
3 - IR transmission circuit
4 - microcontroller
5 - memory
6 - switching circuit
7 - remote control unit
1. Method for learning an IR code, comprising the following steps:
a) determining whether the incoming signal is of a pulse type or a modulated type;
b) determining whether the incoming signal comprises toggle bits;
c) determining the data codes;
d) determining the transmission format;
e) testing the learned codes and formats.
2. Method according to claim 1, wherein first the pulse width or carrier period is determined.
3. Method according to claim 2, wherein when the first low signal comes in, a timer is
started which counts down a predetermined time period T, a register W is incremented
every predetermined time period t,
t < T, for a low signal and another register A is incremented every predetermined
time period t for a high signal, when a transition from high to low occurs both registers
W and A are cleared while another register C is incremented, so that after a time
period of T + t
0, t
0 << T, a timer interrupt is generated and the period of the carrier is calculated
from the following formula:

[in appropriate time units].
4. Method according to one of the preceding claims 1 to 3, wherein
- signals of a photo diode circuitry (1) are switched to controlling means (4) when
the incoming IR signal is identified as a pulse type and
- signals of an IR module (2) are switched to said controlling means (4), when the
incoming IR signal is identified as carrier type.
5. Method according to one of the preceding claims 1 to 4, wherein the data to be stored
are compressed.
6. Method according to claim 5, wherein same timing sets consisting of high and low timing
are grouped so that only one set data will be stored together with a corresponding
IR timing data pointer.
7. Method according to one of the claims 1 to 6, wherein stages of the learning procedure
are depicted on a TV screen.
8. Learning remote control device comprising
a controlling means (4),
a memory means (5) connected to the controlling means (4),
an IR transmission means (3), and
an IR receiving means (2) connected to the controlling means (4),
characterized in that
the learning remote control device further comprises a second IR receiving means (1).
9. Learning remote control device according to claim 8, characterized in that the learning
remote control device further comprises a switching means (6) interconnected between
the controlling means (4) and the first and second IR receiving means (1, 2), so that
the switching means (6) switches between the first and second IR receiving means (1,
2), so that one IR receiving means (1, 2) is input to the controlling means.
10. Learning remote control device according to one of the claims 8 or 9, characterized
in that the learning remote control device is part of a TV-set, a VCR, a GEMSTAR unit
or of a remote control unit.