Jump to content
IGNORED

Joystick multiplexer help


gauauu

Recommended Posts

On 10/22/2019 at 4:15 PM, ChildOfCv said:

That's an interesting potential solution, and theoretically it should work, since analog states shouldn't pull any extra power from the multiplexer.  Might be fun to try.  Heck, it may even work better than the digital solution.

I think it's worth a try. I think I may even have suggested an analog switch early on in this thread.

Link to comment
Share on other sites

On 12/24/2019 at 1:40 PM, BigO said:

I think it's worth a try. I think I may even have suggested an analog switch early on in this thread.

Hello all and Happy New Year!  Now that Wizard of Wor Arcade for the 2600 has been released, the demand for the QuadTari has increased a bit so I'm going to try and focus on a solution.  As I've mentioned a few times, hardware is not my strength (read: I'm learning as I go along ;) ) but I do have the means to put together prototypes and test them if given a schematic and a list of parts. ;)  The analog solution sounds interesting; can someone expand upon it and suggest a potential design with parts/etc. that I could try to build over here?

 

Any help is appreciated!

 

Thanks,

John

 

  • Like 1
Link to comment
Share on other sites

The basic theory is that an analog switch works like the electronic version of a relay:  When something is switched on, the A and B points are "connected" in a bi-directional sense.

 

The one potential issue, though, is that resistance climbs dramatically as voltage approaches 0.  The 4053 switch suggested in last page's PDF, as well as 4066 and pretty much any other, claim around 500 ohms at near 0 volts.  This could possibly interfere with the ability to provide an obvious low, especially on lines that have pull-up resistors.  But it might work.

 

Anyway, you could try it out with the offering on the previous page.

 

Otherwise you may be stuck with the active solution that debounces the inputs with resistors and capacitors and Schmitt triggers.

Link to comment
Share on other sites

  • 3 months later...
On 2/27/2019 at 10:24 AM, johnnywc said:

One thing Nathan and I spoke about in the design is supporting 4 one-button joysticks on one port but also supporting 2 2 button joysticks.

Another oddball, but perhaps interesting option would be supporting a single 6 button joystick (ABXY plus R1/R2?)

 

That would not require any multiplexing, just a 2 port to hacked controller cable.

 

I'd be surprised if that hasn't already been done! ;-)

 

Link to comment
Share on other sites

  • 1 month later...

Well, it's been about 5 months and I'm finally finding some time to try to get this QuadTari finished. ?  Demand has ramped up since I announced Champ Games' port of Robotron: 2084 for the 2600, which is best played with 2 sticks (and would use the other port for the AtariVox for saving high scores), along with the release of Wizard of Wor Arcade (2 player simultaneous with AtariVox for speech/high scores) and Galagon(Galaga) with co-op mode and AtariVox high scores.

 

I want to give the analog solution recommended above by @Danjovic a try since that seems more in the realm of my hardware abilities; I went on Mouser but can't seem to find any suitable through-hole 4053N alternatives.  Can someone recommend one that would be suitable for this solution?  Here's a link to my search on Mouser.

 

Any help is appreciated!  If this doesn't work, I'll give the Schmitt trigger version recommended by @ChildOfCv.

 

Thanks,

John

 

PS After reviewing the thread, I noticed at one point I had tested the NAND gate solution with Vcc disconnected and it worked (not sure how) without any interference.  I know running the circuit without Vcc is not a good solution, but what if an external Vcc was provided (not from pin 7 of the Atari but from a power supply similar to the one powering the Atari).  Would that potentially remove the interference since there would be no power draw over the controller ports?  Just an idea but thought I would mention it to see if this seems like a possibility or is a bad idea.

 

Link to comment
Share on other sites

Try this one:
https://www.mouser.com/Semiconductors/Switch-ICs/Multiplexer-Switch-ICs/_/N-7590d?P=1z0z63x&Keyword=4053&FS=True

I haven't found a satisfactory explanation of what causes the interference, but it does seem to happen due to rapid switching, especially when the voltage lingers between the upper and lower trigger levels.  I have managed to get interference spikes even with just the joystick, but it is so rare you hardly ever notice it.  I suppose one thing you could do to mitigate this regardless is to switch back to the first controller a few lines before VBLANK ends instead of at the same time.

 

An external power supply has been suggested, though it's also of note that the Atari trackball uses power from the Atari.

Link to comment
Share on other sites

