DIY video euro sync option in February 2021?

Occasionally I get people who want to start out in DIY eurorack video synthesis asking about my modules, and I have to let them know that right now their biggest challenge is finding a sync generator/extractor and an encoder.

Now Syntonie’s VU007 (LZX-compatible RGB to composite and component outputs) is about to solve the latter problem but I still don’t know of a currently-available DIY sync generator/extractor option. I built my own one (PAL sync extractor) on breadboard years ago, but it wasn’t particularly reliable, required fiddly manual calibration of the blanking circuit and I have no idea if it would work with NTSC or not.

So, putting the question out there - can anyone point me at a DIY sync generation or sync extractor option that’s currently available for sale, in February 2021?

5 Likes

I agree that sync generation or at least sync extraction is missing as DIY option for now.
Sync extraction, with manual setting of blanking, would be probably the easiest way, it requires to always have a video source but in this case, no need to rely on a digital solution.

Then for sync gen, composite sync is a bit complex to generate without using a micro/fpga, I’ve seen it done with a crystal and logic only, but this make for a big circuit, and only seen PAL or NTSC, I suppose allowing both with a same circuit would be a bit of a headache.

PAL

NTSC

Though both rely on monostable for blanking.

While I was searching information about the subject, I found an article from Elektor magazine from 2005, which is a video sync generator made with a CPLD and written in verilog.


Video Sync Generator Elektor 07:08-2005.pdf (567.9 KB)

Basically, crystal clock is divided to get double the line frequency (31.25kHz in PAL), this divided clock increments a counter. Depending on the count, frequency and pulsewidth information is sent to a PWM that generate the pulse sequence.
I’ve started re-writing it for VHDL, took a bit of time as it was my first project, but recently managed to get the pulse sequence reset on Odd/Even.


With the pulse sequence resetting at each beginning of frame, the sync gen is locked vertically, though it still scroll horizontally. This should be solved by PLL+VCXO as it is done in Cadet Sync Gen, this way, the clock will be modulated until external horizontal sync and sync generator horizontal sync are in phase.

Haven’t tested the PLL part yet, as I didn’t not included it on the board I initially made.

So, far from being for sale in February 2021 I would say :sweat_smile:

Then, will be happy to share the code/implementation once I got something working :slight_smile:

4 Likes

Hang on… just filing this post under “Bastien is awesome” :slight_smile:

2 Likes

Probably not as much as the persons behind all the references I shared, but thanks :slight_smile:

Then, thinking about a short term solution, a sync extractor with monostable blanking is what would make the most sense, doesn’t require much circuitry (LM1881, 74HC4538, 74CH14, maybe a few op amps if 1V front sync/16 pin cable sync is required), most of the output of LM1881 can be buffered directly, except for blanking that needs to be derived from csync with monostable, then hsync could probably be subbed by csync without issue. Else, LMH1980 is worth considering, as it has hsync already, it is SMD but since LM1881 in DIP format is now obsolete, that can be a good option.

LM1881+4538+7414 is exactly the circuit I breadboarded, yes. I’ll go check it out and see if it’s suitable to make into a module…

3 Likes

I’m sunk under my audio/production workload so I can’t volunteer but using an ice40up5k (or an icebreaker dev board) with the open source tool chain seems like a much easier way to do this (as the elektor article suggests). It really is just logic/timers, this is what CPLDs and FPGAs are good for. CPLDs are pretty obsolete these days because low cost FPGAs are so cheap.
edit: re-read the thread, Bastien is on it, rad!!

2 Likes

Been using a Xilinx CoolrunnerII, got a CMOD C2 thinking it was a cheap devboard but its only a board with some pins, so definitely looking at other options, even more if it means more possibilities/being more easily accessible and tweakable with an open source toolchain.
Also, I’m quite close to max cells used in the XC2C64, my code is probably not super well optimized too, was hesitating in going with a bigger CPLD of the XC2 serie or using something different, so will definitely look into the ice40.

nice! I really like the open source toolchain and the ice40 (comes in friendly non-bga footprints too). I eventually moved up the to the ECP5 (more multipliers, more LUTs, faster fabric > 100MHz) but I sometimes think that was a mistake.
You have a bunch of choices in the ice40 family, I was using the ice40-up5k because I needed the DSP blocks.
I’m not sure I understand the “64 macrocell” topology of the coolrunner but the ice40s will get you 1k to 8k LUTs, plus BRAM, SPRAM, and DSP blocks (if you pick the UP5k) for only a dollar or two more depending on the device. Someone got DOOM to run on one recently :stuck_out_tongue:

