Using Arduino for time base correction (TBC) for analog video?

This would be for a box with composite and/or s-video inputs/outputs, for cleaning up an analog video signal before it gets digitized.

Could any of the Arduino models (or Raspberry Pi or other such device) be made to do this?

I saw a post for this from 2018, and the person who answered thought the Arduino's converter was too slow. Being it is 3 years later I figured I would ask for an updated answer.

Much appreciated...

1 Like

Can you link the other post?

The ADC was slow in 2018, and hasn't speeded up in the intervening years.

I haven't done any analogue video for a few years, but the bandwidth of a broadcast analogue channel was around 5.5MHz, just to give you an idea of the sort of speed (and buffer requirements) you're looking at.

I doubt this is normally done with a programmable microcontroller and software....
A little searching found An Implementation on FPGA For a Time Base Corrector

Sure, done.

1 Like

Ok thanks. How might we achieve an inexpensive DIY time base corrector (and frame stablization would be a nice added feature) from a microcontroller or otherwise commonly available parts?
Thanks again

With great difficulty.

Thanks for the FPGA link... That is a start, though I wish there was a list of exact parts and a wiring diagram for those of us less knowledgable about this stuff. But the author's email is on the doc so maybe they can be reached and willing to provide some guidance. If I get any answers I will post them here.

It's been a looong time since I looked at doing video projects, but isn't TBC just sampling the timebase and locking to it so you can provide a phase-coherent version that doesn't dance around? That seems like it would be doable with a black pill or even just an analog PLL.

Thanks for your reply. I have no idea! Unfortunately my own knowledge is on the programming side, not electronics or details of how video works. I am very much the grasshopper in those areas.

All I know is analog video looks better if you run it through a time base correction thingy before going into the digitizer thingy. And TBCs are expensive, largely because the specialized chips they use are no longer manufactured now that the world has gone digital.

Anyway, I figured that if the special purpose chips for a TBC are no longer made, perhaps a microcontroller could be programmed to emulate one. And I've seen Arduino used to make all kinds of electronic gadgets, and it is quite popular and constantly evolving so I thought Arduino might be a good microcontroller platform to use, assuming I can learn enough and find others who also might be interested in such a project.

Given enough details (such as a parts list, a wiring diagram, and sample code) I can follow instructions on how to assemble electronic components to build a device and control it by programming the Arduino, but I'm very much a beginner learning electronics and the workings of things like how video signals work. I have never heard of a black pill or PLL (which I just looked up - it's a phase locked loop?). So the hope is that through research, asking questions, and work, maybe I can get it done or find others who would be interested in helping to figure it out.

Developing an open-source time base correction device for analog video would benefit a lot of people who have old home videos they and their families would like to digitally preserve.

Anyway, thanks for the info. I will read up on PLLs and black pills, and see if I can make sense of it, lol.

Yes, PLL == Phase Locked Loop.

OK, I did a quick look at Wikipedia and TBC isn't what I was thinking of. TBC done digitally would require sampling the video signal and need enough RAM to buffer it and then reproduce it at the right rate.

So a VHS signal has a 5MHz bandwidth so we'd need to sample at 10MHz minimum. Each field is 1/60 second. So assuming an 8-bit resolution and an ADC with a built-in 1k buffer (just the first thing that google shows), we could get 1,000 samples every 10,000,000/1000 = 0.1ms. An arduino can handle that interrupt rate, so the only immediate issue is choosing one that has enough RAM to buffer the 1,000 samples. Next, you have to send those samples to a video DAC at the standard field rate (this is the whole point of the TBC).

The above is an oversimplification based on some quick googling, but I think that with good external hardware, it can be done with an arduino. Now, of course, the question is since we have to add an external ADC (the internal arduino one isn't close to being fast enough) and an external DAC, then why use the arduino at all, and not just a bare microcontroller?

The answer to that question is left as an exercise for the grasshopper :slight_smile:

Dream on.
3MHz, on a good day.

Typical active line length is roughly 52us, irrespective of system

In the same sense that you can make a silk purse out of a sow’s ear, if you have enough good silk. :expressionless:


A little stone soup, as it were

So you just decided to ignore the rest of the sentence?

Re: why use an Arduino at all and not a bare microcontroller?

That question is akin to asking someone who wants to make a video game, why use Python or Scratch or BASIC, when you can do it in C++? Or assembly?

The answer is it depends on the developer's skills, knowledge, capabilities and preferences. If you have a kid who is not the most technical but has an idea for a game, the best path for them to get it done might be an easier language like Scratch or Python. If you told them to learn assembly, they might rise to the challenge, but realistically their game would probably never get done.

By bare microcontroller what do you mean? I imagine a bare chip like a PIC that I would need to build a circuit / ecosystem around from scratch, figure out how to program, etc. Just connecting it to a PC might not be trivial.

That sounds like asking for more work of the kind I would prefer to avoid, and a little beyond my current skill & knowledge level, and available free time.

I even feel a little out of my comfort zone already, with Arduino, but I figure it's worth pursuing a little and asking questions to gauge how doable such a project is.

I'm hoping others will see value in such a device and through collaboration we can come up with a design and code sketch that can end up on some instructable or a github in the Arduino samples collection.

Meanwhile I'll just keep following what everyone is saying and try and learn something...

Anyway, thank you for your answers!

I'd say it's more like if you're writing your own game engine, does it matter what language you use for the gameplay logic?

The point behind my question is that the video interfacing itself is likely to be so much work that there isn't much benefit to the Arduino. At that point you may as well use a bare microcontroller. Unless the whole point of this is to produce a TBC specifically for the arduino ecosystem.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.