I'd just add a imple
RC Lowpass to the pin. Maybe this isn't even needed..
Today, after work, I wrote a short, simple program to generate the signal. It is completely untested, but looks OK on the DSO.
It does not much besides generating the signal. There are some open TODOs, but it shoud show a simple way to do it.
First, we need a frame-sync. Normally, you would use a external signal. To keep the hardware requirements for this simple demo low, a interval-timer generates it. The signal gets generated in genFpsSync().
You can switch easyly to an external frame-sync if you change the pin from OUTPUT to INPUT in setup() (and perhaps omit the now un-needed timer)
A pin-interrupt then starts a new frame. startLtc() gets called with a rising edge of frame-sync.
Here are some TODOs left for you
Currently, all data including time and frame-number just set to zero. Then, the parity gets updated, and the main interval-timer (calls genLtc() ) which is responsible the generate the bitstream gets startet.
It runs a tiny little bit faster than needed to allow the syncing to frame-sync. Maybe you want to play with the hardcoded value 0.005 and try higher or lower values.
genLTC does the main work to generate the bitstream.
That's it. Short and simple. I hope it works and generates a valid signal (all with '0' at the moment, see above) - but it is completely untested and may have some problems.
It's meant as a start - if anybody adds the missing parts or fixes bug(s), I'll update this post and upload the program to Github to make it better available for others.
My request would be that you keep it simple and create a kind of demo that can be used by others as a basis for their own programs.
Edit: see
post #70
The sceenshot show the ltc-sync(blue) before frame-sync (yellow).