This is a great way to hook stuff to your parallel port without doing that much soldering for MSWindows, Linux, BSD, or OS/X (with support for a parallel interface). Great for prototyping projects. To be honest all the arduinos and usb port stuff is great, but I can not afford them. I do have lots of old pc's and parallel cables. Robotics, linux lawn sprinkler systems and the sky's the limit, so here we go.
Testing the cable:
You can use pretty much the same method for the joystick port, but the pin outs will be completely different. The pin outs vary so much from machine to machine and sound card to sound card, you need to check your manual for details.. Do not use the parallel port hook ups on the joystick breakout cable.
Even an old 486 laptop with just 12k (yes just kilobytes) can control the parallel port breakout cable. Maybe launch some rockets? (os is msdos 6.22 running from the floppy drive.
Step 1: Whats Needed
1 - Spare DB25 male connector at one end parallel printer cable with all 25 lines attached. (If not a regular printer cable can do in a pinch. You can always add extra wires by doing a little soldering)
3 - dual bank 10 connection bars so that you have at least 25 usable connections. (only 1 of 3 needed are shone) (if pins 18-25 are soldered together, you only need 2 strips). I used 1 extra terminal for the shield ground.
Various Screw drivers depending on the cable and the connection bars.
Step 2: Strip the Cable.
Cut the cable in half unless it already has been done.
Remove the cover the the printer port male connector.
Remove the outer plastic protector. Be careful so no lines come loose. it will probably take a few minutes to extract the lines out of the cable.
Put the protector and connector shield aside for later use.
Step 3: Get the Lines Ready.
Strip the ends of all the wires so they can be connected to the terminals on the strips.
Take a break if you need to as it will take a little while to do this.
Step 4: Connect the Wires.
Line up the terminal strips in a sequential order.
From the right hand side of the side of the connector attached by wires. Take the first wire and connect it to the terminal block to the left most terminal. Keep doing that till all the wires are done. If there is not a wire connected on any point skip a point on the terminal block. That way it will be easy to tell which line is which. The left most terminal will be 1 and the last on the right s/b be 25 if you use 3 strips, otherwise it will be 18.
Note: I did have one wire come loose that I will have to re-solder. It is and end on and should not be too bad.
Step 5: Clean Up.
Take the plastic protector and put a slit in it from one end to the other. Now from the db25 connector gently stuff the cables back into the protector until the cables are too far apart to fit. You may need to use tape to assist you in keeping the wires in the casing. Cut off any excess length of the protector. Put the shield back on the db25 connector.
Step 6: Ready to Use.
Now you can easily connect on the other side of the terminal strips whatever you want without doing any soldering. Great for such projects as controlling a water sprinkler system with linux or just hooking up led's with resistors to have some fun using any operating system that supports a parallel port. When referring to lines 19 and above in circuit diagrams just use 18 instead with the 2 terminal strip setup. .
Step 7: After Thought.
You may want to attach the terminal strips so that the project is a bit more stout and less confusion as to which line is which. I just used doubled over cardboard from an aluminum foil box. then used screws and nuts to hold it together.
Step 8: Coming Soon!
Suggestions on how to use the breakout cable.
First picture is for protecting the whole parallel port when interfacing it.
Thanks to Godon McComb.
Second picture is a way to hook relay to parallel port.
Third picture is is way to hook leds to parallel port.
Fourth picture is the old fashion way to hook leds to the parallel port.
Fifth picture is of a 5-wire stepper motor interface.
Step 9: Test Circuit and Code for Turning on Pins 2-9
Using the lights for fun: http://www.youtube.com/watch?v=EjZmrw9JkrM
Use qbasic or freebasic on linux or mswindows for this to work.
888 =hex 0378 for printer port 1 (LPT1: 378h, LPT2: 278h ) See manual for sure.
d0 = pin 2 -2 or 0 (2^0) = 1 2 to the zero power is always 1
d1 = pin 3 -2 or 1 (2^1) = 2 2 to the first power is alway 2
d2 = pin 4 -2 or 2 (2^2) = 4 2 squared = 4
d3 = pin 5 -2 or 3 (2^3) = 8 2 cubed = 8
d4 = pin 6 -2 or 4 (2^4) = 16 etc etc.
d5 = pin 7 -2 or 5 (2^5) = 32
d6 = pin 8 -2 or 6 (2^6) = 64
d7 = pin 9 -2 or 7 (2^7) = 128
rem turns all pins off but #3
pin_number = 3
out 888, 2^(pin_number - 2)
out 888,255 to turn all lights on
out 888,0 to turn all pins off
Turn pins 2 (2-2) and pin 5 (5-2) on exclusively would be:
(2^0) + (2^3) or (1 + 8)
out 888, 9
out 888, (&b00001001)
rem out 888, (&b00001001) << to me the simplest, just change a zero to a 1 for that led.
Better code to not change other pins status
rem supply your own pin number
z = inp(888)
out 888, (2^(pin_number - 2)) + z
rem supply your own pin number
z = inp(888)
out 888, z -(2^(pin_number - 2))
More info on programming and interfacing:
Step 10: It's a What?
Robotics test board all the cables are going to. Even add and lcd.
Step 11: Other Interfaces.
avr dasa programmer (serial port)
avr bsd programmer (parallel port)
Step 12: Avr Heaven.
Using a nreakout cable to program an avr microcontroller.
Step 13: Usb Parallel.
Usb requires latches to interface the port. Found this one schematic to try. Use at your own risk, I have not tested it yet.
Step 14: Playing With Leds.
Giving out the super secret code for doing the Kitt light show on the
X86. Do not have a guitar anymore, but that was me playing the guitar.
Source kitt.bas included.