49 minutes ago, ChildOfCv said:

Thanks!  That link brings up 12 results (much better than the 1000's I was looking thru ;) ); can you recommend a specific one?

49 minutes ago, ChildOfCv said:


I haven't found a satisfactory explanation of what causes the interference, but it does seem to happen due to rapid switching, especially when the voltage lingers between the upper and lower trigger levels.  I have managed to get interference spikes even with just the joystick, but it is so rare you hardly ever notice it.  I suppose one thing you could do to mitigate this regardless is to switch back to the first controller a few lines before VBLANK ends instead of at the same time.

Hmmm, that's something I could try.

49 minutes ago, ChildOfCv said:

An external power supply has been suggested, though it's also of note that the Atari trackball uses power from the Atari.

Yes, I agree that an external power supply isn't the best solution especially if a solution exists that doesn't need it. The design with the Schmitt trigger is a bit overwhelming to me since I don't have a background in electronics so I'm trying other alternatives that may be more up my alley before attempting it. ;)  

Link to comment
Share on other sites

22 minutes ago, ChildOfCv said:

Well, it's hard to go wrong with Texas Instruments.  The two top entries are basically the same and in fact according to the data sheet they both have the same markings on the chip.  The only difference seems to be that one has tin plating on the leads.

Sounds good, thanks!  I'll pick up some of these then:

 

Mfr. Part #
CD4053BE
Mouser Part #
595-CD4053BE
 
Another silly question; the 4011N that looks like a NAND gate; any idea what chip that is?  I did a search on mouser and 4011 only brings up push buttons. ?  Can I use some of the NAND gates that I purchased before?  https://www.mouser.com/ProductDetail/595-SN74HC03N
 
Lastly, I notice there are no pull-up resistors on this design; are they needed?
 
Thanks!
John
 
Link to comment
Share on other sites

58 minutes ago, johnnywc said:

Another silly question; the 4011N that looks like a NAND gate; any idea what chip that is?

It's another part of the 4000 line of logic ICs.  Here's TI's version:
https://www.mouser.com/ProductDetail/Texas-Instruments/CD4011BE?qs=st7IWvlL5%2FgbunuzXw39Lg%3D%3D&gclid=CjwKCAjw_LL2BRAkEiwAv2Y3SfxZ3uQ6ZtvGLsmzNNrmg3aJU6B0nfSeZhJOWzyJewaqCfDr6uNJ-BoCyUoQAvD_BwE

 

A standard NAND gate would probably also work.

Edited by ChildOfCv
Link to comment
Share on other sites

4 hours ago, ChildOfCv said:

  I suppose one thing you could do to mitigate this regardless is to switch back to the first controller a few lines before VBLANK ends instead of at the same time.

 

I did some experiments early on with changing the timing of the switching to see if I could improve things by doing that. I don't remember the exact behavior, but I seem to recall that it didn't entirely fix it, but did help a bit.

Link to comment
Share on other sites

Okay, I picked up a couple 4053BE muxs and 4011 inverters as recommended above, but I'm having trouble wiring this thing up. ? 

 

I don't think I completely understand how the 4053BE works; perhaps it's different than the 4053 in the jmux design?

 

From the spec sheet:

 

Pin Functions CD4053B
PIN
I/O DESCRIPTION
NO. NAME
1 BY IN/OUT I/O B channel Y in/out
2 BX IN/OUT I/O B channel X in/out
3 CY IN/OUT I/O C channel Y in/out
4 CX OR CY
OUT/IN I/O C common out/in
5 CX IN/OUT I/O C channel X in/out
6 INH I Disables all channels. See Table 1.
7 VEE — Negative power input
8 VSS — Ground
9 C I Channel select C. See Table 1.
10 B I Channel select B. See Table 1.
11 A I Channel select A. See Table 1.
12 AX IN/OUT I/O A channel X in/out
13 AY IN/OUT I/O A channel Y in/out
14 AX OR AY
OUT/IN I/O A common out/in
15 BX OR BY
OUT/IN I/O B common out/in
16 VDD — Positive power input

 

According to the design:

jmux.thumb.png.d032b9086d6b150e21dcb3576bb3466f.png

 

I looks like this is saying to hook up +5V to INH (pin 6) of the muxs but the datasheet seems to say that if this is enabled, all channels are disabled.  Shouldn't this be wired to ground, unless I'm misunderstanding how the INH pin works, but looking at the truth table in the datasheet it looks like if this is 1 all of your selects are don't care.  

 

