Introduction: Parallel Port Break Out Board (BOB)
Oh you're still here? Good! In this article I'd like to present a project where I did just that. Now I should say right up front that you can just buy these things and they're called Break Out Boards (BOB) and one will set you back anywhere from $25 to say maybe $50 or more depending on the features, or how greedy the seller is etc. My board cost me about $6 to make but I had some of the most expensive components on hand to work with. Namely the barrier terminal strips, which if you're creative you don't even really have to use.
These boards aren't much more than glorified terminal strips anyways but we'll be addressing just exactly what is going on here throughout the article. These are the features of this project:
- Low port micro-ampere current draw
- Reliable known output source or sink current of 24ma
- Simple connection
- Easy construction
OK now I know that doesn't sound like much and it really isn't but that isn't to say that this is trivial or unimportant either. I thought long and hard about the mysteries of the Parallel Port before I built mine and what this board primarily does is remove a lot of the unknowns from the interface. Unknowns such as just how much current can I draw from a Parallel Port? Go out and search I dare you to get a straight answer. Come back when you're as confused as I was and we'll talk about it.
Hook my board up and it is a cut and dried 24ma. If you draw more you're probably only out a 50 cent IC too. That alone HAS to be worth the price of admission! But wait there's more, it slices, it dices, it julians fries ... OK maybe it doesn't do those things. What it does do though is plug into a parallel port and give you convenient buffered connection points.
Like I said they sell these things commercially so it can't be that stupid. It really isn't either.
Step 1: About the Parallel Port
I'm not going to try to educate anyone about the parallel port here. There are a ton of websites all over the Internet about the topic. What I would like to talk about is the parallel port and how it relates to this project though.
I know today's computers no longer come with parallel ports but that isn't necessarily such a bad thing. First off who wants to put a valuable new computer at risk experimenting on it? I know I don't! Second parallel port cards are still available that will plug into any machine with a PCI slot. These add on cards offer several advantages over a built in parallel port as well so they are worth considering if you plan on trying this project for yourself. An add on Parallel Port Card is what I use. USB to parallel port adapters are outside the scope of this project so I won't be addressing those at all. My board will likely work with those as well within the limits of the USB specification. If you don't know what that means search for USB realtime to see if it applies to you.
The advantages of an add on card include the fact that the add on board isn't built into your PC, so there is less risk of damaging the motherboard connecting to one. These cards are far cheaper than motherboards so if you break one you are out a lot less. Also, the add on boards are often more robust than many built in parallel ports are, so a port card is a bit harder to break to begin with. Now if you have an old PC hanging around and you don't care too much if you break it fooling around then using that is fine too. Old PCs can be cheaper than cheap, free even. While add on parallel ports cards are pretty cheap they're not cheaper than free.
The whole point of this project is really not to break anything at all though. The point being that while yes it is fun to play around with stuff, it is less fun to play around with stuff and break it. The hardware discussed in this project is meant to shield and protect a PC from your external tinkering. Now I cannot guarantee that you still won't break something if you try this. But I can say that if you build this project right you will be able to do a bit more than you normally can with just a plain old parallel port.
Step 2: About the Circuit
Let me begin by saying I built my buffer board with a specific project in mind but I'd like to present it here as more of a general application device. The chances of you wanting to do something completely different than I am are pretty good, that being the case you're going to want to do some things a bit differently than I have. You can still take parts of the circuit here and apply them towards your task though.
That is the beauty of do it yourself, that you can customize a project to suit your needs. I don't expect anyone to build their port buffer exactly like I did. Due to parts availability I didn't even build mine the way I wanted to in fact! So I'll present my circuit, discuss a little bit about how it works, then offer some suggestions about ways of going further with it.
My goal here is to give you just enough information that you become dangerous. How you apply it is totally up to you. Here is my schematic, for those of you who have Eagle I have included an sch file as well.
Step 3: Why'd You Make It This Way?
A fair question, like I said I built my board to perform a specific task. Namely to control a CNC machine. But I realize other people have their own things they'd like to do. This circuit is easily adapted and suited for a wide variety of applications as well as demonstrating two separate interfacing techniques. On the data output side it is strictly a buffer, and on the input lines it is optically isolated.
It is really two circuits in one. What you build is entirely up to you, or maybe you'll study my circuit and come up with your own that is better? That is how my circuit came into being. I found someone else on the net who'd made their own but I did not care for some aspects of their circuit so I took the liberty to change things. Really they had no pull up resistors on their inputs, but hey they said it worked for them.
Although I did like their choice of buffer IC they picked to use so I decided to use the same in my circuit. Nothing else between my circuit and theirs is the same other than using the same ICs.
Step 4: About the Parts
I'm looking at my schematic now and I'm noticing I left a lot of values out, and some are just out and out wrong. Most notably the buffer ICs themselves. In order to get the kind of performance I have been talking about 74LS245s cannot be used in this circuit. You have to get the AHCT family IC. So that'd make IC1 and IC3 74AHCT245 s
Why I left values out or just have them plain wrong in my schematic is a combination of reasons ranging from it was easier to do, to the diagram would have just been too busy had I included them. So I'll put a partial parts list here to make up for it.
RLED1 &2 330
RFD1 RFD2 4K7
RN1 RN2 100K
Again the 74LS245N is really a 74AHCT245N I also used a different optoisolator but the pinout was the same as the quad opto in the schematic. I used an NTE3221 because I had one lying around. It is a lot of work to make new library elements so I use what is there when I can. That is why the numbers don't always agree. If I can find a device that is close enough physically I use it. You can too.
Here is my Eagle board file.
Step 5: Construction
I built my circuit on perfboard. I suppose if someone is all setup to do it they could etch a board but for this I don't even think it is worth the trouble of drilling all those holes. I laid the parts out so it was easy enough to get everything connected together. The worst part about it all was getting all the wires off the sub D shell connector that plugs into a parallel port cable hooked up.
I of course got my 25 pin sub D and ribbon assembly out of an old computer where it was a port riser. A pair of scissors changed that fast. Who doesn't have a pile of those old things lying around? Well here is a use for one. Connecting the ribbon cable wires to the right places is probably the most challenging aspect of this project and where I expect most people to have problems and or questions about.
There are 25 pins and they all look pretty much alike so this I feel is where the great mystery of the parallel port really lies. It is also where I anticipate the most troubles will arise with this project. The P1 through P17 connection points on my schematic correspond to pin assignments of the parallel port connector. I suppose a secondary feature of my buffer board is to rationalize the connection of the port itself somewhat, although not entirely. I went with whatever laid out the easiest.
This is the order of my buffer board's barrier terminal strip:
1 2 3 4 5 6 7 8 G G G 9 14 16 17 10 11 12 13 Power to board
In an imperfect world I guess my board fits right in. Feel free to change the order of your connections to best suit you.
In the image I have grayed out the background to highlight the 25 wire ribbon cable that comes off the sub D connector connected to a parallel port cable. It is connected to my prototype circuit of this project on a breadboard. That's it, one IC with a couple resistors. This project merely duplicates that simple circuit segment over and over.
Step 6: Construction Addendum
This is so obvious to me that I failed to mention it but that might have been an oversight on my part so I'm mentioning it. When you are making this project construct it in logical stages. Like don't solder it all up, fire it up, then watch the tops of the ICs blow off because your power supply sections weren't right or something silly like that! Build and test the power supply sections first. Larger electronics circuits are constructed of modular blocks that together to form bigger systems.
I find it best to operate on the theory that any complex task can be made easier if it is broken down into more manageable steps. It works for me! So I am putting it out there in hopes it works for others as well.
Some of my Image Notes did not show up and I cannot fix it I am sorry.
Step 7: OK I Made One Now What?
This is the page where I get to totally cop out and say something completely meaningless like, now that you've made this the circuit possibilities are virtually endless! You know, it is sort of fun to say that. All by itself I'll admit this board isn't totally amazing. It is an important link in a chain though. The longest journey begins with a single step and this is that vital first step.
If the parallel port is truly a port then this is your ship that you can set sail in across uncharted waters. Where you go from here I do not know, probably because you haven't confided in me any of your evil genius plans yet. Feel free to make liberal use of the comments section this website so conveniently provides to share your thoughts and we'll write this last section together.
This is what I made mine to connect to:
Step 8: Epilogue Conclusion
This project was essentially over in step 5 but it is really only the beginning of so many other possibilities that I guess I just can't let it go. The major limiting factor of this device is its current handling capability. 24 milli-amperes while substantial in the world of microelectronics still isn't a large amount when it comes to industrial control. Even to energize a relay like the one depicted in the image on step 7 of this article my circuit would still need its output boosted.
While it wasn't a good fit for me I still believe that in a wide variety of applications the ULN2003 Darlington Arrays are a valid choice if the low current capability of my circuit is an issue with your design. Although I also do not see the harm in building my circuit and gaining some experience with the whole interfacing process before moving on to a more ambitious project. My circuit could even come in handy during the prototyping phase of a more powerful circuit.
My circuit could offer some headroom and leeway while a design was worked out and finalized. It is obvious that by itself my circuit is of no practical use. But that is not to say that it is worthless either.
Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning. --Winston Churchill