Allow me to demonstrate the difficulty of making and interpreting commands without encoders/decoders. Transmitter: 1. 555 Timer1 35KHZ carrier generator fed into input of an AND gate. 2. 4-bit Parallel to Serial shift register with command loaded on parallel inputs. This functions as a Binary encoder. Either a hardwired parallel data command per individual shift register, or 4-bit toggleswitch and just 1 shift register. 4-bit toggle to 1 register means you must toggle the switch manually each time a new command is desired. 555 Timer2 Baud Rate Generator is needed to drive the clock input of the shift register(s). 3. To transmit, a TX button enables the clock for Timer2 and enables the shift register to send data on its serial out pin Ser-Out. Ser-Out and Timer1 is fed into the AND gate and the gates output creates the needed modulated carrier for the IR receiver. Modulated carrier is fed to an IR-LED. Receiver: 1. 35KHZ IR-Module does not "decode" but only "filters" the carrier. 2. The IR-Module's serial output Ser-In now needs to be compared to some hardwired parallel data. 3. A Serial to Parallel shift register is driven from a 555 Timer3 Baud Rate Generator and triggered on Ser-In's first transition from idle. Add J-K flip-flop to this. 4. The received Serial to Parallel data is loaded into a 4-bit Magnitude comparator. This device compares its parallel input with hardwired parallel reference data. If the 2 nibbles match, its A = B output is set, else A < B is set, or A > B is set. 1 Magnitude comparator for each command. Most of the above is what USARTs do. Encoder/Decoders use their own usarts, magnitude comparators, and carrier generators. All in one package as opposed to 5+ discrete ICs. Here is an analog method. Some how you either manually press a 35KHZ carrier signal into an LED or use logic to send out a prefixed number if button presses. Well, the IR-Module's ouput Ser-In is fed to a buffer. The buffer charges a capacitor through a resistor. The priciple is to charge the capacitor to different voltage levels by sending 1, 2, to X number of pulses from the Transmitter. The capacitor voltage is fed to a bank of comparators. Lets say 1 received pulse makes Vcap = 1v, 2 pulsed for Vcap 2v, and X pulsed for Vcap = Xv. To interpret the pulse commands, each comparator connected to Vcap has its Vreference set to 1v, 2v, Xv. The problem is that 3 pulses will turn on 3 comparators, so you must make all the comparators into Window comparators. 1 Window comparator is composed of 2 comparators whos inputs or tied and Vref(s) levels are near each other. If Vin is too high the comparator stays off, and if Vin is too low the comparator also remains off. Ok, now how do you discharge the Vcap in order to receive another command? Add another timer, a Delayed Timer, that is triggered from either Ser-In or whatever. Once the timer expires it discharges Vcap. to ground level. When you said "easily available", why is an encoder/decoder not available? May not be at local shop that I can understand. But it may be mailed ordered. I mean, you might have to mail order parts regardless how the project is done.