3 Replies Latest reply on Sep 21, 2017 1:13 PM by datahell

    GPS Neo M8N and Galileo 2

    Christof_M

      Hello,

       

      I'm trying to get my GPS module with a Neo M8N working on the Galileo 2. This appears to be difficult. First I tried TinyGPS++. Out of the box it didn't compile, I found the issues regarding the intel board and changed TinyGPS++. Unfortunately I found that TinyGPS++ doesn't work with the M8N as the NMEA message contains some Neo specific parts. Also I discovered that NeoGPS should have more possibilities for fast GPS tracking. Thus, I tried to run NeoGPS. It's working fine with my Uno, but with the Intel board, I get many errors (non-detailed output (!!!)):

       

      Arduino: 1.6.13 (Mac OS X), TD: 1.35, Board: "Intel® Galileo Gen2"

       

       

      WARNING: library NeoGPS claims to run on [avr architecture(s) and may be incompatible with your current board which runs on samd architecture(s).

      In file included from /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:34:0,

                       from /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:29,

                       from /Users/christofmaluck/Documents/Arduino/GPS_Intel2/GPS_Intel2.ino:2:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:33:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:33:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:55:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:55:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:56:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:56:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:57:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:57:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:58:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:58:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In constructor ‘NeoGPS::Location_t::Location_t(float, float)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:40:20: error: ‘LOC_SCALE’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In member function ‘float NeoGPS::Location_t::latF() const’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:45:58: error: ‘LOC_SCALE’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In member function ‘void NeoGPS::Location_t::latF(float)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:46:44: error: ‘LOC_SCALE’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In member function ‘float NeoGPS::Location_t::lonF() const’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:50:58: error: ‘LOC_SCALE’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In member function ‘void NeoGPS::Location_t::lonF(float)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:51:44: error: ‘LOC_SCALE’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In static member function ‘static float NeoGPS::Location_t::DistanceKm(const NeoGPS::Location_t&, const NeoGPS::Location_t&)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:65:44: error: ‘EARTH_RADIUS_KM’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In static member function ‘static float NeoGPS::Location_t::DistanceMiles(const NeoGPS::Location_t&, const NeoGPS::Location_t&)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:72:44: error: ‘EARTH_RADIUS_KM’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:72:62: error: ‘MI_PER_KM’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In static member function ‘static float NeoGPS::Location_t::EquirectDistanceKm(const NeoGPS::Location_t&, const NeoGPS::Location_t&)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:88:52: error: ‘EARTH_RADIUS_KM’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In static member function ‘static float NeoGPS::Location_t::EquirectDistanceMiles(const NeoGPS::Location_t&, const NeoGPS::Location_t&)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:95:52: error: ‘EARTH_RADIUS_KM’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:95:70: error: ‘MI_PER_KM’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h: In static member function ‘static float NeoGPS::Location_t::BearingToDegrees(const NeoGPS::Location_t&, const NeoGPS::Location_t&)’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/Location.h:108:38: error: ‘DEG_PER_RAD’ was not declared in this scope

      In file included from /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:29:0,

                       from /Users/christofmaluck/Documents/Arduino/GPS_Intel2/GPS_Intel2.ino:2:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h: At global scope:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:137:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:137:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:140:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:140:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:143:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:143:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h: In member function ‘float gps_fix::speed_kph() const’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:138:52: error: ‘KM_PER_NMI’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h: In member function ‘uint32_t gps_fix::speed_metersph() const’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:141:59: error: ‘M_PER_NMI’ was not declared in this scope

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h: In member function ‘float gps_fix::speed_mph() const’:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/GPSfix.h:144:49: error: ‘MI_PER_NMI’ was not declared in this scope

      In file included from /Users/christofmaluck/Documents/Arduino/GPS_Intel2/GPS_Intel2.ino:2:0:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h: At global scope:

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:96:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:96:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:97:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:97:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:362:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:362:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:363:5: error: ‘constexpr’ does not name a type

      /Users/christofmaluck/Documents/Arduino/libraries/NeoGPS/src/NMEAGPS.h:363:5: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11

      exit status 1

      Error compiling for board Intel® Galileo Gen2.

       

       

      It's really frustrating so far with the Intel board I have to say. EVERY other board I tried so far including Arduino Uno, MKRzero, MKR1000, Mega 2560, several Teensy, ESP8266, all devices are more compatible to the libraries than the Intel board. I really found no library which just works as it is.

      But I hope, somebody can help to modify NeoGPS, the rest I probably get to work myself... I don't give up... for the moment...

       

      Thanks,

      Christof

        • 1. Re: GPS Neo M8N and Galileo 2
          YermiA_Intel

          Hi Christof,

           

          Thanks for contacting us!

           

          We’re really sorry to hear about the issues you are having. Some libraries are written specifically for the Arduino board, and they are based on their MCU architecture and it won’t compile on the Galileo because the architecture is different. Some libraries can be edited in order to use with the Galileo, but in some cases it is not possible. Library modifications are out of our support scope, however, I’d like to share the Intel® Galileo Board, Intel® Galileo Gen 2 Board, and Intel® Edison Board – Shield Testing Report, there you will find results of other GPS modules tested with the Galileo board, also, this other link to build a library: How to Build Your Own C Library, maybe it could help.

           

          Regards,

          -Yermi A.

          • 2. Re: GPS Neo M8N and Galileo 2
            Christof_M

            Dear YermiA,

             

            thanks for the answer. I have to admit that I'm a little disappointed (again). I found that many errors disappear if I add the compiler option for C++11 to the Intel platform.txt. This makes me wondering why this hasn't been set from the beginning as for the Ardunio it is the default.

            I won't select sensors based on the Intel database, but on technical specification. In the Intel database, there are many old GPS modules, no newer one.

             

            Fortunately, I got it working with several modifications in the library.... we can close this one.

            • 3. Re: GPS Neo M8N and Galileo 2
              datahell

              I have the same problem with Siemens IoT2020 which is been displayed as Galileo2 in Arduino. I cannot find any working GPS library for Galileo!

               

              Christof can you please share your modified library with me?