Jump to content

Control scheme idea


123 replies to this topic

#68  

    Dragonstomper

  • 517 posts
  • Joined: 09-July 01
  • Location:Santa Clara, CA

Posted Sun Apr 8, 2007 10:04 PM

View PostA.J. Franzman, on Mon Apr 9, 2007 4:01 AM, said:

View Postcwilkson, on Sun Apr 8, 2007 8:53 PM, said:

What is "Muntzed"?
From Earl "Madman" Muntz
Wow. That's the first time I ever heard that. Thanks for clearing it up!
-Chris

#69  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Mon Apr 9, 2007 1:32 AM

Here's a more detailed and accurate account, though it ignores his other products and innovations (the Muntz 4-track tape, predecessor of 8-track; and the Muntz Jet automobile, roughly 400 built): What's All This Muntzing Stuff, Anyhow?

Edited by A.J. Franzman, Mon Apr 9, 2007 1:35 AM.


#70  

    Quadrunner

  • 6,366 posts
  • Joined: 01-June 05

Posted Mon Apr 9, 2007 6:23 PM

View PostA.J. Franzman, on Sun Apr 8, 2007 10:37 PM, said:

I have a couple of ideas I'd like to try to eliminate the drift; will report again later.

Well, I'd guess the LM311's input currents may be pulling the pot value slightly; if those vary with temperature, that could cause drifting effects. A better comparator would solve that problem, but I didn't have any part numbers available off the top of my head.

#71  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Mon Apr 9, 2007 6:50 PM

View Postsupercat, on Mon Apr 9, 2007 5:23 PM, said:

View PostA.J. Franzman, on Sun Apr 8, 2007 10:37 PM, said:

I have a couple of ideas I'd like to try to eliminate the drift; will report again later.
Well, I'd guess the LM311's input currents may be pulling the pot value slightly; if those vary with temperature, that could cause drifting effects. A better comparator would solve that problem, but I didn't have any part numbers available off the top of my head.
That's my thought too.

I tried a couple of methods to eliminate the diode: first, I simply removed it and borrowed cwilkson's trick of using the output transistor in source mode instead of sink mode. This also required reversing the inputs -- if after a circuit change you find that the paddle becomes impossible to keep in the middle of the screen but is stable at (or off) one side or the other depending on the pot position, swapping the pin 2 and pin 3 connections usually fixes it. This circuit gave much reduced drift but did not eliminate it (only about 5 or 6 pixels).

Next, I tried returning the output transistor connections to normal, but using it to drive a PNP transistor and using that to drive the console signal line. The drift was about the same as what it had been with the original version of the circuit.

