# Building your Parallel Port Hardware

These are simplified schematics for the IR hardware I build some time ago. I have written them down using some barely readable handwritten notes and some reverse-engineering. So don't expect this to really work. Here are some pictures of this device.

USE AT YOUR OWN RISK!

But if you manage to build this device, drop me a note. I devided the schematics in three sections. The first shows the frequency generation circuit. I use this to generate a 38 kHz carrier frequency for the IR signals that are sent and a 65536 Hz timer, which is required for both the transmitter and receiver circuits. The timer helps me to get the proper software timings, as interrupts are only generated on the rising edge of the /ACK signal. It is also handy for sending IR signals reliably. This shouldn't be really necessary on a Pentium but this way the device should also work with an 286. The transmitter and receiver circuits should be quite self-explanatory. The inverter in the receiver circuit is only necessary if you use an active low IR detector IC like the SFH506.

Mike Karasoff created a modified circuit based on this design that allows to use up to 8 independent transmitters with your parallel port.

    Frequency generation:

                C1
                ||             +----------+             +----------+
     GND o------||------+------|    R1    |------+------|    R2    |-----o Vcc
                ||      |      +----------+      |      +----------+
                        |                        |
                        +---------+-----------+  |
                C2                |           |  |
                ||                |           |  |
     GND o------||-------------------------+  |  |
                ||                |        |  |  |
                                  |        |  |  |      +----------+
    BUSY o------------------------|--+  +--|--|--|------|    R3    |-----o Vcc
           65536 Hz               |  |  |  |  |  |      +----------+
                       GND o---+  |  |  |  |  |  |
                               |  |  |  |  |  |  |
                             +-+--+--+--+--+--+--+-+
                             | 7  6  5  4  3  2  1 |
                             |                     |
                             |        NE556        |
                             |                     |
                             | 8  9 10 11 12 13 14 |
                             +-+--+--+--+--+--+--+-+
                               |  |  |  |  |  |  |
                               |  |  |  |  |  |  +---o Vcc
                               |  |  |  |  |  |
         o---------------------|--+  +--|--|--|--------------------------o D0 (*)
          38 kHz               |        |  |  |
                ||             |        |  |  |
     GND o------||----------------------+  |  |
                ||             |           |  |
                C2             |           |  |
                        +------+-----------+  +--+
                        |                        |
                ||      |      +----------+      |      +----------+
     GND o------||------+------|    R4    |------+------|    R2    |-----o Vcc
                ||             +----------+             +----------+
                C1

    Transmitter circuit:

                             o 38 kHz
                             |
                             |
                             |
                             |
                           +---+
                           |   |
                           |   |
                           | R |
                           | 6 |
                           |   |
                           |   |
                           +---+
                             |
                             |          --->
                             |          ---> D1 (IR LED)
                             |          --->
                            _|_
                            / \         | /|            +----------+
     GND o------------------   ---------|< |------------|    R7    |-----o Vcc
                            T1          | \|            +----------+

    Receiver circuit:

     GND o------------------------------------+
                                         C3   |
                                         ||   |   +--------------+
                                    +----||---+---|1             |
                     +----------+   |    ||       |   =========  | <---
     Vcc o-----------|    R5    |---+-------------|2  SFH506-38  | <---
                     +----------+                 |   =========  | <---
                                              +---|3             |
                                              |   +--------------+
    /ACK o---------------------------------+  |
                                           |  |
                    GND o---+-----+-----+  |  |
                            |     |     |  |  |
                          +-+--+--+--+--+--+--+-+
                          | 7  6  5  4  3  2  1 |
                          |                     |
                          |       74HC04 (**)   |
                          |                     |
                          | 8  9 10 11 12 13 14 |
                          +-+--+--+--+--+--+--+-+
                               |     |     |  |
                               +-----+-----+--+---o Vcc

    Part list:

    R1 = 22323R
    R2 = 2200R
    R3 = 4700R
    R4 = 39297R
    R5 = 330R
    R6 = 1000R
    R7 = 33R
    C1 = 470pF
    C2 = 10nF
    C3 = 4,7uF
    T1 = BC 338
    D1 = e.g. LD274 (R7 calculated for forward voltage of 1.3 V)

    C2, C3, R5 are optional, but recommended in the datasheets. Vcc is 5 V.

    (*) As D0 is an input the circuit always must be connected to the
    parallel port. You might also consider adding a pull-down resistor to
    GND.

    (**) I used a 74LS04 but 74HC04 should be the better choise. Don't
    forget to connect the unused inputs to a valid logic level,
    i.e. either Vcc or GND.

The NE556 generates timings with pulses and spaces according to the following formulas:

                    t1=0.693(R2+R1)C1
                    t2=0.693(R1)C1

I used a 50 kR and a 25 kR potentiometer for R4 and R1 to get the correct frequencies.

Instead of the inverter IC (74LS04) you can also use some smarter circuit that will generate an interrupt for each change of the signal coming from the IR detector (SFH 506-38). Then the 65536 Hz generated by the NE556 IC won't be necessary either.

The only thing that is missing here is the power supply. I used an external power supply as AFAIK the parallel port can not supply the necessary power.

Christoph

[LIRC Homepage]