Parallel Port Transistor Based Interface

Transistor Interface
*Update*

I got most of the basic stuff ironed out with the interface.  It turns out that PNP transistors are in fact needed for triggering Positive voltage operated buttons. No biggie just have to make some noteson the schematic about which in to use when, otherwise no modifications are needed. I also got the software compiled and it can be downloaded here.

Pattern Sequencer Software Version 0.1

An old computer is suggested to run this ( 200 Mhz or less), preferably one that you wouldn’t mind frying if something went sour, although I’ve been using my old laptop for weeks while experimenting and its just fine. The entire program can be ran off a basic DOS bootup floppy. In the future a fully loaded Disk image will be provided. Comments and suggestions are welcome.
*End Update*

At one point or another I’m sure everyone thought about triggering sounds of circuit bent toys in a patten like fashion with the use of a computer. This is my version of a super basic interface, which operates on the fact that transistors make great switches and will work perfectly for triggering sounds of circuit bent toys or DIY Sound circuits, being the equivalent to pushing button. When coupled with a pattern based software like this one from Mikmo.dk to turn on and off the digital pins of the computer’s parallel port any toy circuit can suddenly become a whacked out drum machine. This interface works by having a digital pin from the parallel port or any other controller board connected to the Base of the PN2222 NPN transistor. The Collector of the transistor is connected to the Ground of the Toy and the Emitter is connected to the button trace of a Toy which triggers a sound. When the Base goes to HIGH the Emitter and the Collector become bridged. Subsequently when the digital pin goes back to LOW on the computer’s parallel interface the bridge gets broken and no sounds will be triggered for the time being. Some toys require the connection to be sustained for a few milleseconds, so the computer program must accommodate that with delay routines. Most of the toys that I have looked at use a Ground signal to trigger their functions. However there are exceptions when a positive voltage is needed for this case a PNP transistor must be used instead of an NPN.

The computer parallel port has 8 digital output pins that can trigger up to 8 sounds individually, however in my schematic above I only have 4 connections, this is done to simplify the diagram.

The above circuit will be more less my topic for the Bent Festival Workshop along with a few other tips and tricks to get a bent instrument interfaced to a PC. The plan is to have a DOS based self booting diskette with a graphical step sequencer to utilize this interface. So far I have written a program that will do basically the same thing in Processing, except that Processing doesn’t come with a set of commands to control the parallel port, so I’m sending serial commands to an Arduino Interface and turning off and on its digital pins to accomplish virtually the same thing.

The diagram presented is a very rough draft of the final circuit, I could have made a huge mistake detailing this, so if you try building it and it doesn’t work for you, please let me know. Maybe my Es and Cs are crossed or something. Good luck and more updates will come soon.

*Update* It was pointed out in the comments that connecting the Collector to the Toy Button trace and the Emitter to the Ground is the correct way of doing this. I tested that configuration and in fact it does also work. The voltage drops were more-less close with the transistor being connected either way. However I am not sure why this happens, but just to be a conformist I will rewrite the information to reflect that.

Also, I have noticed that one of my keyboards is actually triggered by having positive +5 volts connected to the button traces. The above interface did not work correctly for that with an NPN transistor, however it did sort of work with a PNP one. I need to still do more work researching that.

Here is a list of what I tested so far.
Ground Triggered Toys:

Hing-Hon Square wave keyboard.-Works

Playskool drums.-Works

Positive Triggered Toys:

Kawasaki DSI-like keyboard ( Black Blob with LED keys ) – Does not work yet.

