CROSS-REFERENCE TO RELATED APPLICATIONSThis application is a continuation of U.S. patent application Ser. No. 16/842,426 (filed 7 Apr. 2020), which is a continuation of U.S. patent application Ser. No. 15/896,845 (filed 14 Feb. 2018, now U.S. Pat. No. 10,650,628), which claims priority to U.S. Provisional Application No. 62/583,130 (filed 8 Nov. 2017). The entire disclosures of these applications are incorporated herein by reference.
FIELDEmbodiments of the subject matter disclosed herein relate to systems and methods for programming electronic keys of vehicles.
BACKGROUNDIgnition systems of many known vehicles are activated by keys. Engine control units of the vehicles are programmed to include unique identifying information of keys that are permitted to start ignition systems of the vehicles. For example, information that uniquely identifies a key can be stored in the key and in a memory included in and/or accessible by the engine control unit of a vehicle. The engine control unit can electronically (e.g., through wired and/or wireless connections) read the identifying information stored in the key and see if this information matches or otherwise corresponds with the identifying information stored in the vehicle. If the key information matches the stored information, then the engine control unit allows the key to start the vehicle. Otherwise, the engine control unit will not allow the key to start the vehicle.
One problem is the need to program the engine control unit of a vehicle to accept a replacement key. The original key or keys for a vehicle may no longer available due to loss, repossession, etc. Currently, programming the engine control unit of a vehicle to accept a different or new key (e.g., a replacement key) requires an individual with specialized training and education (e.g., a locksmith) to travel to the location of the vehicle to program the engine control unit of the vehicle to accept the replacement key. This programming can require specialized skills or experience of the locksmith, and can involve complicated and costly hardware equipment. A person wanting to program the engine control unit to accept the replacement key may need to wait a significant amount of time before the locksmith is available, and typically is required to pay for the presence and work of the locksmith. This can add to the cost of replacing the key and can limit or restrict re-sale opportunities for the person to recoup financial losses on the lien or note on the vehicle.
Additionally, some entities that handle or possess many vehicles may be unable to verify whether the engine control unit of one or more vehicles has been successfully programmed to accept a replacement key and, if a replacement key does not work to start a vehicle, may be unable to determine whether the non-functioning replacement key is due to loss of the key, error by the locksmith, or the like. For example, repossession company may hire a first locksmith to program an engine control unit of a repossessed vehicle to accept a replacement key, but the replacement key may get lost while the vehicle is being transported to an auction company from the repossession company by a transportation company.
As another example, a second locksmith hired by the auction company may contend that the engine control unit of the vehicle was not successfully programmed to accept the replacement key (even if the engine control unit was successfully programmed to accept the replacement key). The auction company may then pay for the second locksmith to program the engine control unit of the vehicle to accept another, different replacement key and may attempt to pass this cost onto the repossession company. Without being able to verify or prove that the previous programming of the engine control unit by the first locksmith before the vehicle was sent for transportation was successful, the repossession company may be forced to pay for the additional replacement key and additional programming of the engine control unit.
BRIEF DESCRIPTIONIn one embodiment, a method includes coupling an onboard diagnostic interface device with an engine control unit of a vehicle, communicatively linking the interface device with a mobile, hand held device, communicatively linking (via one or more communication networks) the hand held device with a back end programming machine that is remotely located from the vehicle, communicating identifying information about the vehicle to the programming machine via the interface device, the hand held device, and the one or more communication networks, determining (at the programming machine) one or more actions and programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle, sending the one or more actions and programming information from the programming machine to the hand held device via the one or more communication networks, and programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the one or more actions and programming information.
In one embodiment, a system includes a back-end programming machine including hardware circuitry and one or more processors configured to establish a communication connection with an engine control unit of a vehicle that is remotely located from the programming machine via an onboard diagnostic interface device, a mobile, hand held device, and one or more communication networks. The one or more processors are configured to receive identifying information about the vehicle from the engine control unit via the interface device, the hand-held device, and the one or more communication networks. The one or more processors also are configured to determine one or more actions and programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle. The one or more processors are configured to send the one or more actions and programming information to the hand-held device via the one or more communication networks and to program the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the one or more actions and programming information.
In one embodiment, a method includes coupling an onboard diagnostic interface device with an engine control unit of a vehicle, communicatively linking (via one or more communication networks) the interface device with a back end programming machine that is remotely located from the vehicle, communicating identifying information about the vehicle to the programming machine via the interface device and the one or more communication networks, determining (at the programming machine) programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle, sending the programming information from the programming machine to the interface device via the one or more communication networks, and programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the one or more actions and programming information.
In one embodiment, a system includes a back-end programming machine including hardware circuitry and one or more processors configured to establish a communication connection with an engine control unit of a vehicle that is remotely located from the programming machine via an onboard diagnostic interface device and one or more communication networks. The one or more processors are configured to receive identifying information about the vehicle from the engine control unit via the interface device and the one or more communication networks. The one or more processors also configured to determine programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle. The one or more processors are configured to send the programming information to the interface device via the one or more communication networks and to program the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the programming information.
BRIEF DESCRIPTION OF THE DRAWINGSThe presently described subject matter will be better understood from reading the following description of non-limiting embodiments, with reference to the attached drawings, wherein below:
FIG. 1 illustrates one embodiment of a remote programming system;
FIG. 2 illustrates another embodiment of a remote programming system;
FIG. 3 illustrates another embodiment of a remote programming system; and
FIG. 4 illustrates a flowchart of one embodiment of a method for remotely programming an engine control unit of a vehicle to accept a replacement key for the vehicle.
DETAILED DESCRIPTIONFIG. 1 illustrates one embodiment of aremote programming system100. Thesystem100 operates to remotely program an engine control unit102 (“ECU” inFIG. 1) of avehicle104 to accept akey106, such as a replacement key for a lost or otherwise unavailable previous key of thevehicle104. In one embodiment, thekey106 is a tangible object that can include hardware circuitry that stores and communicates unique identifying information of thekey106 to theengine control unit102. Optionally, thekey106 is an intangible electronic key. For example, thekey106 can be a fingerprint, voice command, face, or the like, that is recognized by theengine control unit102 as being associated with a person or group of persons allowed to activate thevehicle104. Theengine control unit102 can include a fingerprint scanner, a microphone, a camera, a sensor for a structured light array, or the like, that can detect the fingerprint, voice command, face, or the like, of the person in thevehicle104 to determine whether the fingerprint, voice command, face, or the like, belongs to or is from a person allowed to start thevehicle104. Theengine control unit102 can include or have access to a tangible and non-transitory computer readable medium (also referred to as a memory or memory device), such as a read only or random access computer memory. Identifying information of one or more keys can be stored in this memory device and accessible by theengine control unit102.
Thekey106 may send or otherwise communicate (e.g., through wired communication, through radio frequency identification communication or other wireless communication, or the like) the unique identifying information stored in thekey106 to theengine control unit102. Theengine control unit102 allows thevehicle104 to start if the unique identifying information obtained from thekey106 matches the unique identifying information stored in the memory accessible by or included in theengine control unit102. If the unique identifying information obtained from thekey106 does not match or otherwise correspond with the unique identifying information stored in the memory accessible by or included in theengine control unit102, then theengine control unit102 does not allow thekey106 to start thevehicle104. While the description herein focuses on automobiles as the vehicles, optionally, one or more embodiments may relate to other vehicles, such as marine vessels or other vehicles requiring use of akey106 to start an ignition system of the vehicle.
Thekey106 can represent a replacement key for thevehicle104. For example, the key previously used to start thevehicle104 may be lost, stolen, or otherwise unavailable (e.g., during a repossession of thevehicle104, the currently used key may not be available). In operation, an operator of thesystem100 contacts a manufacturer of thevehicle104 to obtain a key code. This code can indicate an acceptable shape of thekey106 for inserting into an ignition of thevehicle104. The operator can obtain thekey106 having the acceptable shape, but thekey106 may have unique identifying information that does not match the acceptable unique identifying information stored in theengine control unit102. Therefore, the operator needs to program or re-program theengine control unit102 to accept the unique identifying information of thekey106 to allow for thekey106 to start thevehicle104.
In one embodiment, the operator couples an onboard diagnostic interface device108 (“OBD Interface” inFIG. 1) with theengine control unit102. For example, theinterface device108 can be an onboard diagnostic card (e.g., OBD2) having a connector that couples or otherwise engages with a matching connector of theengine control unit102. The Coupling theinterface device108 with theengine control unit102 allows theinterface device108 and theengine control unit102 to communicate with each other. Theinterface device108 and/or theengine control unit102 can include wireless transceiving circuitry (e.g., antenna, transponder, modem, etc.) that allows theinterface device108 and theengine control unit102 to wirelessly communicate with each other.
Theinterface device108 can be an onboard diagnostic device that couples with theengine control unit102 to obtain data signals from theengine control unit102. These signals can include diagnostic information about thevehicle104, a current and/or past locations of the vehicle104 (e.g., from a global positioning system receiver onboard the vehicle104), indications of whether the unique identifying information of the key for thevehicle104 has been changed and/or when the change occurred, indications of whether the unique identifying information for the key was changed, etc.
In the illustrated embodiment, theinterface device108 links with an electronic mobile or hand-helddevice110, such as a mobile phone, a tablet computer, a laptop computer, or the like. The hand-helddevice110 represents hardware circuitry that includes and/or is connected with one or more processors (e.g., one or more microprocessors, field programmable gate arrays, and/or integrated circuits) that perform operations described herein. The hand-helddevice110 can operate using one or more software applications that cause the hand-helddevice110 to be programmed to program a new or replacement identifying information for thereplacement key106 in theengine control unit102. Themobile device110 can include wireless transceiving circuitry that wirelessly communicates with theinterface device108. For example, themobile device110 and/orinterface device108 can include Bluetooth™ communication circuitry, communication circuitry that wirelessly communicates using the IEEE 802.11 standards, radio frequency identification communication circuitry, or the like. Optionally, theinterface device108 can be a wire, cable, or the like, that is connected with and communicatively couples theengine control unit102 with the hand-helddevice110.
The hand-helddevice110 can include an electronic display (e.g., a display screen, a projector, etc.) that can present information or guidance to the operator to walk the operator through the process of coding thereplacement key106 into the memory of theengine control unit102. The hand-helddevice110 and theinterface device108 establish a wired or wireless communication link between thedevices108,110, and the hand-helddevice110 optionally obtains information from theengine control unit102 via theinterface device108. For example, the hand-helddevice110 can obtain the vehicle identification number of thevehicle104, the unique identifying information of the previous orcurrent key106 of thevehicle104, the last time the key106 was replaced, the location(s) where thevehicle104 currently is and/or has traveled in the past, or the like.
The hand-helddevice110 communicates with a remotely located back end programming machine112 (“Back End Prog Machine” inFIG. 1) via or through one or morecomputerized communication networks114. For example, a cell phone of the operator can run or otherwise operate a software application that communicates with both theinterface device108 and the back-end programming machine112. Theinterface device108 may be local (e.g., within two meters) to the hand-helddevice110, while theprogramming machine112 is remotely located (e.g., in another building, in another ZIP code, in another city, in another county, in another state, or in another country) from the hand-helddevice110 and thevehicle104. The network(s)114 can represent one or more communication networks formed from computer devices such as routers, antennas, modems, switches, or the like, that communicate data (e.g., data packets) via wired and/or wireless connections between the computer devices in the network(s)114. The network(s)114 can include public and/or private communication networks. In one embodiment, thenetwork114 is formed entirely of the publicly available portions of the Internet.
Theprogramming machine112 also represents hardware circuitry that includes and/or is connected with one or more processors. For example, theprogramming machine112 can be one or more servers, databases, or other computer devices. In one embodiment, theprogramming machine112 is not a single physical machine (e.g., hardware) but may be software running on cloud-based computing devices. Interaction with such amachine112 can involve interacting with a web-based dashboard, web site, or the like, to remotely program a key.
Theprogramming machine112 stores and/or operates using one or more software applications that determine action sequences to be performed to program theengine control unit102 based on identifying information provided by the hand-helddevice110. For example, different sequences of actions may be associated with different makes and/or models ofvehicles104 for programming theengine control units102 of thevehicles104 to accept and operate using thereplacement key106. One example of such a sequence is turning on the hazard lights of thevehicle104, followed by turning thereplacement key106 in the ignition to the ON position, followed by sending a designated sequence of data packets containing authentication information to theengine control unit102, followed by sending the unique identifying information for thereplacement key106, followed by turning off the hazard lights of thevehicle104. Another sequence could be turning thereplacement key106 in the ignition of thevehicle104 to a designated position (e.g., ON), followed by pressing an unlock button on thereplacement key106, followed by pressing and holding a button on the dashboard of thevehicle104, followed by pressing the lock button on the replacement key106 three times, followed by sending a designated sequence of data packets containing the unique identifying information of thereplacement key106. Other sequences may be stored in or at theprogramming machine112 and associated with different makes and/or models of thevehicles104.
Theprogramming machine112 receives one or more data signals from the hand-helddevice110 via the network(s)114 that identifies thevehicle104, such as by providing the make, model, year, identification number, and the like, from theinterface device108 to the hand-helddevice110, and from the hand-helddevice110 to theprogramming machine112 via the network(s)114. Optionally, other information can be obtained and provided to themachine112 in addition to or in place of the previously listed information.
Theprogramming machine112 receives the information from theengine control unit102 of thevehicle104 via the communication bridge between theengine control unit102 and themachine112 that is formed by theinterface device108, the hand-helddevice110, and the network(s)114. Theprogramming machine112 uses this information received from theengine control unit102 to determine (e.g., look up in a table, database, or the like), the action sequence, authentication information, and the like, that is needed for re-programming theengine control unit102 to activate thevehicle104 using the replacement key106 (and to prevent another key, including the current or previous key(s), from activating the vehicle104). Theprogramming machine112 sends instruction signals to the hand-helddevice110 that directs the hand-helddevice110 to instruct the operator of thedevice110 at thevehicle104 to perform one or more actions, to confirm performance of one or more actions, and/or to obtain other information. The hand-helddevice110 can provide these instructions via one or more output devices, such as a touchscreen or display screen of thedevice110, via speakers of thedevice110, or the like.
The information sent by theprogramming machine112 to the hand-helddevice110 can be presented to the operator via the device110 (e.g., to perform one or more actions during the programming of the engine control unit102) and/or can be sent to theengine control unit102. In one embodiment, an operator of theprogramming machine112 can monitor progress of the programming of theengine control unit102 and optionally can provide instructions to guide the operator of the hand-helddevice110 to reprogram theengine control unit102. Performance of the actions in the designated sequence and/or storage of information provided by theprogramming machine112 to theengine control unit102 can program theengine control unit102 to accept thereplacement key106. Theprogramming machine112 and/or hand-helddevice110 can exchange other information, such as data indicating that theengine control unit102 was successfully programmed or re-programmed to accept thereplacement key106, the location where theengine control unit102 was when the programming or re-programming of theengine control unit102 occurred, or the like. This information can be stored at theprogramming machine112. Thevehicle104 can then be turned on or off using thereplacement key106, and other keys (e.g., previous keys) may no longer be used to turn thevehicle104 on or off.
Optionally, the programming of theengine control unit102 to accept the new key106 (and not accept the previous or other keys) can be automatically performed by theprogramming machine112 without additional operator intervention. For example, theprogramming machine112 can automatically re-program theengine control unit102 responsive to a communication connection between theprogramming machine112 and theengine control unit102 via theOBD interface108 and thedevice110. This re-programming can occur without instructions being provided to a user on the device110 (or elsewhere) and/or without requiring the operator to perform one or more actions with the vehicle.
The additional information that is sent to theprogramming machine112, such as the successful reprogramming of theengine control unit102, the location where the reprogramming occurred, etc., can be communicated to the hand-helddevice110 or to other computing devices to verify when and/or where the successful programming of theengine control unit102 to accept thereplacement key106 occurred. This information can be useful to determine whether a party's contention that theengine control unit102 has not been programmed to accept the replacement key106 (e.g., an unscrupulous locksmith seeking to perform and charge for unnecessary services), to determine whether theengine control unit102 was programmed to accept thereplacement key106 before possession of thevehicle104 was transferred to a transportation company (e.g., to determine who is responsible for the loss of the replacement key106), or the like.
Following reprogramming of theengine control unit102, the hand-helddevice110 can be communicatively decoupled from the interface device108 (e.g., by interrupting or terminating the Wi-Fi or Bluetooth™ connection therebetween), theinterface device108 can be decoupled from thevehicle104 andengine control unit102, and/or the hand-helddevice110 can be communicatively decoupled from theprogramming machine112. Theprogramming machine112 can be used to reprogram the same or anotherengine control unit102 via the same or different network(s)114, hand helddevice110, and/orinterface device108. At least one technical effect of the inventive subject matter described herein includes the ability to remotely reprogram engine control units of vehicles without having a person with specialized training or equipment being required to travel to the location of the vehicles. This can allow for many more engine control units to be reprogrammed from a single location in much less time than is achievable by currently known technologies and techniques.
The various components of thesystem100 include separate pieces or items of hardware that are remotely located from each other and that operate in concert with each other to improve the operation of theengine control unit102 and thevehicle104. For example, theprogramming machine112 may be the only component of thesystem100 that includes (at least some of) the information needed to reprogram theengine control unit102 to accept thereplacement key106. Theinterface device108 may be the only component of thesystem100 that is able to couple with and interface with theengine control unit102 to both obtain information from theengine control unit102 that is needed to reprogram theunit102 for thereplacement key106 and to provide information to theengine control unit102 for programming theengine control unit102 to accept thereplacement key106. But, theinterface device108 and theprogramming machine112 may not be capable of communicating with each other over large distances. Therefore, the hand-helddevice110 and the network(s)114 are able to use the communication hardware and circuitry contained therein to allow theprogramming machine112 to remotely program theengine control unit102. Additionally, the output capabilities of the hand-helddevice110 allow for theprogramming machine112 to provide instructions to an operator of the hand-helddevice110 to implement actions required to reprogram theengine control unit102.
FIG. 2 illustrates another embodiment of aremote programming system200. Thesystem200 operates to remotely program theengine control unit102 of thevehicle104 to accept thereplacement key106 similar to thesystem100 described in connection withFIG. 1. Several of the same components in thesystem100 are also included in thesystem200, and can operate in the same or equivalent manner.
One difference between thesystems100,200 is the absence of the hand-helddevice110 shown inFIG. 1. The transceiving circuitry of theinterface device108 can communicate with theprogramming machine112 via the network(s)114 to program theengine control unit102 without communicating via or using the hand-helddevice110. The information sent from theprogramming machine112 can be sent to theinterface device108 without going through the hand-helddevice110, and information sent from theengine control unit102 and/orinterface device108 can be sent to theprogramming machine112 without going through the hand-helddevice110.
FIG. 3 illustrates another embodiment of aremote programming system300. Thesystem300 operates to remotely program theengine control unit102 of thevehicle104 to accept thereplacement key106 similar to thesystem100 described in connection withFIG. 1. Several of the same components in thesystem100 are also included in thesystem300, and can operate in the same or equivalent manner.
One difference between thesystems100,300 is the absence of the remotely located programming machine112 (shown inFIGS. 1 and 2) and/or the use of the network(s)114. For example, the information stored in or otherwise provided by theprogramming machine112 via the network(s)114 to the hand-helddevice110 can be stored in thedevice110 or can be obtained from another location by thedevice110. Thedevice110 can then act or operate as theprogramming machine112 to program theengine control unit102 to accept thereplacement key106.
FIG. 4 illustrates a flowchart of one embodiment of amethod400 for remotely programming an engine control unit of a vehicle to accept a replacement key for the vehicle. Themethod400 can demonstrate operations performed by one or more of thesystems100,200,300 to program or reprogram theengine control unit102 of avehicle104 to be activated by areplacement key106. At402, an onboard interface device is coupled with an engine control unit of a vehicle. For example, theinterface device108 can be conductively coupled with a connector of theengine control unit102. At404, the interface device is communicatively coupled with a hand-held device. For example, theinterface device108 and/or the hand-helddevice110 can create a wireless and/or wired connection therebetween for communication between thedevices108,110. Optionally, theinterface device108 is not communicatively coupled with the hand-held device, as described below.
At406, the hand-held device is linked with a back-end programming machine via one or more communication networks. For example, the hand-helddevice110 can be communicatively coupled with the remotely locatedprogramming machine112 via the one ormore networks114. Optionally, theinterface device108 is not communicatively coupled with the hand-helddevice110, but is communicatively coupled with theprogramming machine112 via the network(s)114.
At408, identifying information about the vehicle is communicated from the engine control unit of the vehicle, the interface device, and/or the hand-held device to the programming machine. This information can include a vehicle identification number, a confirmation or other indication from an operator of the hand-held device, or the like. This information allows the programming machine to determine what information and/or sequence of actions are needed to program the engine control unit to accept a replacement key.
At410, instructions for presentation on the hand-held device are obtained from the programming machine. For example, directions on which buttons or other input devices of the vehicle to actuate, directions on when to actuate the buttons or input devices, or other directions, can be obtained by theprogramming machine112 based on the identifying information about thevehicle104. Theprogramming machine112 can direct the hand-helddevice110 to present alphanumeric text, pictures, videos, etc., to the operator of the hand-helddevice110 to walk the operator through the sequence of actions needed to program theengine control unit102 to accept thereplacement key106. Optionally, the hand-helddevice110 is not used, and theprogramming machine112 can perform the required sequence of actions via signals remotely sent via the network(s)114 to theengine control unit102, can direct theengine control unit102 to provide the instructions to the operator (e.g., via a display screen and/or speakers onboard the vehicle104), or can communicate the instructions to the operator in another way.
At412, programming information is received by the engine control unit from the programming machine. For example, secure and/or unique data signals that direct theengine control unit102 to be programmed or reprogrammed to accept thereplacement key106 can be sent from theprogramming machine112 to theengine control unit102 via the hand-helddevice110 and/orinterface device108.
At414, the engine control unit is programmed to accept the replacement key. For example, the sequence of actions performed by the operator of the hand-helddevice110 and/or the information sent to theengine control unit102 from the remotely locatedprogramming machine112 via the hand-helddevice110 and/orinterface device108 can direct theengine control unit102 to no longer accept other keys to activate thevehicle104, but to only accept thereplacement key106 to activate thevehicle104. As described above, other information can be communicated from theengine control unit102 and/or hand-helddevice110 to theprogramming machine112, such as whether the programming of theengine control unit102 was successful, when and/or where the successful programming occurred, and the like.
One or more embodiments of the systems and methods described herein allow for the specialized training and expertise involved in programming engine control units of vehicles to accept replacement keys to be remotely located from the vehicles while also programming the engine control units of the vehicles. This permits many persons not having the specialized training or expertise (e.g., of a locksmith) to operate in conjunction with the programming machine using devices (e.g., a mobile phone and onboard diagnostic device) that many people or companies already possess to program the engine control units to accept replacement keys. Additionally, the trained persons having the knowledge and expertise to program the engine control units can be located in a single location and to concurrently work with many remotely located vehicles to reprogram many more engine control units at a faster rate than currently is available (e.g., due to the need for the specialized persons to travel to the vehicle locations and/or to move between vehicle locations).
In one embodiment, a method includes coupling an onboard diagnostic interface device with an engine control unit of a vehicle, communicatively linking the interface device with a mobile, hand held device, communicatively linking (via one or more communication networks) the hand held device with a back end programming machine that is remotely located from the vehicle, communicating identifying information about the vehicle to the programming machine via the interface device, the hand held device, and the one or more communication networks, determining (at the programming machine) one or more actions and programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle, sending the one or more actions and programming information from the programming machine to the hand held device via the one or more communication networks, and programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the one or more actions and programming information.
Optionally, the hand-held device is a mobile phone.
Optionally, the interface device is an onboard diagnostic card.
Optionally, the programming machine is remotely located from the vehicle by the programming machine being in one or more of a different building, a different city, a different ZIP code, a different state, or a different country than the vehicle.
Optionally, prior to programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle, the engine control unit is restricted to only accepting another previous key to activate the vehicle.
Optionally, coupling the interface device with the engine control unit includes plugging the interface device into a connector interface of the engine control unit in the vehicle.
Optionally, communicatively linking the interface device with the hand-held device includes establishing a wireless communication connection between the interface device and the hand-held device.
Optionally, communicatively linking the interface device with the hand-held device includes connecting the interface device and the hand-held device with one or more wires or cables.
Optionally, communicatively linking the hand-held device with the programming machine includes establishing a wireless communication connection between the hand-held device and the one or more communication networks.
Optionally, communicating the identifying information about the vehicle to the programming machine via the interface device includes obtaining the identifying information from the engine control unit using the interface device. The identifying information can include at least a vehicle identification number.
Optionally, determining the one or more actions and programming information needed to program the engine control unit of the vehicle to accept the replacement key includes using the identifying information about the vehicle to select the one or more actions and programming information from among different sets of actions and programming information that are associated with different vehicles.
Optionally, the one or more actions that are sent to the hand-held device include operations to be performed by an operator of the hand-held device using the vehicle.
Optionally, the method also includes directing the hand-held device to present the operator with the one or more actions to be performed via an output device of the hand-held device.
Optionally, the method also includes sending additional information from the engine control unit to the programming machine via the interface device, the hand-held device, and the one or more communication networks.
Optionally, the additional information includes an indication that the engine control unit was successfully programmed to accept the replacement key.
Optionally, the additional information includes a location of the vehicle when the engine control unit was programmed to accept the replacement key.
In one embodiment, a system includes a back-end programming machine including hardware circuitry and one or more processors configured to establish a communication connection with an engine control unit of a vehicle that is remotely located from the programming machine via an onboard diagnostic interface device, a mobile, hand held device, and one or more communication networks. The one or more processors are configured to receive identifying information about the vehicle from the engine control unit via the interface device, the hand-held device, and the one or more communication networks. The one or more processors also are configured to determine one or more actions and programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle. The one or more processors are configured to send the one or more actions and programming information to the hand-held device via the one or more communication networks and to program the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the one or more actions and programming information.
Optionally, the hand-held device is a mobile phone.
Optionally, the interface device is an onboard diagnostic card.
Optionally, the programming machine is remotely located from the vehicle by the programming machine being in one or more of a different building, a different city, a different ZIP code, a different state, or a different country than the vehicle.
Optionally, prior to programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle, the engine control unit is restricted to only accepting another previous key to activate the vehicle.
Optionally, the one or more processors are configured to be communicatively connected with the interface device and the hand-held device via a wireless communication connection between the interface device and the hand-held device.
Optionally, the one or more processors are configured to be communicatively coupled with the engine control unit via one or more wires or cables between the hand-held device and the interface device.
Optionally, the one or more processors are configured to be communicatively connected with the hand-held device via a wireless communication connection between the hand-held device and the one or more communication networks.
Optionally, the one or more processors are configured to receive the identifying information about the vehicle by obtaining the identifying information from the engine control unit using the interface device. The identifying information can include at least a vehicle identification number.
Optionally, the one or more processors are configured to determine the one or more actions and programming information needed to program the engine control unit of the vehicle to accept the replacement key by using the identifying information about the vehicle to select the one or more actions and programming information from among different sets of actions and programming information that are associated with different vehicles.
Optionally, the one or more processors are configured to send the one or more actions to the hand-held device as instructions on operations to be performed by an operator of the hand-held device using the vehicle.
Optionally, the programming machine is configured to direct the hand-held device to present the operator with the one or more actions to be performed via an output device of the hand-held device.
Optionally, the one or more processors are configured to obtain additional information from the engine control unit to the programming machine via the interface device, the hand-held device, and the one or more communication networks.
Optionally, the additional information includes an indication that the engine control unit was successfully programmed to accept the replacement key.
Optionally, the additional information includes a location of the vehicle when the engine control unit was programmed to accept the replacement key.
In one embodiment, a method includes coupling an onboard diagnostic interface device with an engine control unit of a vehicle, communicatively linking (via one or more communication networks) the interface device with a back end programming machine that is remotely located from the vehicle, communicating identifying information about the vehicle to the programming machine via the interface device and the one or more communication networks, determining (at the programming machine) programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle, sending the programming information from the programming machine to the interface device via the one or more communication networks, and programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the one or more actions and programming information.
Optionally, the interface device is an onboard diagnostic card.
Optionally, the programming machine is remotely located from the vehicle by the programming machine being in one or more of a different building, a different city, a different ZIP code, a different state, or a different country than the vehicle.
Optionally, prior to programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle, the engine control unit is restricted to only accepting another previous key to activate the vehicle.
Optionally, coupling the interface device with the engine control unit includes plugging the interface device into a connector interface of the engine control unit in the vehicle.
Optionally, communicatively linking the interface device with the programming machine includes establishing a wireless communication connection between the interface device and the one or more communication networks.
Optionally, communicating the identifying information about the vehicle to the programming machine via the interface device includes obtaining the identifying information from the engine control unit using the interface device. The identifying information can include at least a vehicle identification number.
Optionally, determining the programming information needed to program the engine control unit of the vehicle to accept the replacement key includes using the identifying information about the vehicle to select the programming information from among different sets of programming information that are associated with different vehicles.
Optionally, the method also includes sending additional information from the engine control unit to the programming machine via the interface device and the one or more communication networks.
Optionally, the additional information includes an indication that the engine control unit was successfully programmed to accept the replacement key.
Optionally, the additional information includes a location of the vehicle when the engine control unit was programmed to accept the replacement key.
In one embodiment, a system includes a back-end programming machine including hardware circuitry and one or more processors configured to establish a communication connection with an engine control unit of a vehicle that is remotely located from the programming machine via an onboard diagnostic interface device and one or more communication networks. The one or more processors are configured to receive identifying information about the vehicle from the engine control unit via the interface device and the one or more communication networks. The one or more processors also configured to determine programming information needed to program the engine control unit of the vehicle to accept a replacement key to activate the vehicle. The one or more processors are configured to send the programming information to the interface device via the one or more communication networks and to program the engine control unit of the vehicle to accept the replacement key to activate the vehicle using the programming information.
Optionally, the interface device is an onboard diagnostic card.
Optionally, the programming machine is remotely located from the vehicle by the programming machine being in one or more of a different building, a different city, a different ZIP code, a different state, or a different country than the vehicle.
Optionally, prior to programming the engine control unit of the vehicle to accept the replacement key to activate the vehicle, the engine control unit is restricted to only accepting another previous key to activate the vehicle.
Optionally, the one or more processors are configured to be communicatively connected with the interface device via a wireless communication connection between the interface device and the one or more communication networks.
Optionally, the one or more processors are configured to receive the identifying information about the vehicle by obtaining the identifying information from the engine control unit using the interface device. The identifying information can include at least a vehicle identification number.
Optionally, the one or more processors are configured to determine the programming information needed to program the engine control unit of the vehicle to accept the replacement key by using the identifying information about the vehicle to select the programming information from among different sets of programming information that are associated with different vehicles.
Optionally, the one or more processors are configured to obtain additional information from the engine control unit to the programming machine via the interface device and the one or more communication networks.
Optionally, the additional information includes an indication that the engine control unit was successfully programmed to accept the replacement key.
Optionally, the additional information includes a location of the vehicle when the engine control unit was programmed to accept the replacement key.
As used herein, the terms “module”, “system,” “device,” “circuit,” or “unit,” may include a hardware and/or software system and circuitry that operates to perform one or more functions. For example, a module, unit, device, circuit, or system may include a computer processor, controller, or other logic-based device that performs operations based on instructions stored on a tangible and non-transitory computer readable storage medium, such as a computer memory. Alternatively, a module, unit, device, circuit, or system may include a hard-wired device that performs operations based on hard-wired logic and circuitry of the device. The modules, units, circuits, or systems shown in the attached figures may represent the hardware and circuitry that operates based on software or hardwired instructions, the software that directs hardware to perform the operations, or a combination thereof. The modules, systems, devices, circuits, or units can include or represent hardware circuits or circuitry that include and/or are connected with one or more processors, such as one or computer microprocessors.
As used herein, the terms “software” and “firmware” are interchangeable, and include any computer program stored in memory for execution by a computer, including RAM memory, ROM memory, EPROM memory, EEPROM memory, and non-volatile RAM (NVRAM) memory. The above memory types are exemplary only, and are thus not limiting as to the types of memory usable for storage of a computer program.
It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described embodiments (and/or aspects thereof) may be used in combination with each other. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the inventive subject matter without departing from its scope. While the dimensions and types of materials described herein are intended to define the parameters of the inventive subject matter, they are by no means limiting and are exemplary embodiments. Many other embodiments will be apparent to one of ordinary skill in the art upon reviewing the above description. The scope of the inventive subject matter should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.” Moreover, in the following claims, the terms “first,” “second,” and “third,” etc. are used merely as labels, and are not intended to impose numerical requirements on their objects. Further, the limitations of the following claims are not written in means-plus-function format and are not intended to be interpreted based on 35 U.S.C. § 112(f), unless and until such claim limitations expressly use the phrase “means for” followed by a statement of function void of further structure.
This written description uses examples to disclose several embodiments of the inventive subject matter, including the best mode, and also to enable one of ordinary skill in the art to practice the embodiments of inventive subject matter, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the inventive subject matter is defined by the claims, and may include other examples that occur to one of ordinary skill in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.
The foregoing description of certain embodiments of the present inventive subject matter will be better understood when read in conjunction with the appended drawings. To the extent that the figures illustrate diagrams of the functional blocks of various embodiments, the functional blocks are not necessarily indicative of the division between hardware circuitry. Thus, for example, one or more of the functional blocks (for example, processors or memories) may be implemented in a single piece of hardware (for example, a general purpose signal processor, microcontroller, random access memory, hard disk, or the like). Similarly, the programs may be stand alone programs, may be incorporated as subroutines in an operating system, may be functions in an installed software package, or the like. The various embodiments are not limited to the arrangements and instrumentality shown in the drawings.
As used herein, an element or step recited in the singular and proceeded with the word “a” or “an” should be understood as not excluding plural of said elements or operations, unless such exclusion is explicitly stated. Furthermore, references to “one embodiment” of the present invention are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. Moreover, unless explicitly stated to the contrary, embodiments “comprising,” “comprises,” “including,” “includes,” “having,” or “has” an element or a plurality of elements having a particular property may include additional such elements not having that property.