How to run SDK on (Windows or Linux) PC

Running SDK on Windows

  • Navigate to top directory as described at Update GPS Configuration File gpsconfig.xml and update the file gpsconfig.xml as described
  • Optional, copy glgps_win_xp.exe you just built here if desired (see Build your own GNSS executables)
  • Open cmd to run
    • cd SDK_TOP_DIRECTORY% # This is a make-believe environment variable
    • cd bin\WinXP
    • dir REM ensure you have glgps_win_xp.exe and gpsconfig.xml
    • glgps_win_xp.exe gpsconfig.xml Periodic REM "Periodic" is case sensitive
  • Observe the T/R LEDs blinking on the evaluation kit.
  • To see GPS action in real-time, see allPartners\deliverables\glgpsapp\SetupVirtualComPort.doc
  • To quit, click on the cmd Window, press "q" on the keyboard. Ctrl-C won't work.
  • Search for PGLOR,FIX in the log file under directory C:\debuglog\barracuda to validate position fixes.
  • See NMEA messages supported by GLL to decode NMEA lines

Running SDK on Linux (Ubuntun as example here)

The glgps take the following arguments: glgps [-dch] config_file job_id

  • -d It'll be run as a daemon (this is the default)
  • -c It'll be run in a terminal (useful for testing and debugging)
  • -h commands help
  • config_file = Configuration file in XML format
  • job_id = job id in the configuration file. Examples: Periodic, Cold_Starts, etc.
  • Upgrade to openssl 1.0.0a by running the following commands on the console
    • openssl version # Skips steps below, if it says: OpenSSL 1.0.0a 1 Jun 2010
    • # Do steps below only if your openssl version is NOT: 1.0.0a
    • cd
    • wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz
    • tar xvzf openssl-1.0.0a.tar.gz
    • cd openssl-1.0.0a
    • ./config --prefix=/usr shared
    • make clean all # This will take several minutes, be patient
    • sudo make install
    • openssl version # Ensure it displays: OpenSSL 1.0.0a 1 Jun 2010
  • Optional, patch the SiLabs CP210x driver for GPIO control
    • cd $SDK_TOP_DIRECTORY # This is a make-believe environment variable
    • cd customers/Unix/cp2103/kernel_drivers
    • uname -a # To find out the kernel version, say 2.6.26
    • cat Readme.txt # and follow instructions
  • Running the GPS executable
    • cd $SDK_TOP_DIRECTORY # This is a make-believe environment variable
    • cd bin/Unix
    • # Optional, copy glgps* you built here
    • ls # ensure you have glgps* and gpsconfig.xml
    • ./glgps_UnixCP2103 gpsconfig.xml Periodic # Periodic is case sensitive
    • # Observe the T/R LEDs blinking on the evaluation kit.
  • Locate the GPS files
    • ls -l /var/tmp # You should see something as follows
                  total 4
                  prw-r--r-- 1 gps gps    0 2010-10-15 15:20 glgpsctrl
                  drwx------ 2 gps gps 4096 2010-10-15 15:20 gpslogs
                  lrwxrwxrwx 1 gps gps   10 2010-10-15 15:20 nmeapipe0 -> /dev/pts/3
      
      • glgpsctrl = GPS control pipe
      • gpslogs = GPS log files for post analysis
      • nmeapipe0 = pipe to stream out NMEA lines
    • cat /var/tmp/nmeapipe0 # To display the NMEA lines in real-time
      • Observe the satellite signal strength on the GPGSV lines, format details at $GPGSV, $GLGSV, $QZGSV - GNSS satellites in view
      • Note that with good GPS antenna and signal reception, the SNR values should be 44 or higher at sea-level for 3~4 satellites. If your numbers are much lower, ensure that your antenna is really facing the sky without obstructions. If your numbers are still much lower, send your board schematics and layout to us for review.
  • Testing with gpsd, pass NMEA pipe as argument
            $sudo apt-get install gpsd # install gpsd
            $sudo gpsd /var/tmp/nmeapipe0
    
  • Use xgps to test gpsd:
                $sudo apt-get install gpsd-clients # install xgps
                $xgps
    
  • Use gpsdrive to test gpsd:
                $sudo apt-get install gpsdrive # install gpsdrive
                $gpsdrive
    
  • Terminating glgps*
    • To exit with grace, note that the actual pipe name might be configured differently in gpsconfig.xml "ctrlPipe"
      • echo '$pglctr,quit' > /var/tmp/glgpsctrl
    • To Terminate by brute force
      • ps -A | grep glgps
      • kill <id_of_glgps>

Troubleshooting

  • If you get error message such as "Communication breakdown" or "ASIC IS DEAD"
    • Ensure the correctness of FrqPlan and RfType in gpsconfig.xml, see GL XML Config file description
    • Power cycle EK
      • Remove USB cable or TF power
      • Slide open the back-lid and press SW2
      • Wait about 5 seconds, and restore power to EK
  • If you get low satellite signal strength
    • Ensure the antenna is indeed facing the sky without above or surrounding obstructions
    • In driving test, place the antenna at the dashboard under the front windshield
    • Ensure the connectors are tight when connected to simulator output

Next Steps

  • Run other test jobs (such as Cold_Starts, Warm_Starts, Hot_Starts) listed in gpsconfig.xml, adjust the "task repeat" value as desired. For details, see GL XML Config file description
  • Run the Periodic job and do a driving test
  • Use NMEA_Log_Analyzer (ask Broadcom AE for download permissions, and be very sure to go through Readme.txt) to:
    • Convert log file to kmz files and view the trace under GoogleEarth
    • Produce reports on test jobs such as Cold_Starts, Hot_Starts using batch files such as Summary.bat (open it with editor to see instructions inside)
    • Run ssplot on log file that was running the "Periodic" job for 15 minutes to ensure the signal strength of satellites are acceptable.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines