Skip to content

Instantly share code, notes, and snippets.

@pklaus
Created March 10, 2015 16:00

Revisions

  1. pklaus renamed this gist Mar 10, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. pklaus created this gist Mar 10, 2015.
    56 changes: 56 additions & 0 deletions NMEA Output.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    output of the command

    screen /dev/ttyACM0 38400

    without any prior special settings:

    $GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
    $GPTXT,01,01,02,HW UBX-G70xx 00070000 *77
    $GPTXT,01,01,02,ROM CORE 1.00 (59842) Jun 27 2012 17:43:52*59
    $GPTXT,01,01,02,PROTVER 14.00*1E
    $GPTXT,01,01,02,ANTSUPERV=AC SD PDoS SR*20
    $GPTXT,01,01,02,ANTSTATUS=OK*3B
    $GPTXT,01,01,02,LLC FFFFFFFF-FFFFFFFD-FFFFFFFF-FFFFFFFF-FFFFFFF9*53
    $GPRMC,081619.00,A,5008.65923,N,00840.01143,E,0.284,,100315,,,A*72
    $GPVTG,,T,,M,0.284,N,0.526,K,A*2C
    $GPGGA,081619.00,5008.65923,N,00840.01143,E,1,09,1.15,134.8,M,47.5,M,,*52
    $GPGSA,A,3,23,09,06,03,20,10,02,17,01,,,,1.73,1.15,1.29*03
    $GPGSV,4,1,15,01,09,155,12,02,15,316,26,03,45,099,07,06,54,288,31*76
    $GPGSV,4,2,15,07,12,175,18,08,30,052,13,09,65,227,36,10,33,286,33*7E
    $GPGSV,4,3,15,17,13,231,27,20,36,288,29,23,79,083,20,31,09,031,10*7B
    $GPGSV,4,4,15,32,03,099,,33,28,210,31,39,30,159,*40
    $GPGLL,5008.65923,N,00840.01143,E,081619.00,A,A*63
    $GPRMC,081620.00,A,5008.65914,N,00840.01059,E,0.091,,100315,,,A*70
    $GPVTG,,T,,M,0.091,N,0.168,K,A*24
    $GPGGA,081620.00,5008.65914,N,00840.01059,E,1,09,1.15,135.7,M,47.5,M,,*58
    $GPGSA,A,3,23,09,06,03,20,10,02,17,01,,,,1.73,1.15,1.29*03
    $GPGSV,4,1,15,01,09,155,11,02,15,316,25,03,45,099,07,06,54,288,30*77
    $GPGSV,4,2,15,07,12,175,18,08,30,052,11,09,65,227,35,10,33,286,33*7F
    $GPGSV,4,3,15,17,13,231,26,20,36,288,27,23,79,083,18,31,09,031,09*77
    $GPGSV,4,4,15,32,03,099,,33,28,210,30,39,30,159,*41
    $GPGLL,5008.65914,N,00840.01059,E,081620.00,A,A*67
    $GPRMC,081621.00,A,5008.65917,N,00840.01047,E,0.021,,100315,,,A*76
    $GPVTG,,T,,M,0.021,N,0.039,K,A*2A
    $GPGGA,081621.00,5008.65917,N,00840.01047,E,1,09,1.17,136.2,M,47.5,M,,*51
    $GPGSA,A,3,23,09,06,03,20,10,02,17,01,,,,1.84,1.17,1.42*04
    $GPGSV,4,1,15,01,09,155,11,02,15,316,25,03,45,099,07,06,54,288,30*77
    $GPGSV,4,2,15,07,12,175,18,08,30,052,09,09,65,227,36,10,33,286,33*75
    $GPGSV,4,3,15,17,13,231,26,20,36,288,27,23,79,083,16,31,09,031,08*78
    $GPGSV,4,4,15,32,03,099,,33,28,210,30,39,30,159,*41
    $GPGLL,5008.65917,N,00840.01047,E,081621.00,A,A*6A
    $GPRMC,081622.00,A,5008.65916,N,00840.01029,E,0.227,,100315,,,A*78
    $GPVTG,,T,,M,0.227,N,0.420,K,A*22
    $GPGGA,081622.00,5008.65916,N,00840.01029,E,1,09,1.17,136.6,M,47.5,M,,*5F
    $GPGSA,A,3,23,09,06,03,20,10,02,17,01,,,,1.84,1.17,1.42*04
    $GPGSV,4,1,15,01,09,155,11,02,15,316,24,03,45,099,11,06,54,288,30*71
    $GPGSV,4,2,15,07,12,175,18,08,30,052,09,09,65,227,36,10,33,286,33*75
    $GPGSV,4,3,15,17,13,231,26,20,36,288,28,23,79,083,16,31,09,031,*7F
    $GPGSV,4,4,15,32,03,099,,33,28,210,30,39,30,159,*41
    $GPGLL,5008.65916,N,00840.01029,E,081622.00,A,A*60
    $GPRMC,081623.00,A,5008.65919,N,00840.01010,E,0.064,,100315,,,A*79
    $GPVTG,,T,,M,0.064,N,0.118,K,A*29
    $GPGGA,081623.00,5008.65919,N,00840.01010,E,1,09,1.17,137.0,M,47.5,M,,*5C
    $GPGSA,A,3,23,09,06,03,20,10,02,17,01,,,,1.84,1.17,1.42*04
    $GPGSV,4,1,15,01,09,155,11,02,15,316,25,03,45,099,11,06,54,288,30*70
    $GPGSV,4,2,15,07,12,175,18,08,30,052,08,09,65,227,35,10,33,286,33*77
    $GPGSV,4,3,15,17,13,231,26,20,36,288,28,23,79,083,15,31,09,031,*7C
    6 changes: 6 additions & 0 deletions dmesg
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    How the receiver shows up in the `dmesg` command:

    [36800.263324] usb 1-1.1.3: new full-speed USB device number 8 using ehci-pci
    [36800.382015] cdc_acm 1-1.1.3:1.0: ttyACM0: USB ACM device
    [36800.382221] usbcore: registered new interface driver cdc_acm
    [36800.382223] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
    106 changes: 106 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,106 @@
    To switch the receiver to binary mode, you can use the command `gpsctl -b -D 5 -f -t "u-blox" /dev/ttyACM0`.
    Here is its output:

    gpsctl:INFO: opening GPS data source type 3 at '/dev/ttyACM0'
    gpsctl:INFO: speed 38400, 8N1
    gpsctl:PROG: Probing "Garmin USB binary" driver...
    gpsctl:INFO: attempting USB device enumeration.
    gpsctl:INFO: 045e:00db (bus 2, device 4)
    gpsctl:INFO: 8087:8000 (bus 2, device 2)
    gpsctl:INFO: 1d6b:0002 (bus 2, device 1)
    gpsctl:INFO: 08bb:2902 (bus 1, device 5)
    gpsctl:INFO: 046d:c404 (bus 1, device 7)
    gpsctl:INFO: 0424:2504 (bus 1, device 4)
    gpsctl:INFO: 1546:01a7 (bus 1, device 11)
    gpsctl:INFO: 0a5c:21e8 (bus 1, device 6)
    gpsctl:INFO: 0409:005a (bus 1, device 3)
    gpsctl:INFO: 8087:8008 (bus 1, device 2)
    gpsctl:INFO: 1d6b:0002 (bus 1, device 1)
    gpsctl:INFO: 1d6b:0003 (bus 4, device 1)
    gpsctl:INFO: 1d6b:0002 (bus 3, device 1)
    gpsctl:INFO: vendor/product match with 091e:0003 not found
    gpsctl:PROG: Probe not found "Garmin USB binary" driver...
    gpsctl:PROG: Probing "GeoStar" driver...
    gpsctl:PROG: Sent GeoStar packet id 0xc1
    gpsctl:IO: => GPS: 5053474700c100010000000050924746
    gpsctl:PROG: Probe not found "GeoStar" driver...
    gpsctl:PROG: Probing "Trimble TSIP" driver...
    gpsctl:INFO: speed 9600, 8O1
    gpsctl:INFO: speed 38400, 8N1
    gpsctl:PROG: Probe not found "Trimble TSIP" driver...
    gpsctl:PROG: no probe matched...
    gpsctl:INFO: gpsd_activate(1): activated GPS (fd 3)
    gpsctl:INFO: device /dev/ttyACM0 activated
    gpsctl:INFO: startup at 2015-03-10T13:37:14.000Z (1425994634)
    gpsctl:PROG: switching to match packet type 1: $GPRMC,133715.00,A,5008.64927,N,00839.98328,E,0.389,,100315,,,D*7A\x0d\x0a
    gpsctl:PROG: switch_driver(NMEA0183) called...
    gpsctl:PROG: selecting NMEA0183 driver...
    gpsctl:INFO: /dev/ttyACM0 identified as type NMEA0183, 0.793732 sec @ 38400bps
    gpsctl:PROG: => Probing for Garmin NMEA
    gpsctl:IO: => GPS: $PGRMCE*0E\x0d\x0a
    gpsctl:IO: <= GPS: $GPRMC,133715.00,A,5008.64927,N,00839.98328,E,0.389,,100315,,,D*7A
    gpsctl:PROG: GPRMC sentence timestamped 133715.00.
    gpsctl:PROG: GPRMC starts a reporting cycle.
    gpsctl:PROG: => Probing for SiRF
    gpsctl:IO: => GPS: $PSRF100,0,38400,8,1,0*3C\x0d\x0a
    gpsctl:IO: <= GPS: $GPVTG,,T,,M,0.389,N,0.721,K,D*20
    gpsctl:PROG: => Probing for FV-18
    gpsctl:IO: => GPS: $PFEC,GPint*58\x0d\x0a
    gpsctl:IO: <= GPS: $GPGGA,133715.00,5008.64927,N,00839.98328,E,2,04,1.50,155.4,M,47.5,M,,0000*57
    gpsctl:PROG: GPGGA sentence timestamped 133715.00.
    gpsctl:PROG: => Probing for Trimble Copernicus
    gpsctl:IO: => GPS: $PTNLSNM,0139,01*5C\x0d\x0a
    gpsctl:IO: <= GPS: $GPTXT,01,01,01,PGRM inv format*34
    gpsctl:WARN: unknown sentence: "$GPTXT,01,01,01,PGRM inv format*34\x0d\x0a"
    gpsctl:PROG: => Probing for Evermore
    gpsctl:IO: => GPS: 1002128e7f0101000101010000000000000000131003
    gpsctl:IO: <= GPS: $GPGSA,A,3,21,15,05,30,,,,,,,,,3.33,1.50,2.97*08
    gpsctl:PROG: GPGSA sets mode 3
    gpsctl:PROG: => Probing for GPSClock
    gpsctl:IO: => GPS: $PFEC,GPsrq*5B\x0d\x0a
    gpsctl:IO: <= GPS: $GPTXT,01,01,01,PSRF inv format*2B
    gpsctl:WARN: unknown sentence: "$GPTXT,01,01,01,PSRF inv format*2B\x0d\x0a"
    gpsctl:PROG: => Probing for Ashtech
    gpsctl:IO: => GPS: $PASHQ,RID*28\x0d\x0a
    gpsctl:IO: <= GPS: $GPTXT,01,01,01,PFEC inv format*2C
    gpsctl:WARN: unknown sentence: "$GPTXT,01,01,01,PFEC inv format*2C\x0d\x0a"
    gpsctl:PROG: => Probing for UBX
    gpsctl:PROG: => GPS: UBX class: 06, id: 00, len: 0, crc: 0618
    gpsctl:IO: => GPS: b562060000000618
    gpsctl:IO: <= GPS: $GPTXT,01,01,01,PTNL inv format*3A
    gpsctl:WARN: unknown sentence: "$GPTXT,01,01,01,PTNL inv format*3A\x0d\x0a"
    gpsctl:PROG: => Probing for MediaTek
    gpsctl:IO: => GPS: $PMTK605*31\x0d\x0a
    gpsctl:IO: <= GPS: $GPTXT,01,01,01,PFEC inv format*2C
    gpsctl:WARN: unknown sentence: "$GPTXT,01,01,01,PFEC inv format*2C\x0d\x0a"
    gpsctl:IO: <= GPS: $GPTXT,01,01,01,PASH inv format*36
    gpsctl:WARN: unknown sentence: "$GPTXT,01,01,01,PASH inv format*36\x0d\x0a"
    gpsctl:IO: UBX: len 28
    gpsctl:PROG: switching to match packet type 11: b56206001400030000000000000000000000070003000000000027ce
    gpsctl:PROG: switch_driver(u-blox) called...
    gpsctl:PROG: selecting u-blox driver...
    gpsctl:INFO: /dev/ttyACM0 identified as type u-blox, 0.796377 sec @ 38400bps
    gpsctl:PROG: => GPS: UBX class: 06, id: 16, len: 8, crc: 31e5
    gpsctl:IO: => GPS: b56206160800030703000000000031e5
    gpsctl:PROG: => GPS: UBX class: 0a, id: 04, len: 0, crc: 0e34
    gpsctl:IO: => GPS: b5620a0400000e34
    gpsctl:INFO: UBX_CFG_PRT: port 3
    gpsctl:IO: UBX: len 10
    gpsctl:IO: UBX: len 10
    gpsctl:IO: UBX: len 108
    gpsctl:PROG: Partial satellite data (1 of 4).
    gpsctl:PROG: /dev/ttyACM0 looks like a u-blox 1.00 (59842) at 38400.
    /dev/ttyACM0 identified as a u-blox 1.00 (59842) at 38400 baud.
    gpsctl:SHOUT: switching to mode BINARY.
    gpsctl:PROG: => GPS: UBX class: 06, id: 01, len: 3, crc: 104b
    gpsctl:IO: => GPS: b56206010300010401104b
    gpsctl:PROG: => GPS: UBX class: 06, id: 01, len: 3, crc: 124f
    gpsctl:IO: => GPS: b56206010300010601124f
    gpsctl:PROG: => GPS: UBX class: 06, id: 01, len: 3, crc: 2c83
    gpsctl:IO: => GPS: b562060103000120012c83
    gpsctl:PROG: => GPS: UBX class: 06, id: 01, len: 3, crc: 45ac
    gpsctl:IO: => GPS: b5620601030001300a45ac
    gpsctl:PROG: => GPS: UBX class: 06, id: 01, len: 3, crc: 47b0
    gpsctl:IO: => GPS: b5620601030001320a47b0
    gpsctl:PROG: => GPS: UBX class: 06, id: 00, len: 20, crc: 93ac
    gpsctl:IO: => GPS: b5620600140003000000d008000000960000070001000000000093ac
    92 changes: 92 additions & 0 deletions lsusb Output.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,92 @@
    The output of `sudo lsusb -vv`

    Bus 001 Device 009: ID 1546:01a7 U-Blox AG
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 1.10
    bDeviceClass 2 Communications
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    idVendor 0x1546 U-Blox AG
    idProduct 0x01a7
    bcdDevice 1.00
    iManufacturer 1 u-blox AG - www.u-blox.com
    iProduct 2 u-blox 7 - GPS/GNSS Receiver
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 62
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xc0
    Self Powered
    MaxPower 100mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4

    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 2 Communications
    bInterfaceSubClass 2 Abstract (modem)
    bInterfaceProtocol 1 AT-commands (v.25ter)
    iInterface 0
    CDC Header:
    bcdCDC 1.10
    CDC ACM:
    bmCapabilities 0x02
    line coding and serial state
    CDC Call Management:
    bmCapabilities 0x03
    call management
    use DataInterface
    bDataInterface 1
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x83 EP 3 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0040 1x 64 bytes
    bInterval 255
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 1
    bAlternateSetting 0
    bNumEndpoints 2
    bInterfaceClass 10 CDC Data
    bInterfaceSubClass 0
    bInterfaceProtocol 255 Vendor specific
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x01 EP 1 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0040 1x 64 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x82 EP 2 IN
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0040 1x 64 bytes
    bInterval 0
    can't get debug descriptor: Resource temporarily unavailable
    Device Status: 0x0001
    Self Powered