Intercepting/copying parallel port signal

Wanted to intercept parallel port (or other CNC controller) signal being sent to a CNC, however I realized it might be not so simple without affecting the target device.
I presume, reading through resistor in parallel isn't really an option, because resistance varies between possible target devices and might leave either interceptor or target device without signal.
Is there any standart way of doing things like that?
P.s. signal should read reliably at up to 400kHz.

If it really is a Centronics parallel port, then it's just a voltage signal. Put it straight into the Arduino inputs, with a voltage divider, if required. You do know how to find the peak voltage so you don't break the Arduino?

P.s. signal should read reliably at up to 400kHz.

And where are you going to put that data in an Arduino?
You don't get long at that data rate with only 2K of memory.

MorganS:
If it really is a Centronics parallel port, then it's just a voltage signal. Put it straight into the Arduino inputs, with a voltage divider, if required. You do know how to find the peak voltage so you don't break the Arduino?

The original signal recepient (stepper controllers etc.) often use optocouplers, which essentially are LEDs. I'm far from being an expert on this topic, so please excuse the ignorance but can't an LED effectively "suck" the current from input, Arduino input being "in the order of megaohms"?

Grumpy_Mike:
And where are you going to put that data in an Arduino?
You don't get long at that data rate with only 2K of memory.

I don't need to respond at that frequency, however I need to know precise pulse count over time, so I'm using a counter to divide by 16.

There's no such thing as "suck" in electronics. It's all "push" like water pressure in a pipe.

If you have a tiny leak in a pipe, with drips coming out of it, does the receiver at the other end notice? This is an example of a high "resistance" because the tiny leak resists flow and most of the flow travels the path of least resistance. If the receiver is also high resistance, so it's only taking drips out of the pipe too, then it really won't notice the current that you siphoned off the side to the Arduino.

ADCs are high input inpedance. The ADC probably only draws uAs to read a voltage.
LEDs on the other hand , require at least 1 mA.

Not sure if this is any help but have a look at this post.

There may be some useful reference info in this post.

MorganS:
There's no such thing as "suck" in electronics. It's all "push" like water pressure in a pipe.

If you have a tiny leak in a pipe, with drips coming out of it, does the receiver at the other end notice? This is an example of a high "resistance" because the tiny leak resists flow and most of the flow travels the path of least resistance. If the receiver is also high resistance, so it's only taking drips out of the pipe too, then it really won't notice the current that you siphoned off the side to the Arduino.

raschemmel:
ADCs are high input inpedance. The ADC probably only draws uAs to read a voltage.
LEDs on the other hand , require at least 1 mA.

To make it clear, I want to plug arduino inbetween the receiver that draws undefined current and parallel port.

So what I meant in provided pipe analogy is - could it be that if you open the tap(end receiver draw), some small leaks (Arduino input) might stop dripping as there's not enough to "push" anymore :slight_smile:

raschemmel:
There may be some useful reference info in this post.

Thanks.

To make it clear just connect the arduino inputs to your centronic outputs and leave them connected to what ever it is they are connected to already.
That is it.

To make it clear, (if it isn't already), since the arduino inputs are high impedance (when configured as INPUTS), they will not load down (interfere ) with the parallel signal. Based on what I have seen (and Mike's last comment), it appears Centronics interface is a TTL signal interface so your arduino is already compatible. In order to read it you need use the control signals on the interface to synchronize your READ operation. Look at the posts I linked for more info on the S/W to do that. If you don't understand the High Impedance/Low Impedance terminology please say so. Based on your "SUCK" nomenclature , I'm guessing that's a "No"...

raschemmel:
I'm guessing that's a "No"...

From the phrase "equivalent to a series resistor of 100 megohm in front of the pin" in the reference I assumed it to be synonymous with resistance in practice.

Correct, but what that means is that the arduino ADC is INVISIBLE to the circuit being monitored, making it your following question basically unnecessary:

Wanted to intercept parallel port (or other CNC controller) signal being sent to a CNC, however I realized it might be not so simple without affecting the target device.
I presume, reading through resistor in parallel isn't really an option, because resistance varies between possible target devices and might leave either interceptor or target device without signal.
Is there any standart way of doing things like that?

I realized it might be not so simple without affecting the target device.

From the phrase "equivalent to a series resistor of 100 megohm in front of the pin" in the reference I assumed it to be synonymous with resistance in practice.

In short, the "effective 100 Mohm series impedance " which describes the High Impedance characteristic of the ADC, means that you can do exactly what Mike said:

To make it clear just connect the arduino inputs to your centronic outputs and leave them connected to what ever it is they are connected to already.
That is it.

and that's all there is to it (H/W-wise). Now all you have to do is get the S/W right.
What I am saying is that your post would have saved time if you had worded it like this:

"Is it true a Centronics Parallel Printer Port is "Plug & Play" with an Arduino , as far as the H/W is concerned ?" (assuming the data pins are connected to arduino data pins, etc...)

but then "hind sight is always 20/20"...

I suppose if you get the S/W right you could print the intercepted words to an LCD.

Look at the waveforms. One of the images shows an interface to a standard parallel port. Note the presence of 7400 series TTL chips. This tells you immediately that the signals are TTL compatible.

CENTRONICS PARALLEL PORT WAVEFORMS

All of this information was readily available using Google. What does this mean ?
It means that if you took the time to research your question using Google you would have been forced to come to the conclusion that a Centronics parallel port is a TTL compatible interface and is DIRECTLY interfacable with an arduino, period.
Does that mean I am suggesting that you shouldn't post questions on the forum like this one ? Absolutely not. I am simply saying, you don't need an International forum to answer a question like this post. A little research with Google goes a long way...