The yosys toolchain is mostly verilog but they’ve added VHDL support in the past year or so, not sure how mature it is though.

1 Like

I’m not really familiar with the difference between LUTs and macrocells either. I think, in the case of macrocells, one cell = one flip-flop.
So for example, for a 10-bit counter as I uses for the pulse sequence, it takes 10 macrocells, it adds up quite fast so 64 is a bit small.

Then, if I understand correctly, another main difference is that the CPLD got a non-volatile memory, meaning it will start running the code once the CPLD is programmed and everytime the circuit is powered, while a FPGA needs some kind of microcontroller to load the code at each boot right?

oh yeah, that is very small. An LUT is also a register or flip flop.

The ICE40 series is very much a CPLD replacement. It also has the on board non-volatile memory (ECP5 does not), I have not used it though. It can also be programmed though SPI, if you include a small flash RAM connected to the boot port it knows to look there and program itself on power up. You can program the flash memory once with JTAG and it will automatically load from that each time (and you can reprogram the flash).

The dev boards generally include an FTDI chip that speaks USB and translates that to SPI for programming the flash or talking to the FPGA. You can also do this with a microcontroller but I haven’t tried yet. Definitely do not need a microcontroller with the FPGA.

1 Like

Why hasn’t anyone suggested doing a remake of the Cadet I? Other than potential scarcity of the LM1881 I do not understand why it would be a bad idea.

Copying the Cadet 1 verbatim goes against my personal standards - directly ripping off an LZX schematic is about as morally defensible as doing a Behringer or a Plan B. I was hesitant enough about putting out the Gainbrain - since it’s functionally very similar to the cadet Fader and Multiplier combined - so I approached Lars first to get his go-ahead. I believe that should be the bare minimum anyone does before substantially copying someone else’s hard work.

I do have some ideas about a new module I’d like to make one day which will include sync extraction but also add some new functionality and originality to the modular video synth space, but it’s on my TODO list and right now there are too many other things ahead of it! :slight_smile:

1 Like

Ok, it is an important discussion that should not be forgotten. I will focus on something else.

In your original post you mention that the biggest challenge for people starting out is to find a DIY sync generator. Reading the thread I started assuming that there is something wrong with the Cadet I.

But, to be clear, if there’s no technical issues with the Cadet I, one could solve this problem by looking at the Cadet I source files and

  • build it on a breadboard, or
  • send it off for (small scale) production

I think it should be clear for people reading this thread that this is possible.

1 Like

Yes, the Cadet I design works great and you could do up your own layout if you wished.

personally i have to disagree a little bit with this - cadet schematics are open source, and in general the idea with open source is to encourage others to use/remix the designs that are shared - i have seen lars mention before they would rather people use the cadet building blocks to design something different, and ultimately it is best to ask / respect the creators wishes…

…but in general there are many ways to add value to an open source project besides redesigning it completely or adding features:

  • you could provide distribution and assembly services when the original project is abandoned or out of print,
  • design a cool alternative panel
  • you could add to the written documentation or make a video demo or work on translations to other languages
  • you could update the circuit to replace out of production ic’s or fit a new form-factor…

there is an active community around remixing mutable instruments modules; ranging from creative alternative firmwares, to micro/smaller HP versions - and all of these add value imo

the important part is to attribute the original work (and respect other licence requirements ie share alike )

Behringer shamelessly reverse engineers non-open designs, and rips off open designs without attribution, and with no intention to add value to the original project.

4 Likes

@cyberboy666 I basically agree with what you’d said. Reading back I can see I missed a critical detail in an earlier post that I should have made clearer - if someone copies a published LZX design for their own use then I think that’s totally OK and exactly fits the spirit of why those designs were published in the first place - to encourage DIY and self-learning. But I wouldn’t want to see anyone make a copy of an LZX circuit (like the Cadet 1 - using the same schematic and microcontroller code - even with a new PCB layout), add nothing new or different, and then start selling it en mass for profit (unless they obtained permission to do so from LZX first, of course).

I hope that makes more sense…

1 Like
chat.scanlines.xyz