GPS FAQ

ISM420 and ISM480 FAQ’s

 

Sirf IV

OPS MID 129 routine (switch from OPS to NMEA) for ISM420-480 EVB

//—————————————————————————–

// Function: OSPMID129

// Description: Send SiRF MID 129 (Switch to NMEA Protocol) to GPS in OSP mode

//—————————————————————————–

//where: A0A20018 – Start sequence/Payload length

// 81020101000101010501010100010001001000012580 – Payload

// 01ABB0B3 – Checksum/End sequence

// 81 MID

// 02 Mode: 00-Enable NMEA debug msg

// 01-Disable NMEA debug msg

// 02-Don’t change last set value

// 01 GGA message rate (sec)

// 01 Checksum GGA message

// 00 GLL message rate (sec)

// 01 Checksum GLL message

// 01 GSA message rate (sec)

// 01 Checksum GSA message

// 05 GSV message rate (sec)

// 01 Checksum GGA message

// 01 RMC message rate (sec)

// 01 Checksum RMC message

// 00 VTG message rate (sec)

// 01 Checksum VTG message

// 00 MSS message rate (sec)

// 01 Checksum MSS message

// 00 EPE message rate (sec)

// 01 Checksum EPE message

// 00 ZDA message rate (sec)

// 01 Checksum ZDA message

// 00 Unused

// 00 Unused

// 2580 Bit rate 0480=1200, 0960=2400, 12C0=4800, 2580=9600,

// 4B00=19200, 9600=38400, E100=57600

//

void OSPMID129(char mode[], char GGA[], char GLL[], char GSA[], char GSV[],

char RMC[], char VTG[], char MSS[], char EPE[], char ZDA[],

char rate[])

{

char msg[65] = “A0A2001881″; // OSP msg start

char bmsg[32];

char csum[6];

char tmp[2];

unsigned int checksum = 0;

int i;

int j = 0;

 

strcat(msg,mode); // Add mode

strcat(msg,GGA); // Rate/CS

strcat(msg,GLL); // Rate/CS

strcat(msg,GSA); // Rate/CS

strcat(msg,GSV); // Rate/CS

strcat(msg,RMC); // Rate/CS

strcat(msg,VTG); // Rate/CS

strcat(msg,MSS); // Rate/CS

strcat(msg,EPE); // Rate/CS

strcat(msg,ZDA); // Rate/CS

strcat(msg,rate); // Add bit rate

strcat(msg,”0000″); // Add unused

 

for (i=8;i<strlen(msg);i+=2)

{

memcpy(&tmp,&msg[i],2);

checksum += axtoi(tmp); // Sum

checksum &= 0x7FFF;

}

sprintf(csum,”%04X”,checksum); // Convert hex string

strcat(msg, csum); // Add checksum

 

strcat(msg,”B0B3″); // Add End sequence

strcat(msg, NULL); // Terminate

 

/* Convert to binary & send */

for (i=0;i<strlen(msg);i+=2)

{

memcpy(&tmp,&msg[i],2);

bmsg[j] = axtoi(tmp); // Convert & store

USART_SendChar(GPS_USART, bmsg[j]); // Send byte

j++;

}

DPRINT(msg); // Send to console

}

 

 

What is the latest ROM version for the ISM420 ? How do I read it?

The base part number is ISM420R1-C33. The ROM Code part number can be read from the GPS in OSP ( Sirf Binary) mode only and the version is :  “ GS4e -4.1.2-P1”.

The GPS will initially come up in OSP at 115200 baud, unless you change it with the strapping pins 4 and pin 5 or have a SPI or EEPROM attached and then unit will start in NMEA 4800.

How do I choice the best GPS for my application?

The newest GPS technology we have today is the SiRF IV GPS modules and we offer two products, the ISM420 and the ISM480. The ISM420 is a ROM based solution with no antenna attached, while the ISM480 is a Flash based solution with antenna attached.  Ideally, one of these two GPS will fit your need.

If you are looking for custom firmware for a specific application we may suggest the Sirf III based modules  for example high altitiude ballons for example, you will use the ISM300F2-C5.1-VOO4 which is designed specifically for high altitude.

Also, if you are looking for a GPS that is easy to solder down and has the ability to snap on various external antenna’s I would choice the Sirf III based ISM300F2-C4.1 that has a connector on top of the module or you can run on your board via a 50 ohm trace.

 

Can the GPS be flashed in System?

Yes, the ISM300x and the ISM480x family of GPS can be flashed in system. You need to control the flash enable pin and you can upgrade teh flash through the UART.

