Interfacing with VGA

Hey y’all,

First post here and full disclosure I am fairly new to LZX but have been operating in the VGA space for awhile - ie using VGA2Composite and Composite2VGA converters as sync generators and frame buffer for feedback.

I would like to create a module that lets me interface this with LZX modules like shape generators, filters, etc.

I believe to do this I would need to use a video-rate op-amp on each color channel to buffer and span each color signal from 0-0.7V standard of VGA to 0-1V of LZX.

Sync I am less clear on - VGA standard has individual H and V sync pulses both 0-3.3V range. Are LZX sync pulses also 0-1V? and would it be necessary to also extract composite sync as an output?

Thanks y’all,
Adam

If you want to go from VGA to LZX format there should be a VGA input expander for LZX TBC2 available at some point in the future. From LZX to VGA you would just need a composite/component>VGA converter connected to your LZX output (ESG3).

1 Like

Thanks for the reply! I didn’t know that existed already. I guess I was hoping for a more DIY solution as I haven’t invested into LZX architecture quite yet. Here’s a preliminary schematic I put together - probably should be using LM6172s but I’m curious if a cheaper IC will satiate my intent
Screenshot_2024-03-04_at_7.52.33_PM

Cheaper ones will work, but you’ll loose some detail. Sharp edges won’t be as sharp.

The bigger problem will probably be timing. Most uses of LZX gear require sync at some point, so you’ll need your VGA device to output a VGA signal that uses a timing that will be accepted by whatever LZX modules you’re using that need sync. Some older modules might be more forgiving with timing, but if you’re using an encoder module or any of the Gen 3 stuff that needs sync (since they have sync generators that lock to the sync signal), you’re going to need the timing to be one of the supported timings. Not every VGA device will let you change the timing. Sometimes a resolution change will do it, but you might not be able to change it to a resolution that has timing that will be accepted for composite/component video. You’ll also want DC restoration, but you’ll still get picture without that, just the levels will probably be off. Here’s a modwiggler thread where Lars mentions some this stuff a bit: VGA in and out of LZX? (aka VGA in video synthesis?) - MOD WIGGLER

There are some pretty cool LZX modules that don’t require sync at all so they would be relatively easy to interface with, like any of their 8hp Gen 3 modules. Some that need sync, like the Gen 3 VCO, the DWO3, might work without (rear) sync if you plug sync into the front panel reset jacks, but I’m not sure about that.

If you do end up using a module that needs sync, you’ll need to combine the H and V sync signals, which I think should be as easy as a 50/50 mix between the two. But I’m not sure if VGA sync differs from composite/component sync (besides timing as mentioned above). It originally drove CRTs also so it’s probably close, but I’m not sure if it’s close enough.

2 Likes

Really appreciate the detailed reply!

So based on my poorly obtained empirical evidence, you’re right. Vertical sync on VGA is measuring at 60 Hz for me. Horizontal sync, I don’t think the frequency measurement is accurate at 48.3 kHz, but I am measuring ~2.1 us pulse width which does not equate to composite sync. But, I am using those cheap VGA to composite (and vise versa) converters for sync and frame generation - so I think I could just grab the sync directly from the converted composite signal? I’m journeying out of my wheelhouse so I don’t know if things would still all match up timing wise.

Hi,
I hacked something similar for a show last autumn with a simple vga breakout adapter.
But I avoided lzx modules that required sync for the vga feedback loop.
My method was:
Bridged sync h and sync v from vga out of ‘composite2vga’ to vga in of ‘vga2composite’.
Breakout r,g and b. I got those connected to reverse landfills matrix mixer to bring the levels a bit up from 0.7 to 1v.
I then process those signals with any lzx module that don’t need sync, like stairs, doorway…
At the end I attenuated the processed signals back to 0.7, although you can just send 1v and get clipped by the ‘vga2comp’ adapter.

At the same time I opened the composite part of the feedback loop to the lzx world thanks to TBC2 and syntonie vu007.
The tricky part was to remember which signals were in ‘vga’ timings and which ones had ‘composite’ sync.

Preparing a workshop in Barcelona about this, hopefully soon.

2 Likes

I think my summing amp for generating LZX luma may be wrong but I am going to test this out soon on breadboard. Planning to first try it syncing with an LZX Castle VCO. Limited on budget for acquiring modules for testing but please let me know if there are any particular modules that would be worth testing with!

LZX H and V sync are 5V (at least in the cadet series) and buffering them from the VGA device is a good idea but I think you can do away with the TL072 as you have a 4070 with unused gates. Tie 1 input of an XOR gate to ground and whatever you feed into the other input will be buffered at the output and will be 5V.

I believe H and V sync can be XOR’ed to get C sync, but I think you will need to do something to drop the output voltage down. If you just take the 4070 output it’s going to be 5V and it needs to be 700mv to truly be composite sync. TTL level sync has the potential to damage downstream equipment. Also don’t forget to tie the inputs of any unused gates in the 4070 to ground.

As you have seen I plan to update the cadet range. I had a plan to do a VGA in and out module that works with the updated modules. The plan was that the VGA out module would have the same blanking circuit from the cadet RGB encoder, but this requires the blanking signal from the cadet sync generator or possibly modifying a Syntonie VU007 (which has the signal generated by an FPGA) to get the blanking signal into the VGA out module. I haven’t yet found how to get the blanking signal without an MCU or FPGA interpreting the output of a sync separator IC and generating a blanking signal.

If I have time I might DM you some files but I’m on my phone not at PC and will be away from home for a few days

1 Like

Hey y’all,

thought I’d post an update on my endeavors:

I was able to use VGA2AV converter and AV2VGA converter to make a hacky RGB encoder and decoder. The H and V sync are generated by the AV2VGA converter and hardwired to the VGA2AV converter. RGB is taken from LZX standard and scaled to VGA standard using AD8034s (thank you Bastien aka Syntonie, Phil aka pebble and analogmonster for all of your help there). Hacky blanking is achieved using H sync and a CD4053 IC (thank you Tim aka cyberboy666 for help with that.

On the decode side, composite video can be supplied to the AV2VGA converter. The VGA standard RGB is then scaled to LZX standard using AD8034s. In my current prototype, green doesn’t seem to work but otherwise I have had some nice success.

These converters also have S-video, so naturally I tried to convert this to component standard but unfortunately I ran into issue there. I was using Syntonie’s VU007 LZX to component conversion circuit but I could not even get a black and white output connecting luma from the Svideo output to the display (and I did test the svideo output and that worked fine). I suppose maybe it’s a resolution limitation?

Anyways, I may just forgo trying to implement component for now so I can start designing an actual module - my intent is for this to be a cheapier hackier option in modular anyways.





10 Likes