27 thoughts on “Parallel Port Transistor Based Interface”

  1. Looks real nice Im building it next week. Give you the results when im done ! Great Idea !!

  2. Yeah, there are numerous free versions of DOS and it runs on virtually any machine. Although older machines are better because of timing issues.

  3. Nice simple interface. You should consider putting a small resistor or diode between each pin on the par port and the resistor to proteckt the port from damage caused by too high current.

    Looking forward to see the DOS based sequencer. I makes sense, sinse most modern machines comes without a par. port, so it could bring live to older laptops or other computers.

  4. arrgh i meant to write

    small resistor or diode between each pin on the par port and the TRANSISTOR

  5. Yeah some protection for the parallel port would be good, Especially against shorts. I may consider that for the next version. An LED would also do the job and make things cool with blinky blinkly.

  6. hy, i have find an schematic about all this sequencing thing, this is not a computer related sequencer but is a great project i think,( considering my low budget electronic knowledge) the schematic -http://ourworld.compuserve.com/homepages/Bill_Bowden/4017-2.gif -is about a led sequencer, and if i’m not wrong i can put the “toy button” – here’s mi explanation http://farm1.static.flickr.com/206/444299408_ec493e85a6_o.jpg) where shown in th image – with still having the cool leds blinking.
    do am i wrong? i’m thinking in make the toy-to-sequencer via mono jacks like the sequencer i’ve found in sailormouth and the one i´ve seen in the vtech post here in getlofi.

  7. Very nice protorob! Thanks for the schematics.

    One of the adventages of having a software sequencer is that you can have as many notes as you like with relativelly little effort, unlike hardware sequencers where cost and time of wiring switches and buttons maybe an issue.

    Software is cheap!

  8. so, you are sayng that it can be actually maked using the schematic i’ve post, i know with softwre is ver much cheaper but having all that switches to play with is a really cool experience.
    I’m going to make both of the circuits and i’ll make you know when it is finishied.
    fortunately here in venezuela the parts are very very low cost
    make that circuit (the “pc interface” one) cost me about 5 dollars. if there is a way for me to help you buyng pieces cheap (preferible, relativelly big quantities to justifi the shiping cost) just ask.

    see u soon.

    grat project, i’m waiting to get out my work and run to the electronic shop to buy the pieces for make the pc interface
    i’ll show later the results.
    other thing, about the LED and the potential risk to blow up my serial port or my computer, (thats not an affordable risk for me to take) between what and what do i put them?

  9. Actually the schematic you posted is not quite correct. The collector pin on those transistors should draw from the ground. And the ground of the toy should be connected to the common ground of the circuit. Do basically you are switching the connection between the toy button and the ground ON when the current hits the Base pin of the transistor.

    For one, I would suggest using an old computer for this, something like a 486 or lower. That way there is no huge financial loss should something happen. The diode should go inbetwen the parallel port data pin and the transistor base pin. I’ll test that this evening to make sure it works with the circuit using both an LED and a Diode. One thing I just thought of is that an LED needs a ground and unless the Base of the transistor is grounded it will not work, atleast not light up.

    Thank you for the parts offer. Shipping may be killer though,
    I get my parts from Jameco.com and they are not bad, they have very fast shipping times and lotsof parts. The parallel port interface cost me about 5$ as well including connector, transistors, potentiometer ( additional feature ), and a project box.

    The software for DOS is almost finished I will post it tonight sometime. Please keep posting your progress. Good luck.

  10. ok, i’ll keep you informed, i will think about the led isue, it could be prety nice to have de leds blinking
    i want to make an external switch controller (sequencer) to use it to control many devices switches, like shown on the four step sequencer of sailormouth.
    by now i’m going to talk less and do more
    i talk you again when finish my first experiment

  11. The schematic seems to be incorrect now. There seems to be a previous misinformative correction.

    As the transistor is an NPN, you should have a positive voltage from collector to emitter, and then, when the base voltage (current) goes up, the transistor starts to conduct and vice versa.

    So it should be the other way around: collector to “toy button”, emitter to “toy ground”.

  12. Zerofidelity, thank you for reviewing this, I appreciate it.

    You are correct and I could be wrong, but the way that I look at it is that the Collector is scooping up Electrons from the Ground ( which are negativelly charged ) and by giving them to the Toy Button it triggers the circuit by causing a voltage drop. Reversing the transistor so may also accomplish the same thing. My way is just counter intuitive, but it works anyway, somehow.

    Someone with an Electronics background please correct me here.

  13. If the “toy button” pin has a negative voltage, then you can use the “emitter to toy button” connection with an NPN – because you have positive voltage from collector to emitter.

    But, the transistor is kind of symmetric in a way, so it might work also the other way round – but not as well – although in this kind of simple triggering it might not be even noticeable…

  14. And actually, in NPN transistors, the collector should actually be shooting out electrons, and sucking in current.

    The electrons move in the opposite direction as current (from lower to higher potential).

  15. hello friends, i’m actually working on the interface to aply to a kawasaki dsi keyboard, but i can´t realeye where is the ground, i’ve just opened the toy and lift the button ruber and i’ve noticed that there are xtrange conection between the buttons (extrange at least for me) i hope to solve this isue in this days. If you have found any clue just post it.

  16. Hey ProtoRob, I did a test mod on the DSI kawasaki and the buttons are triggered by a positive voltage, so you will need to have a PNP transistor connected from the Voltage Trigger Trace to the Button Trace. I just soldered the wires to the bottom of the black blob PCB board where it is soldered to the main board. Try connecting the very far right joint to the joints on the left. They should start making sounds. Once you find the connection you will have to solder the Collector of the Transistor to the Voltage Trigger and the Emitter to the actual button trigger.

    I will post a better image of that particular keyboard tonight with points to connect to.

  17. This is cool. I will see you in Minneapolis on the 21. I have a few old systems that I can put this up on, and many bent toys waiting for some patterned switching.

  18. just stick a couple of diodes in to protect the parallel port. Either that or use some optocouplers and an external power supply, either a battery or a dc pack. Using optocouplers you can be sure that there is no way that your pooter is gonna be smoked. You can make your own optocouplers cheap out of quick response LDRs/photodiodes and an LED.

  19. Nice! I’ve build the module and everything.. Got it hooked up to an old Compaq Contura 400C, booting DOS 6.22.. Now my question is how do i run this frigging app. ? I’m trying as hard as i can, but it just won’t work.. I also tried just using MS-DOS but it started complaining about INITGRAPH not being initialized, so how do you do that? Damn this is frustrating…

  20. Hey Silas. I think you just type ./C-B_.exe and hit enter. Make sure that the CGA.BGI file is in the same folder as the app that you are running.

    I had good luck with free dos. There is a self booting image disk that I made, however never uploaded. If you hang on for just a little bit I’ll get it up there. Thanks.

Leave a Reply

Your email address will not be published.