How do you connect to the ISM480?

The ISM480 has an Ipex 12 pin connector header and you need to put the same mating connector on your board and connect via a flex. ribbon cable. Inventek supplies a two lenght ribbon cables and the Ipex connectors on the website shop to make user intergration easy.

What voltage does the ISM420 and ISM480 support?

The ISM420 and ISM480 require 1.8V to run. The I/O inputs are 3.3v tolerant, however the I/O output is only at 1.8v. If you micor does not support 1.8V you will need a translator chip.

Whati s the expected Life of the ISM420 and ISM480?

These are newly introduced  GPS modules and are recommended for new designs.

How does your GPS output the 1 PPS?

For the ISM300x and ISM420 GPS, we output the 1 PPS as follows:

The first output starts when we the GPS Kalman filter gets a stellite fix.  Thereafter, the 1 PPS continues to  be output until the receiver is reset.  If we drop to less than 3  SVs, the Kalman stops using satellites and goes to DR mode.  At that  point, the 1 PPS is no longer steered but free-runs with the 49.107 MHz      clock (triple the 16.369 MHz GPS clock).  If the Kalman filter again starts using SVs, it will again steer the 1 PPS.

The pulse is 1 μs wide by default
We only have 12 pins on the ISM480 connector so we do not output 1 PPS.

Does your GPS support sub meter accuracy?

No, we do not support sub-meter accuracy.

Does the Sirf IV GPS modules have FCC/CE?

The FCC does not require that the GPS reciever has FCC or CE. We did perform FCC on the Sirf III for a specific customer request, however it is not required.

Are your GPS modules ROHS?

Yes, all our modules are ROHS compliant.

What applicaton do you have to help troubleshoot the GPS design?

Ideally, if you can connect your PC to the UART for any of the  ISM300x or ISM400x GPS modules you can run the Sirf Live.  Sirf Live will show you all the satellites and C/no and allow you to send commands and become familiar with the GPS.

Please contact sales@inventeksys.com for a free copy of the software.

 

I am using the ISM480 module and I would like to change the data rates?

Yes, you can set other rates.

 

Here is the function call:

 

/* Set the rate of the NMEA messages used */

PSRF103(“00”, “00”, “01”, “02”);                        // GGA at 1 sec rate

 

Here is the function:

 

//—————————————————————————–

// Function:    PSRF103

// Description: Send SiRF msg 103 to GPS

//—————————————————————————–

//where:        $PSRF103,05,00,01,01*20

//   $PSRF103

//   05         00=GGA

//              01=GLL

//              02=GSA

//              03=GSV

//              04=RMC

//              05=VTG

//   00         mode, 0=set rate, 1=query

//   01         rate in seconds, 0-255

//   01         checksum 0=no, 1=yes

//   *20        checksum

void PSRF103(char nmeamsg[], char mode[], char rate[], char chksum[])

{

char msg[25] = “$PSRF103″;                              // NMEA msg

char csum[2];

unsigned short checksum = 0;

int i;

 

strcat(msg,”,”);

strcat(msg,nmeamsg);                                    // Add NMEA msg

strcat(msg,”,”);

strcat(msg,mode);                                       // Add mode

strcat(msg,”,”);

strcat(msg,rate);                                       // Add rate

strcat(msg,”,”);

strcat(msg,chksum);                                     // Add checksum mode

 

for (i=1;i<strlen(msg);i++)

checksum ^= msg[i];                                   // XOR

sprintf(csum,”%02X”,checksum);                          // Convert hex string

strcat(msg,”*”);                                        // Add checksum delimeter

strcat(msg, csum);                                      // Add checksum

 

strcat(msg,”\r\n”);                                     // Add CR, LF

USART_SendString(GPS_USART,msg);                        // Send msg

DPRINT(msg);

}

How do I confirm my firmware revision on the GPS module?

The GPS modules do not come marked with the Firmware version. You can poll the software using Sirf Binary for the ISM300fx modules and use OSP (one Socket Protocol)  for the ISM4xx version of gps modules.

If you want to run your GPS in Nema, you will need to swithc to either Sirf Binary or OSP and send the module the message ID 132 – Poll Software version.

What is the difference between the Sirf Binary and the OSP One Socket Protocol?

CSR (SirF) change the binary protocol whne they introduced the Sirf IV gps modules. The protocols are very similar but OSP has additional features.

Is you are using the ISM300x family of GPS modules use the Sirf Binary. If you are using the ISM4xx family then use OSP.

How do you change the GPS output rate from a true 1Hz to 5Hz?

