Connect with us

Interfacing to parallel port dongle via USB adapter

Discussion in 'Electronic Design' started by Paul E. Schoen, Apr 2, 2008.

Scroll to continue with content
  1. 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
     
  2. Joerg

    Joerg Guest

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

    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.
     
  3. 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 [email protected]!#$%& 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.
     
  4. 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..
    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.

    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.
     
  5. Phil Hobbs

    Phil Hobbs Guest

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

    Cheers,

    Phil Hobbs
     
  6. Rich Webb

    Rich Webb Guest

    On Wed, 02 Apr 2008 17:07:49 -0500, Paul Urbanus
    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.
     
  7. Joerg

    Joerg Guest

    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.
     
  8. Joerg

    Joerg Guest

    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.


    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.
     
  9. 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.
    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.
     
  10. 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.
     
  11. 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
     
  12. Joerg

    Joerg Guest


    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.
     
  13. Guest


    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
     
  14. Joerg

    Joerg Guest

    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.
     
  15. Joerg

    Joerg Guest

    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.
     
  16. 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...
     
  17. Joerg

    Joerg Guest

    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 ...
     
  18. Joerg

    Joerg Guest

    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 :)
     
  19. Joerg

    Joerg Guest

    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.

    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 ;-)
     
  20. Joerg

    Joerg Guest

    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 ...
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-