Blinkenlights For Your Parallel Port

Most modern equipment is connected over USB, and generally speaking we’re all the better for it. But that’s not to say there aren’t some advantages to using serial and parallel ports. For example, the slower and less complex protocols can be a bit easier to debug when devices aren’t communicating, which [Jeremy Cook] demonstrates in his latest project.

Looking to troubleshoot some communications problems he was having between his computer and CNC router, [Jeremy] came up with a handy little gadget that will allow him to visualize data passing through each pin of the parallel port in real-time. Even from across the room he can tell at a glance if communication is active, and with a keen eye, determine if he’s getting bi-directional traffic or not.

From a technical standpoint, this is a pretty simple project. The custom PCB is essentially just a pass-through, with an array of 3 mm LEDs and matching 10K resistors hanging off the data lines. But [Jeremy] found it to be an excellent excuse to brush up his KiCad skills. As he explains in the video after the break, this project certainly won’t impress the folks that do PCB design on a daily basis; but if you’re still learning the ropes, these are precisely the kind of projects you should be looking for.

Before any of you say it in the comments, we already know devices like this are available commercially for a few bucks. But that’s hardly the point. Things would be awfully slow around these parts if we disregarded any project that had a commercial alternative.

23 thoughts on “Blinkenlights For Your Parallel Port

  1. I made a bunch of these back in the 80s. The parallel port was an awesome resource and having it for debugging just about anything was priceless. It’s sad that nothing like it (parallel port) is possible now.

    1. “It’s sad that nothing like it (parallel port) is possible now.”

      On the PC, not really. You can still find some PCIe boards that provide a real parallel port addressable over 0x378, but they are hard to find.

      You can find some USB-serial dongles that have surplus of GPIOs, but USB adds latency.

      1. The Intel NUC has both serial and parallel headers exposed, just gotta hook them up to a socket. Makes sense for some embedded industrial applications, since that hardware often still uses them.

      2. Ebay has plenty of PCI-E to parallel port cards. Also most motherboards have at least one serial port, you just need to connect to it. There are also some motherboards that still have these ports available…

      3. “It’s sad that nothing like it (parallel port) is possible now.”

        I don’t get why people say serial and parallel ports don’t exist anymore. My motherboard isn’t the latest but it’s new enough to run an i5. It has a parallel port although I don’t think it came with the connector. It even also has a couple of serial ports and if I remember right one even has a DB9 connector right off the back of the board. (Too many wires to pull out and look)

        I’m pretty sure all the Dells at my office have serial ports and some even have parallel ports. Those things are basically built to be cubicle warmers. Who uses RS-232 or parallel ports for that? If they still have the ports then I’d imagine many computers do.

        Sure, if low end or super thin laptops and/or tablets are your only computers then there probably are no parallel ports in your world. What does one expect on consumer junk like that?

        What’s more lacking with modern hardware is a reason to use those ports. Yah, I get it, a parallel port gives you 8 lines that you can bit-bang a project with. But why? Microcontrolers are so cheap these days. If my project must be tethered to a computer I would rather do so through a microcontroler on a USB line. Yes, I know, USB adds latency. So does a multi-tasking operating system! I’d rather keep the real-time stuff on the micro anyway.

    1. 100% agree.

      It is at PITA that routers etc. do not have the serial port for console configuration any more, but requires that configuration is done in a web interface, so one have to start guessing which IP address the f**** router has, and then configure ones network interface according to that – not to forget that if having a serial console it is also possible to follow the boot process.

      And a serial POS printer does not require any obscure USB drives to work.

      Etc, etc, etc.

      1. When did a POS printer not require obscure drivers to work?

        Well, ok. Dot Matrix and earlier could print ASCII text without a driver.

        I remember endless trips between the computer isle and the printer isle in the big box stores using their display computers to look up their printers on linuxprinting.org to see which ones had decent Linux drivers and they all still used parallel connections. Or they had both parallel and USB. And I was definitely going to use the parallel because for the first decade or so USB was so finicky and the last thing I wanted was even more hastle trying to make a printer work.

        Ok, sure, in those days there were office printers that used Postscript. They
        also cost as much as a car and used even more energy than one.

        1. There was the semi-standard Epson FX-80 emulation that a lot of dot matrix and early inkjets could do also. You might have had to flip dip switches to put it in that mode though.

        2. “When did a POS printer not require obscure drivers to work?”

          Most POS printers uses ESC/POS, BXL/POS or similar emulation that is straight forward, and requires no drivers whatsoever.

  2. My recollection is that a parallel port’s pullups on the status and control pins are sometimes awfully weak, to the point that i’d wonder about whether it might pose a problem with a red LED, even given a 10kiloohm resistor.

    Although it looks like here the other side has full push/pull drivers, so those weak pullups may not matter? I’d still be inclined to replace D1 (/SEL) with a blue LED

  3. We used those for interrupt level debugging – assigned one LED to in-timer-irq, one to in-soundblaster-irq, 2 to in-serial-port IRQ, 1 to main loop … and if it was not blinking when you got back to work, you knew exactly where the problem was.

  4. I used to love playing with the parallel port when I first got into programming in DOS and later in ME. When XP moved in and C took over I found object oriented programming too different to get into at the time. I kind of miss having memory mapped IO. A mix of batch and asm to get pins into a DOS variable and vise versa, write a string from a file to a parallel port one byte at a time. All four parallel ports on the same computer, a couple of serial ports and a game pad port for good measure. Being able to play real audio through the PC speaker by bitbanging a binary file to get recognisable low quality wav files to play. Robot arms, wheels mounted to a PC case to turn it into a robot using the parallel port to control an H bridge. Those were the days.

  5. I built one of these that drove the 7-segment LED (“MHz”) that was on the front of my case, and used portato to output system load type information on it. Swapping, CPU load, network I/O, etc. Then Moore’s law happened and once I got 256MB of RAM I stopped always asking this question, “why is my PC so slow right now” and I lost interest. Now I want my devices to have fewer LEDs, I would get rid of the power light if I could. heh.

  6. I just built an LCD display for my 486 dos machine with the parallel port. C to call the display and a basic script to grab the data, I never realized how limited batch scripting was for text processing

  7. Had a two color LED in my server-router PC for link status, glowing green was OK, blinking red meant some fault, number of blinks meant where the fault was. Done using some C program and lazy bash script, LED wasn’t even soldered: http://streams.printf.cc/rec/dsc00025_.jpg
    There were also some BT878 PCI cards for CCTV (also with TV tuners) with 24 GPIO pins. Some even had goldpin headers, and there was Linux driver :)

  8. I don’t think there’s ever been a NUC with a parallel port header on it, if there was I would have been all over it. The older generation NUCs did have serial port headers though… not sure if the new ones do.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.