Also, I assume I need to hook up pin 8 to ground?

Also, do I need to hook up +5V to pin 7 (Vee, negative power input) or pin 16 (Vdd, positive power input)?  What's the difference?

 

I assume the way the muxs work is that you hook up an input from one joystick to one of the channel inputs, the input from the other joystick to the other channel input, and based on the select pin, it will choose one or the other (that makes sense to me).  However, it looks like the select line from the Atari (pin 5), half of the inputs are wired up to the select lines of one mux, but the inverse is wired up to the other select lines of the other mux.  Shouldn't it simply be connecting the select line to A,B,C for both muxs since we want the 6 values passed through for x0,y0,z0 or x1, y1, z1 depending on the value of the select line?  I'm not sure why there is a need for the 4011 inverter?  Shouldn't inverting the select line (which is controlled in software for pin 5) control the output of the muxs?

 

Apologies in advance if some of these questions are basic; I appreciate any assistance!

 

Thanks,

John

 

PS Do I need pull up resistors on any of the inputs or the outputs?

 

Link to comment
Share on other sites

1 hour ago, johnnywc said:

I looks like this is saying to hook up +5V to INH (pin 6) of the muxs but the datasheet seems to say that if this is enabled, all channels are disabled.  Shouldn't this be wired to ground, unless I'm misunderstanding how the INH pin works, but looking at the truth table in the datasheet it looks like if this is 1 all of your selects are don't care.  

Yeah this should be connected to ground.  In the datasheet's app notes, it shows it hooked to ground for normal operations.  Someone probably brain farted and thought it was "Enable" instead.
 

 

1 hour ago, johnnywc said:

Also, I assume I need to hook up pin 8 to ground?

Also, do I need to hook up +5V to pin 7 (Vee, negative power input) or pin 16 (Vdd, positive power input)?  What's the difference?

All need to be connected to something.  But VDD should be +5 and VSS and VEE should be ground.  VEE (negative power) allows your analog voltages to go negative in relation to the logic voltage, by connecting to a negative voltage.  But you only need it to range between 0 and +5.

 

1 hour ago, johnnywc said:

I assume the way the muxs work is that you hook up an input from one joystick to one of the channel inputs, the input from the other joystick to the other channel input, and based on the select pin, it will choose one or the other (that makes sense to me).  However, it looks like the select line from the Atari (pin 5), half of the inputs are wired up to the select lines of one mux, but the inverse is wired up to the other select lines of the other mux.  Shouldn't it simply be connecting the select line to A,B,C for both muxs since we want the 6 values passed through for x0,y0,z0 or x1, y1, z1 depending on the value of the select line?  I'm not sure why there is a need for the 4011 inverter?  Shouldn't inverting the select line (which is controlled in software for pin 5) control the output of the muxs?

That looks like another brain fart.  Probably was thinking of it as a "one chip or the other" selection instead of which inputs from each multiplexer.  So the 4011 shouldn't be necessary and all should use the same signal.  You will need a pull-up resistor on the select line though.

Link to comment
Share on other sites

Well, I was able to get the circuit hooked up and did some testing, and it is a mixed bag. 

 

Good news:  there doesn't seem to be any interference

Bad news: the switching doesn't seem to work 

 

I did several tests:

 

Test 1: a normal test where the switching is done twice a frame:

  1. in Overscan, I set DUMP_PORTS to 1 (read joystick 2)
  2. in Vertical Blank, I read joystick 2 (DUMP_PORTS=1)
  3. I then set DUMP_PORTS to 0 when drawing the screen (end of VBLANK)
  4. at the end of drawing the screen, I read joystick 1 (DUMP_PORTS=0)
  5. Goto 4

Result: FAILED

