Diy osd (Arduino and opensource) - Page 89 - RC Groups
Thread Tools
Feb 07, 2012, 06:58 PM
Don't leave it Stock
mrfliboy's Avatar
Quote:
Originally Posted by vasago17
I suppose it could help because the arduino would be injecting data onto the video signal that's coming in...but on the flip side of that, if the video signal is too weak, the arduino wouldn't be able to identify a new frame of video and thus, wouldn't be able to inject the data.

Maybe Dennis could give a more definitive answer to this
I have tried doing this with a hk OSD with no success however have not tried the DF OSD ( Dennis Frie)
Sign up now
to remove ads between posts
Feb 08, 2012, 02:19 AM
Just another user
Dennis Frie's Avatar
I'll explain later when I have time, but no, it will not work
Feb 08, 2012, 04:44 AM
Just another user
Dennis Frie's Avatar
To "read" the video-signal, the screen will look for the sync-pulses in the video-signal. When the video-signal gets weak, the sync-pulses will be difficult to detect and the signal will contain more noise (typical noise on the screen and some image-flicker/jumping). When the signal gets even weaker, the screen can't detect the sync-pulses (cause they are too weak, or simply cause they are missing).

Using this kind of OSD is not gonna help due to the fact that:
- 1) It relies on the sync-pulses in the video-signal. Most likely, your screen will be better at detecting weak pulses than the OSD - but that's just a guess. If so, the OSD-text will disappear/get bad even before your screen goes blue.

- 2) The OSD only output pixels - it doesn't change the sync-pulse anyway. Even if the OSD continued to blast out pixels, it would just be seen as more noise.

You might be able to change the code and schematic a bit and make an "anti blue-screen solution" - but it's not a simple fix done in 2 minutes
Feb 08, 2012, 05:57 AM
Registered User
rimshotcopter's Avatar
Good Morning Dennis and all.

I finally started learning about the code and have a few questions for you Dennis. I tried an experiment in hopes of reducing the memory space required for the code. Here is my first attempt.
Code:
unsigned char Revision[] = "VERSION";
.
.
.
 for (unsigned char ij = 0;ij < 6;ij++){
          buffer[ij]=(Revision[ij]-64)<<3;}
         
         buffer[7]=(0+3)<<3;    
         buffer[8]=(1+3)<<3;   
         buffer[9]=(8+3)<<3;   

        DimOn;
What I noticed from this change is, the line containing the Version shifted Right so I am assuming, there is a timing variable. I REM'ed out the preceeding "//_delay_loop_1(10);" and the line shifted left but not enough to be centered. Please can you explain how that works? My Goal is to create a sub-routine and pass it a string and screen location.
Feb 08, 2012, 06:53 AM
Registered User
rimshotcopter's Avatar
Dennis, I made an additional modification and this works.

Code:
// for (unsigned char ij = 0;ij < 6;ij++){
      //    buffer[ij]=(Revision[ij]-64)<<3;}
         /*buffer[0]=('V'-64)<<3;   
         buffer[1]=('E'-64)<<3;   
         buffer[2]=('R'-64)<<3;    
         buffer[3]=('S'-64)<<3;    
         buffer[4]=('I'-64)<<3;   
         buffer[5]=('O'-64)<<3;    
         buffer[6]=('N'-64)<<3; */

         buffer[7]=(0+3)<<3;    
         buffer[8]=(1+3)<<3;   
         buffer[9]=(8+3)<<3;   

        DimOn;
        for (unsigned char ij=0;ij<7;ij++) {
        //SPDR=letters[buffer[ij]+(temp)];
        SPDR=letters[((Revision[ij]-64)<<3)+(temp)];
         _delay_loop_1(2);            
        }
Feb 08, 2012, 07:21 AM
Just another user
Dennis Frie's Avatar
Yes, quite a few things should be updated/rewritten. You can probably save quite some memory by optimizing a few places - but it all ends up with the entire output-section that should be rewritten with a nice for-loop .

I have considered to do it quite a few times, but as the OSD already support all I need for now, it haven't been done
Feb 12, 2012, 04:55 AM
Registered User
Hi...