To enable the 5 Hz, use OSP MID 136.  The field “Position Calc Mode” can be interpreted this way:

Bit Mapped.  When set to 1, a bit enables the function.

Bit         Function

—-         ———–

0                     Almanac Based Positioning

1                     Reverse EE

2                     5 Hz Navigation

3                     SBAS Ranging

4                     Fast time Sync

So set bit 2 to a 1 to enable 5 Hz navigation.

reference OSP document

ISM480 GPS State of Pins after Reset

After a reset (internally pulled up, power up generates the first reset) and before the first time ON_OFF.

Pin          Description                         Reset State

1              CTS/SPI_CL/GPIO6          Pad Enabled, Low, Weak Pull-down Enabled

2              RX/MOSI/SDA                   Pad Enabled, High

3              TX/MISO/SCL                     Pad Enabled, High

4              RTS/SPI_CS/GPIO7          Pad Enabled, High, Weak Pull-up Enabled

5              Reset                                    Pad Enabled, High, Pull-up Enabled

6              Wakeup                               Pad Enabled, Low

7              On_OFF                               Pad Enabled, Low

8              Flash Enable                       Pad Enabled, Low

9              GPIO3                                   Pad Enabled, High

When  the ON_OFF is pulsed for the first time the levels of  GPIO6 and GPIO7 are read to configure the host interface.

The reset is looked at by SiRF/CSR as an “External emergency override of internal POR”, so it is recommend to
control the GPS through the use of the ON_OFF pin

ISM480 GPS UART ,SPI and I2C levels

 

  1. UART
    1. MARK (Logic 1) = Logic High
    2. Space (Logic 0) = Logic Low
    3. Idle Line = Logic High
    4. Line-break/open line = Continuous Logic Low
  2. SPI
    1. Slave Mode
    2. Idle Pattern: A7B4
    3. Maximum Clock = 6.8 MHz
    4. Default Clock Polarity and Phase: CPOL = 0, CPHA = 1
    5. Timing

  1. I2C
    1. Default Address Format: 7-bit
    2. Master Address (sending) is 0x62
    3. Slave Address (receiving) is 0x60
    4. Data Frame Size:  8-bit octets
    5. Data Bit Order:   MSB,LSB
    6. Data Rates:       Default = Fast Mode (400 kbps), Standard Mode (100kbps)
    7. Timing

 

How do I set the data rate of the NEMA messages used?

Here is the function call:

 

/* Set the rate of the NMEA messages used */

PSRF103(“00”, “00”, “01”, “02”);                        // GGA at 1 sec rate

 

Here is the function:

 

//—————————————————————————–

// Function:    PSRF103

// Description: Send SiRF msg 103 to GPS

//—————————————————————————–

//where:        $PSRF103,05,00,01,01*20

//   $PSRF103

//   05         00=GGA

//              01=GLL

//              02=GSA

//              03=GSV

//              04=RMC

//              05=VTG

//   00         mode, 0=set rate, 1=query

//   01         rate in seconds, 0-255

//   01         checksum 0=no, 1=yes

//   *20        checksum

void PSRF103(char nmeamsg[], char mode[], char rate[], char chksum[])

{

char msg[25] = “$PSRF103″;                              // NMEA msg

char csum[2];

unsigned short checksum = 0;

int i;

 

strcat(msg,”,”);

strcat(msg,nmeamsg);                                    // Add NMEA msg

strcat(msg,”,”);

strcat(msg,mode);                                       // Add mode

strcat(msg,”,”);

strcat(msg,rate);                                       // Add rate

strcat(msg,”,”);

strcat(msg,chksum);                                     // Add checksum mode

 

for (i=1;i<strlen(msg);i++)

checksum ^= msg[i];                                   // XOR

sprintf(csum,”%02X”,checksum);                          // Convert hex string

strcat(msg,”*”);                                        // Add checksum delimeter

strcat(msg, csum);                                      // Add checksum

 

strcat(msg,”\r\n”);                                     // Add CR, LF

USART_SendString(GPS_USART,msg);                        // Send msg

DPRINT(msg);

}

What inductor do you use for the RF antenna connection?

The ISM420 requirs the use of the following circuit in the front end if you plan on using an active antenna.  The circuit os not required if you elect to have no power and use a passive antenna.

RFin connects to the Antenna and the input to the GPS. In the case
of the ISM420 inputs are 3.3V tolerant. So no protection needed to
the GPS

ISM420 Antenna circuit

 

http://www.inventeksys.com/wp-content/uploads/2012/11/Antenna-GPS-Front-end.jpg