I checked the multimeter and Pin 9 from the Atari is always read as low (it's tough to get a reading since it is bouncing from high to low each frame)

As a result, Joystick 1 controls both players (Joystick 2 is never active)

Interference: none 

 

Test 2: I modified my test program so I can disable the switching (set left diff to A) and manually set the DUMP_PORTS with right difficulty (A = 1, B = 0)

Result: PASSED

When switching is disabled and DUMP_PORTS is manually set, the circuit behaves as expected.  When the right diff is B, Joystick A is active.  When right diff is A, Joystick B is active

Interference: none 

 

Test 3: I further modified my test program so I can slow down the switching to once every 2 seconds by setting the Color/BW switch to BW.  In this case, DUMP_PORTS is set to high for 2 seconds (for the entire frame) and then set to low for the entire frame (for another 2 seconds), repeat.

Result: PASSED

When switching is slowed down to once every 2 seconds, for 2 seconds Joystick 1 is active and then for the next two seconds Joystick 2 is active, as expected.

Interference: none

 

Any ideas?  It seems that maybe the analog solution isn't fast enough to handle multiple switches per frame?  I can do more tests to see what the threshold is (ie. right now it's switching every 128 frames; I could try 64, 32, 16, etc.  to see when the circuit recognizes the switch long enough to enable the other joystick.  However, for a real solution I think it would need to support switching twice per frame as the other solutions, or at a minimum 1 controller read each frame (ie. read Joystick 1 on frame 0, Joystick 2 on frame 1, etc.).

 

Any help is appreciated!

 

Thanks,

John

 

 

Link to comment
Share on other sites

2 hours ago, johnnywc said:

Well, I was able to get the circuit hooked up and did some testing, and it is a mixed bag. 

 

Good news:  there doesn't seem to be any interference

Bad news: the switching doesn't seem to work 

 

I did several tests:

 

Test 1: a normal test where the switching is done twice a frame:

  1. in Overscan, I set DUMP_PORTS to 1 (read joystick 2)
  2. in Vertical Blank, I read joystick 2 (DUMP_PORTS=1)
  3. I then set DUMP_PORTS to 0 when drawing the screen (end of VBLANK)
  4. at the end of drawing the screen, I read joystick 1 (DUMP_PORTS=0)
  5. Goto 4

Result: FAILED

I checked the multimeter and Pin 9 from the Atari is always read as low (it's tough to get a reading since it is bouncing from high to low each frame)

As a result, Joystick 1 controls both players (Joystick 2 is never active)

Interference: none 

 

Test 2: I modified my test program so I can disable the switching (set left diff to A) and manually set the DUMP_PORTS with right difficulty (A = 1, B = 0)

Result: PASSED

When switching is disabled and DUMP_PORTS is manually set, the circuit behaves as expected.  When the right diff is B, Joystick A is active.  When right diff is A, Joystick B is active

Interference: none 

 

Test 3: I further modified my test program so I can slow down the switching to once every 2 seconds by setting the Color/BW switch to BW.  In this case, DUMP_PORTS is set to high for 2 seconds (for the entire frame) and then set to low for the entire frame (for another 2 seconds), repeat.

Result: PASSED

When switching is slowed down to once every 2 seconds, for 2 seconds Joystick 1 is active and then for the next two seconds Joystick 2 is active, as expected.

Interference: none

 

Any ideas?  It seems that maybe the analog solution isn't fast enough to handle multiple switches per frame?  I can do more tests to see what the threshold is (ie. right now it's switching every 128 frames; I could try 64, 32, 16, etc.  to see when the circuit recognizes the switch long enough to enable the other joystick.  However, for a real solution I think it would need to support switching twice per frame as the other solutions, or at a minimum 1 controller read each frame (ie. read Joystick 1 on frame 0, Joystick 2 on frame 1, etc.).

 

Any help is appreciated!

 

Thanks,

John

 

 

Did you remember the pull-up resistor on the select line?  This sounds a lot like you're just letting it float high instead of pulling high.  That switch is definitely fast enough--they use it (or at least a similar one) on the video channel of the ColecoVision :)

Edited by ChildOfCv
Link to comment
Share on other sites

1 hour ago, ChildOfCv said:

Did you remember the pull-up resistor on the select line?  This sounds a lot like you're just letting it float high instead of pulling high.  That switch is definitely fast enough--they use it (or at least a similar one) on the video channel of the ColecoVision :)

I do have a pull up resistor on the select line; I hope I hooked it up correctly.  It's actually a resistor network I had used in the previous design; I have the pin with the dot on it on +5V, I connect the select line from Pin 9 of the Atari on one side and then a wire on the other side that goes directly to the select lines of the 4053.  I'm not sure what the resistance value is; is there any particular value I should try?  I'm pretty sure the RN is 1M but it may be 100K; I'm not sure how to tell.  Do I need pull up resistors on the joystick inputs or the outputs to the Atari?  Any measurements I can take with the multimeter that may help? 

 

Thanks!

 

 

 

 

 

Link to comment
Share on other sites

41 minutes ago, johnnywc said:

I do have a pull up resistor on the select line; I hope I hooked it up correctly.  It's actually a resistor network I had used in the previous design; I have the pin with the dot on it on +5V, I connect the select line from Pin 9 of the Atari on one side and then a wire on the other side that goes directly to the select lines of the 4053.  I'm not sure what the resistance value is; is there any particular value I should try?  I'm pretty sure the RN is 1M but it may be 100K; I'm not sure how to tell. 

You'd have to measure it from the common to any of the other pins.

 

If you have a loose 10K resistor you could try that instead though.

Link to comment
Share on other sites

On 5/30/2020 at 5:02 PM, ChildOfCv said:

You'd have to measure it from the common to any of the other pins.

 

If you have a loose 10K resistor you could try that instead though.

I had a loose resistor lying around (100K) and it fixed the switching issue, thanks for the suggestion!  

 

So,

 

Good news:  The circuit works great, very simple and inexpensive (2 chips and 1 resistor)

Bad news: there is very little sparkle effect sometimes.  It's hard to tell because the picture I have on RF is pretty bad to begin with (with no Quadtari plugged in).  Actually, the picture *improves* slightly when I plug in the QuadTari, but there is very slight sparkling effect sometimes when both joysticks are moved at the same time (a good test is to hammer on both buttons and a few white dots will appear). 

  • I tested with my multi-tap test ROM with switching disabled and with switching slowed down to 2 seconds and there was no change in the interference (very very little in all cases). 
  • I also tested with the release candidates for Wizard of Wor Arcade and Galagon and both worked without issue and with little or no interference. 
  • As usual, there is no interference on video modded systems.
  • There is no sparkling effect if joysticks/buttons are pressed.

 

In my opinion I think this is a major step forward, thank you everyone!  If there are any suggestions on how the sparkles could be reduced that would be great.

 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, johnnywc said:

I had a loose resistor lying around (100K) and it fixed the switching issue, thanks for the suggestion!  

 

So,

 

Good news:  The circuit works great, very simple and inexpensive (2 chips and 1 resistor)

Bad news: there is very little sparkle effect sometimes.  It's hard to tell because the picture I have on RF is pretty bad to begin with (with no Quadtari plugged in).  Actually, the picture *improves* slightly when I plug in the QuadTari, but there is very slight sparkling effect sometimes when both joysticks are moved at the same time (a good test is to hammer on both buttons and a few white dots will appear). 

  • I tested with my multi-tap test ROM with switching disabled and with switching slowed down to 2 seconds and there was no change in the interference (very very little in all cases). 
  • I also tested with the release candidates for Wizard of Wor Arcade and Galagon and both worked without issue and with little or no interference. 
  • As usual, there is no interference on video modded systems.
  • There is no sparkling effect if joysticks/buttons are pressed.

 

In my opinion I think this is a major step forward, thank you everyone!  If there are any suggestions on how the sparkles could be reduced that would be great.

 

 

Try reducing it to 10K, possibly even less.  The dump ports have a capacitor on them for reading paddles.  A 1M pot is usually placed on each line and it will charge the capacitor at some variable rate.  Since you want it to be as fast as possible for switching purposes, you should use something that will charge the capacitor quickly.

A Schmitt trigger would also cause a faster and more decisive transition, hence the triggers used in the digital design.

 

Reversing when you turn the dump on or off may also help.  Dump on just before you end blanking, for a fast transition.  Dump off after enabling blanking, since it doesn't matter as much then.

Link to comment
Share on other sites

3 hours ago, ChildOfCv said:

Try reducing it to 10K, possibly even less.  The dump ports have a capacitor on them for reading paddles.  A 1M pot is usually placed on each line and it will charge the capacitor at some variable rate.  Since you want it to be as fast as possible for switching purposes, you should use something that will charge the capacitor quickly.

 

I tried 10K and 4.7K, and they both work without issue with regular Atari joysticks.  However, the circuit doesn't work with Genesis controllers with these values (they work fine at 100K).  I tested with a game of Robotron and the response seemed fine to me at 100K, but I'll have to do more thorough testing to see if the delay (if any) is acceptable.  Any idea why the Genesis controllers would work fine at 100K but not at 10K and less?  I just have the 4 directions, button and ground hooked up (no Vcc) to the joysticks.  We would definitely want people to be able to use their Genesis controllers though the adapter so getting them to work would be recommended.  They do work at 100K; unfortunately I don't have any resistors between 10K and 100K, but I think I could just connect a few 10Ks in series to find out what the minimum value that would allow the Genesis controllers to work also.

3 hours ago, ChildOfCv said:


A Schmitt trigger would also cause a faster and more decisive transition, hence the triggers used in the digital design.

That may be an option too; could a Schmitt trigger be used in conjunction with the 4053?

3 hours ago, ChildOfCv said:

Reversing when you turn the dump on or off may also help.  Dump on just before you end blanking, for a fast transition.  Dump off after enabling blanking, since it doesn't matter as much then.

Hmm that's interesting.  I can certainly try it in the demo test ROM I have, but it's tough to measure whether the responsiveness will be better as it's pretty good now.  Unfortunately Galagon and WoW Arcade are already released with DUMP_PORTS being disabled at the end of VBLANK and enabled at the start of overscan (reversed), but I could certainly make the change for newer games if it turns out to be a better solution (and make sure it's backwards compatible with Galagon & WoW).

 

 

  • Like 1
Link to comment
Share on other sites

45 minutes ago, johnnywc said:

Hmm that's interesting.  I can certainly try it in the demo test ROM I have, but it's tough to measure whether the responsiveness will be better as it's pretty good now.  Unfortunately Galagon and WoW Arcade are already released with DUMP_PORTS being disabled at the end of VBLANK and enabled at the start of overscan (reversed), but I could certainly make the change for newer games if it turns out to be a better solution (and make sure it's backwards compatible with Galagon & WoW).

