blgardne@esunix.UUCP (Blaine Gardner) (11/09/88)
Brian Moffet's mention of hacking out a PD trackball has prompted me to dredge my archives, and repost all the trackball hacks I've seen. (Not to steal your thunder Brian, but if I can help you avoid reinventing the wheel...) I thought everyone would have seen this by now, but it looks like I need to post it every 6 months or so. The first hack is mine, and the other two I've seen on the net are also included. (Gee, if I'd ever bothered to mail this into Amazing Computing, maybe I could have made a buck off of it. :-) ======================================================================== Notes from George Robbins on my original posting: ======================================================================== Per request, I am reposting the original article on converting WICO and perhaps Atari 2600 trackballs to mouse-compatible devices. While I have not tried the conversion, what the original author describes seems to be quite reasonable. One other approach that might be easier would be to obtain a spare mouse, extract the little logic board and attach it to the various LEDs, photo- sensors and switches... The original article in comp.sys.amiga describes how to convert WICO and Atari 2600 track balls to work with the Amiga. Converting for the Atari ST is essentially the same, except for some disagreement between Atari and CBM on which quadrature signals go to which "joystick" lines. Pin Amiga Atari === ===== ===== 1 Vertical X-B 2 Horizontal X-A 3 Vertical-Quatrature Y-A 4 Horizontal-Quadrature Y-B 5 Pot X N.C. 6 Left Button Left Button 7 +5V +5V 8 Ground Ground 9 Pot Y-Right Button Right Button As you can see, the pin-outs are compatible enough that no harm will result if the two are interchanged, however since the quadrature outputs don't match up you will get pointless twitching instead of useful motion. Simply switch the wires going to pins 1 thru 4 until you get it right. A minor problem is that the WICO trackballs are discontinued, so unless you already know where to find one, you may have problems. =========================================================================== My original posting: =========================================================================== Original (corrected) article from blgardne@esunix.UUCP (Blaine Gardner): Title: Wico trackball mouse VERSION 2.0 (BUG FIX & ATARI NOTE) Ok, here it is, sorry I took so long to post it. I have tried to make this understandable, if you don't know what an LM 339 or a DB9 is, maybe you shouldn't try this. --------------------------------------------------------------------------- Wico track ball modification. Converting the Wico track ball into an Amiga mouse compatible track ball is a fairly simple procedure. But if you are uncomfortable with a soldering iron, get some competent help. You could damage your Amiga if you make a mistake when assembling this project! You could also void your Amiga warranty! You will definitly void your trackball warranty! YOU HAVE BEEN WARNED!!! Ok, now that that's out of the way here are the gory details. The stock trackball contains a small pc board, this will be removed and replaced with one containing an LM 339 quad comparator. The comparator simply converts the output of the opto-coupler to a TTL level pulse. Both the X and Y axis use two emitter-detector pairs. The output of each of these detectors is fed through one of the comparators. The output of the comparator is then fed to the Amiga's mouse port. Since the output of the trackball will be identical to the mouse's output, the modified trackball will work with ALL software that uses the mouse. Here we go! Remove the 6 (six) screws from the bottom of the trackball case and open it (right-side-up please). In the lower-right corner there is a small pc board with two connectors. Remove the board & connectors. You can toss the board, and the cable that has the joystick connector. (The cable only has 7 wires and we need 8. You can scrounge the 11 pin male header off of the board.) Cut a piece of perf board the same size as the original board. Just make sure it fits in the same place as the original. The plastic grooves will hold it perfectly. Two cautions here: make sure the top can be screwed down without hanging up on the new board, and make sure all your components will clear the standoff near the board! Using the (crude) schematics below, wire up the circuit. You will need to drill a hole in the case to mount a second switch (for the right button). Make sure the second switch will clear all existing hardware! Wire the second switch between ground and pin 9 on the DB 9 connector. It is a good idea to place a medium sized capacitor (10-20 uf) across +5 and ground where power enters the perf board. Parts List: Wico Trackball #72-4545 Wico Corporation Consumer Division 6400 W. Gross Point Road Niles, Illinois 60648 800-323-4014 Joystick Extension Cord Radio Shack #276-1978 LM 339 Quad Comparator Radio Shack #276-1712 14 pin DIP Socket Radio Shack #276-1999 Soft-Touch Switch Radio Shack #275-1566 Perf Board 11 pin Male Header (can be removed from Wico) 10 - 20 microfarad capacitor (12V or higher) Resistors (1/4 or 1/8 Watt, 5% tolerance) 280 Ohm (4 each) 3.3K Ohm (4 each) 6.8K Ohm (4 each) 100K Ohm (4 each) --------------------------------------- Wico TrackBall Internal Connector (Color code assumes Wico is consistent in their wiring.) 1 Pushbutton White 2 +5 (Y-axis) Red 3 +5 (X-axis) Red 4 Ground (Pushbutton) White 5 Ground (X-axis) Black 6 Ground (Y-axis) Black 7 N/C --- 8 Y-axis output Violet 9 Y-axis output Blue 10 X-axis output Green 11 X-axis output Yellow --------------------------------------- Pinouts for LM 339 ------------------------ | 14 13 12 11 10 9 8 | ) | |. 1 2 3 4 5 6 7 | ------------------------ 1 Output 2 2 Output 1 3 +5 Volts 4 Input 1- 5 Input 1+ 6 Input 2- 7 Input 2+ 8 Input 3- 9 Input 3+ 10 Input 4- 11 Input 4+ 12 Ground 13 Output 4 14 Output 3 --------------------------------------- Amiga Mouse Connector (DB 9 Female) ------------- \ 5 4 3 2 1 / \ 9 8 7 6 / --------- 1 V pulse 2 H pulse 3 VQ pulse 4 HQ pulse 5 N/C 6 Button 1 (Left) 7 + 5 Volts 8 Ground 9 Button 2 (Right) ---------------------------------------------- Connections from Wico | Connections from LM 339 11 pin socket to LM 339 | to DB9 (Mouse port connector) | Wico -> LM 339 | LM 339 --> DB9 ---- ------ | ------ --- 1 (to pin 6 on DB9) | 2 1 2 3 \__+5 Volts | 13 2 3 3 / | 1 3 4 12 \ | 14 4 5 12 >--Ground | N/C 5 6 12 / | (pin 1 on Wico) 6 7 N/C | +5 Volts 7 8 4 | Ground 8 9 6 | 9 10 10 | 11 8 | --------------------------------------- O +5 Volts O +5 Volts | | \ \ 3.3K Ohm / / 6.8 K Ohm \ 100K Ohm \ | | +-----/\/\/\/-------+ | | /| | | | / +|---+------+ (Pins 5,7,9,11) | /1/4 | | Output to /__|________/ LM | | Amiga \ \ 339 | \ (Pins 1,2,13,14) \ | / 280 Ohm \ -|--+ \ \| | | | | | | Input from ball >-------+ ----- (Pins 4,6,8,10) | --- | - \ 3.3K Ohm / \ | | | ----- --- - ------------------------------------------------------- There it is! The above information was obtained from the Amiga Hardware Reference Manual, and from tearing apart my mouse & trackball and trace- ing out the schematics myself. (Mostly from tearing my hardware apart!) Any errors in the above information are mine (but for a few hours work they can be yours too! |^) ), not Evans & Sutherland's. They are kind enough to pay me to play with their computers, they have no control over my ramblings here on usenet. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The above infomation is the correct version. In my first posting + 5 volts and button 2 were switched on the DB9 pinouts. There have been a lot of inquiries about doing the same modification on the Atari 2600 trackball. I hadn't seen the Atari untill two days ago, but I can now tell you that the same procedure will work for it. In fact it is a little easier on the Atari trackball because the LM339 is already present. Just remove all the components from the board except the 339, the supply voltage filter (inductor + electrolytic cap near the 6 pin header), and resistors R9 - R18. Actually you'll have to remove those too because they are the wrong values, and the 339 socket blocks several traces that need to be cut. (As I remember 430K and 10K should be swapped for 100K and 3.3K respectively.) The biggest problem is that Atari wired the 339 as a non-inverting comparator, and Amiga uses an inverting comparator. So you'll have to CUT AND JUMPER (those that flinched may leave the room) to get the inverted configuration (see above data for the correct circuit). (NOTE: Ignore my notes in the above paragraphs on the Atari trackball, one of the hacks below is much easier. The inverting/noninverting difference is a non-problem. BSG 9-Nov-88) I don't plan to do a detailed plan for the Atari trackball, if the above information doesn't mean much, don't try it yourself. This general plan should work for all trackballs that use a pair of opto- couplers on each axis. The old TG trackball for the Apple II (and probably other computers) will NOT work since it uses a pair of pots. I hope this helps all you hardware hackers that can't live without a real trackball. Have fun, and don't blow up your Amiga! =========================================================================== Here is the second trackball hack that showed up on the net. This is the easiest one for the Atari 2600 trackball. =========================================================================== From msl5864@ritcv.UUCP Wed Dec 31 17:00:00 1969 Relay-Version: version B 2.10.1 6/24/83; site esunix.UUCP Path: esunix!uplherc!utah-gr!utah-cs!ut-sally!husc6!seismo!rochester!ritcv!msl5864 From: msl5864@ritcv.UUCP Newsgroups: comp.sys.amiga Subject: Atari Trackball Conversion Message-ID: <161@ritcv.UUCP> Date: Fri, 13-Mar-87 00:19:16 MST Article-I.D.: ritcv.161 Posted: Fri Mar 13 00:19:16 1987 Date-Received: Sun, 15-Mar-87 00:14:00 MST Reply-To: msl5864@ritcv.UUCP (Michael S. Leibow) Organization: Rochester Institute of Technology, Rochester, NY Lines: 43 I just bought a couple of Atari brand trackballs at the local hobby store for 14 bucks and decided to convert one of them to work like a mouse for my Amiga. I followed the instructions that were given a while back for Atari trackballs, and totally ruined the thing. After working on a second one, I studied the circuits myself and have successfully made the modification. The first part of the modification is quite easy and doesn't need any soldering. THe second part will involve a minor amount of soldering and that is so that the right switch can be disconnected from the left and work like the mouse. Part I. Open the trackball by removing the screws and prying the two halves apart. There will be a 6 pin connector at the end of the DB-9 cable. Scratch away the foil paths on the circuit board that lead to pins 1 through 4 from left to right. (Two of the foil paths are on one side of the circuit board and the other two are on the other side). Connect the following pins from the 6 pin connector to the pins of the LM339. 6 PIN CONNECTOR LM399 --------------- ----- 1 -> 14 2 -> 2 3 -> 13 4 -> 1 I accomplished this by piggy backing a second socket on top of the LM339 and just plugging wires from the connector to the socket. This should complete part I. To test it out, plug it in to the Amiga and try to use it like a mouse. Both buttons will work like the left button on the mouse. Part II. In order to make the right button work like the right button on the mouse you will have to buy another cable. In the trackball I bought, there was no wire for pin nine of the DB-9 connector and that is where the right switch goes. So, cut off the old cable and solder the remains of the old cable to the new cable. Cut the red wire connecting the two switches so that the majority of the length is attached to the right switch. COnnect the wire from the right switch to pin nine of the cable. Now the trackball should work just like a mouse. Be very careful that you don't connect the wrong wires from the DB-9 cable to the six pin connector and switches. On my first attempt I switched pins 7 and 8 by accident and blew some of the chips on the circuit board. I have already built this circuit and I don't believe there are any mistakes in this posting. I am sorry in advance for any mistakes there might be. Also, I have nothing to do with Commodore or Atari. ============================================================================ This is the third (and final?) trackball hack to appear. The advantage of this one is it allows the Atari 2600 trackball to be switched between joystick and Amiga mouse modes. When I built it, the mouse response was pretty jumpy compared to the other two hacks. If you want a game controller, use this hack. If you want a smooth mouse, use one of the other two. ============================================================================= Path: esunix!uplherc!utah-gr!utah-cs!ut-sally!husc6!mit-eddie!mit-amt!mit-caf!rajeev From: rajeev@mit-caf.UUCP (Rajeev Jayavant) Newsgroups: comp.sys.amiga Subject: Atari Trackball Modification Message-ID: <367@mit-caf.UUCP> Date: 8 Jun 87 06:22:47 GMT Reply-To: rajeev@mit-caf.UUCP (Rajeev Jayavant) Distribution: na Organization: Massachusets Institute of Technology Lines: 159 For those of you who've been waiting for an inexpensive trackball, here are the modifications for converting an Atari trackball (model CX22) to emulate an Amiga mouse. This device is different from the Wico trackball which has been previously mentioned on the newsgroup. One nice feature of the Atari trackball is a joystick emulation mode in which it can be used in place of a joystick. It can be plugged directly into the Amiga and used in the joystick mode. Unfortunately a few modifications are needed to use it in place of the mouse. KayBee toy stores in the Boston area currently have these things on sale for $9.99 so you should be able to have a fully functional trackball for well under $20. For those who grow squeamish at the sight of a dismantled trackball, it is possible to build an adapter that can be plugged in between the Amiga and the trackball. The only disadvantage of the adapter apporach is that the second trackball button cannot be used as the right mouse button. Please send me email if you would like instructions for constructing the in-line adapter. Disclaimer: While I beileve that the instructions provided here are correct, I do not claim any responsibility for the results of your actions. I seriously doubt you can injure your Amiga even if you make a mistake in construction; I do not know if the same can be said for the trackball. Now for the moment you've all been waiting for. You will need a 74LS86, a 74LS157, and one Radio Shack joystick extention cord (or equivalent 9 conductor cord with a female DB9 connector on the end). Note: Radio Shack does not carry the IC's, but they should be commonly available. The cord is necessary because the trackball comes with a 7 conductor cord, making it impossible to use both buttons separately. Unfortunately all the Radio Shacks in my area are out of the extention cord thus I had to reuse the cord that came with the trackball and do not yet have a functioning right mouse button. Open the trackball by removing the four screws on the bottom of the case. Separate the two halves of the case by holding on to the bottom half and pushing a screwdriver through one of the two holes near the middle of the case (they look like they should have recessed screws in them but there aren't any screws). Be careful when separating the two halves otherwise the ball will land on your foot and roll across the floor :-). In the upper left corner there is a 6 pin connector to which the incoming cable is attached. Remove the connector to expose the six signal pins. I will refer to these as T1 thru T6 (from left to right). The signals on the pins are: Pin | Joystick Mode | Trackball Mode | Wire Color ----+---------------+--------------------+----------- T1 | left | vertical direction | green T2 | right | vertical pulse | violet T3 | up | horizontal dir | white T4 | down | horizontal pulse | blue T5 | +5 V in | +5 V in | orange T6 | ground | ground | black ----+---------------+--------------------+----------- The horizontal and vertical pulses (T4 and T2) can be fed directly to the Amiga (to the right pins of the game port, of course), but the HQpulse and VQpulse required by the Amiga must be constructed from the available signals. The HQpulse is simply the XNOR of the Hpulse and the Horiz. direction. Similarly the VQpulse is the XNOR of the Vpulse and Vert. direction. The two XNOR gates are implemented using a 74LS86 (quad XOR gate). The 74LS157 is a quad 2-to-1 multiplexer that is used to preserve the joystick emulation mode. CONSTRUCTION NOTES ------------------ There is plenty of room inside the trackball case, so you can choose just about any construction method you desire. I chose to wire wrap the circuit on a tiny piece of perfboard and mounted it in the right side of the case. I attached the circuit to the trackball by wire wrapping directly onto the posts exposed by removing the six-pin connector. I soldered the incoming cable onto a DIP header (also from Radio Shack) which is then plugged into a third socket on my little circuit board. Being able to easily remove the cable is a big plus since you can keep it out of your way 'til the very end. The schematic below shows how to construct the little circuit board. The pins on the gameport connector are referred to as P1 thru P9. Connect the circuit board to the appropriate pins (T1-T6 and P1-P9). The joystick/trackball switch is the little slide switch near the lower left corner of the trackball (top view). You will need to solder a little wire to the bottom-most of the three contacts on the switch. To get to the contacts on the bottom of the switch, you will need to remove the PC board in the trackball. Lift out the "cue ball" and the two rollers it is resting on. Then remove the two screws holding down the PC board and lift it out. Reverse the process after you've attached the wire to the switch contact with a dab of solder. To wire the buttons, do the following: 1) Cut the red wire connecting the two switches together. (also cut the red wire leading to the incoming cable). 2) Connect the black wire to ground (T6). 3) connect the red wire from the left button to P6. 4) connect the red wire from the right button to P9. SCHEMATIC --------- Joystick/Trackball Switch -----------+ (Bottom contact) | T2-----------------------+-------+---|--------------+ T1---------------------+ | | | | | | | | | T3------+--------------|-|-----+ | +-|--------------|--------------P3= VQpulse | | | | | | | | T4----+-|--------------|-|-----|-|-|-|--------------|--------------P2= Hpulse | | | | | | | | | T5--+-|-|------------+-|-|-+---|-|-|-|------------+-|--------------P7= +5V | | | | | | | | | | | | | | | | +--------+ | | | | | | | | +--------+ | | | | +-|1 7 14|-+ | | | | | | +-|1 7 16|-+ | | +---|2 4 13|---+-|-|---|-|-|---|2 4 15|---|-+ | +-|3 L 12|-----+ | +-|-|-|---|3 L 14|---+ | | +-|4 S 11|-+ | | | | +---|4 S 13|-+ | +-----|5 8 10|-+ | | +-|-----|5 1 12|-|---|------------P4= HQpulse +---|6 6 9|-------+ | +-----|6 5 11|-|---+ | +-|7 8|---------+ +---|7 7 10|-|---+ | | +--------+ | +-|8 9| | | | | | | +--------+ | | +-|--------------------------|-|------------+ | | +-|----------------|-----------P1= Vpulse T6=GND--+-------+--------------------+----------+-----+-----------P8= GND | | +-----------+ +------------+ |Left Button|----+ |Right Button|----------P9= button 2 +-----------+ | +------------+ +--------------------------------------P6= button 1 TROUBLESHOOTING --------------- Reassemble the trackball after making all connections. Set the joystick/trackball switch to "trackball" and try using the trackball in place of the mouse. If all has gone well, your pointer should move smoothly in response to the trackball movement. If there is no movement or the movement is *very* jittery, double-check your connections. It is very likely that something is not connected or that two signals have been switched. It may help to try out the joystick emulation mode if you think signals have been crossed (it'll be easier to tell which signals have been crossed!). Good Luck! Rajeev -- /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ Rajeev Jayavant Quote: "Excuse me. I've lost my marbles." (P. Opus) ARPA: rajeev@caf.mit.edu UUCP: ....!mit-eddie!caf!rajeev =========================================================================== Ok, there you go, the collected wisdom of the ages on the subject of hacking trackballs into Amiga mice. Since they are identical in function to the standard mouse (once modified), they will work with 100% of existing software. And Kay-Bee Toys still has a bunch of them for under $10. Happy hardware hacking! -- Since this was (re)posted about eight months ago, the Atari trackballs may be hard to find, the Wico trackballs were hard to find when I originally wrote this a couple of years ago. -- Blaine Gardner @ Evans & Sutherland 580 Arapeen Drive, SLC, Utah 84108 Here: utah-cs!esunix!blgardne {ucbvax,allegra,decvax}!decwrl!esunix!blgardne There: uunet!iconsys!caeco!pedro!worsel!blaine (under construction) "Nobody will ever need more than 64K." "Nobody needs multitasking on a PC."