We uset he 0603HP-33NXGLW  inductor you can find at digi-Key.

Is flash enable required on the GPS? Reset?

  1. The FLASH_EN is only needed to Flash the GPS.
  2. Reset is needed is you want to exit Flash mode without powering off the GPS.
    Otherwise not needed in normal operation
  3. The ISM480 powers up in an off state. The On/Off pin needs to be toggled to turn ON the GPS.
    Once the On/Off pin has been toggled you monitor Wakeup pin to change from low to high.
    This indicates the GPS is running and data should start streaming out of the serial port.

Ism300F2-x FAQ’s

Sirf III

How do I choice the best GPS for my application?

The newest GPS technology we have today is the SiRF IV GPS modules and we offer two products, the ISM420 and the ISM480. The ISM420 is a ROM based solution with no antenna attached, while the ISM480 is a Flash based solution with antenna attached.  Ideally, one of these two GPS will fit your need.

If you are looking for custom firmware for a specific application we may suggest the Sirf III based modules  for example high altitiude ballons for example, you will use the ISM300F2-C5.1-VOO4 which is designed specifically for high altitude.

Also, if you are looking for a GPS that is easy to solder down and has the ability to snap on various external antenna’s I would choice the Sirf III based ISM300F2-C4.1 that has a connector on top of the module or you can run on your board via a 50 ohm trace.

 

What does the GPS firmware do with the acceleration / speed at high altitude build for us to 135k feet?

The high-altitude change was simply setting the upper limits on a solution from the Kalman filter.  It had no effect on how we report altitude or speed or how we handle acceleration.  Therefore, with such a build we still make the same determinations we do in unmodified software: before we report a location the two conditions of the ITAR limits must be verified.  Limit 1: speed cannot be above 1000 kts (514 m/s) when altitude is above 60,000 feet (18288 m) – both conditions must be met at the same time for this to cause position output to stop.  Limit 2: speed cannot exceed 600 m/s regardless of altitude.  Since velocities of winds aloft are never expected to reach 1000 kts, the high-altitude build should work just fine for things that are drifting in the atmosphere like weather balloons.  However, sounding rockets and the likes do not work as they exceed those limits.

Can the GPS be flashed in System?

Yes, the ISM300x and the ISM480x family of GPS can be flashed in system. You need to control the flash enable pin and you can upgrade teh flash through the UART.

How does your GPS output the 1 PPS?

For the ISM300x and ISM420 GPS, we output the 1 PPS as follows:

The first output starts when we the GPS Kalman filter gets a stellite fix.  Thereafter, the 1 PPS continues to  be output until the receiver is reset.  If we drop to less than 3  SVs, the Kalman stops using satellites and goes to DR mode.  At that  point, the 1 PPS is no longer steered but free-runs with the 49.107 MHz      clock (triple the 16.369 MHz GPS clock).  If the Kalman filter again starts using SVs, it will again steer the 1 PPS.

The pulse is 1 μs wide by default
We only have 12 pins on the ISM480 connector so we do not output 1 PPS.

How do you summarize acquisition sensitivity ?

Acquisition sensitivity can be summarized in two  conditions: ephemeris available from any source, or ephemeris must be  obtained from the satellite data stream.  For conditions where   ephemeris is available, we can acquire a satellite down to about -155 dBm.       When we must decode ephemeris, we can still acquire down to -155      dBm, but the signal must be much stronger before we can decode the data.    That limit is -147 dBm in the latest release of ISM300x 9Sirf III .

Does your GPS support sub meter accuracy?

No, we do not support sub-meter accuracy.

Does the ISM300x store Ephemeris data automatically?

Yes,

If you use the battery back up feature and keep power alive the unit will store the data and provide warm starts.  The ISM400x GPS do not require the battery back up.

Does the Sirf IV GPS modules have FCC/CE?

The FCC does not require that the GPS reciever has FCC or CE. We did perform FCC on the Sirf III for a specific customer request, however it is not required.

Are your GPS modules ROHS?

Yes, all our modules are ROHS compliant.

What applicaton do you have to help troubleshoot the GPS design?

Ideally, if you can connect your PC to the UART for any of the  ISM300x or ISM400x GPS modules you can run the Sirf Live.  Sirf Live will show you all the satellites and C/no and allow you to send commands and become familiar with the GPS.

Please contact sales@inventeksys.com for a free copy of the software.

 

I need a 3 v or 5 v GPS module?

Use the ISM300f2-x family of GPS’s.

On the ISM300Fx how should I connect my antenna?

