Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: [Solved] was: Need electrical circuit help (Rotating Monitor w. Parallel Port)  (Read 5734 times)

0 Members and 1 Guest are viewing this topic.

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Hey folks!

So I've created this this parallel port circuit and have ran into troubles w/ windows booting causing pins 2 and three to swap from being low to being high.  If this circuit sees 2 go high while 3 is low (or vice versa) then the motor turns.  How can I prevent bootup from sending data changes to these pins?

Thanks.

-csa
« Last Edit: January 25, 2009, 05:45:49 pm by csa3d »

DaOld Man

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5139
  • Last login:December 13, 2023, 12:03:14 am
  • Wheres my coffee?
    • Skenny's Outpost
Re: Need electrical circuit help
« Reply #1 on: January 24, 2009, 03:23:15 am »
see if another pin is also going high on boot up. If it is, place the highlighted part of your circuit back in, and tie the base resistor of Q3 to the that third output.
Thats one way.

richms

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 596
  • Last login:September 03, 2022, 02:33:54 am
  • s92a sucks
    • richms.com
Re: Need electrical circuit help
« Reply #2 on: January 24, 2009, 04:42:55 am »
You cant, the parallel port is used to output POST information on most machines for diagnosing motherboard issues, so thats why the lines will be toggling.

Even the serial port is not immune to this sort of thing with plug and play diddling with the handshake lines to get things to identify themselves.

You may be OK with an addin parallel port card, but my gut says the best way is to get an arduino or other simple microcontroller board that you can use instead, and put some code on it so you just send "vertical"  or "horizontal" out the port, or look into an LED wiz or something and use pins of that instead.

DaOld Man

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5139
  • Last login:December 13, 2023, 12:03:14 am
  • Wheres my coffee?
    • Skenny's Outpost
Re: Need electrical circuit help
« Reply #3 on: January 24, 2009, 06:36:27 am »
The above circuit worked for me. (Used opto isolators instead of transistors, but same theory.)
On two different XP computers. But I had to use a different output on each, because a different output was left on.
On both however, all 8 outs are left on after windows boots.

Cametron

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 17
  • Last login:March 03, 2009, 08:59:32 pm
  • More than meets the eye....
Re: Need electrical circuit help
« Reply #4 on: January 24, 2009, 07:29:17 am »
How about running a delay circuit on the common ground?  Set the delay long enough for the boot to complete.
Just my 2c.

Cheers

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #5 on: January 24, 2009, 08:02:09 am »
see if another pin is also going high on boot up. If it is, place the highlighted part of your circuit back in, and tie the base resistor of Q3 to the that third output.
Thats one way.

Well, that chart at the top says that pins 2-9 all go high during bootup.  I guess I'll give that a try next.  Output pins 2, 3, and 4 are currently in use... would you suggest any of the remaining pins as having a better chance of working over the others?  I'm currently considering pin 9, because it's the last of the outputs which goes high after boot.  Not sure if they do this low to high swap in any particular order to be honest.

-csa

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: Need electrical circuit help
« Reply #6 on: January 24, 2009, 09:41:11 am »
Try tying all of 12, 13, and 15 to parallel port ground.  This *should* tell Windows that the device is not IEEE1284 compliant and that therefore it can't be a PnP device.  This should make it never touch the strobe line (pin 1) as it has to assume that there may be an old printer hooked up, and such an action could cause it to start printing things.

Once you accomplish that, you can use pin 1 as an enable.  Remove that switch/relay/whatever and install Q3 with its emiter tied to the base resistors of both Q1 and Q2.  Once your OS is up, your control software can set bit 0 of the control port low to "enable" everything, then use all 8 data lines as you please.

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #7 on: January 24, 2009, 11:05:30 am »
Try tying all of 12, 13, and 15 to parallel port ground.  This *should* tell Windows that the device is not IEEE1284 compliant and that therefore it can't be a PnP device.  This should make it never touch the strobe line (pin 1) as it has to assume that there may be an old printer hooked up, and such an action could cause it to start printing things.

Interesting..

Let me ask you then, if I tie 12, 13, and 15 to ground... and i'm using pins 12 and 13 in that circuit which controls the sensing of when a limit is reached, I would just have to substitute two other input pins instead.. say 10 and 11 instead then?  I know this is easily done given the current software and setup.