These experiments lead me to conclude that the diode is not the only source of the drift (if it's even a source at all).

Edited by A.J. Franzman, Mon Apr 9, 2007 6:57 PM.


#72  

    Quadrunner

  • 6,366 posts
  • Joined: 01-June 05

Posted Mon Apr 9, 2007 8:21 PM

View PostA.J. Franzman, on Mon Apr 9, 2007 7:50 PM, said:

These experiments lead me to conclude that the diode is not the only source of the drift (if it's even a source at all).

Why should it be a source of drift? Are you thinking reverse leakage?

I would think that the primary source of drift in the circuit would be the input current to the comparator. There exist comparators with input currents in the picoamp range, though I don't think anything quite that fancy is required. If behavior near the bottom rail would be a problem, it may be possible to add a resistor in series with the 1M resistor near the right side of the circuit and use that tap for the comparator input.

#73  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Tue Apr 10, 2007 1:19 AM

View Postsupercat, on Mon Apr 9, 2007 7:21 PM, said:

View PostA.J. Franzman, on Mon Apr 9, 2007 7:50 PM, said:

These experiments lead me to conclude that the diode is not the only source of the drift (if it's even a source at all).
Why should it be a source of drift? Are you thinking reverse leakage?

I would think that the primary source of drift in the circuit would be the input current to the comparator. There exist comparators with input currents in the picoamp range, though I don't think anything quite that fancy is required. If behavior near the bottom rail would be a problem, it may be possible to add a resistor in series with the 1M resistor near the right side of the circuit and use that tap for the comparator input.
Since this circuit essentially uses the comparator as a switch control to make pulses in sync with the console's own original timing method, any jitter or drift must be due to variation in the timing. Before taking the easy road of blaming the comparator, I wanted to first eliminate all the other possibilities.

Having fairly well done that, tonight I've tried substituting a couple of different op-amps for the LM311/NTE922M without success. So far, I've tried an LM307 and an LM741. I also have an LM312 that I'll try tomorrow.

Edited by A.J. Franzman, Wed Apr 11, 2007 8:24 PM.


#74  

    River Patroller

  • 2,899 posts
  • Joined: 05-February 07
  • Location:Phoenix, AZ

Posted Wed Apr 11, 2007 6:48 PM

Once y'all have that circuit worked out ("Dejittifier", "Dejitterator" ?) it should definitely be posted in its own standalone article. I think the ideal jitter reduction solution would be something pre-fab that would plug in between the console and the paddle controller. (Admittedly, I haven't studied the circuit in enough detail to see if it can even possibly address that scenario.)

View Postcwilkson, on Sat Apr 7, 2007 10:07 PM, said:

I think when PWM was mentioned originally, it was so that the original charging characteristics could be matched with either a custom D2A, or in software. That was my understanding at least.

That was my original intent which is different from the original original intent of this thread which I derailed. There are quite a few interesting tangents going on here (which make the discussion all the more interesting). In retrospect, I should have started a new thread for my specific issue.

It is my goal to be able to create an input to the 2600 from a solid state device which will for all intents and purposes act like a paddle controller. The jitter reduction was a side effect to my needs and a most interesting tangent.

I probably muddied the waters by discussing my initial application which included the pot as an input. I worked out a mechanical arrangement to satisfy the immediate need to have a variable gain and centering to allow my controller with hard travel limits to work with existing paddle controller games.

A more robust and universal solution would be to have a microcontroller determining the position of the input device (e.g. D/A conversion for a potentiometer in voltage mode) and translating that position to a pulsing output of some flavor which would charge the console's internal cap at a rate proportional to the position of the input device. Using the microcontroller would allow me to readily vary the gain and set the min/max points so that the controller would work effectively with any paddle game even given the physical constraints of the input device.

I ultimately want to be able to simulate a paddle controller's "output" using any number of different position sensing devices as inputs. Though this is not quite what I'm planning, you might think of it as making a paddle controller using an absolute rotary encoder as an input device. The natural progression would be to add functionality to emulate a joystick, which should be a much simpler task.

I haven't had much time to tinker with this yet, but am looking into device programmers at the moment: looking for an affordable "universal" programmer that will let me program microcontrollers, EPROMS, EEPROMS, etc...

#75  

    Quadrunner

  • 6,366 posts
  • Joined: 01-June 05

Posted Wed Apr 11, 2007 8:18 PM

View PostBigO, on Wed Apr 11, 2007 7:48 PM, said:

Once y'all have that circuit worked out ("Dejittifier", "Dejitterator" ?) it should definitely be posted in its own standalone article. I think the ideal jitter reduction solution would be something pre-fab that would plug in between the console and the paddle controller. (Admittedly, I haven't studied the circuit in enough detail to see if it can even possibly address that scenario.)

That would be ideal, but it's basically not possible. No matter what approach is used (a comparator, a microcontroller, or whatever) the only way to sense a pot position without jitter is to have current flow through the pot without flowing through the wiper; that requires adding a connection to the unused pot terminal, which of course means modifying the controller.

Probably the best approach would be to make a small printed circuit board (about 0.5"x0.1" or less) which would be installed inside each paddle controller. If one were trying to e.g. adapt an analog joystick for use with Marble Craze, one could add trimpots to adjust centering and range.

#76  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Wed Apr 11, 2007 10:35 PM

View Postsupercat, on Fri Apr 6, 2007 8:20 PM, said:

I haven't had a chance yet to find out what the threshold voltage is for the 2600's paddle inputs
I did some testing and found the following info which may be useful:
Input threshold is 1.6 V.
Charge dump takes the cap down to about 0.035 V.

A nice consequence of these low values, considering that the full regulated supply voltage is used to charge the caps (on this console, 4.91 V at the pot), is that charging will be very nearly linear throughout the range that is used. So, no complicated pulse-period modulation or logarithmic pulse-frequency modulation scheme should be needed to achieve a near-enough to linear response.

More info:
Timing cap value is 0.068 uF (68 nF), ±10% tolerance.
Measured maximum and minimum resistance values for full control authority-
10k minimum (Tac-Scan)
380k maximum (Video Olympics)
(The short list of games I tried: Astroblast, Breakout, Casino {but not Poker Solitaire}, Circus Atari, Demons to Diamonds, Kaboom!, Night Driver, Star Wars: Jedi Arena, Street Racer, Super Breakout, Tac-Scan, Warlords, Video Olympics. Note especially that this list includes no homebrews, some of which may conceivably need a higher maximum resistance.)
Be aware that some consoles include an additional 1.8k in series with the paddle pot, so the effective lowest resistance value needed is about 6.8k, allowing for tolerance. Typical paddle pots can reach low resistances of 33-200 ohms, so the console's charging circuit can safely withstand this value and possibly lower. The 33 ohms figure equates to about 150 mA that the TIA pin can withstand, assuming it is not current-limited.

Edited by A.J. Franzman, Wed Apr 11, 2007 11:34 PM.


#77  

    River Patroller

  • 2,899 posts
  • Joined: 05-February 07
  • Location:Phoenix, AZ

Posted Wed Apr 11, 2007 10:58 PM

Pardon my dumb questions, I only wish I was as up on my electronics as you guys. Weak to start with on analog and very rusty to boot.

The stock configuration essentially acts to variably limit the current to the cap to control how fast the cap charges, right? And you can't just hang a cap on it to filter out the noise because that would affect the total capacitance and screw up the charge timing.

Here's the dumb(er) question part. Much hand-waving ensues:

Could you could set up a current using the pot (in series with another resistor to create a voltage divider), isolated from the original charging circuit, filter the spikes/noise in that circuit and use the resulting cleaned up output from the voltage divider to drive the gate of a FET? The channel of the FET would then be used to control the current passing from the ~5 volt supply to the console's capacitor?

I say FET because it's easier for me to visualize a FET as a variable resistance than a BJT or whatnot. Could such a circuit handle the capacitive load accurately?

I admittedly don't quite know what I'm talking about here, but my general thought is to use a transistor to provide isolation between the pot/filtering circuitry and the cap charging circuit.

Input filtered and isolated from output . . . I guess I'm talking about an amplifier?

Edited by BigO, Wed Apr 11, 2007 11:15 PM.


#78  

    River Patroller

  • 2,899 posts
  • Joined: 05-February 07
  • Location:Phoenix, AZ

Posted Wed Apr 11, 2007 11:17 PM

View PostA.J. Franzman, on Wed Apr 11, 2007 9:35 PM, said:

I did some testing and found the following info which may be useful:
Input threshold is 1.6 V.
Charge dump takes the cap down to about 0.035 V.

A nice consequence of these low values, considering that the full regulated supply voltage is used to charge the caps (on this console, 4.91 V at the pot), is that charging will be very nearly linear throughout the range that is used. So, no complicated pulse-period modulation or logarithmic pulse-frequency modulation scheme should be needed to achieve a near-enough to linear response.

More info:
Timing cap value is 0.068 uF (68 nF), ±10% tolerance.
Measured maximum and minimum resistance values for full control authority-
10k minimum (Tac-Scan)
380k maximum (Video Olympics)
(The short list of games I tried: Astroblast, Breakout, Casino {but not Poker Solitaire} Circus Atari, Demons to Diamonds, Kaboom!, Night Driver, Star Wars: Jedi Arena, Street Racer, Super Breakout, Tac-Scan, Warlords, Video Olympics. Note especially that this list includes no homebrews, some of which may conceivably need a higher maximum resistance.)
Be aware that some consoles include an additional 1.8k in series with the paddle pot, so the effective lowest resistance value needed is about 6.8k, allowing for tolerance. Typical paddle pots can reach low resistances of 33-200 ohms, so the console's charging circuit can safely withstand this value and possibly lower. The 33 ohms figure equates to about 150 mA that the TIA pin can withstand, assuming it is not current-limited.

That's great information. Thanks, A.J.

Edited by BigO, Wed Apr 11, 2007 11:19 PM.


#79  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Wed Apr 11, 2007 11:31 PM

As of now, I'm giving up on the comparator method as being unsatisfactory for de-jittering paddle inputs.

So, returning to the charge-pulse method concept, some new questions:

How often (at most) does a game check the paddle pin after the discharge has been released, to see if the threshold has been reached?

How many charge pulses, at a minimum, should be delivered in this period of time to avoid jitter, assuming that the number of pulses will vary by at least ±1 due to not being synchronized to the console?

#80  

    Quadrunner

  • 6,366 posts
  • Joined: 01-June 05

Posted Wed Apr 11, 2007 11:44 PM

View PostA.J. Franzman, on Wed Apr 11, 2007 11:35 PM, said:

Be aware that some consoles include an additional 1.8k in series with the paddle pot, so the effective lowest resistance value needed is about 6.8k, allowing for tolerance.

Hmm... that could pose a problem. The best solution I can see at this point without using a micro would be to add a circuit to strongly pull up on the paddle pin any time it's below 0.7 volts, and increase the active pullup resistor to 10K. This would ensure that the baseline value for the pot would be 0.7 volts, and that the 2600 would have no trouble pulling the pot below that. Without such a circuit, there could be a noticeable "dead zone" between the lowest reported pot value where the 2600 manages to turn off the comparator each cycle, and the reported pot value when it does not.

Not sure the best way to implement such a circuit (using a couple resistors and a diode would be one approach, but that's a bit ugly; another alternative would be to use a second comparator).

Bummer. One chip plus three resistors would have been a nice small board.

Hmmm... other alternatives...

#81  

    Quadrunner

  • 6,366 posts
  • Joined: 01-June 05

Posted Wed Apr 11, 2007 11:50 PM

View PostBigO, on Wed Apr 11, 2007 11:58 PM, said:

Could you could set up a current using the pot (in series with another resistor to create a voltage divider), isolated from the original charging circuit, filter the spikes/noise in that circuit and use the resulting cleaned up output from the voltage divider to drive the gate of a FET? The channel of the FET would then be used to control the current passing from the ~5 volt supply to the console's capacitor?

One limitation with that approach is that most such circuits generate a current which is proportional to the control voltage; to make time be proportional to the control voltage, the current must be proportional to the reciprocal of the voltage.

Bearing in mind someone's comment that it doesn't matter if the ends of a pot are at constant voltages, provided the wiper current is zero, it may be possible to work things out. I'll have to think on that a bit.

#82  

    Quadrunner

  • 6,366 posts
  • Joined: 01-June 05

Posted Wed Apr 11, 2007 11:52 PM

View PostA.J. Franzman, on Thu Apr 12, 2007 12:31 AM, said:

How often (at most) does a game check the paddle pin after the discharge has been released, to see if the threshold has been reached?

Typically every 64us or 128us.

Quote

How many charge pulses, at a minimum, should be delivered in this period of time to avoid jitter, assuming that the number of pulses will vary by at least ±1 due to not being synchronized to the console?

To achieve +/-128us accuracy at the bottom of a frame, there should be at least 128 pulses per charge.

#83  

    Dragonstomper

  • 517 posts
  • Joined: 09-July 01
  • Location:Santa Clara, CA

Posted Thu Apr 12, 2007 12:23 AM

A.J. -
How did you measure the threshold voltage of the TIA? I get 2V (2.026V) on my mine, measured at pin 40. My setup is a 7800, BTW.
This is how I measured the trip point:

(0) Note Vcc=4.99V (the limits of my DMM)
1) boot up Kaboom! (press reset to start a new game)
2) disconnect the paddles (the buckets jump to the left side)
3) attach a variable power supply to pin 40 through a 1k resistor and then sweep the voltage upward from zero (buckets all the way left) in 0.1V increments (my power supply has a 4 digit readout, so I use it to "measure" the trip point)
4) zero in on the trip point
(5) note that the DMM says 1.76V at pin 40....hmmm....
(5b) verify waveform with oscilloscope (max = 2.02V, min = 490mV, high time = 13.820ms, low time=2.835ms)

