• Please review our updated Terms and Rules here

PET video output options?

bitfixer

Veteran Member
Joined
Apr 6, 2011
Messages
679
Location
San Francisco, CA
Hi all, hope everyone's doing well.
I had a bit of time recently to play around with some PETs and wanted to see how hard it would be to get video output from the PET to either VGA or HDMI. As I was working on other PET things, I wanted to avoid putting extra strain and hours on the PET CRTs with powering on and off, etc. I had some fun messing around with this and wanted to share what I found, maybe it will be useful to someone.
I started by looking at the schematic for a PET to composite video circuit. Looking at this, it seemed like the capacitor values were off, 2200mf seemed way too big of a cap to use here. And I did not happen to have any 74LS02s around to try. I did have a bunch of the fpga boards I use for the ROMulator board, so even though it was a bit of overkill just wired up the vsync, hsync, and video outputs from the PET user port to that, to see what I would get on the other side.
The VSYNC out from the PET goes from 5v to 0 during the vsync period, and the hsync appears to be inverted, going high during the hsync interval. From what I can tell this circuit inverts vsync twice, keeping it the same - and inverts hsync once. At first I tried just combining vsync and the inverted hsync together to form a composite sync, and then combining that with the video out through a couple of resistors to form the overall composite video out signal. This was on a PET 2001.
This signal actually did show a picture on a CRT monitor, although the image was shifted over and the left half of the screen was cut off. The discovery here was that the plain inverted hsync pulse was too wide to properly form a composite sync signal - the pulse width overlaps with the video signal and thus part of the picture is missing. I made the pulse narrower and this did the trick, giving a fairly good composite video signal. This presumably is what the cap and resistor do in the schematic, although not completely sure.
The same signal, however, would not sync using a composite to HDMI converter I tried, only on the older CRT monitor.

Repeating this experiment with an 8032 - no success. The hsync frequency on the 8032 is different, 20khz by my measurement while the 2001 had what looked very close to an NTSC line frequency, just over 15khz. So not surprisingly, nothing could sync to that.
Decided to try one of the cheap Gonbes GBS-8200 converters to see how that would work. Trying the 2001 first, it did work pretty well using the same composite sync signal. I got a reasonably good VGA signal out of it, a little noisy. The unit supposedly can sync to separate vsync and hsync signals, although when I tried that, I got nothing. Only the composite sync signal worked.
I tried the 8032 next to see if it could sync to a 20khz line frequency, and no luck. Just can't sync to it, it's too fast for CGA frequencies, and not fast enough for the EGA range supported by the converter.

So at the end of the day, I'd say the GBS-8200 is a pretty good solution for a PET 2001, although you do need a bit of extra circuitry to make it work. Essentially you need to shorten the HSYNC pulse and invert it, and merge the VSYNC with that to form a composite TTL sync signal, and connect that to the sync (S) pin on the GBS-8200. Then I hooked up just the green line (for that nice PET green) to the video output of the PET through a resistor, seemed like about 200 ohm worked well. Still not sure why the composite to HDMI converter didn't like it, but the GBS-8200 seemed happy with it. Maybe I'll make up a PCB to bring out the right signals for conversion if anyone is interested.

I'm still looking for a good way to get video from the 8032 to a modern display. As far as I can tell it would require a somewhat customized scan converter to do it. Since it's not just half the VGA frequency you can't just scan double, so seems like you'd have to buffer a whole image at a time and then scan it out in parallel. I did some very basic experiments with this using the FPGA board, and got as far as generating a pretty noisy VGA signal at 800x600. The plan would be to scan in a full frame of PET 8032 video at 640x200 into one memory buffer, then scan that out in parallel while the next frame gets captured. This could be another project, assuming I can't find an easier way to do it.

Does anyone know an existing way to get video out of an 8032 to a modern display? I realize this could be old news to everyone, so sorry if that is true. I enjoyed the investigation and wanted to see if this information could help anyone else looking at this.
 