I have this current sensor:
http://www.flytron.com/osd-headtrack...nt-sensor.html

how do I connect it to the diy-osd ??
Feb 12, 2012, 07:07 AM
Registered User
Dennis nice webpage you have (nice pics), discovered it today ..How's the weather in DK? Here in Slovenia it's like the winter just started with the snow pouring down...
Feb 12, 2012, 08:23 AM
Just another user
Dennis Frie's Avatar
Quote:
Originally Posted by nenno
Hi...

I have this current sensor:
http://www.flytron.com/osd-headtrack...nt-sensor.html

how do I connect it to the diy-osd ??
The output signal just have to be connected to any analog input on the Arduino. You have to set the pin you are using in the config file. I can't remember the default pin.

Quote:
Originally Posted by msev
Dennis nice webpage you have (nice pics), discovered it today ..How's the weather in DK? Here in Slovenia it's like the winter just started with the snow pouring down...
Thanks. The page is not very well updated, but you should be able to find a couple of pictures.

We have had snow in Denmark for like 2 weeks, but just a little. We just got quite a bit more today. I have been out a couple of times, but it's pretty cold (~ -10 Celcius)
Can I ask how you find my homepage? Just curious
Feb 12, 2012, 08:24 AM
Registered User
On your blog on rcgroups you have it written

Any updates on antenna tracking? Have you tested it?
Feb 12, 2012, 12:48 PM
Just another user
Dennis Frie's Avatar
Quote:
Originally Posted by msev
On your blog on rcgroups you have it written

Any updates on antenna tracking? Have you tested it?
Oh year, there's a link in my blog :P

The test-code for the antenna-tracking have been written for both transmitter and receiver side (receiver just prints the values received and the transmitter just sends a fixed string). Inserting the code should be pretty straight forward (unless the available memory is a problem) - but I just recently started to code a bit on OpenLRS, so I haven't really been doing much on this project.
Feb 12, 2012, 01:38 PM
Registered User
Quote:
Originally Posted by Dennis Frie
Oh year, there's a link in my blog :P

The test-code for the antenna-tracking have been written for both transmitter and receiver side (receiver just prints the values received and the transmitter just sends a fixed string). Inserting the code should be pretty straight forward (unless the available memory is a problem) - but I just recently started to code a bit on OpenLRS, so I haven't really been doing much on this project.
Sounds good. What pin are you planing to use for the audio telemetry. I am making a new pcb to the 1881 version and would like to put the audio pin to my plans.
Feb 12, 2012, 02:40 PM
Registered User
What are you gonna be doing for the Openlrs and will some code be useful also for the arduino platform since openlrs is also an arduino + an rf chip.
Feb 13, 2012, 03:23 AM
Just another user
Dennis Frie's Avatar
Quote:
Originally Posted by p3jpaavi
Sounds good. What pin are you planing to use for the audio telemetry. I am making a new pcb to the 1881 version and would like to put the audio pin to my plans.
I actually can't remember, the pin config should match SimpleOSD Open.

Quote:
Originally Posted by msev
What are you gonna be doing for the Openlrs and will some code be useful also for the arduino platform since openlrs is also an arduino + an rf chip.
So far I have just tested my GPS-code, set home-position, LOS-calculation etc. Depending on how much I can squeece into the receiver, it would be nice with GPS, 3 axis gyro + 3 axis acc, RTH etc.
Feb 13, 2012, 03:36 AM
Registered User
But the rth+stab.code should work on other arduinos too right.


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion Diy osd karl k FPV Talk 2 May 03, 2011 12:31 AM
Idea New DIY OSD? atari7202 FPV Talk 1 Mar 25, 2011 12:08 AM
Discussion see my own diy OSD video Passion Aerial Photography 7 May 27, 2010 01:28 AM
Discussion REAL homebrew DIY OSD - Check it out! jafoca FPV Talk 8 Jun 29, 2009 06:52 PM
Discussion picoOSD DIY PIC12F683 based OSD in C kbosak FPV Talk 6 Jan 31, 2008 07:47 AM