At 2.025V the buckets begins to jump a bit but mostly stays on the left side.
At 2.026V the buckets are very unstable but tends toward the right
At 2.027V the buckets stay on the right side.

I would guess that the design value is 2V.

On the drift...I suspected that it was power supply variation. It was too periodic to be temperature drift. When I was looking at the waveform, I noticed a fuzz burst that drifted by periodically. My suspicion is that it's a beat frequency formed by the 60Hz line frequency and the not-quite 60Hz display frequency.

Oh...thanks for that article on Muntz. (BTW, Bob Pease is awesome!) When you mentioned the 4-track, it seemed familiar. Reading the article cemented it....I had heard of him before. But it's still the first time I heard his name used as a verb!! :)

EDIT: I verified the trip point with Breakout and Warlords.
-Chris

Edited by cwilkson, Thu Apr 12, 2007 12:28 AM.


#84  

    Quadrunner

  • 6,366 posts
  • Joined: 01-June 05

Posted Thu Apr 12, 2007 12:46 AM

View PostA.J. Franzman, on Wed Apr 11, 2007 11:35 PM, said:

Input threshold is 1.6 V.Charge dump takes the cap down to about 0.035 V.

Care to give this one a try?
Attached Image: paddle2.GIF
It should quickly charge the cap to a voltage determined by the pot, and then slowly charge it the rest of the way up to the required threshhold. The comparator would probably oscillate on the 2600's that have an extra 1.8K resistor, but I don't know that would hurt anything. Adding a small cap to ground on the inverting input may tame such oscillations; it may also be good to tie the inverting input to the comparator output rather than to the 2600, but I'm not sure.