Once you accomplish that, you can use pin 1 as an enable.  Remove that switch/relay/whatever and install Q3 with its emiter tied to the base resistors of both Q1 and Q2.  Once your OS is up, your control software can set bit 0 of the control port low to "enable" everything, then use all 8 data lines as you please.

Not sure if the software is ready for this design change yet.  DaOldMan, what do you think about this suggestion?  (After all, he's the one writing the software I'm using here :) )

Thanks for the suggestion!
-csa



csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #8 on: January 24, 2009, 11:46:48 am »
What are the blue top mount screw thingers called on this image



and can one purchase them from RadioShack or are they special order elsewhere?

-csa

Level42

  • Wiki Contributor
  • Trade Count: (+5)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5965
  • Last login:November 13, 2018, 01:56:39 am
  • A Suzo stick is a joy forever...
Re: Need electrical circuit help
« Reply #9 on: January 24, 2009, 05:06:38 pm »
Terminals I guess.

I'd go for a simple solution like a delay like Cametron suggests. A 555 would be ideal for this.

On the other side, can't you configure the parallel port in the bios to set it as a old-fashioned bi-directional port and would that change the behavior on start-up ?
« Last Edit: January 24, 2009, 05:08:23 pm by Level42 »

DaOld Man

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5139
  • Last login:December 13, 2023, 12:03:14 am
  • Wheres my coffee?
    • Skenny's Outpost
Re: Need electrical circuit help
« Reply #10 on: January 24, 2009, 06:53:07 pm »
Cametron, that would work, but it would also require another hand full of parts.

CSA3d, I used whichever pin stayed high during the boot process. remember, Mrotate2 sets all outputs low when it first starts, so us eone that turns on high when computer boots.

Monmotha, I didnt know this. i will have to try it when I get home.

CSA3d, yes, you can use pins 10 and 11, just set mrotate2 to invert pin11.
I think those terminal bloacks are called euro blocks(?) I ordered some from digikey. (Radio Shack doesnt have them).
*Edit* I misread the post... I think I can set pin 1 high, just another revision. :)


Level42: I tried that on my BIOS, it didnt work for me. But I have found that computers act differently, so it's worth trying.

You all do know that i went through this about a year ago and just about wrote a book on it LOL.

Here is a post from my original thread:
http://forum.arcadecontrols.com/index.php?topic=72750.msg758713#msg758713
I think I posted links to where I got my parts, including the terminal blocks.

Honestly, since you have already wired in the two transistors, I would just try the third one. It was so simple and it worked perfectly for me. still working today. well, not today since I removed my arcades computer to use while my desktop is down. (Ref my rant in Everything Else). But im 100% sure it will work when I put the arcade back together.
« Last Edit: January 24, 2009, 07:13:23 pm by DaOld Man »

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: Need electrical circuit help
« Reply #11 on: January 24, 2009, 10:41:00 pm »
What are the blue top mount screw thingers called on this image



and can one purchase them from RadioShack or are they special order elsewhere?

-csa

Those are generally called "terminal blocks" or just sometimes "terminals".  Radio Shack at one point sold them, but they appear to no longer carry them.  You can buy them from any large supplier (Digi-Key, Mouser, etc.) from lots of different manufacturers such as Phoenix Contact, OST, Weidmuller, etc.  Those are *NOT* "eurostyle".

Regarding tying 12, 13, and 15 low, you should only have to tie one of the, but doing all 3 should pretty well convince Windows that your device is not IEEE1284 compliant.  The key is that you're allowed to futz with all the data lines as long as strobe is high for any device, but IEEE1284 devices will respond in a certain way to certain data patterns which will then allow the stobe line to be used for nibble mode input.  If you convince Windows that your device is not IEEE1284 compliant, it should "give up" attempting to do PnP discovery and should never take strobe low since that could cause problems with "compatibility mode" (aka old) devices.

richms

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 596
  • Last login:September 03, 2022, 02:33:54 am
  • s92a sucks
    • richms.com
Re: Need electrical circuit help
« Reply #12 on: January 25, 2009, 08:34:21 am »
In that case a latch attached to the strobe line should get you sorted. There is something that you can loop back on a parallel port to make it so you can just echo stuff to it, which I did when I was wanting to get a PC to spit out some data to a circuit hooked up to it and I had just gone to windows NT and noone had any working port IO stuff at the time. I would have to dig it out but I think it was looping the strobe line back to the ACK pin, but I am not 100% sure.

