PDA

View Full Version : What is the function of a parallel port breakout board?



hbx
08-03-2013, 03:44 AM
Hello all, I'm new to this forum. I'm building my first CNC related machine, and I hope I'll be able to learn from and contribute to this forum!

My first question is as stated in the title: What is the function of a parallel port breakout board?

As far as I can tell, the board will allow easier access to the pins, and protection for the PC in the form of isolation. However, most good quality servo/stepper drivers already seem to come with built-in opto-isolators. Having two opto-isolators seems redundant and possibly even detrimental to performance.

I have no experience using the parallel port for such controls, though I have experience with robotics, electronics and programming. Please enlighten me!

Thank you.

Hon

martin54
08-03-2013, 10:45 AM
It is as you say an easier way to gain access to the port pins. Loads of different boards available, some with opto isolation some without, same with drivers although as you say a lot of drivers now have them built in.
Most boards will not only give you an easy connection to the drivers but also have other functions like spindle isolation, inputs for things like E stop & limit switches all using different pins.

hbx
08-03-2013, 02:20 PM
Thanks! Do the boards somehow increase the number of inputs available? Perhaps by multiplexing? I'll be using LinuxCNC, and the documentation doesn't seem to be very comprehensive.

Jonathan
08-03-2013, 02:42 PM
When you use drivers that are already opto-isolated, then it's sensible to use a breakout board which doesn't have opto-isolated outputs, since as you say there's just no point doing it twice. In fact, since the drivers are isolated it's perfectly safe to connect them directly to the port and not use a breakout board, however you would still need to make an isolated circuit for the inputs, and it sometimes doesn't work if the port voltage is too low, so it's generally not worth it except for testing.


Thanks! Do the boards somehow increase the number of inputs available? Perhaps by multiplexing?

Unfortunately not.

hbx
08-03-2013, 02:59 PM
Thanks. Isolation the inputs sounds logical. I'm looking at some available breakout boards now, and some feature the charge pump as some form of safety. How to the breakout boards implement this? Is this meant to be detected by the software?

Also, regarding the use of more limit and home switches than available inputs, what's the most common solution? I saw the documentation on LinuxCNC which suggests connecting the switches in series. This doesn't seem to make much sense especially if the machine starts in a completely unknown state.

Jonathan
08-03-2013, 03:07 PM
I'm looking at some available breakout boards now, and some feature the charge pump as some form of safety. How to the breakout boards implement this?

It's generally a circuit that enables the outputs, via some logic gates, when it detects a square wave of the right frequency on one of the port outputs. That square wave is outputted by the software, so the outputs are only active when, in your case, LinuxCNC is running. It stops the motors moving a tiny bit when you boot the computer, that's about it. I wouldn't worry if the breakout board you have doesn't have it.


Also, regarding the use of more limit and home switches than available inputs, what's the most common solution? I saw the documentation on LinuxCNC which suggests connecting the switches in series. This doesn't seem to make much sense especially if the machine starts in a completely unknown state.

So long as you only press one (normally closed) switch at a time, then the software can use it for homing since it know which axis is moving, and thus which switch must have been pressed. If that still doesn't get you enough ports you can add a second parallel port - generally a PCI parallel port card.

hbx
08-03-2013, 03:20 PM
Ah I see, but this only works if only one axis is moving? During operation when everything's moving and something hits the limit switch, how will the software resolve this?

Jonathan
08-03-2013, 03:33 PM
Ah I see, but this only works if only one axis is moving? During operation when everything's moving and something hits the limit switch, how will the software resolve this?

It will just stop the machine, since clearly there's a fault, and it's up to you to resolve it - i.e. move the relevant axis off the limit switch.

hbx
08-03-2013, 03:48 PM
I suppose that's reasonable! Thanks! I may look into using something other than the parallel port. For LinuxCNC users, what are the next best options? PCI cards?

Clive S
08-03-2013, 06:01 PM
Just a little note regarding the PP BOB it can also act as a level shifter as most PPs these day are 3.3V and the drivers seem to work beter at 5V so the BOB can convert the 3.3V to 5V. Clive.

Swarfing
08-03-2013, 06:46 PM
For Linux have search on Massa cards and network ports as an alternative?

hbx
12-03-2013, 03:56 PM
I've been taking a look at the Mesa cards, and the 5I25 looks nice and simple. I'll stick to the LPT for now, while I figure out how to set LinuxCNC up.

Jonathan
12-03-2013, 04:59 PM
I've been taking a look at the Mesa cards, and the 5I25 looks nice and simple. I'll stick to the LPT for now, while I figure out how to set LinuxCNC up.

Unless you're doing something involving high frequencies (e.g. most servos) or lots of I/O then you don't really gain much by not using the parallel portw so sticking with it is probably the best option.

hbx
12-03-2013, 05:18 PM
That's what I've gathered, though the extra IOs will be pretty handy for limits, homing etc. I don't want to get ahead of myself though, I'm still not sure how to set it up for the tripod I'm building.