CRT Test Patterns?

I'm wondering if there is anyway to use an Uno to generate a few simple test patterns for arcade machine monitors? I'm really only interested in the "standard" resolution monitors as the machines I have and are interested in use that monitor.

I did a quick search and nothing came up so I figured I'd ask.

As a note, most monitors have separate pins for the red, green, and blue signals. As well as separate pins for GND and your a h-sync and v-sync, 2 sets of pins actually for positive h/v sync, or negative h/v sync (some games use positive, some negative).

There are basic patterns I'm looking to make. One is a basic grid of white lines. Then some screens of solid red, solid green, solid blue, and solid white. Then a screen with 4 squares lined up horizontally(sides touching), 1 red, 1 blue, 1 green, and 1 white.

It seems doable as I have access to each individual pin for each color, and I'd imagine the 328 should be powerful enough to handles something like that, right?

Problem is, I'm fairly uncertain about how to set something like that up... if at all possible.

So, those are my questions I guess... Can the Arduino do it? What the highest resolution it could handle (would probably have to use switches to tell the board what resolution monitor I'm hooked up to)? And if so, how would I go about starting on it? (newbie)

STANDARD RESOLUTION

HORIZONTAL VERTICAL
Scan Frequency: 15.72 KHz Scan Frequency: 60.0 Hz
Scan Period: 63.6 µSec Scan Period: 16.7 mSec
Active Video: 46.9 µSec Active Video: 15.3 mSec
Video Delay: 11.9 µSec Video Delay: 1.2 mSec
Sync Pulse: 4.7 µSec Sync Pulse: 0.2 mSec
Scan Line: 456 Pixels Screen: 262 Lines
Resolution: 336 Pixels Resolution: 240 Lines
Clock Freq: 7.16 MHz

EXTENDED RESOLUTION

HORIZONTAL VERTICAL
Scan Frequency: 16.50 KHz Scan Frequency: 53.0 Hz
Scan Period: 60.6 µSec Scan Period: 18.9 mSec
Active Video: 48.0 µSec Active Video: 17.4 mSec
Video Delay: 11.9 µSec Video Delay: 1.2 mSec
Sync Pulse: 3.9 µSec Sync Pulse: 0.2 mSec
Scan Line: 646 Pixels Screen: 312 Lines
Resolution: 512 Pixels Resolution: 288 Lines
Clock Freq: 10.67 MHz

MEDIUM RESOLUTION

HORIZONTAL VERTICAL
Scan Frequency: 25.00 KHz Scan Frequency: 60.0 Hz
Scan Period: 40.0 µSec Scan Period: 16.7 mSec
Active Video: 32.0 µSec Active Video: 15.4 mSec
Video Delay: 7.2 µSec Video Delay: 1.2 mSec
Sync Pulse: 4.0 µSec Sync Pulse: 0.2 mSec
Scan Line: 640 Pixels Screen: 416 Lines
Resolution: 512 Pixels Resolution: 384 Lines
Clock Freq: 16.00 MHz

VGA20 RESOLUTION

HORIZONTAL VERTICAL
Scan Frequency: 31.55 KHz Scan Frequency: 70.0 Hz
Scan Period: 31.7 µSec Scan Period: 14.3 mSec
Active Video: 25.6 µSec Active Video: 12.2 mSec
Video Delay: 5.7 µSec Video Delay: 1.1 mSec
Sync Pulse: 4.0 µSec Sync Pulse: 0.2 mSec
Scan Line: 634 Pixels Screen: 450 Lines
Resolution: 512 Pixels Resolution: 384 Lines
Clock Freq: 20.00 MHz

check out the tv out libraby can't seem to find it right now and maybe drive it from an old set, but beware of the voltage as i'm shure your aware, the sync shouldn't be that hard to adjust as it might over run but you should be able to get a good test been a while for me

The TVOut library gives a composite signal for sync and colors. I can get by with composite sync by tying them together on the monitor's chassis. Most monitors shouldn't have a problem with that as some arcade boards put out composite sync. But I can't do much of anything with composite colors.

The TVOut library is like that, I believe, because on 99.9% of monitors/tvs you have to use the RCA jacks to send in a video signal. Sadly, the monitors I work on are that in 0.1% where the only access to the colors/sync you have is at board level..

Thanks for the heads up on the voltage, but I've already been bit by the flyback a few times. It's to the point now where line (110'shV here) just feels like a tingle. :stuck_out_tongue_winking_eye:

Got around to hooking the TVout demo up to an arcade monitor, runs just fine (sync wise).

I guess the big issue is getting the separate red, green, and blue signals from separate pins... with white just being all of them at once.

After tinkering, it looks like it'd be something along the lines of setting VID_PIN in "hardware_setup.h" to a different pin on the fly... doable?