An op amp could be used in place of the comparator with the addition of an extra diode (in that case, just use the op amp as an emitter follower).

#85  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Thu Apr 12, 2007 1:45 AM

View Postsupercat, on Wed Apr 11, 2007 10:52 PM, said:

View PostA.J. Franzman, on Thu Apr 12, 2007 12:31 AM, said:

How often (at most) does a game check the paddle pin after the discharge has been released, to see if the threshold has been reached?
Typically every 64us or 128us.
For these values, this sounds like every scanline, or every other scanline; is that correct? Also, do all paddle games finish reading the paddle in the span of a single frame, or do some span two frames to allow for the instances when the resistance value is high?


View Postsupercat, on Wed Apr 11, 2007 10:52 PM, said:

Quote

How many charge pulses, at a minimum, should be delivered in this period of time to avoid jitter, assuming that the number of pulses will vary by at least ±1 due to not being synchronized to the console?

To achieve +/-128us accuracy at the bottom of a frame, there should be at least 128 pulses per charge.
:?
I believe you misunderstood me, or I you.
What exactly do you mean by "per charge"? To charge the capacitor all the way from fully discharged up to the threshold value?

As I understand it, the pulse-charging method should provide pulses such that: at the pulse-charging rate which is equivalent to the highest resistance used by an original paddle, there should be at least two pulses per scanline. In this way, a count difference of ±1 pulse due to the asynchronous method will not result in significant jitter in the region near the highest useful paddle setting. Lower settings will provide correspondingly more pulses per scanline, (hopefully) completely eliminating jitter. If this logic is correct, then the slowest pulse repetition rate should be no more than 32 us. The duty cycle at this pulse rate should deliver charge to 6-switch CX2600 units with their ~2k series resistance, equivalent to that delivered by ~5.0 volts steady DC through 380k series resistance into .068 uF. I make this a ~0.53% duty cycle, yielding a maximum pulse width of 168 ns. (Ballpark figure assumes cap charging current is constant.)

