Jon, The Arduino circuit is like one I tried a while ago, and it didn't work for anything but clean tape and no more than 2X playback. But since your application doesn't appear to be video playback (or is it?), these issues may not be a problem.
My application was interfacing to Protools and syncing to prerecorded video. The studio didn't then have a Sync block with serial timecode, which would have been far easier.
Beau's circuit looks a little better. I like the pre-amp section, which might help the circuit to work across a variety of inputs.
The offer of sending you my old Adrienne LTC/VITC card is still valid -- and yes, I found it! There's not a lot on the board and tracing it out to see how it works shouldn't be too hard. Everything is thru-hole and discrete, except for the washed-off MCUs (or whatever) he used for the actual decoding. (Asked nicely, Tracey, who runs Adrienne, might even send a schematic.)
Whatever method you end up using please let us know how it all works out.
The Prop should be quite capable of reading both ltc and vitc. It will just depend on how much of the prop's resources you want to expend.$20 vs a prop? In my book th prop wins in the cost effectiveness department!
Hardware costs alone yes. But for a one-off, the time it takes to code the solution is often more "costly" than the dedicated hardware. The ICS2008B does more than what Jon needs or wants (bidirectional VITC/LTC, LTC to 80X speed, VITC and LTC generation/regeneration), but given the right project I usually don't think twice about spending $25 to save an unknown number of hours coding and testing. But that's just me!
The following circuit (untested) should give you improved performance over the simple Arduino input circuit cited:
By terminating the DC restorer diode to 0.6V, instead of 0V, the input gets clamped to 0V instead of -0.6V, providing better sensitivity. Also, you can use a counter to provide negative feedback from the input pin (mode = %01001, e.g.) to the transistor base, which provides the necessary hysteresis (in the above circuit, 10%, but you can get more than that by decreasing the 47K value). The 75-ohm resistor provides line termination and, possibly, better noise immunity.
I have two pins available, but both are pulled up via 10K. I don't see this as a problem, though, as the counter output pin would be driven high and low.
Why do you speak about 75 Ohms ?
LTC SMPTE = SYMMETRICAL AUDIO so 600 Ohms or more.
You find broadcast stuff with bnc connectors, for small size issue, but the origin is a symmetrical audio on 600 Ohms XLR.
The bnc connectors are just asymmetrical audio it is not really "broadcast" .
It is only for local short distance use.
On the circuit I use, I make it asymmetric to gain 3dB (put one of the phase to ground (=> more hum))
I was wondering about the 75 Ohm bit, too. I was worried about showing some more ignorance in finding that this was another difference between the USA and the UK. I have always found that LTC was 0dBm, 0.775V rms, 2.2 V p/p (usually bigger and bleading over onto programme sound).
(VITC would be a lot more difficult, but I have pondered on the possiblities of decoding "Teletext" signals. that has a bit rate just short of 7MHz.)
I'm showing my ignorance, I'm sure. I'm helping a friend with this and he told me the signal was 1v, p-p (I could be wrong about that, too). At any rate, I've got some studying to do and a bit of prototyping work when I get back home.
Back in the depths of history, 600 Ohms really was just that and when the correct termination was applied then the signal would have been halved from its originally double, open cct, amplitude. For a long time now most outputs are of a low impedance and at the nominal (0dBm level) from that the temination has had less of a effect. Of course the termination on the end of a long run of cable will help reduce the effects of any induced interferance.
One of the ccts shows the pins 2 & 3 of the XLR3 grounded, if the feed was a tranformer feed that was truely floating then that is ok, but if it is the more usual, nowerdays, ballanced electronic outputs then all that it would do is short out that one leg and give a reduced amplitude. No harm should come of this and it would at least prevent a transformer type of output becomming "one legged" which results in a low level, differentiating rising response dependant on the capacitances.
I don't claim to have any personal experience with SMPTE. The 0.8V p-p, 75-ohm figure came from something I read on the 'net. Apparently other physical interface standards exist. Perhaps Jon could tell us what equipment (make and model) the signal is coming from. If it's balanced, there are sure to be better options (opto?) than the unbalanced input I suggested.
I'm not sure what the physical specs are for LTC, but every commercial timecode product I've ever used, reviewed, or specced out had a 10k-20k input impedance, and could accept single-ended or differential signals, the latter very handy in the field. Input voltages are specified as from 100mV to at least 5v, and usually 10v. The latitude of input variations is nothing short of amazing.
Having done this type of thing before I can say it's not quite as easy as it looks. Signal dropout is common, especially if playback is not at 1X speed, and code has to compensate for corrupted frames. Bad data is even more common if you're using a single-ended input.
That said, if the signals are not coming from tape (e.g. from Protools or another digital-generated signal) things are a little brighter.
Yes a lot of interpalation (guessing) goes on with variable speed (tape derived) LTC. At high speed the LTC is used with very forgiving PLL hanging onto the code and at low speed the VITC is sampled, or corrected by frame pulse additins/subtractions.
I do not know if it was a form of standard, or just someting that Sony decks did in their own, but when it was in guess mode the colons on the display would be changed to an asterics.
Speaking about "broadcast" audio ? ..... Alway the same ! (Shame ;-) )
Broadcast analog video is easy, 1V top top and 75 Ohms always ! (0,7 V sync level) it is rock-solid !
Audio, .... ? I have some charts with conversion display depend on systems, countries, brand, customers, digital, analog, terminations , headroom...... and it is a big chart !
For jiter and drops , on digital recorder it is stable, and I only use it as display in" play speed" mode.
At high/low speed, I display "??:??"
Yes, they have managed to come up with a dozen ways to say much the same things.I still think about PPM4, on real meter movements, so it wouldn't take too much guessing where I trained.
But for the question posed in this thread it should be safe to assume that the LTC will be about 2 V p/p from a "broadcast/professional" piece of kit. If the input stage is more sensitive than this an pot on the input could be used to adjust it.
I figured out to generate 25FPS pal realtime LTC straight out a spinneret, locked to SNPT . (and SNTP trough DHCP)
It is still a proof of concept.
On a LTC display it is working fine, but on real broadcast my signal is not locker to video....
A loop trough a locked broadcast ltc generator, or jamlock a camera..... and you have easy realtime
I did not -- yet. That project got put on hold. The topic came up again because a friend who works for WDI (Walt Disney Imagineering) asked me about SMPTE and the Propeller. As time permits I will got back to that project.
Comments
My application was interfacing to Protools and syncing to prerecorded video. The studio didn't then have a Sync block with serial timecode, which would have been far easier.
Beau's circuit looks a little better. I like the pre-amp section, which might help the circuit to work across a variety of inputs.
The offer of sending you my old Adrienne LTC/VITC card is still valid -- and yes, I found it! There's not a lot on the board and tracing it out to see how it works shouldn't be too hard. Everything is thru-hole and discrete, except for the washed-off MCUs (or whatever) he used for the actual decoding. (Asked nicely, Tracey, who runs Adrienne, might even send a schematic.)
Whatever method you end up using please let us know how it all works out.
Hardware costs alone yes. But for a one-off, the time it takes to code the solution is often more "costly" than the dedicated hardware. The ICS2008B does more than what Jon needs or wants (bidirectional VITC/LTC, LTC to 80X speed, VITC and LTC generation/regeneration), but given the right project I usually don't think twice about spending $25 to save an unknown number of hours coding and testing. But that's just me!
The following circuit (untested) should give you improved performance over the simple Arduino input circuit cited:
By terminating the DC restorer diode to 0.6V, instead of 0V, the input gets clamped to 0V instead of -0.6V, providing better sensitivity. Also, you can use a counter to provide negative feedback from the input pin (mode = %01001, e.g.) to the transistor base, which provides the necessary hysteresis (in the above circuit, 10%, but you can get more than that by decreasing the 47K value). The 75-ohm resistor provides line termination and, possibly, better noise immunity.
-Phil
Why do you speak about 75 Ohms ?
LTC SMPTE = SYMMETRICAL AUDIO so 600 Ohms or more.
You find broadcast stuff with bnc connectors, for small size issue, but the origin is a symmetrical audio on 600 Ohms XLR.
The bnc connectors are just asymmetrical audio it is not really "broadcast" .
It is only for local short distance use.
On the circuit I use, I make it asymmetric to gain 3dB (put one of the phase to ground (=> more hum))
(VITC would be a lot more difficult, but I have pondered on the possiblities of decoding "Teletext" signals. that has a bit rate just short of 7MHz.)
One of the ccts shows the pins 2 & 3 of the XLR3 grounded, if the feed was a tranformer feed that was truely floating then that is ok, but if it is the more usual, nowerdays, ballanced electronic outputs then all that it would do is short out that one leg and give a reduced amplitude. No harm should come of this and it would at least prevent a transformer type of output becomming "one legged" which results in a low level, differentiating rising response dependant on the capacitances.
-Phil
Having done this type of thing before I can say it's not quite as easy as it looks. Signal dropout is common, especially if playback is not at 1X speed, and code has to compensate for corrupted frames. Bad data is even more common if you're using a single-ended input.
That said, if the signals are not coming from tape (e.g. from Protools or another digital-generated signal) things are a little brighter.
I do not know if it was a form of standard, or just someting that Sony decks did in their own, but when it was in guess mode the colons on the display would be changed to an asterics.
Broadcast analog video is easy, 1V top top and 75 Ohms always ! (0,7 V sync level) it is rock-solid !
Audio, .... ? I have some charts with conversion display depend on systems, countries, brand, customers, digital, analog, terminations , headroom...... and it is a big chart !
For jiter and drops , on digital recorder it is stable, and I only use it as display in" play speed" mode.
At high/low speed, I display "??:??"
But for the question posed in this thread it should be safe to assume that the LTC will be about 2 V p/p from a "broadcast/professional" piece of kit. If the input stage is more sensitive than this an pot on the input could be used to adjust it.
It is still a proof of concept.
On a LTC display it is working fine, but on real broadcast my signal is not locker to video....
A loop trough a locked broadcast ltc generator, or jamlock a camera..... and you have easy realtime
Now i go to try to sync on GPS signal
Time = UTC, User bit = Date
Next I go to merg the obex DCF generator to the GPS UTC ....