Path: utzoo!utgpu!attcan!uunet!steinmetz!sungod!oconnor From: oconnor@sungod.steinmetz (Dennis M. O'Connor) Newsgroups: comp.sys.amiga.tech Subject: Re: Analog Joysticks Keywords: Analog, Joystick, Full-range Message-ID: <12539@steinmetz.ge.com> Date: 7 Nov 88 15:50:57 GMT Sender: news@steinmetz.ge.com Reply-To: oconnor%sungod@steinmetz.UUCP Distribution: na Organization: GE Corporate R&D Center Lines: 75 An article by dbk@fbog.UUCP (Dave B. Kinzer @ Price Rd. GEG) says: ] Some people on the net have been proposing that a capacitor paralleling ] the internal Amiga joyport capacitors will fix the joysticks. This is ] essentially true and a very low cost way of adapting the controller, but ] unless you know what is going on inside the Janus chip (I know I don't have ] the max power specs), it seems a little dangerous (as explained in the ] article). Of course, since apparently you can connect +5 directly to the ] pin (joystick in zero ohm position), it should work. No, it doesn't. I've tried it. The Paula chip is probably current-limited, since when I connected a larger ( 0.1 uf ) cap in parrallel, it didn't discharge fully. This may be the fault of the software ( I was using Flight-Sim II from Sublogic ). The obvious way to fix it is to hold the discharge switch on for a bit longer : it's not clear to me whether software can adjust the timing or not. With the pots near zero, the same lack-of-discharge occurs, but since the result is a lower reading, it's not a problem : zero is what you wanted to read anyway. The big problem isn't the 100K pots of the IBM joysticks : if you auto-center in software ( which FS-II does ) it just means you get 6 bits of resolution instead of 8. Just have an init step that assumes the joystick is centered and scales all subsequent readings appropriately. ( I use this to "bias" the controls on FS-II so "hands-off" becaomes a slight climb. ) The problem I've found in analog joysticks is NOISE. That 5V coming out of the joystick port seems to have a lot of 10KHz+ noise on it. This noise on the 5V has to be silenced before you'll get more than four bits of reliable input from your 'stick. You've got long wires, and with a 60Hz-fundamental sawtooth on two of them. Those 100k or 500K pots aren't exactly a low-impedance source. And you're right next to a little audio-through-radio range frequency generator (i.e. computer). People who can deal with this type of grief get paid big bucks. The best solution I've thought of involves active components in the joystick, close to the pots. But it's not simple : essentially, sense when Paula has pulled down the input to trigger a one-shot. The period of this one-shot is determined by the joystick position. This one-shot goes negative, then returns to positive. It's output is tied to Paula through a ~100K resistor, and will later be used as a pull-up. Before it goes through the resistor, however, it triggers another one shot, this one with fixed timing ( 50 microsec or so ). The second one-shot, either through a diode or a tri-state buffer, provides a high-current V+ source to rapidly charge Paula's input capacitors, then goes low (i.e. high-impedance or reverse-biasing the diode, whichever ). Then both one-shots wait for the next time Paula discharges the capacitor. _____ ______ _________ Paula Input : |_________/ |_______/ _____ _______ __________ 1st One-Shot: |_________| |_______| __ __ 2nd One-Shot: _______________||_____________||________ 555-derived dual (and quad) timers would do this job well, using a diode on the 2nd ones output. 74C-family devices can probably do the job as well, and maybe there's a tri-state version ?? This system provides a high-impedance when Paula's grounding-out the cap, and a low inpedance when charging the cap. This produces a fast rise on the Paula inputs, vastly reducing the noise problem. Unfortuneatly, I haven't had a chance to try this yet, because : I've wrecked one Paula chip's analog inputs ( capacitively-coupled line noise, I think ) so BE CAREFUL. ( Only the analog inputs died, thank goodness. Everything else still works. ) Good luck. If you solve the noise problem, let's hear about it ! -- Dennis O'Connor oconnor%sungod@steinmetz.UUCP ARPA: OCONNORDM@ge-crd.arpa "Never confuse the USENET with something that matters, like CAFFEINE."