Giter Site home page Giter Site logo

Jeti EX Bus GPS not working about msrc HOT 8 CLOSED

andypnz avatar andypnz commented on August 17, 2024
Jeti EX Bus GPS not working

from msrc.

Comments (8)

andypnz avatar andypnz commented on August 17, 2024

Ok, managed to sort that - the code was not handling southern hemisphere -ve latitude (or -ve long either)......

If you like I can share with you the changes I made to fix this, and also improve the displayed gps resolution....

from msrc.

aepub avatar aepub commented on August 17, 2024

I also use JETI. When using the RP2040, the GPS has no signal, and the GPS TX is connected to the 6 pins of the RP2040. Replace with ATmega328PB, and the GPS signal is normal.
The author has not replied to any questions recently.

from msrc.

aepub avatar aepub commented on August 17, 2024

After I modified led. c and led. h, the RGB indicator light flickered. At least that way, I knew that rp2040 was working. I tested MS5611, ACS758-150B, and the test voltage, and everything was basically normal. The only problem currently is that GPS data is not displayed on the remote control.
99999998888888

from msrc.

dgatf avatar dgatf commented on August 17, 2024

Ok, managed to sort that - the code was not handling southern hemisphere -ve latitude (or -ve long either)......

If you like I can share with you the changes I made to fix this, and also improve the displayed gps resolution....

Yes, please share. Thank you

Is it with the RP2040?

from msrc.

andypnz avatar andypnz commented on August 17, 2024

Yes, RP2040

Its been a while since I looked at this :-)

project 230218_1554hrs_WORKING.zip

I have attached the project directory - but from memory it was just changes to these two files. But if these don't cover it I am afraid you will need to do some file comparisons with my attached zip.....

jeti.c, around line 280 change to:

               int32_t value = (int32_t)*sensor->value;
               if (value < 0)
               {
                    format |= 1 << 6;
                    value *= -1;
                }
                *(buffer + *buffer_index) = sensor_index << 4 | sensor->type;
                uint8_t degrees = value / 60000;
                uint32_t degreesDecimals = ((value % 60000)); 
                *(buffer + *buffer_index + 1) = (uint16_t)degreesDecimals;      // degrees (dec, l)
                *(buffer + *buffer_index + 2) = (uint16_t)degreesDecimals >> 8; // degrees (dec, h)

nmea.c, around lines 23-24:

    *parameter.lat = 692761.0;               //-692.761166667;  // 11º32'45.67" +N, -S
    *parameter.lon = 10320.0;               //-2500; //-1251.964833333; // 20º51'57.89" +E, -W

around line 131:

            *parameter->lat =(((atof(degrees) * 60.0 + minutes)) *1000.0) * lat_dir ;

around line 139:

            *parameter->lon = ((atof(degrees) * 60 + minutes)) * 1000 * lon_dir; 

from msrc.

dgatf avatar dgatf commented on August 17, 2024

Ok, I see. Negative coordinates where not correct. I'll add value *= -1; to fix it. Commit 2b9397b
I guess multiplier 1000 is to increase accuracy. I may add it later

But based on the debug, the issue was related to gps module not being read by rp2040 and that's why all were zeros in the transmitter

from msrc.

andypnz avatar andypnz commented on August 17, 2024

I think you really need to add the multiplier - without this, the GPS accuracy is very poor.......

from msrc.

dgatf avatar dgatf commented on August 17, 2024

The issue was that the formatting for coordinates for jetiex was wrong. No need to add multipliers. Fixed with 8bf664f

As a side note:

Jeti uses 3 decimals on minutes. This is 2m accuracy. Float has a mantissa of 7 digits, which is ok in most cases for 3 decimals on minutes, except for longitudes > 160°, where accuracy drops to 20m

NMEA protocol sends 5 decimals on minutes, which is 0.2m accuracy (usual gps modules don't have this accuracy though). This requires 10 digits mantissa. A double (16 digits mantissa) instead a float is required to hold all digits. This implies to create sensors for all rx protocols that holds a double instead a float. I may do this as an enhancement

from msrc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.