The RF in port on the ISM300 connects to the antenna (via the U.fl) or pad 1 and the input of the GPS. It is important to add the external LC circuit shown in the reference schematic on the specification because this will provent the loss of GPS signal going into your power supply. One part we have used is the inductor L3 (33 nH is 0603HP-33NXGLW) .

How do I confirm my firmware revision on the GPS module?

The GPS modules do not come marked with the Firmware version. You can poll the software using Sirf Binary for the ISM300fx modules and use OSP (one Socket Protocol)  for the ISM4xx version of gps modules.

If you want to run your GPS in Nema, you will need to swithc to either Sirf Binary or OSP and send the module the message ID 132 – Poll Software version.

Can I flash my ISM300Fx GPS in system?

Yes, the ISM300Fx can be flashed in system by pulling pin 8 High upon power up. The module will then boot up in flash mode and you can update the firmware over the UART. This pin has a pulldown interanlly so if you do not want to flash in system you can leave this pin floating or pull to ground.

The pin is only used during inital power up.

What is the difference between the Sirf Binary and the OSP One Socket Protocol?

CSR (SirF) change the binary protocol whne they introduced the Sirf IV gps modules. The protocols are very similar but OSP has additional features.

Is you are using the ISM300x family of GPS modules use the Sirf Binary. If you are using the ISM4xx family then use OSP.

How do I switch from NEMA to the Sirf Protocol on the ISM300?

You need to send a Carriage Return (0x0D) and Line Feed (0x0A) after the checksum (*37)for the SiRF chip to act on the message.

Ex:          $PSRF100,0,57600,8,1,0*37<CR><LF>

 

All GPS FAQ’s

GPS

What is the latest ROM version for the ISM420 ? How do I read it?

The base part number is ISM420R1-C33. The ROM Code part number can be read from the GPS in OSP ( Sirf Binary) mode only and the version is :  “ GS4e -4.1.2-P1”.

The GPS will initially come up in OSP at 115200 baud, unless you change it with the strapping pins 4 and pin 5 or have a SPI or EEPROM attached and then unit will start in NMEA 4800.

OPS MID 129 routine (switch from OPS to NMEA) for ISM420-480 EVB

//—————————————————————————–

// Function: OSPMID129

// Description: Send SiRF MID 129 (Switch to NMEA Protocol) to GPS in OSP mode

//—————————————————————————–

//where: A0A20018 – Start sequence/Payload length

// 81020101000101010501010100010001001000012580 – Payload

// 01ABB0B3 – Checksum/End sequence

// 81 MID

// 02 Mode: 00-Enable NMEA debug msg

// 01-Disable NMEA debug msg

// 02-Don’t change last set value

// 01 GGA message rate (sec)

// 01 Checksum GGA message

// 00 GLL message rate (sec)

// 01 Checksum GLL message

// 01 GSA message rate (sec)

// 01 Checksum GSA message

// 05 GSV message rate (sec)

// 01 Checksum GGA message

// 01 RMC message rate (sec)

// 01 Checksum RMC message

// 00 VTG message rate (sec)

// 01 Checksum VTG message

// 00 MSS message rate (sec)

// 01 Checksum MSS message

// 00 EPE message rate (sec)

// 01 Checksum EPE message

// 00 ZDA message rate (sec)

// 01 Checksum ZDA message

// 00 Unused

// 00 Unused

// 2580 Bit rate 0480=1200, 0960=2400, 12C0=4800, 2580=9600,

// 4B00=19200, 9600=38400, E100=57600

//

void OSPMID129(char mode[], char GGA[], char GLL[], char GSA[], char GSV[],

char RMC[], char VTG[], char MSS[], char EPE[], char ZDA[],

char rate[])

{

char msg[65] = “A0A2001881″; // OSP msg start

char bmsg[32];

char csum[6];

char tmp[2];

unsigned int checksum = 0;

int i;

int j = 0;

 

strcat(msg,mode); // Add mode

strcat(msg,GGA); // Rate/CS

strcat(msg,GLL); // Rate/CS

strcat(msg,GSA); // Rate/CS

strcat(msg,GSV); // Rate/CS

strcat(msg,RMC); // Rate/CS

strcat(msg,VTG); // Rate/CS

strcat(msg,MSS); // Rate/CS

strcat(msg,EPE); // Rate/CS

strcat(msg,ZDA); // Rate/CS

strcat(msg,rate); // Add bit rate

strcat(msg,”0000″); // Add unused

 

for (i=8;i<strlen(msg);i+=2)

{

memcpy(&tmp,&msg[i],2);

checksum += axtoi(tmp); // Sum

checksum &= 0x7FFF;

}

sprintf(csum,”%04X”,checksum); // Convert hex string

strcat(msg, csum); // Add checksum

 

strcat(msg,”B0B3″); // Add End sequence

strcat(msg, NULL); // Terminate

 

/* Convert to binary & send */

for (i=0;i<strlen(msg);i+=2)

{

memcpy(&tmp,&msg[i],2);

bmsg[j] = axtoi(tmp); // Convert & store

USART_SendChar(GPS_USART, bmsg[j]); // Send byte

j++;

}

DPRINT(msg); // Send to console

}

 

 

