Which OSD protocol?
« on: October 30, 2017, 07:22:51 pm »
What OSD protocol / firmware should I use?

I'm setting up an OSD for the first time.  The LP wiki seems to document this very well.  ( Thanks Laurent ! )

I understand that CleanFlight and related FC firmwares use MSP protocol.  Ardupilot / Pix4-Pixhawk use the MAVLink protocol.  LibrePilot (/OP) has it's own protocol with MinOPOSD.

It looks like the latest MWOSD supports LP (and TL) directly.  The MWOSD web site links to the OSD source and pre-built hex files, but it appears they want $2 for the latest configurator.

MWOSD configurator (latest) is not free.  It costs $2, so we can't just always give the latest away for free.
It seems there are some bugs in old firmware versions:
ShikOfTheRa/scarab-osd release notes including bug fixes (e.g. Arrow doesn't always point Home) and new features:
https://github.com/ShikOfTheRa/scarab-osd/wiki/Features

There are at least two free configurators.  One of them seems to have been forked just before MWOSD became "non-free" (old=v1.6?) and the other is the last official (old=v1.6?) version by the official dev?
https://www.google.com/search?q=mwosd+configurator+download
https://github.com/slacker87/MWOSD-Configuration-Tool
https://github.com/ShikOfTheRa/scarab-osd-gui

Also you can download the final free configurator by finding it indexed as an old chrome extension:
https://www.google.com/search?q=site%3Acrx.dam.io+mwosd
and it finds for instance this link to version 1.6.0.9 (which looks like it supports LP !!! ):
https://crx.dam.io/ext/jdfbjgomfcfpgkdjfnmekbkhkbgfminf.html

Since LP is already supported in MWOSD, maybe we should have a to link to MWOSD even though it costs $2.
Maybe we should update an available configurator to work with the latest firmware, or is that bad since the author has gone closed source?

I will probably set up my sensors on the FC (Revo class FC).

Pluses that I know of / suspect:
MinOPOSD has smoother horizon line with its updated char set?
MWOSD/MinimOSD has a nice "home and aircraft on auto scaling map".  Does MinOPOSD have this?
MWOSD doesn't need to be updated with each new LP release.
MWOSD has some bug fixes

Minuses that I know of:
MinOPOSD potentially needs to be updated with each new version of LP firmware.
MWOSD needs to be updated to for bug fixes and new features when MWOSD team releases firmware.
MinOPOSD is built with each LP release, but is it not actively synced with MWOSD to pull in new features and bug fixes as far as I can tell?  MinOPOSD is based on MWOSD v1.3 and MWOSD is up to v1.7?
There is a PID tuning issue, but right now I'm not interested in tuning PIDs via OSD.
MinOPOSD is not the latest (features, fixes)

I have a couple CleanFlight RTF quads, but no PixHawk stuff at this time, so I lean towards MSP if not MinOPOSD.

I have a couple full sized MinimOSD boards (somewhere :) ) and just bought some more Micro MinimOSD boards ("KV Team mod"), but I believe these could work with any of the 3 protocols and associated firmwares.

Questions (finally):
Are there any features on X firmware that make it nicer than Y firmware, i.e. is MinOPOSD possibly lagging in some nice MWOSD feature?
It appears that the latest MWOSD source code has not been merged into MinOPOSD.  Is there thought on this (at least up to v1.6)?

I guess I am leaning toward MSP protocol and with v1.6 MWOSD firmware and using a free configurator.  It looks like v1.6.0.9 it supports LP !   I will try this 1.6.8.0 and report here.
$ grep -ir libre *
js/app/widgets/info.js:        3: "Librepilot",
« Last Edit: October 30, 2017, 10:34:13 pm by TheOtherCliff »

f5soh

  • *****
  • 4572
    • LibrePilot
Re: Which OSD protocol?
« Reply #1 on: October 30, 2017, 11:53:33 pm »
Quote
MinOPOSD is built with each LP release, but is it not actively synced with MWOSD to pull in new features and bug fixes as far as I can tell?  MinOPOSD is based on MWOSD v1.3 and MWOSD is up to v1.7?
[..]
It appears that the latest MWOSD source code has not been merged into MinOPOSD.

There is no need to merge MWOSD into MinOPOSD because they are two different projects.
MinOPOSD is based on MinimOSD, has described Here
Firmware is updated and may work for all OP/LP releases and Next branch included.

Latest MWOSD firmware+Configurator Free (v1.6.8 ) can be found in Wiki page. Latest Chrome extension configurator 1.6.x can be found in Github archive as well.

I recommend MinOPOSD for CC3D and MWOSD for bigger boards without memory issues like Revo, Sparky2...

Re: Which OSD protocol?
« Reply #2 on: October 31, 2017, 05:15:42 am »
Thanks.  I guess I spent my time looking at the MinOPOSD page.  All the research I did was already discussed on the MWOSD page  ::)  and I thought MinimOSD was the hardware, not the software.

Well I got my Micro MinimOSD flashed from the 1.6.8.0 from the MWOSD web site and got the matching configurator working too.
I fixed a #define snafu between LIBREPILOT and TAULABS by reading the 1.7 source.
I enabled these and built it:
Quote
#define MICROMINIMOSD
#define LIBREPILOT
#define GPSTIME
#define RESETHOMEARMED
I'll see how it works in a day or so.

f5soh

  • *****
  • 4572
    • LibrePilot
Re: Which OSD protocol?
« Reply #3 on: October 31, 2017, 11:31:14 am »
The last two options will be not needed at compile time because can be configured in GUI.
There is indeed a mess about the controller name displayed in Gui but doesn't change how the OSD works at end.

