Abstract:
A system includes a processor circuit and a computer readable storage medium. The processor circuit may be configured to plug into an on board diagnostic connector of a vehicle. The computer readable storage medium generally embodies computer executable instructions. The computer executable instructions, when executed by the processor circuit, enable the processor circuit to communicate with one or more busses of the vehicle and to communicate navigational information to an auxiliary device.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to global navigation satellite systems (GNSSs) generally and, more particularly, to a method and/or apparatus for implementing an automotive OBD-II device capable of generating navigational information. 
       BACKGROUND OF THE INVENTION 
       [0002]    An automotive global positioning system/global navigation satellite system (GPS/GNSS) with dead reckoning (DR) capability provides accuracy in urban canyons and low signal environments. Conventional mobile smart devices such as cell phones and tablets use GPS/GNSS position information for a variety of applications. 
         [0003]    However, the accuracy of the GPS/GNSS position information provided by the smart devices can be reduced when traveling in urban canyons and low signal environments. Battery life of the mobile devices is reduced when on board GPS/GNSS is enabled, especially when the on board GPS/GNSS unit is hunting for satellite signals in urban canyons and low signal environments. 
         [0004]    It would be desirable to implement an automotive OBD-II device capable of generating navigational information. 
       SUMMARY OF THE INVENTION 
       [0005]    The present invention concerns a system including a processor circuit and a computer readable storage medium. The processor circuit may be configured to plug into an on board diagnostic connector of a vehicle. The computer readable storage medium generally embodies computer executable instructions. The computer executable instructions, when executed by the processor circuit, enable the processor circuit to communicate with one or more busses of the vehicle and to communicate navigational information to an auxiliary device. 
         [0006]    The objects, features and advantages of the present invention include providing an automotive OBD-II device capable of generating navigational information that may (i) be plugged into an on board diagnostic (e.g., OBD-II) socket (or port) of a vehicle, (ii) communicate navigational information derived from GPS/GNSS positional information with or without dead reckoning (DR) to an auxiliary device (e.g., cell phone, tablet, smart device. etc.), (iii) support one or more wired communications protocols (e.g., Ethernet, USB, etc.), (iv) support one or more wireless communication protocols (WiFi, BLUETOOTH, etc.), (v) communicate with an application (commonly referred to as an App) running on the auxiliary device, (vi) allow auxiliary devices to obtain highly accurate location information using vehicle data with or without on board GPS/GNSS, (vii) save battery life, and/or (viii) be implemented in a dongle. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]    These and other objects, features and advantages of the present invention will be apparent from the following detailed description and the appended claims and drawings in which: 
           [0008]      FIG. 1  is a diagram illustrating an OBD-II compliant on board diagnostic port connector; 
           [0009]      FIG. 2  is a diagram illustrating a dongle  90  housing a device in accordance with an embodiment of the invention; 
           [0010]      FIGS. 3A-3D  are diagrams illustrating example implementations of the device of  FIG. 2  in accordance with example embodiments of the invention; 
           [0011]      FIG. 4  is a block diagram illustrating an example architecture in accordance with an embodiment of the invention; 
           [0012]      FIG. 5  is a diagram illustrating an example application in accordance with an embodiment of the invention; 
           [0013]      FIG. 6  is a diagram illustrating example data flows in a system in accordance with an embodiment of the invention; 
           [0014]      FIG. 7  is a flow diagram illustrating an example process in accordance with an example embodiment of the invention; and 
           [0015]      FIG. 8  is a flow diagram illustrating another example process in accordance with an example embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0016]    In various embodiments, a system and/or method generally allows mobile smart devices to take advantage of information available on one or more vehicle data busses to obtain highly accurate location information. In some embodiments, navigational information derived from global positioning system/global navigation satellite system (GPS/GNSS) positional information, with or without dead reckoning (DR), may be taken from the vehicle using an on board diagnostic connector (or port) and transmitted to an application running on the mobile smart devices (e.g., cell phone, tablet, etc.). In some embodiments, a device plugged into the on board diagnostic (e.g., OBD-II) connector (or port) includes a GPS/GNSS chipset and uses motion data from the one or more vehicle data busses to obtain highly accurate GPS DR location information, which is then transmitted to the application running on the mobile smart devices. In some embodiments, the device may also include a 3-axis gyroscope or accelerometer for generating DR and three-dimensional (3D) DR information when a vehicle does not have such sensors available via the on board diagnostic port. Referring to  FIG. 1 , a diagram is shown illustrating an on board diagnostic port connector  10 . The port connector  10  may be implemented as an OBD-II standard diagnostic port, where OBD stands for “On Board Diagnostics” and II indicates the second attempt at standardization across makes and models of vehicles. The OBD-II specification represents a collection of industry and governmental standards for communicating diagnostic information from passenger vehicles. The port connector  10  is generally located within three feet of the driver and is accessible without tools. The port connector  10  may contain up to 16 pins, numbered  1 - 8  from left to right across the top of the connector and numbered  9 - 16  from left to right across the bottom of the connector. 
         [0017]    Pins  1 ,  3 ,  8 ,  9 , and  11 - 13  may be used for make/model (proprietary) specific purposes. The remaining pins provide connections for power and different types of physical communication links. For example, pins  2  and  10  may be used to support SAE J1850-PWM or SAE-J1850-VFW protocols, pins  6  and  14  may be used to support controller area network (CAN) bus HIGH and LOW, and pins  7  and  15  may be used to support ISO K and L lines. The CAN pair (pins  6  and  14 ) may use either standard ISO 15765 or extended ISO 15765 protocols. The ISO pair (pins  7  and  15 ) may use either ISO 9141 or ISO 14230 protocols. However, other protocols may be implemented, including, but not limited to, ISO 15764-4 (CAN), ISO 14230-4 (Keyword Protocol 2000), ISO 9141-2 (Asian, European, Chrysler vehicles), SAE J1850 VPW (GM vehicles), SAE J1850 PWM (Ford vehicles), SAE J2411 (GM LAN, single wire CAN), and Ford MSC (medium speed CAN). 
         [0018]    Regardless of the protocol, information available on the vehicle busses generally includes, but is not limited to, Parameter IDs (PIDs) and diagnostic trouble codes (DTCs). Parameter IDs generally represent real time measurements for various sensors (e.g., RPM, ignition timing, wheel clicks, etc.). Diagnostic trouble codes report problems detected by an electronic (or engine) control unit (ECU). In one example, data on a particular vehicle bus may be obtained by monitoring the appropriate pins of the ODB-II port. In some vehicles, all of the vehicle busses relay data between one another making a direct connection to a particular bus superfluous. 
         [0019]    Referring to  FIG. 2 , a diagram of a dongle  90  is shown illustrating an example of a device in accordance with an example embodiment of the invention. The term dangle as used herein refers to a piece of hardware that attaches to an electronic device and, when attached, enables additional function(s). In various embodiments, the dangle  90  is configured to connect to the on board diagnostic (e.g., OBD-II) connector (or socket or port) of a vehicle. Such connectors are standard on all 1996 and newer vehicles sold in the United States of America (USA). The on board diagnostic port is typically located in an area below the driver&#39;s side of the dashboard. The dangle  90  generally comprises a integrated connector and housing. A printed circuit board (PCB)  100  is disposed within the dangle  90  and electrically connected with a number of contacts (pins) of the integrated connector. 
         [0020]    Referring to  FIGS. 3A-3D , diagrams of a number of example implementations of the PCB  100  of  FIG. 2  are shown illustrating example devices in accordance with example embodiments of the invention. In various embodiments of the PCB  100  (e.g.,  100 - 0 ,  100 - 1 ,  100 - 2 , and  100 - 3 ), an OBD-II compliant connector  102  is coupled to a processing circuit  104  and the processing circuit  104  is coupled to one or more interface (I/F) circuits  106   a - 106   n  implementing one or more wireless protocols (e.g., IEEE 802.11 a/b/g/n “WiFi”, IEEE 802.15.1 BLUETOOTH, IEEE 802.15.4 ZIGBEE, etc.) and/or one or more wired protocols (e.g., Universal Serial Bus, Ethernet, etc.). Referring to  FIG. 3A , the processing circuit  104  of the PCB  100 - 0  is enabled to obtain global positioning system/global navigation satellite system (GPS/GNSS) positional information with or without dead reckoning (DR) from the vehicle using the on board diagnostic (e.g., OBD-II) connector (or port). 
         [0021]    For example, the PCB  100 - 0  may be enabled to pull messages regarding vehicle position, heading, and speed off of one or more of the vehicle busses. In one example, these messages may be published on the busses in vehicles using a GPS module as described in co-pending U.S. Ser. No. 14/231,987, filed Apr. 1, 2014, which is incorporated by reference. The processing circuit  104  on the PCB  100 - 0  reformats the position data (e.g., using a National Marine Electronics Association (NMEA) standard format) and transmits the navigational information to an application program running on one or more auxiliary and/or mobile devices (e.g., cell phone, tablet, etc.) using at least one of the wireless and/or wired interfaces  106   a - 106   n.    
         [0022]    Referring to  FIG. 3B , the processing circuit  104  of the PCB  100 - 1  is further connected to a GPS/GNSS chipset  108  (and antenna) and is enabled to generate navigational information derived from global positioning system/global navigation satellite system (GPS/GNSS) data, with or without dead reckoning (DR) positional information, using motion-related information pulled from one or more of the vehicle busses via the on board diagnostic (e.g., OBD-II) connector (or port). For example, the PCB  100 - 1  may pull messages from sensors (e.g., ABS wheel, wheel click, gyro, speed, etc.) off the one or more vehicle busses and use the data from the messages along with the GPS chipset  108  and/or a 3-axis gyro  110  to provide navigational information with or without DR or 3D DR position solutions to the auxiliary devices (e.g., using a National Marine Electronics Association (NMEA) standard format) via at least one of the wireless and/or wired interfaces  106   a - 106   n.  In some embodiments (e.g., PCB  100 - 2  in  FIG. 3C  and PCB  100 - 3  in  FIG. 3D ), a 3-axis gyroscope or accelerometer  110  may be added for use in vehicles without built-in gyroscopes or accelerometers. 
         [0023]    Referring to  FIG. 4 , a block diagram of a system  200  is shown illustrating an example architecture in accordance with an example embodiment of the present invention. Depending on the make and model of a vehicle, various parts of the system  200  may be implemented as part of the vehicle electronics or as part of the dongle electronics (as illustrated in  FIG. 3  above). The system  200  may implement an integrated global navigation satellite system (GNSS) receiver and electronic horizon module in accordance with an example embodiment of the invention. The system  200  may comprise a block (or circuit)  202 , a block (or circuit)  204 , a block (or circuit)  206 , a block (or circuit)  208 , a block (or circuit)  210 , a block (or circuit)  212 , a block (or circuit)  214 , a block (or circuit)  216 , a block (or circuit)  218 , a block (or circuit)  220 , a block (or circuit)  222 , a number of blocks (or circuits)  230   a - 230   n,  a block (or circuit)  232 , a block (or circuit)  234 , a block (or circuit)  236 , a block (or circuit)  240 , a block (or circuit)  242 , a block (or circuit)  244 , and a block (or circuit)  250 . The blocks  202 - 250  may be mounted or connected to at least one printed circuit board (PCB) substrate. 
         [0024]    In various embodiments, the block  202  may be implemented as a global positioning system (GPS) chip set. In one example, the block  202  may comprise an independently certified drop-in module. In some embodiments, the block  202  may be implemented with a Dead Reckoning (DR) GPS chip set. However, other chipsets compliant with one or more other global navigation satellite systems (GNSSs), for example, GPS (USA), GLONASS (Russia), Beidou (China), Compass (China), Galileo (Europe), etc., may be implemented accordingly to meet the design criteria of a particular implementation. The term global navigation satellite system (GLASS) is used generically and is intended to encompass any satellite-aided navigation system. The block  204  may be implemented, in one example, as a communications processor module. The block  206  may be implemented, in one example, as a microcontroller (MCU). In one example, the blocks  204  and  206  may be implemented using separate processors. In another example, the blocks  204  and  206  may be implemented using a single processor. The block  208  may be implemented, in one example, as a controller area network (CAN) transceiver. 
         [0025]    The block  210  may be implemented as an on board GPS/GNSS antenna. In one example, the block  210  may comprise a printed circuit board substrate mounted GPS/GNSS antenna. In one example, the antenna  210  may be implemented as a microstrip patch antenna. 
         [0026]    The block  212  may be implemented as a first surface acoustic wave (SAW) filter configured to couple the block  210  to the block  202 . The block  214  may be implemented as a crystal reference frequency oscillator (TCXO) for the block  202 . The block  216  may be implemented as a real time clock (RTC) oscillator. The block  216  may include a low drop out (LDO) regulator (not shown). The block  218  may implement a second surface acoustic wave (SAW) filter. The block  220  may be implemented as a non-volatile memory. In one example, the block  220  may be implemented external to the block  202 . The block  220  may store operating software and/or data for the block  202 . In one example, the block  220  may be implemented as an electrically erasable programmable read only memory (EEPROM). However, other types of memory may be implemented accordingly to meet the design criteria of a particular implementation. The block  222  may be implemented as a dual low drop out (LDO) regulator. In one example, the block  222  may be implemented as a 3.3V power circuit. The block  222  may provide one or more regulated voltages to (i) a RF front end of the block  202  and (ii) a baseband portion of the block  202 . In some embodiments, the blocks  202  and  210 - 222  are implemented as part of the electronics of the vehicle. In some embodiments, the blocks  202  and  210 - 222  are implemented as part of the dongle  90 . 
         [0027]    The blocks  230   a - 230   n  may implement a number of interface and support modules. In one example, the blocks  230   a - 230   n  may comprise an optional cellular modem interface  230   a,  an interface  230   b  providing support for wireless communication using one or more protocols (e.g., IEEE 802.11x (WiFi), IEEE 802.15.1 Bluetooth®, etc.), an interface  230   c  providing support for one or more wired communication protocols (e.g., USB, Ethernet, etc.), a non-volatile memory (NVM) interface  230   d,  and/or random access memory (RAM) interfaces  230   e  and/or  230   n.  In one example, the cellular modem interface  230   a  may be configured to connect with an external antenna. In another example, the cellular modem interface  230   a  may include a cellular multi-band antenna disposed on a layer of the printed circuit board substrate used to implement the system  200 . In various embodiments, some of the blocks  230   a - 230   n  may be omitted. 
         [0028]    The NVM interface  230   d  may be implemented, for example, to connect one or more serial flash devices to the block  204 . In some embodiments, the NVM interface  230   d  connects a 4M×8 quad serial flash device to the block  204 . In one example, the NVM interface  230   d  connects NVM modules storing map data to be used with signals processed by the system  200 . The RAM interface  230   e  may be configured to connect synchronous dynamic random access memory (SDRAM) to the block  204 . In one example, the SDRAM may comprise a number (e.g., eight) of zero wait state, 16 or 32 bit memory devices which may be connected to the block  204 . In some embodiments, the SDRAM may be implemented with 64 MB memory devices. The block  230   n  may provide for one or more additional interfaces (e.g., memory sockets for additional memory, etc.). 
         [0029]    The block  232  may be implemented, in one example, as an optional memory socket for connecting one or more non-volatile memory devices. In one example, the block  232  may be configured to accept FLASH memory devices (e.g., 8-8GB, 8-32 bit) and/or memory cards (e.g., SD cards, etc.). In one example, the memory devices may contain map data to be used with signals processed by the system  100 . The block  234  may implement one or more optional debug ports. The block  236  may implement a 3-axis gyroscope or accelerometer. The block  240  may be implemented, in one example, as an electrical connector capable of connecting to an electronic system bus of a vehicle (e.g., an OBD-II connector). The connector  240  may have a sufficient number of pins to allow the system  200  to connect to more than one bus of a vehicle. The block  242  may implement a main power supply for the system  200 . In one example, the block  242  may be implemented as a LDO regulator with delay start. The block  244  may implement a low voltage power circuit for the system  200 . The block  250  may be implemented as a battery monitoring circuit. 
         [0030]    The block  202  may be implemented, in one example, with discrete surface mount devices (SMDs). In one example, the block  202  may be implemented similarly to GPS circuitry described in U.S. Pat. No. 6,272,349, issued Aug. 7, 2001, which is herein incorporated by reference in its entirety. In one example, the block  202  may include a first integrated circuit for converting radio frequency signals from the GPS/GNSS antenna  210  into intermediate frequency signals, and a second integrated circuit for performing operations on the intermediate frequency signals to produce GPS (or other GNSS) signals that can be communicated to the auxiliary device. In one example, the GPS/GNSS antenna  210  may be configured for receive-only operation of low level GPS satellite signals. The filter  212  may be implemented, in one example, as a passband filter operating at L1 GPS (e.g., 1575.42±25 MHZ). However, other filters may be implemented depending on the particular GPS/GNSS signals and bandwidth implemented. The filter  212  may be configured to attenuate unwanted out-of-band RF signals to the block  202  and periphery circuitry. The block  202  may include a low noise amplifier (LNA) circuit to amplify low level GPS/GNSS signals received by the system  200  with a low signal-to-noise ratio (SNR). The block  214  generally provides a crystal controlled reference frequency signal to the block  202 . The block  202  generally receives and processes the GPS/GNSS signals. The block  220  may provide data storage for last known satellite fixes, module ID storage, etc. 
         [0031]    In one example, the block  212  may be optional. For example, depending on the application, the block  212  may be omitted. In one example, the block  202  may be implemented with an internal filter. For example, a GPS chipset may have an internal amplifier, filter, and automatic gain control already incorporated (e.g., in connection with anti-jamming capabilities). However, the inclusion of anti-jamming capabilities may affect dead reckoning (DR) performance of the GPS chipset. Dead reckoning generally refers to a process of estimating a current position based upon a previously determined position, or fix, and advancing that position based upon known or estimated speeds (e.g., from sensors within a vehicle) over an elapsed time, and course. 
         [0032]    The optional cellular modem interface  230   a  may be configured as a cellular transceiver for reception and transmission of mobile telephony signals. In one example, the optional cellular modem interface  230   a  may include an antenna configured for operation with a GSM (Global System for Mobile Communications: 
         [0033]    originally Groupe Special Mobile) mobile telephony system. The antenna and the cellular modem may support, in one example, GSM cellular telephone and General Packet Radio Service (GPRS) communication protocols. The cellular modem interface  230   a  may operate with signals in various GSM carrier ranges (e.g., 400/450 MHZ, 850/900 MHZ, 1800/1900 MHZ, etc.). For example, second generation (2G) GSM networks may operate in the 900 or 1800 MHZ bands. In locations where the 900 or 1800 MHZ bands are already allocated (e.g., in the U.S. and Canada), 850 and 1900 MHZ bands may be used. 
         [0034]    GSM modem chips need to be licensed in every country in which the part is sold. When implemented, the optional cellular modem interface  230   a  may comprise a pre-certified (e.g., licensed) drop-in chip to keep costs down. The optional cellular modem interface  230   a  may be connected to the block  204 . In addition to cellular telephony data, the optional cellular modem interface  230   a  may be configured to communicate assisted GPS (aGPS) related data to the system  200  and transmit GPS position information (e.g., using a National Marine Electronics Association (NMEA) standard format). In one example, the aGPS related data may be used to aid in the time to first fix by self-calculating a forward ephemeris using the data. In another example, the interface  230   a  may be used for mobile station based assistance to obtain precise time and/or receive orbital data or almanac for GNSS satellites enabling the system  200  to lock to satellites more rapidly. In still another example, the interface  230   a  may be used for mobile station assisted assistance (e.g., communicating GNSS information to a remote server for the server to process the information into a position and relay the position to the vehicle, taking advantage of surveyed coordinates of a cell tower and/or the cell tower having a better satellite signal, etc.). 
         [0035]    The block  232  may be implemented, in one example, as a detachable smart card. In one example, the block  132  may implement a subscriber identity module (SIM). The block  232  may contain subscriber information and phonebook data for a user. The block  232  generally allows the user to change vehicles including embodiments of the present invention while retaining their information. Alternatively, the user may change carriers (e.g., cellular phone service providers), while retaining the vehicle, simply by changing the block  232 . 
         [0036]    The controller  206  generally connects with the block  202 , the block  204  and the block  208 . The block  208  may implement a CAN transceiver with discrete surface mounted devices. The CAN transceiver  208  generally provides a transceiver interface to the 
         [0037]    CAN bus of the vehicle via the connector  240 . However, other system busses and transceiver interfaces may be implemented accordingly to meet the design criteria of a particular implementation. The system  200  may also include a main power supply  242  that may receive a power supply from the vehicle (e.g., alternator, battery, etc.). In one example, the power supply  242  may be designed to work in vehicles with power supplies ranging from 12 to 48 Volts. However, other supply voltages may be implemented to meet the design criteria of a particular implementation. An optional back-up battery (not shown) may be implemented also to make the system  200  more robust. 
         [0038]    Referring to  FIG. 5 , a diagram is shown illustrating an example application of a OBD-II device in accordance with an embodiment of the invention. A vehicle  400  may include one or more system busses  402  (e.g., a CAN bus, data bus, etc.), an advanced driver assistance system (ADAS)  404 , and a number of sensors and/or actuators distributed around the vehicle. The term sensor generally refers to a device that generates a signal representative of a sensed condition (e.g., temperature, level, position, speed, etc.). The term actuator generally refers to a device that is configured to control a parameter or object in response to a control signal (e.g., solenoid, heater, lamp, etc.). The sensors and/or actuators may include, but are not limited to, engine-related devices  406 , front suspension related devices  408 , driver interface devices  410 , drive train related device  412 , rear suspension related devices  414 , and entertainment related systems  416 . An on board diagnostic (e.g., OBD-II, etc.) port  418  may provide convenient (e.g., just under the dashboard) access to the various vehicle busses  402  allowing connection of the PCB  100 . 
         [0039]    Referring to  FIG. 6 , a diagram illustrating example data flows in accordance with an embodiment of the invention is shown. In various embodiments, a vehicle electronic systems bus (network)  502  communicates data among multiple vehicle systems. The data provided by the vehicle electronic systems bus (network)  502  may be utilized by devices and/or applications including, but not limited to compass  504 , navigation  506 , infotainment  508 , power management  510 , transmission (drive train) control  512 , and driver warning  514 . The data provided by the vehicle electronic systems bus (network)  502  may include information received from and/or based on sensors (e.g., gyros, ABS wheel, accelerometer, etc.)  516  and optional satellite broadcasts  518 . In various embodiments, the PCB  100  in the dangle  90  enables application programs running on one or more auxiliary devices  530   a - 530   n  to obtain highly accurate location information using information from the vehicle electronic systems bus (network)  502 . 
         [0040]    Referring to  FIG. 7 , a flow diagram is shown illustrating a process in accordance with an embodiment of the invention. In embodiments used with vehicles having built-in GPS/GNSS capability, a process  600  may be implemented. The process (or method)  600  may comprise a step (or state)  602 , a step (or state)  604 , a step (or state)  606 , a step (or state)  608 , and a step (or state)  610 . In the step  602 , with the dongle  90  plugged into the on board diagnostic port of the vehicle, a wireless (e.g., WiFi, BT, etc.) 
         [0041]    or wired (e.g., Ethernet, USB, etc.) link may be established between the dongle and an auxiliary device (e.g., smart phone, tablet, etc.). In some embodiments, the wireless link may be automatically established when the auxiliary device is within range of the dangle. In some embodiments, the auxiliary device may be configured to initiate the link when one or more predetermined conditions are met (e.g., input via a user interface, trigger by a near field communication (NFC) signal, cable connection, etc.). 
         [0042]    Once the link with the dangle is established, a built-in GPS/GNSS capability of the auxiliary device may be disabled. For example, location services provided by an operating system of the auxiliary device may be configured to respond to applications with the externally provided navigational data instead of internally generated GPS/GNSS data. In the step  604 , the process  600  pulls messages relating to position, heading, speed, etc. from the vehicle bus or busses. In the step  606 , the dangle converts the message data pulled from the vehicle into navigational information in a format usable by the auxiliary device (e.g., National Marine Electronics Association (NMEA) standard format, etc.). In the step  608 , the dangle transmits the navigational information to the auxiliary device using the wireless or wired link. In the step  610 , the auxiliary device uses the navigational information received from the dongle in place of less accurate internal GPS/GNSS or coarse WiFi location information. In one example, the steps  604 - 610  may be performed continuously. In another example, the steps  604 - 610  may be performed in response to commands (or requests) received from the auxiliary device (e.g., using a command language such as AT or Hayes commands). Referring to  FIG. 8 , a flow diagram is shown illustrating another process in accordance with an embodiment of the invention. In embodiments used with vehicles lacking built-in GPS/GNSS capability, a process  700  may be implemented. The process (or method)  700  may comprise a step (or state)  702 , a step (or state)  704 , a step (or state)  706 , a step (or state)  708 , and a step (or state)  710 . In the step  702 , with the dongle  90  plugged into the on board diagnostic port of the vehicle, a wireless (e.g., WiFi, BT, etc.) or wired (e.g., USB, Ethernet, etc.) link may be established between the dongle and an auxiliary device. In some embodiments, the link may be automatically established when the auxiliary device is within range of the dangle. In some embodiments, the auxiliary device maybe configured to initiate the link when one or more predetermined conditions are met (e.g., connection of dongle to OBD-II port, input via a user interface, trigger by a near field communication (NFC) signal, connection of a cable, etc.). 
         [0043]    Once the link with the dongle is established, a built-in GPS/GNSS capability of the auxiliary device may be disabled and the process  700  may move to the step  704 . In the step  704 , the process  700  pulls messages from various motion-related sensors (e.g., ABS wheel, wheel click, gyro, RPM, speed, etc.) from the vehicle bus or busses. In the step  706 , the dongle uses data from the messages along with the GPS/GNSS chipset, 3-axis gyroscope, and/or accelerometer to generate navigational information. The navigational information may be derived with or without dead reckoning (DR) position solutions depending on the particular implementation. The dongle formats the navigational information for use by the auxiliary device (e.g., using National Marine Electronics Association (NMEA) standard format, etc.). In the step  708 , the dongle transmits the navigational information (with or without DR or 3D DR position information) to the auxiliary device using the wireless or wired link. In the step  710 , the auxiliary device uses the navigational information received from the dongle in place of less accurate internal GPS/GNSS or coarse WiFi information. In one example, the steps  704 - 710  may be performed continuously. In another example, the steps  704 - 710  may be performed in response to commands (or requests) received from the auxiliary device (e.g., using a command language such as AT or Hayes commands). 
         [0044]    While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the scope of the invention.