How do I choice the best GPS for my application?

The newest GPS technology we have today is the SiRF IV GPS modules and we offer two products, the ISM420 and the ISM480. The ISM420 is a ROM based solution with no antenna attached, while the ISM480 is a Flash based solution with antenna attached.  Ideally, one of these two GPS will fit your need.

If you are looking for custom firmware for a specific application we may suggest the Sirf III based modules  for example high altitiude ballons for example, you will use the ISM300F2-C5.1-VOO4 which is designed specifically for high altitude.

Also, if you are looking for a GPS that is easy to solder down and has the ability to snap on various external antenna’s I would choice the Sirf III based ISM300F2-C4.1 that has a connector on top of the module or you can run on your board via a 50 ohm trace.

 

What does the GPS firmware do with the acceleration / speed at high altitude build for us to 135k feet?

The high-altitude change was simply setting the upper limits on a solution from the Kalman filter.  It had no effect on how we report altitude or speed or how we handle acceleration.  Therefore, with such a build we still make the same determinations we do in unmodified software: before we report a location the two conditions of the ITAR limits must be verified.  Limit 1: speed cannot be above 1000 kts (514 m/s) when altitude is above 60,000 feet (18288 m) – both conditions must be met at the same time for this to cause position output to stop.  Limit 2: speed cannot exceed 600 m/s regardless of altitude.  Since velocities of winds aloft are never expected to reach 1000 kts, the high-altitude build should work just fine for things that are drifting in the atmosphere like weather balloons.  However, sounding rockets and the likes do not work as they exceed those limits.

Can the GPS be flashed in System?

Yes, the ISM300x and the ISM480x family of GPS can be flashed in system. You need to control the flash enable pin and you can upgrade teh flash through the UART.

How do you connect to the ISM480?

The ISM480 has an Ipex 12 pin connector header and you need to put the same mating connector on your board and connect via a flex. ribbon cable. Inventek supplies a two lenght ribbon cables and the Ipex connectors on the website shop to make user intergration easy.

What voltage does the ISM420 and ISM480 support?

The ISM420 and ISM480 require 1.8V to run. The I/O inputs are 3.3v tolerant, however the I/O output is only at 1.8v. If you micor does not support 1.8V you will need a translator chip.

Whati s the expected Life of the ISM420 and ISM480?

These are newly introduced  GPS modules and are recommended for new designs.

How does your GPS output the 1 PPS?

For the ISM300x and ISM420 GPS, we output the 1 PPS as follows:

The first output starts when we the GPS Kalman filter gets a stellite fix.  Thereafter, the 1 PPS continues to  be output until the receiver is reset.  If we drop to less than 3  SVs, the Kalman stops using satellites and goes to DR mode.  At that  point, the 1 PPS is no longer steered but free-runs with the 49.107 MHz      clock (triple the 16.369 MHz GPS clock).  If the Kalman filter again starts using SVs, it will again steer the 1 PPS.

The pulse is 1 μs wide by default
We only have 12 pins on the ISM480 connector so we do not output 1 PPS.

How do you summarize acquisition sensitivity ?

Acquisition sensitivity can be summarized in two  conditions: ephemeris available from any source, or ephemeris must be  obtained from the satellite data stream.  For conditions where   ephemeris is available, we can acquire a satellite down to about -155 dBm.       When we must decode ephemeris, we can still acquire down to -155      dBm, but the signal must be much stronger before we can decode the data.    That limit is -147 dBm in the latest release of ISM300x 9Sirf III .

Does your GPS support sub meter accuracy?

No, we do not support sub-meter accuracy.

Does the ISM300x store Ephemeris data automatically?

Yes,

If you use the battery back up feature and keep power alive the unit will store the data and provide warm starts.  The ISM400x GPS do not require the battery back up.

Does the Sirf IV GPS modules have FCC/CE?

The FCC does not require that the GPS reciever has FCC or CE. We did perform FCC on the Sirf III for a specific customer request, however it is not required.

Are your GPS modules ROHS?