Firmware files already compiled and available in wiki page will work just the same, just need the old ConfigTool (MinOPOSD) for flashing.




Re: Which OSD protocol?
« Reply #4 on: October 31, 2017, 04:34:25 pm »
Quote
/********************       FEATURES      *********************/
// Disable features if you require memory for other features
// Further configuration may be require elsewhere in config.h + option enabled on GUI
...
#define GPSTIME       // Enable/disable GPS Time functions

Comment implies the code is removed if GPSTIME is not defined.
Looking at the code says that it won't display it if this isn't compiled in.  :)


Quote
#define RESETHOMEARMED            // Uncomment this ONLY if armed information is sent within telemetry feeed AND you do not want to reset home position when re-arming. DO NOT DISARM IN FLIGHT

Defining this does add one line of code that seems to reset the home position at a certain time.
I "do not want to reset home position when re-arming".
My thinking is that I don't want to access the OSD menu to reset home and it seems this option makes it do it automatically when you disarm/rearm which isn't a setup GUI option...  :)

f5soh

  • *****
  • 4572
    • LibrePilot
Re: Which OSD protocol?
« Reply #5 on: October 31, 2017, 07:49:38 pm »
Quote
Comment implies the code is removed if GPSTIME is not defined.
Looking at the code says that it won't display it if this isn't compiled in.

You're right about the code not compiled in.
Anyways i'm not sure where you get the "GPS time" data to be displayed in OSD.

Talking about the RESETHOMEARMED option, seems it's only used in Mavlink (APM) and LTM protocol, so not related to MSP we use.

mr_w

  • *
  • 207
    • LibrePilot
Re: Which OSD protocol?
« Reply #6 on: November 02, 2017, 11:00:38 am »
I recommend MinOPOSD for CC3D and MWOSD for bigger boards without memory issues like Revo, Sparky2...

Though it would be good to reassess the CC3D+MWOSD combo with current next. I know the memory was tight, but since LP-432, the situation should be better.

f5soh

  • *****
  • 4572
    • LibrePilot
Re: Which OSD protocol?
« Reply #7 on: November 02, 2017, 11:58:39 am »
Even with LP-432, i think you cannot get working CC3D with GPS + MSP for MWOSD.
Currently only the MinOPOSD allow a GPS (for telemetry) connected to CC3D

Re: Which OSD protocol?
« Reply #8 on: November 15, 2017, 08:59:32 am »
#GPSTIME only works with GPS that is connected directly to OSD, not with GPS connected to FC.

Other than that, and the #define LIBREPILOT #define TAULABS snafu, I got MWOSD 1.6.8.0 working fine.

zukenj

  • ***
  • 202
Re: Which OSD protocol?
« Reply #9 on: November 27, 2017, 06:46:24 pm »
TheOtherCliff,

Are you using Revolution FC?
If so, how do you have the OSD connected to the FC?


FS-TH9X RC
F450 Clone
Revolution FC
EMAX 2213 935 KV
HK 30A ESC UBEC running BLHeli 14.4
10x4.5 Propellers
DJI Naza clone Ublox M8N GPS

Re: Which OSD protocol?
« Reply #10 on: November 27, 2017, 10:30:53 pm »
Yes, I'm using a Revo.  I have all my sensors connected to Revo and fed to MWOSD via MSP protocol.  The problem with GPSTIME is that it is not part of the protocol, so the way to get it working is to connect the GPS (Ublox or NMEA) directly to the OSD.

I attacked this setup from a programmer and learning viewpoint.  It is just as correct and much easier to simply use the wiki instructions.

Edit: Currently I'm using Flexi-IO for data connection and direct connection to 3S Lipo for camera/vtx power; 5V from Revo Flexi-IO for OSD power.  My OSD only needs 5V.
« Last Edit: November 28, 2017, 05:55:17 am by TheOtherCliff »

f5soh

  • *****
  • 4572
    • LibrePilot
Re: Which OSD protocol?
« Reply #11 on: November 28, 2017, 12:46:11 am »
Quote
If so, how do you have the OSD connected to the FC?
You can connect the OSD to Main, Flexi or FlexiIO (receiver)
Simply connect Tx/Rx wires crossed:
- Tx(FC) to Rx(OSD)
- Rx(FC) to Tx(OSD)

And of course Ground and +5V providing at least 500mA current for OSD.

zukenj

  • ***
  • 202
Re: Which OSD protocol?
« Reply #12 on: November 28, 2017, 09:50:47 pm »
This is my configuration:

The FlixiPort is set as Telemetry @ 57600. but I don't see the horizon moving when I move the quad, and some fields flicker, I am in the process of getting the right display  coordinates and see if that is cousin the flickering.

I will post a video, from the goggles.
« Last Edit: November 28, 2017, 09:54:27 pm by zukenj »
FS-TH9X RC
F450 Clone
Revolution FC
EMAX 2213 935 KV
HK 30A ESC UBEC running BLHeli 14.4
10x4.5 Propellers
DJI Naza clone Ublox M8N GPS

f5soh

  • *****
  • 4572
    • LibrePilot
Re: Which OSD protocol?
« Reply #13 on: November 28, 2017, 10:04:32 pm »
If you talk about "Telemetry" output you use MinOPOSD firmware flashed in OSD.
You may need to flash latest firmware version from wiki page

Using a Revo adn without memory limitations, you may use the MWOSD firmware and set one port with MSP output.