Does anyone know an existing way to get video out of an 8032 to a modern display? I realize this could be old news to everyone, so sorry if that is true. I enjoyed the investigation and wanted to see if this information could help anyone else looking at this.

I don't have the bandwidth to google it (but I'm pretty sure it's relatively easy to find), but one option is a modified EDIT ROM that programs the CRTC to NTSC scan rates so you can use the same output hardware as the 2001. 98% sure that someone's already done the work for that. Of course that will break using it with the internal monitor.
 
Sir I'm on literal dial up and not even using a very fast modem atm and I still have the bandwidth do google stuff... What the heck are you on snail mail connection?!?!

Code:
BANDWIDTH:

noun: bandwidth; plural noun: bandwidths

    1. (Electronics) a range of frequencies within a given band, in particular that used for transmitting a signal.
        the transmission capacity of a computer network or other telecommunication system.

    2. the energy or mental capacity required to deal with a situation.

I was referring to definition 2, but maybe that wasn't sufficiently obvious.

But, sure, whatever, I can do it. The PET/CBM Editor ROM Project
 
Code:
BANDWIDTH:

noun: bandwidth; plural noun: bandwidths

    1. (Electronics) a range of frequencies within a given band, in particular that used for transmitting a signal.
        the transmission capacity of a computer network or other telecommunication system.

    2. the energy or mental capacity required to deal with a situation.

I was referring to definition 2, but maybe that wasn't sufficiently obvious.

But, sure, whatever, I can do it. The PET/CBM Editor ROM Project

Anywhere else that would've been obvious but your 1. Dealing with someone legitimately stuck in the past and 2. We're on a forum where there is a far greater likelyhood of finding someone using a super narrow-band connection and vintage hardware.
 
Code:
BANDWIDTH:

noun: bandwidth; plural noun: bandwidths

    1. (Electronics) a range of frequencies within a given band, in particular that used for transmitting a signal.
        the transmission capacity of a computer network or other telecommunication system.

    2. the energy or mental capacity required to deal with a situation.

I was referring to definition 2, but maybe that wasn't sufficiently obvious.

But, sure, whatever, I can do it. The PET/CBM Editor ROM Project

Ok and I'm a little... Naturally medicated.
 
Thanks for the ideas! I had glanced at RGBtoHDMI before, that could be a good way to go. I think they have a CPLD board that goes with a Pi Zero, sounds like you can configure things to match the specific output of your computer. So that does sound doable. Also the Edit ROM change to output syncable scan rates would be really nice, I'll definitely check that out.
 
Had another PCB order happening at the moment, so I threw in 5 of the RGB2HDMI 12 bit hat boards in with it. I'll probably keep 1 or 2 of these, so if anyone wants one of the remaining 3 boards please let me know.
 
There seems to be a lot of mileage enhancing an already existing PET Gadget since it has most of the bits required... I'm referring to BiTFixers's ROMulator... it already has the FPGA required for dual port RAM (it's ICE40UP5K-SG48ITR I believe) and that also has hardware SPI. Theoretically it could be tweaked to drive an SPI LCD with very little extra hardware.... that's the way I would attempt it anyway. (Could also probably generated upscaled VGA)
 
This is a great idea, the ROMulator does have SPI brought out on a pin header so you could, as you say, drive an SPI LCD. That would be a nice solution. The contents of graphics RAM are already written through to the romulator's memory, so it would need the contents of the character ROM loaded on board as well and then scan out with dual ported RAM and out over SPI.
Upscaled VGA is also possible, this was an earlier experiment. I managed to get a halfway decent VGA signal coming out of the FPGA at 800x600 60Hz, although it was a bit noisy and one of the VGA monitors I tried would not sync with it. I think an external oscillator might be needed to clean up the signal.
I'll give the SPI LCD idea a try soon. Have a couple of those around, although they are tiny. But would be fun to have a tiny postage stamp display for a giant PET.
 
Back
Top