Yes, all our modules are ROHS compliant.

What applicaton do you have to help troubleshoot the GPS design?

Ideally, if you can connect your PC to the UART for any of the  ISM300x or ISM400x GPS modules you can run the Sirf Live.  Sirf Live will show you all the satellites and C/no and allow you to send commands and become familiar with the GPS.

Please contact sales@inventeksys.com for a free copy of the software.

 

I need a 3 v or 5 v GPS module?

Use the ISM300f2-x family of GPS’s.

I am using the ISM480 module and I would like to change the data rates?

Yes, you can set other rates.

 

Here is the function call:

 

/* Set the rate of the NMEA messages used */

PSRF103(“00”, “00”, “01”, “02”);                        // GGA at 1 sec rate

 

Here is the function:

 

//—————————————————————————–

// Function:    PSRF103

// Description: Send SiRF msg 103 to GPS

//—————————————————————————–

//where:        $PSRF103,05,00,01,01*20

//   $PSRF103

//   05         00=GGA

//              01=GLL

//              02=GSA

//              03=GSV

//              04=RMC

//              05=VTG

//   00         mode, 0=set rate, 1=query

//   01         rate in seconds, 0-255

//   01         checksum 0=no, 1=yes

//   *20        checksum

void PSRF103(char nmeamsg[], char mode[], char rate[], char chksum[])

{

char msg[25] = “$PSRF103″;                              // NMEA msg

char csum[2];

unsigned short checksum = 0;

int i;

 

strcat(msg,”,”);

strcat(msg,nmeamsg);                                    // Add NMEA msg

strcat(msg,”,”);

strcat(msg,mode);                                       // Add mode

strcat(msg,”,”);

strcat(msg,rate);                                       // Add rate

strcat(msg,”,”);

strcat(msg,chksum);                                     // Add checksum mode

 

for (i=1;i<strlen(msg);i++)

checksum ^= msg[i];                                   // XOR

sprintf(csum,”%02X”,checksum);                          // Convert hex string

strcat(msg,”*”);                                        // Add checksum delimeter

strcat(msg, csum);                                      // Add checksum

 

strcat(msg,”\r\n”);                                     // Add CR, LF

USART_SendString(GPS_USART,msg);                        // Send msg

DPRINT(msg);

}

On the ISM300Fx how should I connect my antenna?

The RF in port on the ISM300 connects to the antenna (via the U.fl) or pad 1 and the input of the GPS. It is important to add the external LC circuit shown in the reference schematic on the specification because this will provent the loss of GPS signal going into your power supply. One part we have used is the inductor L3 (33 nH is 0603HP-33NXGLW) .

How do I confirm my firmware revision on the GPS module?

The GPS modules do not come marked with the Firmware version. You can poll the software using Sirf Binary for the ISM300fx modules and use OSP (one Socket Protocol)  for the ISM4xx version of gps modules.

If you want to run your GPS in Nema, you will need to swithc to either Sirf Binary or OSP and send the module the message ID 132 – Poll Software version.

Can I flash my ISM300Fx GPS in system?

Yes, the ISM300Fx can be flashed in system by pulling pin 8 High upon power up. The module will then boot up in flash mode and you can update the firmware over the UART. This pin has a pulldown interanlly so if you do not want to flash in system you can leave this pin floating or pull to ground.

The pin is only used during inital power up.

What is the difference between the Sirf Binary and the OSP One Socket Protocol?

CSR (SirF) change the binary protocol whne they introduced the Sirf IV gps modules. The protocols are very similar but OSP has additional features.

Is you are using the ISM300x family of GPS modules use the Sirf Binary. If you are using the ISM4xx family then use OSP.

How do you change the GPS output rate from a true 1Hz to 5Hz?

To enable the 5 Hz, use OSP MID 136.  The field “Position Calc Mode” can be interpreted this way:

Bit Mapped.  When set to 1, a bit enables the function.

Bit         Function

—-         ———–

0                     Almanac Based Positioning

1                     Reverse EE

2                     5 Hz Navigation

3                     SBAS Ranging

4                     Fast time Sync

So set bit 2 to a 1 to enable 5 Hz navigation.

reference OSP document

ISM480 GPS State of Pins after Reset

After a reset (internally pulled up, power up generates the first reset) and before the first time ON_OFF.

Pin          Description                         Reset State

1              CTS/SPI_CL/GPIO6          Pad Enabled, Low, Weak Pull-down Enabled

2              RX/MOSI/SDA                   Pad Enabled, High

3              TX/MISO/SCL                     Pad Enabled, High

