Re: R: R: Vector games on Laser show hardware

From: Zonn <mlists_at_zonn.com>
Date: Thu Dec 22 2011 - 16:05:47 EST

What Clay says and...

I've been asked a few times about driving a laser projector with a ZVG,
and the short answer is: Sure, you could do it, but it's going to be a
lot of work.

And the long answer is:

The voltages are the easy part, a single to differential driver is very
simple, the needed speeds are slow, and you can use just about any
op-amp you can find that can handle the needed voltages.

But driving a laser projector is very different than driving a CRT,
though there are some similarities.

The ZVG uses the Cinematronics approach to generating vectors, which in
some ways, is similar to how Clay was describing the laser projector, I
set an endpoint way beyond the actual endpoint of the vector, but cut
the vector short as it reaches the actual endpoint.

On a CRT you need to have constant control over the beams movement, the
ZVG uses a couple of expensive, low inductance, high tolerance
capacitors and a couple of 1% tolerance resistors to precisely control
the path of the beam from one point to the next.

This is completely lost on a laser projector. The best analogy I can
think of when talking about driving a laser projector is: Tie a light
bulb to the end of a long rubber band, now grab the other side of the
rubber band and start shaking it around in such a way as to make the
light bulb display a pattern.

On a laser system you send it a series of positions (points). There's no
"beam" control between points, you just step to the next point. The
speed of the projector is so slow, that the slew rate of the electronics
(how fast it moves from one point to the next) is immaterial, it will
look "instant" to the projector.

So you just start sending a bunch of points to one side of the rubber
band, and see what the light bulb does. You then start playing with the
points you send to the rubber band side, until the light bulb side,
starts drawing the pattern your after. You can see why "tuning" can
easily be considered a "trade secret".

There is at least one constant. The laser drivers are rated in Points
Per Second. So instead of sending out points at random times, you send
out 25K or 50K points a second, and you adjust the position of the
points to create the pattern you need. Longer vectors will have more
points along it's path than short vectors (like Clay illustrated).
There's also no guarantee that there will be a point at the start or end
of a vector. The only guarantee is that there will be a new point every
25,000 or 50,000 times a second.

Whereas a CRT will always have a starting and an ending point, and if
it's an analog generator, an infinite (without getting in quantum
mechanics) number of points drawn along the way. On a digital vector
generator there are discrete points drawn along the way, but only
between a vectors starting point and its ending point. On a Asteroids, I
believe this ends up being around 1.5 million points per second, while a
vector is being drawn.

Because the mirrors are bouncing around like rubber bands, you can draw
circles on a projector. In fact it's sharp corners that are hard to draw
on a laser projector, you have to send points off in somewhat bizarre
directions, at times, to get the mirrors to stop and start at the angle
you want.

Obviously the more expensive the projector, the better control they have
over the mirrors (stiffer rubber bands), and the easier they are to tune.

The hardware for drawing a vector on a CRT is so much faster than a
laser projector, you can easily use the ZVG to drive a laser projector
by sending it a bunch of points (the stars in a typical vector game).
The problem is that the ZVG is designed to draw these points as fast as
possible, waiting just the amount of time needed for a CRT to move
between the points, and then waiting at the point positions just long
enough to create the proper brightness for the point. This means the
points are being sent at a variable rate. Points that are closer
together will be drawn faster than points farther apart, and at a rate
*much* faster than 50K per second.

You would need to do all the points-per-second timing on the PC side
(which at 50K per second, is notoriously hard to do on a PC), but then
you'd have issues with the parallel port, interrupts, DMA, etc. that
will cause timing jitters of the points. And the command set of the ZVG
was designed for vectors, not points, there'd be a lot of redundant
information going to the ZVG that will slow down the transfer speeds.
Ideally the ZVG firmware should be re-written to accept a buffer full of
points, and then spit them out at a controlled, jitter free, 25K or 50K
times per seconds.

All that being said, I'm not sure how you're going to get a standard
arcade to send out the controlled "point-per-second" data needed to
control a laser projector. The best you can do is get the voltages
right, and then play with any hardware tuning knobs your projector's
hardware may have, to see what kind of results you may get. I wouldn't
be too optimistic.

-Zonn

On 12/22/2011 10:40 AM, Clay Cowgill wrote:
> Oh, one other thing to mention about speed/specs on laser systems. The
> rated "speed" is usually depending on the laser being setup at a particular
> 'angle'. (Basically the maximum degree of deflection from center.) Smaller
> angles yield smaller images, but are faster. Similarly, the "speed" is also
> tuned for a particular frame rate (there are adjustments on the galvo driver
> boards for this). How much of a difference it makes on more "dynamic"
> content like a vector game, I don't know. (But incorrect tuning results in
> missing endpoints, over/undershoots, etc.)
>
> The ILDA type +/-15V levels are essentially "maximum deflection", and you'd
> actually run with a smaller swing in between for any sort of reasonable
> speed. (The widest angles are best suited for 'beam show' type stuff unless
> you have a really, really expensive setup.)
>
> -Clay
>
> ---------------------------------------------------------------------------
> ** Unsubscribe, subscribe, or view the archives at http://www.vectorlist.org
> ** Please direct other questions, comments, or problems to chris@westnet.com
>

---------------------------------------------------------------------------
** Unsubscribe, subscribe, or view the archives at http://www.vectorlist.org
** Please direct other questions, comments, or problems to chris@westnet.com
Received on Thu Dec 22 16:05:57 2011

This archive was generated by hypermail 2.1.8 : Fri Dec 23 2011 - 19:50:00 EST