Sweet15 - 15Khz (240p) Monitor Tester [Completed]
The Sweet15 is a retro gamer’s dream, especially for those who are always on the hunt for modern monitors that support 240p, otherwise known as 15khz… or 15.734264Khz if you’re a die-hard fan of gaming! I created it as I was always buying up older monitors, rushing home to hook them up, and then finding out they don’t support 240p. Bummer!
Easily portable and powered by a button cell battery, the Sweet15 allows you to connect to the 15-pin D-Sub connector of any monitor and run various test patterns to ensure the monitor can sync down to 15khz, has no dead/burnt pixels, identify scanline boundaries, and more.
Powered by the ATTINY2313 and a 20Mhz external crystal, the Sweet15 is perfectly suited to run some basic test suites, and is open for further development as the MCU is not soldered in place and can be re-programmed with third party firmware.
Furthermore the Sweet15 has a momentary push button so that you can flip between test patterns readily! There is enough room on the ATTINY2313 to store between 7 or 10 patterns of varying complexity.
As the Sweet15 utilizes digital logic, the color output gamut is the primary colors Red, Green, Blue and its derivatives Yellow, Magenta, Light Blue, White and of course Black.
It is important to note that without any load the RGB pins of the ATTINY2313 output ~2.98v when high, which must be adjusted for the industry standard 0.7v (with 75 Ohm termination).
For this design I chose 330ohm in series (with a diode), on each line. This gives about 0.4v on the RGB lines when measured with a multimeter, enough to get a pretty good color representation.
Remember that the monitor will be terminated internally to 75Ohm. You can verify this by measuring the resistance between the R,G, and B lines to ground right on the female DB15 connector on the monitor itself. (in my case all three color pins measured 77 Ohms, so pretty close!). So putting a resistor in series before it enters the cable, which then connects to the monitor, actually acts as a voltage divider because of the internal termination in the monitor. (it took me a while to understand this!).
My cable measured 0.7 Ohms resistance… pretty negligble, but I plugged all this into Proteus and simulated it, and as expected get pretty real world results (voltage of 0.42).
The current code was written in BASCOM-AVR, and I used the built in debugger along with a Saleae Logic analyzer to compare the real world output with that of a Super Nintendo. I debugged the tar out of this thing to get the timings hopefully near perfect. You can program the BASCOM code easily onto a ATTINY2313 with the cheap, yet powerful, TL866II Plus.
Here is the code for NTSC, which is a modified version of a great PAL example, a large inspiration for this project, which I found here. Major credits go to this individual (‘Dim’).
When programming the board be sure to remember to upload as INTEL HEX and set fuse settings in the Xgpro software used by the TL866II.
Select INTEL HEX when you open the .hex file you compiled in BASCOM-AVR
For fuse settings, the ATTINY2313 datasheet on page 30 has the settings layed out…
The relevant settings are on the config tab in the software. As we are using a 20MHz external crystal we want CKSEL to be 1111 and SUT as 10 (20Mhz Crystal Osc. w/ fast rising power)
It is important the fuse settings are correct! You can brick your AVR if set incorrectly =[
This board utilizes the following components which can be ordered from Digikey / Mouser / Arrow.
|BK-913||RETAINER CR2032 WITH PC PINS||1|
|ATTINY2313-20PU||IC MCU 8BIT 2KB FLASH 20DIP||1|
|SD0805S020S1R0||DIODE SCHOTTKY 20V 1A 0805||3|
|LTST-C171TBKT||LED BLUE CLEAR CHIP SMD||1|
|RNCP0805FTD1K00||RES 1K OHM 1% 1/4W 0805||1|
|ERJ-6ENF1000V||RES SMD 100 OHM 1% 1/8W 0805||1|
|09.10201.02||Switch Slide ON ON SPDT Side||1|
|EVQ-PF008K||Switch Tactile N.O. SPST Round||1|
|560 Ohm Resistor||Any brands||3|
|22p Caps||Any brands||2|
|1734530-3||TE Connectivity AMP Connectors 5749768-1 (FEMALE)||1|
Download an image of the schematic and the source files below:
Schematic and PCB are done in Diptrace, I highly suggest anyone give it a try over KiCad.
comments powered by Disqus