The fastest pulse rate should be such that, when pulses are delivered to 6-switch CX2600 units with their ~2k series resistance, the charging rate is equivalent to that delivered by ~4.8 volts steady DC through 10k series resistance into .068 uF. If I have understood this correctly, this would be a 20% duty cycle assuming the pulses are at full positive rail voltage.

So my question is, can you design a circuit which takes an input voltage swing of ~1.9 volts (this is the paddles' original operating resistance range, converted to voltage) or less, possibly including a positive offset of up to 2.5 volts, and from that produces ~150 ns pulses at a duty cycle from 0.5% to 20%? I'm gonna check some data but I don't know if the 555 can reliably produce pulses that short.

Another consideration is the difference between the CX2600 consoles with the 1.8k resistance and other consoles without it resulting in vastly different paddle performance. To minimize this, use of a wider duty cycle range and adding series resistance would be effective. For example, if a 50% duty cycle can be achieved, a ~3.3k series resistance can be added. This will, of course, mean recalculating the duty cycles for the other end of the scale too.

Edited by A.J. Franzman, Fri Apr 13, 2007 11:24 PM.


#86  

    Combat Commando

  • 3 posts
  • Joined: 05-April 07

Posted Thu Apr 12, 2007 4:14 AM

I found some info that could be useful here:

http://nocash.emubas...trollerspaddles

(if it is accurate?)

...will measuring time in scanlines be effected by PAL/NTSC?

#87  

    Combat Commando

  • 3 posts
  • Joined: 05-April 07

Posted Thu Apr 12, 2007 3:52 PM

I've noticed that the Stelladaptor is paddle compatible, not sure exactly how this is implemented but if it could also be 'pulse controlled' then this may be something to keep in mind and take into account on the numbers used?

#88  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Fri Apr 13, 2007 12:30 AM

View PostGrover, on Thu Apr 12, 2007 3:14 AM, said:

I found some info that could be useful here:

http://nocash.emubas...trollerspaddles

(if it is accurate?)
Interesting: "Note that it may take two or more frames until the maximum count is reached, ideally, software should check INPTs throughout drawing and blanking periods, and carry on in the next frame."
AFAICT, none of the original games wait more than one frame. If they don't, this would explain why less than half of the 1 M ohm range is ever used.


View PostGrover, on Thu Apr 12, 2007 3:14 AM, said:

...will measuring time in scanlines be effected by PAL/NTSC?
I strongly suspect that a paddle game originally written in PAL (if there are any) could easily use more scanlines to read the value and thus use up to about 17% more of the knob travel than the typical NTSC paddle game. But it's possible that some NTSC paddle games that were converted to PAL may not take advantage of this capability.

Edited by A.J. Franzman, Fri Apr 13, 2007 12:51 AM.


#89  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Fri Apr 13, 2007 1:13 AM

On Thursday I tried to make a free-running pulse type circuit to de-jitter the paddle inputs, without success.

My first idea, mentioned above, was to have one 555 timer provide a ~32 kHz frequency to a second 555 timer which would then produce a pulse-frequency modulated output. (I would use two 555s for ease of keeping them separated both physically and mentally on solderless breadboard -- if it worked, they could of course be combined to a single 556 dual timer IC.) The circuit would also use an op-amp to buffer the voltage read from the pot and deliver it to the second 555 for timing control.

While trying to figure out how to do that, I decided that using pulse-width modulation might be easier. I came up with a circuit, but it doesn't work as expected. The 32 kHz part works, and the second timer seems to be producing pulses, but they're too weak to drive anything but my old HP 5221B counter. According to a 555 datasheet, the shortest pulse that can be produced reliably is 10 us, which at 32 kHz works out to about 30% duty cycle. I was aiming for about 1-3% of that figure at the low end, so will have to find another method. If there's another simple method to produce strong, consistent pulses of close to +5V and 100 - 300 ns duration, perhaps a return to pulse-frequency modulation might be the best route forward.

BTW, am I the only one in this topic actually building anything?

Edited by A.J. Franzman, Fri Apr 13, 2007 11:28 PM.


#90  

    Dragonstomper

  • 517 posts
  • Joined: 09-July 01
  • Location:Santa Clara, CA

Posted Fri Apr 13, 2007 2:37 AM

View PostA.J. Franzman, on Fri Apr 13, 2007 7:13 AM, said:

BTW, am I the only one in this topic actually building anything?

Nope. :D

I was just logging on to say that I have a circuit working very well. No detectable jitter and it drifts maybe one pixel...but I get bored waiting for it.
Quite acceptable. I'll post a schematic tomorrow. The BOM is below. It's complicated, relative to the single comparator approach, but it works.
The zener might be overkill, but hey...I had an extra amp lying there! (was only using 3 of them).

1 - standard Atari paddle
1 - LM324 (cheap quad op amp - ubiquitous)
2 - 1N914 (cheap signal diodes - ubiquitous)
1 - 1n746A (3.3V zener diode)
1 - 200 Ohm resistor
1 - 10k Ohm resistor
1 - 330k Ohm resistor
Some perfboard - 1 inch x 1 inch (more than what's needed)

Actually, while writing this, I've been watching Kaboom! to see the paddle drift. It doesn't move. So maybe the cleaned up layout did it's job. :)

For performance comparison, I just played two 2-player games of Kaboom!
Score first game: 1777-342.
(switch paddle circuits)
Score second game: 552-2663 (!!!)

#91  

    Dragonstomper

  • 517 posts
  • Joined: 09-July 01
  • Location:Santa Clara, CA

Posted Fri Apr 13, 2007 3:11 AM

View PostA.J. Franzman, on Fri Apr 13, 2007 7:13 AM, said:

I decided that using pulse-width modulation might be easier. I came up with a circuit, but it doesn't work as expected. The 32 kHz part works, and the second timer seems to be producing pulses, but they're too weak to drive anything but my old HP 5221B counter. According to a 555 datasheet, the shortest pulse that can be produced reliably is 10 uS, which at 32 kHz works out to about 30% duty cycle. I was aiming for about 1-3% of that figure at the low end, so will have to find another method. If there's another simple method to produce strong, consistent pulses of close to +5V and 100 - 300 nS duration, perhaps a return to pulse-frequency modulation might be the best route forward.


How many chips are you looking to use? You could venture into the TTL realm, but that gets expensive in board area.

Did you consider doing pulse frequency modulation? You generate a pulse of constant width, but the delay between pulses is varied.
If you use this, each pulse could dump some charge into the cap. After a set number of pulses, the cap would trip the TIA.

I can think of a lot of ways to generate a narrow pulse. An easy way would be to use a walking ring oscillator or even a counter with an overflow output.
Then you need some way to tell the thing to cycle. You can try using a 74LS221. It should be able to go down to about 50ns. It seems like the optimal way to do it, but I don't use them much so there may be some gotchas. It may need buffering, it may not. Some things to think about anyway.

-Chris

#92  

    River Patroller

  • 4,326 posts
  • Joined: 24-January 05
  • Syzygyst
  • Location:U.S.A. - See 'Map' link above

Posted Fri Apr 13, 2007 6:20 PM

Today I had a thought to check the specs on a CMOS version of the 555 timer, and at least for National's version, it's faster than the standard version (3 MHz vs. 1 MHz). They also make no mention in this datasheet of a minimum pulse width, though of course there must be one. I think I might try it later tonight, since I don't seem to have a 3.3 V zener on hand.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users