RC Groups

RC Groups
    DIY Electronics
        Idea Opensource Videomodem

#1 muerzi Jun 15, 2012 11:17 AM

Opensource Videomodem
 
Hello everbody!

First i have to say sorry because i'm not a native english speaker.
I had the following idea.

Why not build an opensource "videomodem".
I saw dennis fries osd and thought why not shift out data in line 6-22?
Per line 2bytes. In the net i found some specs for Closed captioning and the blog from nootropicdesign on how to decode the data in closed captioning.
Think that we dont need a "clock-run in".

Has anyone tried something like this before and will share some code or snippets with the community?

Think such a "modem" will be usefull to every fpv-pilot.

Who is willing to help?

Cheers Stefan

#2 wuselfuzz Jun 16, 2012 03:58 AM

That should be possible. I actually thought about something similar at work yesterday, because we have to synchronize processing of a video stream to the state of an external device and that's quite hard to achieve on a Windows system because it's not a real-time OS. So my idea was to encode said state in the first video line.

First, you'd need to extract the sync signal from the video to sync your encoder to the video stream. Then you'd feed the video through an analog multiplexer. The select input would be controlled by the encoder, passing the original video through all time except in a specified video line. After the hsync for that line went through, the other input would be selected.

The signal for the digital video data could be generated by hooking up a UART or SPI output to a transistor and 1V source.

I think, all of this could be implemented on an atmega with a few external parts (mux, sync extractor), since scene demos generating both sound and video on a single chip have been made (look up "craft atmega" on yt, I can't look up a link right now, posting from my phone).

#3 muerzi Jun 16, 2012 03:43 PM

Quote:

Originally Posted by wuselfuzz (Post 21911307)
First, you'd need to extract the sync signal from the video to sync your encoder to the video stream. Then you'd feed the video through an analog multiplexer. The select input would be controlled by the encoder, passing the original video through all time except in a specified video line. After the hsync for that line went through, the other input would be selected.

Hello. For the sync operation the easiest way is to us a lm1881, and to output the nomtransistor is needed. When you look at dennisnfries osd here http://www.rcgroups.com/forums/showthread.php?t=1473207 them you see he only uses a 120 and a 220 ohm resistor to do that. If you have a look at the tv-out lib here http://code.google.com/p/arduino-tvout/ , they use the same method like dennis. In dennis code, he counts the lines and odd or even and then spi's out the white pixel they overlay the video.

I will try to build something like the video experimenter from nooptropic (http://nootropicdesign.com/ve/) to decode the data.

Has no one experiment like this before?

Cheers muerzi

#4 msev Jun 17, 2012 11:55 AM

Any progress on this? :)

#5 muerzi Jun 19, 2012 01:23 PM

By now i studied the code from the diyosd by Dennis Frie and the code to "decoding-closed-captioning" by nooptropicdesign here. http://nootropicdesign.com/projectla...ed-captioning/

Next week (hopefully) i will arive a video experimenter board.

The plan will now be: Writing the LAT, LON and Heigth to a Bytearray, set the SPI-speed to 500kHz and the write the array to the SPDR register. The "clock run-in" can't be produced by the arduino so at 500kHz i have 26bits available to write in that line, so 3bytes are possible. With some changes on the"enhanced tv-out library" from nooptropic it should be possible to decode my chars.

For the first step, I try to reproduce the 26Bits like in the picture and read this out with the video experimenter.http://nootropicdesign.com/projectla.../03/line21.jpg


Anyone here who has the video experimenter?

regards

#6 jalves Jun 19, 2012 03:22 PM

No,

But I have a board with LM1881 that I will use to learn more about this subject.

muerzi, here I am :)

#7 jalves Jun 19, 2012 03:27 PM

muerzi,

Check this out!

#8 muerzi Jun 19, 2012 03:28 PM

Quote:

Originally Posted by jalves (Post 21940706)
No,

But I have a board with LM1881 that I will use to learn more about this subject.

muerzi, here I am :)

niiiiice


what do you thing about the 3bytes per line and the 500kHz for spi clock speed?

#9 jalves Jun 20, 2012 01:57 AM

Not much right now :o

Did you check the link I posted above?

#10 muerzi Jun 20, 2012 06:29 AM

1 Attachment(s)
Why not much?

I checked it, but found no technical detail, or am i missing something?
Since this is closed source, we get no details.

I hacked together some code (to show what i mean), but it's hard to test without a Video experimenter board.

"Spi's out" '10101010' 3 times.
So i would be easier to find and experiment with a decode circuit/programm

cheers

#11 jalves Jun 20, 2012 07:27 AM

"info is received at 25-30Hz from the plane"

This is what caught my eye, well above the aprox. 1Hz I achieve with the OpenDiyAT.

I will check your code later (not much time now...).

#12 muerzi Jun 20, 2012 03:54 PM

This is a nice project on rangevid. Maybe we can do the same.

Regards

#13 muerzi Jun 23, 2012 08:43 AM

A bit theory about the project

3Bytes (per line) are enough. Between line 6 to 22 (17lines, like teletext here in europe) we can send data.
That's 17*3 = 51bytes per frame, 51* 25pictures = 1275 bytes per second. That's ~ 10kbit/serconds. More than enough i think.


A nmes sentence does not have more than 100byte.
So the 2 nmea sentences dennis uses can be transmitted more than 5 times per second.

Sounds perfect what?

Regards

PS: my video experimenter will arive in 2weeks.

#14 jalves Jun 23, 2012 09:25 AM

Yes,

That is my idea also.

We have to start to code (I already start to "play" with your code, maybe I have something to show before the end of the weekend... ).

#15 muerzi Jun 23, 2012 09:39 AM

Perfect!

The only thing you have to think of is that you should use a 710k resistor instead of 680k.
Have a look at the LM1881 datasheet. That that the chip can find the vsync pulse better.

I'm making a google-code-project for this.

regards


All times are GMT -5. The time now is 07:51 AM.