Edit

Actually forget the latch idea, they start up with random stuff on the output, so you may just be better off with a delay to power it up if you are going to keep with the non processor driven motor control.
« Last Edit: January 25, 2009, 08:48:28 am by richms »

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: Need electrical circuit help
« Reply #13 on: January 25, 2009, 08:54:35 am »
Well, I had thought about a latch, but what he has already should work given some assumptions about the device he's hooking up to (which I assume are correct, otherwise this wouldn't work at all).

If you do want to use a latch, a simple RC setup on the master reset pin can make the "random startup data" a non-issue.  I would have suggested a latch, but the 74373/74573 both have active high latch enable (level sensitive), while this application would want active low.  An edge triggered device like a 74374/74574 might do the trick.  Of course, then you might as well go for broke and use EPP mode :)

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #14 on: January 25, 2009, 08:58:18 am »
On the other side, can't you configure the parallel port in the bios to set it as a old-fashioned bi-directional port and would that change the behavior on start-up ?

I have looked in my bios, and there are 5 options to choose from, at this time.. i don't remember what those are.  It defaulted to cpp+epp or something with a plus in it (there was only one of those options).  I went through each option in the bios, saving it, and restarting.  All modes appeared to have a similar effect.

This being said, for what I'm trying to pull off, what would everyone suggest be the default bios settings for the printer port and why.

Thanks
-csa

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #15 on: January 25, 2009, 09:03:48 am »
What are the blue top mount screw thingers called on this image



and can one purchase them from RadioShack or are they special order elsewhere?

-csa

Those are generally called "terminal blocks" or just sometimes "terminals".  Radio Shack at one point sold them, but they appear to no longer carry them.  You can buy them from any large supplier (Digi-Key, Mouser, etc.) from lots of different manufacturers such as Phoenix Contact, OST, Weidmuller, etc.  Those are *NOT* "eurostyle".

I've looked these up on mouser.  These look like they will work, yeah?


-csa

Blanka

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2248
  • Last login:January 25, 2018, 03:19:28 pm
Re: Need electrical circuit help
« Reply #16 on: January 25, 2009, 09:07:09 am »
Just use an Arduino to control motors :D
Using a parallel port is not future proof anyway. USB will stay on PC's much longer. You can even have the Arduino work stand alone, as it is a computer by itself. It can both handle inputs and control motors, even PWM controlled.
« Last Edit: January 25, 2009, 09:14:02 am by Blanka »

richms

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 596
  • Last login:September 03, 2022, 02:33:54 am
  • s92a sucks
    • richms.com
Re: Need electrical circuit help
« Reply #17 on: January 25, 2009, 09:21:17 am »
Seconded on the Arduino - problem I have with the places I have deployed them around the place is I keep on taking them to try other things with.

Once you have the arduino there you can use it to do other things like driving LED/LCD displays, counting credits, limiting game play time, etc etc.

The development environment makes it a no brainer to code for. Even if you dont use it for this, get yourself a couple to just mess around with.

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #18 on: January 25, 2009, 11:16:38 am »
For those of us unfamiliar with an Arduino, can you link one you recommend?

Also, I just hooked up pin 9 into the original circuit diagram, this time INCLUDING the red highlighted section and was able to boot and shut down windows w/o the motor coming on!  I think I actually might have this thing working!  I want to run a few more tests, but so far it's looking good!

My circuit board looks like hell now lol, oh well.. maybe I'll remake it if I conclude success.  One thing I wasn't sure how to do was to plan out the wire routing under the perfboard to create my traces.  Is there some program everyone uses to make that simple or is it pretty much a learn as you go thing?

-csa

Blanka

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2248
  • Last login:January 25, 2018, 03:19:28 pm
Re: Need electrical circuit help
« Reply #19 on: January 25, 2009, 11:48:32 am »
Just the basic Duemillanove.
http://arduino.cc/en/Main/Buy

Level42

  • Wiki Contributor
  • Trade Count: (+5)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5965
  • Last login:November 13, 2018, 01:56:39 am
  • A Suzo stick is a joy forever...
Re: Need electrical circuit help
« Reply #20 on: January 25, 2009, 11:56:39 am »
Ah the wonders of Firefox:

Copied the word Arduino in the URL line and.....:
http://www.arduino.cc/