This would be for hiding the sparkles, not for responsiveness.  The idea is that the slower change that is probably the cause of the sparkles happens during the blank.

 

46 minutes ago, johnnywc said:

That may be an option too; could a Schmitt trigger be used in conjunction with the 4053?

Certainly can :)

 

46 minutes ago, johnnywc said:

Any idea why the Genesis controllers would work fine at 100K but not at 10K and less?

They have a different use for one or two of the pins.  A good solution there will probably be to make an adapter plug that rewires it to Atari standards.  But I'd have to study the two designs to figure out which is proper.

 

I assume that with a Genesis controller you still only expect to use one button on the controller?

 

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 6/2/2020 at 5:45 PM, ChildOfCv said:

This would be for hiding the sparkles, not for responsiveness.  The idea is that the slower change that is probably the cause of the sparkles happens during the blank.

Okay, that makes sense.  I switched my test program so DUMP_PORTS was done in-kernel but that didn't seem to make much of a difference.  It's hard to tell because the RF picture is pretty bad even without the QuadTari.  ?  However, @gauauu had test boards build with the current design and doesn't see any interference in his tests. :thumbsup:  

On 6/2/2020 at 5:45 PM, ChildOfCv said:

They have a different use for one or two of the pins.  A good solution there will probably be to make an adapter plug that rewires it to Atari standards.  But I'd have to study the two designs to figure out which is proper.

