Maker Pro
Maker Pro

Interfacing to parallel port dongle via USB adapter

P

Paul E. Schoen

Jan 1, 1970
0
I have software (PADS Layout) that requires a parallel port dongle, and it
works fine on my present (fairly old) computer, which has a native parallel
port. But newer computers, particularly laptops, do not have these legacy
ports and instead use USB to Parallel (or USB to Serial) converters. They
generally work well for printers, but I have heard that they do not work
for dongles. The usual solution is to obtain a USB dongle from the software
vendor (www.mentor.com), but they require the user to be on "maintenance"
in order to get a USB dongle, and they impose outrageous penalties and
payment of back (unused) support in order to be reinstated.

I have some experience with USB using the Microchip PIC18F2450 series, and
I have a demo board that works nicely as a USB to Serial converter. But I
want to see if it is possible to emulate a parallel port via USB that will
be transparent to the software that interfaces with the dongle. I think the
problem with the commercially available USB-Parallel adapters is that they
work only for printer functions, and not for individual bit-banging, which
is what I understand is done with the dongle.

The PADS dongle I have is a Globetrotter FLEXid (www.macrovision.com). This
is a newer dongle than the one used for another software package that
interfaces to software (TCC) sold by my associate to work with my product,
the Ortmaster. When I researched that dongle, the Rainbow Technologies
Sentinel Pro, it described its operation as using only one or two lines of
the parallel port to send and receive streams of data. If the new dongle
works the same way, it seems that it should be possible to emulate this via
USB.

Info on this device:
http://www.macrovision.com/webdocuments/PDF/FLEXidDongle_faq.pdf. But it
does not give details on the hardware.