4              RTS/SPI_CS/GPIO7          Pad Enabled, High, Weak Pull-up Enabled

5              Reset                                    Pad Enabled, High, Pull-up Enabled

6              Wakeup                               Pad Enabled, Low

7              On_OFF                               Pad Enabled, Low

8              Flash Enable                       Pad Enabled, Low

9              GPIO3                                   Pad Enabled, High

When  the ON_OFF is pulsed for the first time the levels of  GPIO6 and GPIO7 are read to configure the host interface.

The reset is looked at by SiRF/CSR as an “External emergency override of internal POR”, so it is recommend to
control the GPS through the use of the ON_OFF pin

ISM480 GPS UART ,SPI and I2C levels

 

  1. UART
    1. MARK (Logic 1) = Logic High
    2. Space (Logic 0) = Logic Low
    3. Idle Line = Logic High
    4. Line-break/open line = Continuous Logic Low
  2. SPI
    1. Slave Mode
    2. Idle Pattern: A7B4
    3. Maximum Clock = 6.8 MHz
    4. Default Clock Polarity and Phase: CPOL = 0, CPHA = 1
    5. Timing

  1. I2C
    1. Default Address Format: 7-bit
    2. Master Address (sending) is 0x62
    3. Slave Address (receiving) is 0x60
    4. Data Frame Size:  8-bit octets
    5. Data Bit Order:   MSB,LSB
    6. Data Rates:       Default = Fast Mode (400 kbps), Standard Mode (100kbps)
    7. Timing

 

How do I set the data rate of the NEMA messages used?

Here is the function call:

 

/* Set the rate of the NMEA messages used */

PSRF103(“00”, “00”, “01”, “02”);                        // GGA at 1 sec rate

 

Here is the function:

 

//—————————————————————————–

// Function:    PSRF103

// Description: Send SiRF msg 103 to GPS

//—————————————————————————–

//where:        $PSRF103,05,00,01,01*20

//   $PSRF103

//   05         00=GGA

//              01=GLL

//              02=GSA

//              03=GSV

//              04=RMC

//              05=VTG

//   00         mode, 0=set rate, 1=query

//   01         rate in seconds, 0-255

//   01         checksum 0=no, 1=yes

//   *20        checksum

void PSRF103(char nmeamsg[], char mode[], char rate[], char chksum[])

{

char msg[25] = “$PSRF103″;                              // NMEA msg

char csum[2];

unsigned short checksum = 0;

int i;

 

strcat(msg,”,”);

strcat(msg,nmeamsg);                                    // Add NMEA msg

strcat(msg,”,”);

strcat(msg,mode);                                       // Add mode

strcat(msg,”,”);

strcat(msg,rate);                                       // Add rate

strcat(msg,”,”);

strcat(msg,chksum);                                     // Add checksum mode

 

for (i=1;i<strlen(msg);i++)

checksum ^= msg[i];                                   // XOR

sprintf(csum,”%02X”,checksum);                          // Convert hex string

strcat(msg,”*”);                                        // Add checksum delimeter

strcat(msg, csum);                                      // Add checksum

 

strcat(msg,”\r\n”);                                     // Add CR, LF

USART_SendString(GPS_USART,msg);                        // Send msg

DPRINT(msg);

}

What inductor do you use for the RF antenna connection?

The ISM420 requirs the use of the following circuit in the front end if you plan on using an active antenna.  The circuit os not required if you elect to have no power and use a passive antenna.

RFin connects to the Antenna and the input to the GPS. In the case
of the ISM420 inputs are 3.3V tolerant. So no protection needed to
the GPS

ISM420 Antenna circuit

 

http://www.inventeksys.com/wp-content/uploads/2012/11/Antenna-GPS-Front-end.jpg

We uset he 0603HP-33NXGLW  inductor you can find at digi-Key.

Is flash enable required on the GPS? Reset?

  1. The FLASH_EN is only needed to Flash the GPS.
  2. Reset is needed is you want to exit Flash mode without powering off the GPS.
    Otherwise not needed in normal operation
  3. The ISM480 powers up in an off state. The On/Off pin needs to be toggled to turn ON the GPS.
    Once the On/Off pin has been toggled you monitor Wakeup pin to change from low to high.
    This indicates the GPS is running and data should start streaming out of the serial port.

How do I switch from NEMA to the Sirf Protocol on the ISM300?

You need to send a Carriage Return (0x0D) and Line Feed (0x0A) after the checksum (*37)for the SiRF chip to act on the message.

Ex:          $PSRF100,0,57600,8,1,0*37<CR><LF>