richms

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 596
  • Last login:September 03, 2022, 02:33:54 am
  • s92a sucks
    • richms.com
Re: Need electrical circuit help
« Reply #21 on: January 25, 2009, 11:58:31 am »
I got a freeduino which is a clone of the original one, but next lot I get will be these ones..

http://www.seeedstudio.com/depot/seeeduino-v11-fully-assembled-arduino-compatible-p-114.html

Normal USB plug not the big printer one, and headers on a pitch that will work on a prototype board. Whoever put them where they are on the arduino needs their head read.

This one looks like a good idea, but sadly I can only find a US supplier for it so there is stupid shipping charges. Also the stupid big USB plug on it as well. http://www.ladyada.net/make/boarduino/  - could easily have the small one _and_ a dc connector on it rather then the big one.

Level42

  • Wiki Contributor
  • Trade Count: (+5)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5965
  • Last login:November 13, 2018, 01:56:39 am
  • A Suzo stick is a joy forever...
Re: Need electrical circuit help
« Reply #22 on: January 25, 2009, 12:00:25 pm »
Looks a bit overkill if you already have a computer running to manage things...

richms

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 596
  • Last login:September 03, 2022, 02:33:54 am
  • s92a sucks
    • richms.com
Re: Need electrical circuit help
« Reply #23 on: January 25, 2009, 12:03:51 pm »
The way the computer is set up there is no feedback for stalled motor, or if its finished. Yes, the parallel port could be used as an input as well, but that still leaves you at the mercy of other software not messing with the port, it not crashing etc. With a microcontroller doing the work you can have timeouts, count motor revolutions for if its jammed, reading the microswitches to check its done in time etc etc which to me is well worth the few $

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #24 on: January 25, 2009, 12:31:40 pm »
With that Arduino, does that handle printer port commands via usb?  Is it something you need to code yourself like a nutchip?  Is it just an interpreter of USB, therefore needing software to tell it what to do?

Back to my circuit, putting the monitor unit back in the cab broke something, or is shorting.. because it's not working properly once again..  :censored:

-csa

richms

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 596
  • Last login:September 03, 2022, 02:33:54 am
  • s92a sucks
    • richms.com
Re: Need electrical circuit help
« Reply #25 on: January 25, 2009, 12:49:12 pm »
you program it in a pre made development environment - there is a loader on the chip so its as simple to program as clicking a button on the development environment.

So you could program it so it waits in a loop for a character from the computer over the USB, then it will turn on the motor, wait a time limit then turn it off, or go untill it reads a switch has triggered, then send something back to the computer and turn the monitor on.

Its really up to you, but since its all running in the microcontroller on the arduino theres not much the PC can do to stuff up the operation of it, whereas doing the motors directly means that if the PC crashes or whatever it could leave something on and burn the motor out etc.

