V 5 Beta

…an issue for a lot of us then?

Just the ones who have not configured their gps properly.

It’s got Andreas’s setup on it. Not sure if it’s his very latest.

Something to look into. Please post back what you find out - if it is not fixable, let me know.

1 Like

Do you have check in Permit COG?

photo_2021-04-17_09-44-27

Here’s the settings I’m using at my f9p’s.

Works with fw v1.13.

1 Like

Thank you @Kaupoi .

I’ll check the present setting first to see what is possibly wrong.

FW could be 1.12 on that machine so I’ll update that too.

1 Like

I assume you are referring to what I was reporting earlier, but I think there might be a misunderstanding so I’ll try to explain the situation more clearly.

When speed gets low, some receivers (like Emlid) stop sending heading as part of VTG. That is clearly intentional, at very low speeds heading is unreliable and the standard says that if data is not available the field should remain empty. So when standing still the message is something like

"$GPVTG,,T,,M,0.01,N,0.02,K,D"

Now in AOG (v4 source code which is available) the conditions to interpret VTG (ParseVTG() ) at all is

        if (!String.IsNullOrEmpty(words[1]) && !String.IsNullOrEmpty(words[5]))
        {
            //kph for speed - knots read
            double.TryParse(words[5], NumberStyles.Float, CultureInfo.InvariantCulture, out speed);
            speed = Math.Round(speed * 1.852, 1);

            //True heading
            double.TryParse(words[1], NumberStyles.Float, CultureInfo.InvariantCulture, out headingTrue);
        }

which means that whenever the heading field is empty, the whole message is ignored. I think it could be safely replaced with something like

        if (!String.IsNullOrEmpty(words[1]))
        {
            //True heading
            double.TryParse(words[1], NumberStyles.Float, CultureInfo.InvariantCulture, out headingTrue);
        }

        //parse speed if available (why not take kmh directly?)
    if (!String.IsNullOrEmpty(words[5]))
        {
            //kph for speed - knots read
            double.TryParse(words[5], NumberStyles.Float, CultureInfo.InvariantCulture, out speed);
            speed = Math.Round(speed * 1.852, 1);
        }

This way, the speed would get updated even if the heading is missing. Earlier when RMC was also used this problem wasn’t showing, as RMC also contains speed.

I hope this clarifies the case a bit.

Maybe this helps?
https://www.u-blox.com/sites/default/files/ZED-F9P_IntegrationManual_(UBX-18010802).pdf
See page 23 “3.1.7.3 Navigation output filters”.

No. It is as in the screenshot you posted.

That still wouldn’t fix Allen’s problem. You can plainly see the speed is 1kmh, standing still, and the heading is valid - although it is spinning around.

What standard says the speed and heading need to turn off when going slow???

But, that is a good point to check each word separately. I will do that

1 Like

Do you not just need to move at least the first fix - fix distance? So AOG will resister the first GPS heading

For reverse etc, the trigger is speed and fix to fix distance. So if speed from gps is stuck at some random number - it won’t work. Or won;t get going till some random minimum speed won’t work either.

Again, speed is not turned off ever. Heading however, I think it’s not so clear as even Ardusimple has this optional “submit cog” setting. Emlid, like always, does not trust the users enough to give access to this kind of settings…

        if (!string.IsNullOrEmpty(words[5]))
        {
            //kph for speed - knots read
            float.TryParse(words[5], NumberStyles.Float, CultureInfo.InvariantCulture, out speed);
            speed *= 1.852f;
            speedData = speed;
        }
        else
        {
            speed = 0;
        }

        if (!string.IsNullOrEmpty(words[1]))
        { 
            //True heading
            float.TryParse(words[1], NumberStyles.Float, CultureInfo.InvariantCulture, out headingTrue);
            headingTrueData = headingTrue;
        }

Another way is if the sentence word is empty is just set to 0, then it will be like the older versions. Not 100% sure what other effects this will have down the chain since it is parsed now in AgIO, turned into a custom pgn, parsed pgn in AOG relying on max.value to determine if data is valid.

But i think pretty safe as nothing will work without speed anyway, so if it is set to zero if invalid, and you are moving there is a problem, Maybe better then not moving and showing a speed. If everyone used 1 gps instead of 18 different setups, this would be a lot easier lol

1 Like

I’ve assumed from the discussion that the permit course over ground box should be checked. Would make sense to me anyway. Speed drops to zero reliably anyway now.

However I can still replicate the direction mix up if I reverse whilst turning tightly then shuttle at the same time as locking the steer over the other way. An action I do at every headland maize drilling for instance.

With a reasonable forward offset antenna I could see how that happens, drawing out the antenna movement path. Not that I fully understand how that feature has been implemented.

Great, thanks! I think that will do it for us emlid users. By the way, is there a reason to use the speed in knots and convert? Reading directly the kph value could save a few cycles.

Is it possible to add enable disable autosteering in the switchcontrol sentence ? I use joytick to control sections, could be nice to activate autosteer with it. I need to learn c# but need a year to understand a little bit !!!

skip a pass and stop turning so sharp? Or use the alternate skips?

It’s kind of why we have gps…

No reason at all, it has always just been that way and never looked at it again.

I will change that as well lol.

I think the original parser i took ideas from 5 years ago used knots and just never changed it

Thanks!