INS Support for MTK3339 Chipset

Hi All,

Just wondering if there is support for the MTK3339 chipset (used in the inexpensive Adafruit GPS module) for the INS app? Ideally I'd like to use the pre-built app to produce LatLon INS-aided data.

Thanks in advance

I think you have to write your own GPS receiver driver in our open-source framework. But if you choose NMEA as the receiver output, which is not recommended since NMEA lacks some required info, you can use the INS app.

I currently have the receiver outputting GGA, GSA, RMC and VTG NMEA messages, and on the websocket live viewer, the latitude and longitude are still reporting as 0. Is there any way I can confirm that the INS app is accepting or rejecting the NMEA messages?


Do you directly download the firmware bin or source code? If the source code, you can change the GPS protocal in UserConfiguration.c. The following picture shows the one I am using for development.

const UserConfigurationStruct gDefaultUserConfig = {
    .dataCRC             =  0,
    .dataSize            =  sizeof(UserConfigurationStruct),
    .userUartBaudRate    =  230400,
    .userPacketType      =  "e2",
    .userPacketRate      =  100,
    .lpfAccelFilterFreq  =  25,
    .lpfRateFilterFreq   =  25,
    .orientation         =  "-Y+X+Z",   // the EVB connector pointing forward
    .gpsBaudRate         =  115200,
    .gpsProtocol         =  UBLOX_BINARY,
    // add default parameter values here, if desired
    .hardIron_X          = 0.0,
    .hardIron_Y          = 0.0,
    .softIron_Ratio      = 1.0,
    .softIron_Angle      = 0.0

If the bin file, I need to ask for firmware engineers' help to see if there is commands to change the settings online.

I used the bin file through the web interface. If you can send me a link to the source code please that would be great, as I can't seem to find it. I can then read through the source and work out what commands I need to send.

Thanks for your help

Apologies, I have the source code now for the INS app (through installation of the Aceinna Studio).

I have set the device to be NMEA_TEXT at 9600 baud. The GPS has a fix and is outputting the data, yet upon use of the Navigation Studio python driver with websocket, there is no latitude or longitude being reported (they stay as 0, 0). The INS page of the website also doesn't show any data.

Have I missed something?

  1. Please first confirm the GPS receiver is correctly connected to the EVK.
    GPS receiver connection.jpg .

  2. In TaskGps() in TaskGps.c, please track if it can run into GPSHandler()-->_handleGpsMessages(), and the data is decoded as desired, which is NMEA in you case.

            case NMEA_TEXT: 
                parseNMEAMessage(tmp, gpsMsg, GPSData);
            case NOVATEL_BINARY:
                parseNovotelBinaryMessage(tmp, gpsMsg, GPSData);
            case UBLOX_BINARY:
                parseUbloBinaryMessage(tmp, gpsMsg, GPSData);
  1. Please notice, NMEA is not recommended because it lacks some required info.

Thank you for the help. Your wiring suggestions fixed the issue. I had connected the GPS receiver according to the data on the "readthedocs" documentation which suggests connection to the expansion port P4. Upon connecting to P2, the system works and is reporting latlon data.

Thanks for your help.

You are welcome.

Log in to reply