The arduino boards have a USB serial port converter on them, so they just show up as COM6 or whatever to the computer.

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: Need electrical circuit help
« Reply #26 on: January 25, 2009, 01:23:04 pm »
An Arduino is an Atmel AVR on a board with certain characteristics (including a FT232 or similar USB<->UART adapter), a custom bootloader to allow it to be programmed via the serial port (USB) interface, and a development environment that's basically C++ with a TON of macros that attempt to make things easier for novices.  It's kinda like programming a Lego Mindstorms kit in NQC, if you've ever done that.  If you're not at all comfortable with programming, it would still be a bit of a step to use something like an Arduino (or any microcontroller that you're tasked with programming).  The Arduino libraries/macros make it a little easier than programming the "bare metal" directly, but you still have to be familiar with basic loops and such.  You just don't have to bang on registers directly (very often).

For "safety critical" (or just applications where hardware destruction could result if things go wrong) or real-time applications, an external micro can be a welcome addition since it brings its own isolated running environment to the table.  If you just want to blink a light, it's probably overkill.

A lot of things people use these little MCU boards for seem to simply be because PCs lack good GPIO.  A parallel port is pretty close, but many PCs don't have them, and modern OSes can place some impossible or difficult to remove assumptions on the port that aren't compatible with using them as GPIO (like you've noticed).  I guess just do whatever works.  I don't know exactly what you're doing, but I'd probably use the parallel port.  However, I run Linux, which can be made to not attempt IEEE1284 negotiation pretty easily.  I seem to recall that's difficult or impossible on Windows.

Level42

  • Wiki Contributor
  • Trade Count: (+5)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5965
  • Last login:November 13, 2018, 01:56:39 am
  • A Suzo stick is a joy forever...
Re: Need electrical circuit help
« Reply #27 on: January 25, 2009, 02:27:49 pm »
Good info, I can see the advantages now. Also nice because it will work on Mac's that don't have parallel printer ports.

Interesting stuff, thanks.

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
Re: Need electrical circuit help
« Reply #28 on: January 25, 2009, 03:58:30 pm »
Back to my circuit, putting the monitor unit back in the cab broke something, or is shorting.. because it's not working properly once again..  :censored:

Ok, figured out why things were shorting.  When I mounted the PCB I used left over U-Brackets from my U360 joystick after installing restrictor plates.  They can be seen here in black elevating the yellow PCB:



Guess what, they are made of metal just like the copper and exposed wires on the back of the PCB.  They happened to be shorting out the new logic to the Pin 9 logic gate.  I took my utility knife and cut one of those plastic wire screw-downs (also illustrated above ) to create two plastic washers which I sandwhiched between the PCB and the metal brackets.  No more short, and a properly rotating monitor!  Hoo-RAY!

@DaOldMan:  Thanks for all your help on this circuit!  I'll transfer this info over to my project thread in a bit now that I got it all worked out.  Also, the pportreader.exe is working splended!

@Others:  That card seems like a pretty nice way to implement a "plug-n-play" solution to this rotating business.  Though, the printer port circuit above WITH the red highlighted section wired in instead of directly grounding the commons seems pretty fail safe as well if you take the time to check your printer pin bootup patterns ahead of time.

Thanks to everyone who helped me through this issue!

-csa
« Last Edit: January 25, 2009, 04:16:53 pm by csa3d »

DaOld Man

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5139
  • Last login:December 13, 2023, 12:03:14 am
  • Wheres my coffee?
    • Skenny's Outpost
Re: [Solved] was: Need electrical circuit help
« Reply #29 on: January 25, 2009, 05:04:06 pm »
Glad to help out.

If you repost that drawing above, in the note at bottom I said to wire pins 18,19,20,21,22,23,24, 15 together.
Thats not correct.
It should read 18,19,20,21,22,23,24,25 (all the grounds.)
I dont want to scew someone up..

Blanka

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2248
  • Last login:January 25, 2018, 03:19:28 pm
What is really weird in your scheme is that the power-side of the transistor is connected to the parallel port. Normally you connect the the base to the signal pin, with a 10K resistor from the base to the ground, and the motor in the collector/emitter line. Also I would pick a MOSFET like an IRF 520 for it, as it is better in fast switching, allows high current (9 amps) and used less power itself.

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
The transistors are being used as pass elements, not the normal "current amplifier" that you're probably used to seeing.  In this design, if some current is allowed to flow from the base (these are PNPs, remember), then much more current will be allowed to flow from the parport into motor controller when the parport output is high (i.e. willing to source current).  This base current is controlled by the third transistor which is in turn controlled by another parport output.  If the parport output is low or the base current path is cut off, no current will flow to the motor controller.

I suspect the motor controller just has transistor inputs, so this is cool.  Attempting to drive push-pull TTL inputs or, even worse, CMOS inputs with this scheme would not likely meet with total success as the setup cannot sink current.  Using a digital buffer here such as a 74LS244 would solve that problem.

Using MOSFETs here might meet with several challenges.  Those large power MOSFETs like the IRF520s you mentioned (which there's no reason to use here as this is not a high-power application) often have a Vth of around 3V.  Many modern PCs that still have parallel ports only have 3.3V logic levels on them and therefore will not be able to get such a MOSFET into the ohmic region.  Low power is also not likely a concern (and you're only saving ~2mW in power used to drive the base anyway).  On-state conduction losses are not a concern here.

MOSFETs are not a panacea.  They have advantages, but they also have disadvantages.  While it's often possible to design either into an application, I find that, for novices, BJTs are usually a little easier to understand and also easier to acquire.  BJTs are also not generally ESD sensitive, so that's a bonus for novice hobbyists.

csa3d

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 872
  • Last login:March 07, 2011, 08:16:35 am
  • Will game for food
    • Galaxian Mame Conversion
To keep this thread up to date as well, I'm attaching the final wiring I used in the circuit, now that it's up and running.  Comments are welcome.


 click image to enlarge.

-csa