Thanks for the suggestion.  I did some more tests with other controllers and found some interesting results:

I was surprised the Standard Genesis controller works but the Arcade power stick did not, so I did some investigating:

  • The Arcade Power Stick works if you disconnect pin 7 (VCC) to the joystick.  However, if you do this, the Hyperkin Ranger fails (other controllers PASS).  The Hyperkin Ranger is a hybrid controller with a paddle and joystick, so my guess is that the circuitry inside requires power to support all that switching.  
  • With VCC connected to pin 7, *sometimes* the Arcade Power Stick will work (turn the VCS on/off) but rarely.
  • the Arcade Power Stick will work if you disconnect VCC to pin 7 *after* turning on the game and then reconnect it while the Atari is on (not safe of course, but interesting)
  • Regardless of whether the joystick directionals work, the button always works, VCC pin 7 connected or not).
  • I measured the voltage for UP (joystick pin 1 and ground) when the joystick works and it's about 4.7 volts when the switch is open and goes down to 0.12 volts when the switch is closed
  • I measured the voltage for UP (joystick pin 1 and ground) when the joystick does not work and it's about 4.7 volts when the switch is open and goes down to 0.68 volts when the switch is closed.  This explains why the direction isn't registering

If you look at the description of the Arcade Power Stick, it has extra circuitry in it to support auto fire for the three buttons, plus there are LEDs for each button to indicate if autofire is enabled, plus a slider to control the rate of fire.  My guess is that all this extra circuitry is causing the issue.  If you disconnect pin 7, it would seem all this extra circuitry is disabled since there is no power and the joystick functions like a normal joystick.  Another point is that the state of these LEDs seems to random when you turn the 2600 on and off (and this is true even without the QT); sometimes all 3 are on, sometimes one is blinking, sometimes a couple are on, etc.

 