Some information I found is http://www.woodmann.com/crackz/Dongles.htm, but
this is a hacking site, and that is not what I want (although I'm tempted).

I'll probably check the parallel port signals with a storage scope to see
what pins are active when I'm running the software with the dongle, and
then I'll have a little more information. But if anyone has done any work
in this area, I'd appreciate a jump start.

TIA,

Paul
 
J

Joerg

Jan 1, 1970
0
Paul said:
I have software (PADS Layout) that requires a parallel port dongle, and it
works fine on my present (fairly old) computer, which has a native parallel
port. But newer computers, particularly laptops, do not have these legacy
ports and instead use USB to Parallel (or USB to Serial) converters. They
generally work well for printers, but I have heard that they do not work
for dongles. The usual solution is to obtain a USB dongle from the software
vendor (www.mentor.com), but they require the user to be on "maintenance"
in order to get a USB dongle, and they impose outrageous penalties and
payment of back (unused) support in order to be reinstated.

For me such business behavior would be a huge red flag.

I have some experience with USB using the Microchip PIC18F2450 series, and
I have a demo board that works nicely as a USB to Serial converter. But I
want to see if it is possible to emulate a parallel port via USB that will
be transparent to the software that interfaces with the dongle. I think the
problem with the commercially available USB-Parallel adapters is that they
work only for printer functions, and not for individual bit-banging, which
is what I understand is done with the dongle.

The PADS dongle I have is a Globetrotter FLEXid (www.macrovision.com). This
is a newer dongle than the one used for another software package that
interfaces to software (TCC) sold by my associate to work with my product,
the Ortmaster. When I researched that dongle, the Rainbow Technologies
Sentinel Pro, it described its operation as using only one or two lines of
the parallel port to send and receive streams of data. If the new dongle
works the same way, it seems that it should be possible to emulate this via
USB.

Info on this device:
http://www.macrovision.com/webdocuments/PDF/FLEXidDongle_faq.pdf. But it
does not give details on the hardware.

Some information I found is http://www.woodmann.com/crackz/Dongles.htm, but
this is a hacking site, and that is not what I want (although I'm tempted).

I'll probably check the parallel port signals with a storage scope to see
what pins are active when I'm running the software with the dongle, and
then I'll have a little more information. But if anyone has done any work
in this area, I'd appreciate a jump start.

Walmart has a USB-Parallel adapter that supposedly works bidirectionally:
http://www.toko.co.jp/products/en/filters_lc/fss_e.html

You could try it. Probably can be returned if it doesn't work. You'd
just have to roach on the D-Sub somehow.
 
J

John Tserkezis

Jan 1, 1970
0
Paul said:
I'll probably check the parallel port signals with a storage scope to see
what pins are active when I'm running the software with the dongle, and
then I'll have a little more information. But if anyone has done any work
in this area, I'd appreciate a jump start.

It largely depends on how it "looks" at the port, but generally, it's not
going to work.

The legacy ports are mapped in a particular place in hardware. PCI printer
cards are mapped elsewhere.
USB/LPT adaptors are mapped via the USB host which is pretty much worse as
far as the software goes.

You cannot "emulate" software to look at a different hardware port than what
it asks for.
Think of it this way:
If you go directly to a physical street address and drop mail in, you pretty
much know where you're going. There is no flexibility.
If you go via the postal service (and obviously know how to use the postal
service because it's a different system than a street address), and they are
fully automated, you could in theory add another software layer that points to
an alternative place, so the user still does the same thing, the postal
service might do the same thing, but the extra software re-directs as required.
But if you're talking directly with a physical address, and they've moved
house, you're screwed.

There are a couple of things you can do. One is get VERY lucky and have a
laptop and desktop cradle that presents with a legacy port within the cradle.
Or, you can find an alternative laptop/desktop with a legacy port.
Or, you can vote with your wallet and NOT buy into those !@!#$%& dongles in
the first place.

I could vent quite comprehensively about this dongle issue now, but it would
serve no purpose, so I'll bottle it up and blow up later.
 
A

Archimedes' Lever

Jan 1, 1970
0
It largely depends on how it "looks" at the port, but generally, it's not
going to work.

The legacy ports are mapped in a particular place in hardware. PCI printer
cards are mapped elsewhere.

Use the "NET USE" command to make a connection mapping If you have a
legacy app that wants to see a dongle on a parallel port, I know of no
solution other than getting the software key/dongle equivalent. Even
then, sometimes a legacy app requires a firm parallel port be available..
USB/LPT adaptors are mapped via the USB host which is pretty much worse as
far as the software goes.

You cannot "emulate" software to look at a different hardware port than what
it asks for.

Sure you can. You merely have to map to it to fool the software. The
NET USE command does not actually need to work across a network. Once it
is assigned, a machine that has started NET USE on a port mapping would
need to kill the mapping to remove it when desired. It will not
automatically go away.
Think of it this way:
If you go directly to a physical street address and drop mail in, you pretty
much know where you're going. There is no flexibility.
If you go via the postal service (and obviously know how to use the postal
service because it's a different system than a street address), and they are
fully automated, you could in theory add another software layer that points to
an alternative place, so the user still does the same thing, the postal
service might do the same thing, but the extra software re-directs as required.
But if you're talking directly with a physical address, and they've moved
house, you're screwed.

There are a couple of things you can do. One is get VERY lucky and have a
laptop and desktop cradle that presents with a legacy port within the cradle.
Or, you can find an alternative laptop/desktop with a legacy port.
Or, you can vote with your wallet and NOT buy into those !@!#$%& dongles in
the first place.

I could vent quite comprehensively about this dongle issue now, but it would
serve no purpose, so I'll bottle it up and blow up later.


Save yourself the headaches and just get the hacked/cracked version (I
never said that) of the app you have a legal license to use, or buy the
software dongle to enable your app as is. Both legal avenues.
 
P

Phil Hobbs

Jan 1, 1970
0
John said:
It largely depends on how it "looks" at the port, but generally, it's
not going to work.

The legacy ports are mapped in a particular place in hardware. PCI
printer cards are mapped elsewhere.
USB/LPT adaptors are mapped via the USB host which is pretty much worse
as far as the software goes.

You cannot "emulate" software to look at a different hardware port than
what it asks for.

Of course you can. It's been done since OS/2 1.3 in 1990.

Cheers,

Phil Hobbs
 
R

Rich Webb

Jan 1, 1970
0
On Wed, 02 Apr 2008 17:07:49 -0500, Paul Urbanus
Your best bet is to purchase a PCMCIA/PCCARD parallel port adapter.
Although they are a bit pricey ($100+ USD), they *should* be a faithful
emulation of the hardware port. You might have to change the
port/interrupt addresses to match the legacy addresses of 378h/278h/3BCh
for the driver software to see the port (depends on how old your dongle
software is). For a desktop machine, you should still be able to buy a
PCI parallel port card for $30-$40 USD.

Just to add a datum point to the discussion, I have tried a PCMCIA
parallel port adapter (Quatech SPP-100, rev H) to drive a Needham's
device programmer. Short version: Okay with printers, didn't work to
drive the programmer.

This was a couple of years ago and the hardware, firmware, & drivers
may well have improved since then. Probably won't hurt to give one a
try, and, after all, a device programmer != a dongle.
 
J

Joerg

Jan 1, 1970
0
Adrian said:
Personally I would request that the software vendor supports modern
hardware. If they wont, ditch it, and suffer the loss. You will come
out better in the long run.

They do. But in order to let you have that privilege they might make you
pay up all the years you skipped support contracts because you didn't
need them. One reason why I never bought software with a dongle. Many
other reasons as well, such as specialty printer not working anymore and
so on.
 
J

Joerg

Jan 1, 1970
0
rebel said:
My experience with parallel port dongles suggests you don't have a show using
USB.

The dongles I have examined use a "stimulus/response" exchange between the
dongle and the software package without activating the strobe line so the
outboard device (printer, whatever) does not "see" the exchange as it only
latches the byte data when the strobe is activated. By that means the dongle is
notionally invisible (or really transparent?) to the printer. (Sometimes you
can daisy-chain dongles, sometimes you can't).

Aha! What if Paul built a little go-between circuit that issues a strobe
whenever there is a change on any of the data lines? Or maybe he could
find out if this type dongle possibly uses only one or two data bits.

Unless you can - as JT indicated - capture that exchange and somehow replicate
the response to the software then you are SOL. Without being USB-familiar at
the raw signal level I can't say it can't be done, but I'd be extremely
surprised if it can.

Possibly a parallel port PCI card might work. I produce hardware that
interfaces to parallel ports for bidirectional transfer, but I haven't yet
checked out how truly those cards emulate a real parallel port.


That's what TI told me when I asked them about how to run one of their
older JTAG controllers. They said that most USB converters don't work
but the parallel port PCI or PCMCIA card usually does.
 
J

John Tserkezis

Jan 1, 1970
0
Sure you can.

I should have added "it depends".
If it goes via windows APIs to find the port, then yes, it's quite easy work
around.
If it looks directly at a particular hardware port, and there's nothing at
that physical hardware port, then short of hacking the software, you're NOT
going to 'fix' it.
Save yourself the headaches and just get the hacked/cracked version (I
never said that) of the app you have a legal license to use, or buy the
software dongle to enable your app as is. Both legal avenues.

In some cases, the second is not an option (company not around anymore), but
the prior (for single personal use) is very viable. Though not so much if
it's within a larger corporation and they actually pay attention to legals.
 
J

John Tserkezis

Jan 1, 1970
0
Of course you can. It's been done since OS/2 1.3 in 1990.

In this context, hardware dongles for copy protection, not going to happen.

There's a fair bit of bit-banging going on, and translating that via a
software interface that might not support it, AND expecting a meaningful
response to come back from the dongle translated across two very different
interfaces, I aint' holding my breath.

Regardless, it seems a very elaborate setup to run some software
encapsulated within an emulator, within your native OS is way over the top.

Might be easier and cheaper in the long run to not bother with all that BS
and just buy non-dongle encumbered software in the first place.
 
P

Paul E. Schoen

Jan 1, 1970
0
Jim Thompson said:
I seem to recall some software from years ago that captured the signal
and responses to/from a parallel port dongle, then emulated it...
object: to avoid having a dongle hanging off the back of your laptop.

Perhaps it still lives?

...Jim Thompson

I think some of the link on the crackz site above are for this type of
software. The older dongles may have simply returned a fixed response for a
fixed stimulus, and so would be easy to identify and reproduce. But I think
the newer schemes use encryption, and the software sends a stimulus which
generates a response according to a codec algorithm that is known to the
sender, so it can check the response. And it would use a random number
generator for the stimulus, so you would need to monitor the exchanges many
times before you could build a table of stimulus/response pairs. But what I
read on the woodmann site indicated that the encryption scheme might be
able to be cracked with a relatively small number of exchanges.

Of course, a really sophisticated system might periodically change the
key's code, but I doubt that because the key will work on different
computers with the same encrypted license file data. In this case, it is
also set up to expire after a certain time, and you must request a new
license file to extend the software's usability for another several years
(at the descretion of the vendor). For PADS, those who are off maintenence
are granted 5 year licenses. But I worry if they get a new crop of
corporate weenies, or are bought out by some other company, or if they just
suddenly go out of business.

I would probably not purchase any software with such a licensing scheme,
but I have had this software since it was practically given to me by a
company that was switching to Protel, around 1992. Then it was still just
PADS, and not Innoveda and then Mentor. Each progressive buyout made things
worse, but new features and better software made it worthwhile to spend the
$500/year or so that the maintenance package cost then, and that was before
they added the stupid back support and 40% penalty for lapses. This has
been a constant source of rants on the PADS user's forum. I have their
2004sp2 version, and there is a cracked earlier version 5.x, which would
probably meet my needs. I think that version also used a different,
non-expiring license, but I'm not sure it will work on my newer key dongle,
which became necessary after I had problems using the older key on my newer
computer.

I tried to monitor the activity on LPT1 using PortMon, but it does not
register anything, which indicates that the software is doing direct
bit-banging. I have software I wrote myself (ORTRUN.EXE), that uses the
parallel port for data collection, and it also does not show this activity.
It does show "legitimate" calls to the port, such as when I tried the MSDOS
command "COPY Filename LPT1:".

AFAIK, all versions of Windows after Win 98 use a virtual machine to handle
direct port access, but I think it eventually allows pretty much direct
control over the port. But there must be a layer of software that
intercedes in some way. I have been able to run two instances of ORTRUN at
the same time (but maybe on Win98), which indicates there must be two
virtual machines, and my direct read/write to the I/O port must be handled
by some low-level software. I think I need to look at this software and see
if it can intercept the R/W to the port and convert that to USB
transactions, which can then be changed back to parallel port bit-banging
by the PIC circuit.

I don't know if timing is critical. Probably the software writes a stream
of serial data on one of the port pins, and then waits for a reasonable
period of time for a response. I would expect that the baud rate for this
communication would be fairly low, so that a simple software UART can be
implemented. This would likely use the internal timer tick, which is about
55 mSec, or 18.2 ticks per second. A UART clock usually uses at least two
clock cycles per bit, so you could communicate at 9 bits per second. A 64
bit key would take 7 seconds, which is plenty fast enough for this purpose.

If I try my storage scope, I should be able to see the fastest transitions
and see if this is the case. And it should not be too hard to build a
parallel port monitor that can record these communications. But the hard
part will be to make a driver that will enumerate the USB device as an LPT
port, and then perform all the required I/O as seen by the application.

Whew!

Paul
 
J

Joerg

Jan 1, 1970
0
rebel said:
Certainly no biggie to capture the 8 I/O bits and the status/control bits of any
exchanges between the host and the dongle.

The next step, however, would only be "fun" if you live and breathe
reverse-engineering of data sequences. A whole truckload of data would likely
be sent to the dongle before a response is solicited, and when you see the
response you don't know how much of the preceding output was just padding (aka
obfuscating garbage) and how much was the key which the dongle is waiting for.
You also can't even be certain that the response is triggered by a byte value or
a handshake line (or a combination) in the immediate pre-response period - it
could be told to delay response by a certain number of bytes, and that could
also be variable.

The capture process needs to be independent of the "official" strobe on pin 1,
so a byte_value_change_detector would be required. A suitable comms analyser
would do most of that work, or a simple home-built interface tied to a PC would
certainly be able to capture the lot. BUT much existing software for these
purposes is strobe-dependent, so a little code-bashing would also be in order
unless the change detector latched the byte and generated a strobe pulse..


Sounds like a major science project, IMHO not worth it. I'd switch to a
better CAD software. Mine does not need a dongle and I most certainly
would not have bought it if it did. To me a dongle has about the level
of professionalism as a circuit board with the part numbers filed off.
 
I have software (PADS Layout) that requires a parallel port dongle, and it
works fine on my present (fairly old) computer, which has a native parallel
port. But newer computers, particularly laptops, do not have these legacy
ports and instead use USB to Parallel (or USB to Serial) converters. They
generally work well for printers, but I have heard that they do not work
for dongles. The usual solution is to obtain a USB dongle from the software
vendor (www.mentor.com), but they require the user to be on "maintenance"
in order to get a USB dongle, and they impose outrageous penalties and
payment of back (unused) support in order to be reinstated.


Newer DESKTOP computers, to my amazement, often still have parallel
ports.

My department is upgrading computers this month - the lease is up for
our current computers - and the newer, 2GB HP machines have... a
parallel port! I expressed my amazement to the IT staff, and they
looked at me like I was on drugs...

True, to save space, newer laptops likely won't have them.

Any particular reason you can't maintain an older machine to run
"legacy" applications? Sounds cheaper.

Michael
 
J

Joerg

Jan 1, 1970
0
Newer DESKTOP computers, to my amazement, often still have parallel
ports.

My department is upgrading computers this month - the lease is up for
our current computers - and the newer, 2GB HP machines have... a
parallel port! I expressed my amazement to the IT staff, and they
looked at me like I was on drugs...

True, to save space, newer laptops likely won't have them.

Any particular reason you can't maintain an older machine to run
"legacy" applications? Sounds cheaper.

The bridge chips on main boards almost all support LPT. Sometimes there
is a pin header or at least the empty position for one. On my latest
Dell there ain't. The bridge chip supports LPT and all other legacy
stuff but they took LPT out of the layout. They even removed the 2nd
floppy support from the BIOS :-(

Harumph. Grumble.
 
J

Joerg

Jan 1, 1970
0
Jim said:
So why did you buy Dell?

Because they have been good to me and most of the other name brands
didn't have legacy ports either. Before the purchase I found out that
they use a particular Foxconn MoBo in there and that had all the header
positions. Turns out Foxconn made a slightly modified one for them,
taking all those out :-(

Another reason was because the Dell business section offered XP. Vista
is not acceptable to me. Anyhow, you can order this particular PC with
LPT if you wanted to. I guess then they stick a PCI card in there, which
I can always do later.
 
J

Joerg

Jan 1, 1970
0
Jan said:
Dell came out in Germany as having by far the best support (if it is kaput) I found out
today (German user experiences with notebook service):
http://www.heise.de/ct/tv/artikel/105491
Asus came out the worst with recommendation they do something else for a while...

Dell's support is good but you have to be able to understand English
with a thick Indian accent. Not a huge problem for Americans but it can
become a challenge for others.

Just one example: A note inside the box and also the MoBo specs state a
dual-monitor setup but the mentioned adapter wasn't there. Called Dell,
they said that the adapter for that only exists for setups with a 2nd
graphics card. There would only be a splitter for displaying the same
image on two monitors but as a paid accessory. They then sent me that
splitter for free and despite me saying that this isn't at all urgent
they insisted on super-fast courier shipment. On the house ...
 
J

Joerg

Jan 1, 1970
0
Jim said:
I don't buy "name brand" PC's. My local PC Club churns out anything I
want... cheaply. I also don't buy Intel, I buy AMD. AMD processors
run circles around Intel chips when it comes to simulators. I also
bought a bunch of batch of XP for future use... just in case I can't
get it, though it looks like demand will keep XP there, at least for
awhile.

My experience with wrench shop PCs isn't that great. And yeah, AMD chips
are good for math intense stuff but nowadays the processor isn't the
pacing item in a PC. This one has an Intel dual core and it's faster
than I'll ever need. Also, my real simulator is a DSO and a Weller :)
 
J

Joerg

Jan 1, 1970
0
Jim said:
I, and a number of lurkers here, have run benchmarks of simulators on
Intel vs AMD. AMD is generally 2X faster.

I have noticed it as well since the laptop I usually take on the road
has an AMD. OTOH my sims aren't anywhere close to the big ones you most
likely do a lot so processor horsepower isn't all that important. Plus I
use two PCs in the office so if one has to do lengthy sims I just use
the other for CAD or Word. That's where the little file server comes in
handy because I can access all docs from either PC.

And, knock on wood, my "wrench shop" PC's outlast the steps in
technology. Actually all I've _ever_ had fail over the years is hard
drives.

Didn't you have a RAM reliability problem a while ago? As for technology
I often use PCs a decade or longer. Steps in technology are not always
forward steps. As evidenced in the latest, ahem, "new and improved" OS
developments ;-)
 
J

Joerg

Jan 1, 1970
0
Jim said:
Jim Thompson wrote: [snip]
And, knock on wood, my "wrench shop" PC's outlast the steps in
technology. Actually all I've _ever_ had fail over the years is hard
drives.
Didn't you have a RAM reliability problem a while ago? As for technology
I often use PCs a decade or longer. Steps in technology are not always
forward steps. As evidenced in the latest, ahem, "new and improved" OS
developments ;-)

Don't know quite why, but it was mixed size strips that was the
problem.

I was told it was OK to use mixed sizes, providing Strip1 matches
Strip2 and Strip3 matches Strip4. 'Tain't so :-(

I've done mixed sizes in a Dell laptop once and it worked fine. A PC is
supposed to let you know when it doesn't like that. Maybe you should
have bought a brand name PC after all ...
 
Top