Of course this is all speculation.  I did try to wire up a "pull up" resistor bank (1M) that I had from an old design but that didn't help (makes sense since that only pulls the voltage up and the issue is that the voltage isn't pulled down enough).  Is there such thing as a "pull down" resistor that could help with the inconsistent reading of the switches so they would register a true "low" when they closed?

 

Another solution as you suggested is just to have an adapter that disables vcc, but if there is an easy way to fix the circuit to support this out of the box that would be preferred.  We could also put in a switch that could enable/disable vcc to pin 7 of the joystick ports.

 

On 6/2/2020 at 5:45 PM, ChildOfCv said:

I assume that with a Genesis controller you still only expect to use one button on the controller?

 

Yes, since pin 5 and 9 from the Atari are used for the select lines (well, just pin 9 but pin 5 is enabled with DUMP_PORTS too), only 1 button will be supported for Genesis controllers through the QT.

 

We're almost there... thanks again for all the help!  :D  

 

John

  • Like 1
Link to comment
Share on other sites

For Genesis controllers, pin 5 is VCC.  Since that's the paddle input/select on the Quadtari, I'd expect more problems than that.  The proposed adaptor would leave pin 5 on the Atari disconnected but connect pin 7 to the joystick's pin 5.  Everything else should work as is.

Link to comment
Share on other sites

2 hours ago, ChildOfCv said:

For Genesis controllers, pin 5 is VCC.  Since that's the paddle input/select on the Quadtari, I'd expect more problems than that.  The proposed adaptor would leave pin 5 on the Atari disconnected but connect pin 7 to the joystick's pin 5.  Everything else should work as is.

Thanks for the feedback!

 

Hmmm, pin 5 on the Atari is already disconnected; I'm using pin 9 from the Atari for the select line.  Pin 5 and Pin 9 on the joystick ports are disconnected too, so I don't think the paddle input/select line to the QuadTari should interfere with the Genesis controller, should it?  Regular Genesis controllers work with pin 7 from the Atari hooked up to pin 7 of the joystick port.  It's just the Arcade Stick that doesn't have a low enough voltage on a closed switch to register a low correctly (.68 volts).  

 

I'll try to hook up pin 7 on the Atari to pin 5 on the joystick to see if that makes any difference.

 

Thanks,

John

 

Link to comment
Share on other sites

16 minutes ago, johnnywc said:

Thanks for the feedback!

 

Hmmm, pin 5 on the Atari is already disconnected; I'm using pin 9 from the Atari for the select line.  Pin 5 and Pin 9 on the joystick ports are disconnected too, so I don't think the paddle input/select line to the QuadTari should interfere with the Genesis controller, should it?  Regular Genesis controllers work with pin 7 from the Atari hooked up to pin 7 of the joystick port.  It's just the Arcade Stick that doesn't have a low enough voltage on a closed switch to register a low correctly (.68 volts).  

 

I'll try to hook up pin 7 on the Atari to pin 5 on the joystick to see if that makes any difference.

 

Thanks,

John

 

To be clear:  The Genesis controller gets its power from pin 5.  If you have nothing hooked to that pin, then the Genesis controller will be running on borrowed power from its input pins and it's a crap shoot whether it works or not.  The Genesis controller uses pin 7 to multiplex the buttons and directions.  If that's the only thing that gets power, the multiplexer chip "may" work, but don't count on it.

Atari has the dumper transistors on pins 5 and 9 of both controllers.  The Quadtari has a pull-up resistor on pin 5 so that it can act as an input selector.  But there's no reason to even pass that on to the joysticks, so it is apparently unconnected.

 

Perhaps you could have a selector switch for each joystick plug for "genesis/other".  In Genesis mode, pin 5 is also powered and in Other mode, only pin 7 is.

 

Or create a small pass-through plug adaptor that makes that cross-connection.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...