System and method for monitoring and reprogramming wireless ECUs in real time - Patents.com

A cloud-based system allows for real-time monitoring and reprogramming of vehicle ECUs, addressing limitations in existing systems by enabling remote calibration and data logging, enhancing vehicle performance and maintenance efficiency.

JP7680518B2Active Publication Date: 2025-05-20EZ LYNK SEZC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2023207329
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-08-04
Filing Date
2023-12-08
Publication Date
2025-05-20
Estimated Expiration
2036-09-08

AI Technical Summary

Technical Problem

Existing systems for monitoring and reprogramming Engine Control Units (ECUs) in vehicles are limited in their ability to provide real-time updates and diagnostics, especially for aftermarket modifications and performance enhancements, and lack efficient methods for remote calibration and parameter tuning.

Method used

A cloud-based system that includes a client device connected to a local device within the vehicle, allowing for remote monitoring, data logging, and real-time reprogramming of ECUs through a wireless connection, enabling updates to engine parameters and lookup tables via a mobile app, and providing comprehensive vehicle diagnostics and data management.

Benefits of technology

Enables real-time monitoring and reprogramming of ECUs, facilitating efficient performance enhancements and diagnostics, allowing for remote calibration and data logging, thereby improving vehicle management and maintenance efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007680518000002
    Figure 0007680518000002
  • Figure 0007680518000003
    Figure 0007680518000003
  • Figure 0007680518000004
    Figure 0007680518000004
Patent Text Reader

Abstract

To provide methods, systems, and apparatuses for managing firmware, settings, and parameters of an automotive controller using a local device, a client device, and a system server.SOLUTION: In a system 100 disclosed herein, a local device is connected to an automotive controller and is wirelessly connected to a client device. The client device is connected to a system server and is configured to receive engine data from a local device that has received the engine data from the automotive controller, and send the engine data to the server system. Firmware, settings, and parameter updates are selected by the client device, sent to the local device, and then sent to the automotive controller.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a system and method for monitoring and reprogramming wireless ECUs in real time. [Background technology]

[0002] An Engine Control Unit (ECU) is a widely used type of electronic controller that controls a series of actuators in an internal combustion engine to ensure optimal engine functioning. It does this by reading the values ​​of numerous sensors in the engine bay and interpreting the received data using look-up tables that regulate the engine's actuators.

[0003] The ECU monitors various sensors in the vehicle, such as sensors for oxygen level, coolant temperature, air flow rate, air intake, crankshaft angle, throttle position, camshaft angle, engine knock, etc. Lookup tables provide feedback information to regulate and control ignition timing, camshaft position, fuel injector input, fuel pump input, fuel pump pressure, cooling fan speed, admission control system, turbocharger control, traction control, and transmission gear selection. In many cases, the ECU sends an error code to the vehicle's instrument panel indicating an imminent problem, such as overheating or a service requirement such as an oil change. In some cases, the error code activates a warning light that the dealer must clear.

[0004] Some ECUs are programmable. Modern ECUs incorporate a microprocessor that can process inputs from engine sensors in real time. The microprocessor stores its programming in firmware in a flash memory or EPROM attached to the microprocessor's CPU.

[0005] Programmable ECUs are required when significant aftermarket modifications are required to improve performance. Such modifications often include the addition of turbocharger systems, intercooler systems, or modified exhaust systems. Programmable ECUs are also used for several vehicle systems that receive periodic updates from the vehicle manufacturer, such as the engine control module (ECM), transmission control module (TCM), body control module, antilock braking system (ABS), airbag control module, etc. Each ECU is remapped or reprogrammed to match the system's functionality to the required modifications and / or to update the ECU's software and parameters. Other modifications that the ECU may remap for high performance engines include ignition timing, maximum RPM, water temperature compensation, low fuel pressure regulator and closed loop lambda (to adjust the target air fuel ratio), turbocharger wastegate control, staged fuel injection, variable speed cam timing, gear control, and turbocharger anti-lag. The prior art documents relevant to the invention of this application are as follows (including documents cited during the international phase after the international filing date and documents cited when the application entered the national phase in other countries). (Prior art document) (Patent Documents) (Patent Document 1) U.S. Patent Application Publication No. 2015 / 0007155 (Patent Document 2) U.S. Patent Application Publication No. 2013 / 0246135 (Patent Document 3) U.S. Patent No. 9,489,544 (Patent Document 4) U.S. Patent No. 9,483,884 (Patent Document 5) U.S. Patent No. 9,418,492 (Patent Document 6) U.S. Patent No. 9,342,934 (Patent Document 7) U.S. Patent No. 9,324,195 (Patent Document 8) U.S. Patent No. 9,292,984 (Patent Document 9) U.S. Patent No. 9,286,264 (Patent Document 10) U.S. Patent No. 9,280,859 (Patent Document 11) U.S. Patent No. 9,269,169 (Patent Document 12) U.S. Patent No. 9,248,807 (Patent Document 13) U.S. Patent No. 9,233,655 (Patent Document 14) U.S. Patent No. 9,224,251 (Patent Document 15) U.S. Patent No. 9,224,249 (Patent Document 16) U.S. Patent No. 9,142,066 (Patent Document 17) U.S. Patent No. 9,142,065 (Patent Document 18) U.S. Patent No. 9,141,503 (Patent Document 19) U.S. Patent No. 9,135,759 (Patent Document 20) U.S. Patent No. 9,126,483 (Patent Document 21) U.S. Patent No. 9,120,357 (Patent Document 22) U.S. Patent No. 9,050,862 (Patent Document 23) U.S. Patent No. 9,031,710 (Patent Document 24) U.S. Patent No. 9,014,908 (Patent Document 25) U.S. Patent No. 9,002,554 (Patent Document 26) U.S. Patent No. 8,914,187 (Patent Document 27) U.S. Patent No. 8,855,621 (Patent Document 28) U.S. Patent No. 8,825,271 (Patent Document 29) U.S. Patent No. 8,559,937 (Patent Document 30) U.S. Patent No. 8,527,135 (Patent Document 31) U.S. Patent No. 8,447,459 (Patent Document 32) U.S. Patent No. 8,406,951 (Patent Document 33) U.S. Patent No. 8,055,403 (Patent Document 34) U.S. Patent No. 8,036,788 (Patent Document 35) U.S. Patent No. 8,035,508 (Patent Document 36) U.S. Patent No. 8,024,084 (Patent Document 37) U.S. Patent No. 8,019,501 (Patent Document 38) U.S. Patent No. 8,014,789 (Patent Document 39) U.S. Patent No. 7,904,219 (Patent Document 40) U.S. Patent No. 7,792,618 (Patent Document 41) U.S. Patent No. 7,747,365 (Patent Document 42) U.S. Patent No. 7,650,210 (Patent Document 43) U.S. Patent No. 7,630,801 (Patent Document 44) U.S. Patent No. 7,629,876 (Patent Document 45) U.S. Patent No. 7,620,484 (Patent Document 46) U.S. Patent No. 7,480,551 (Patent Document 47) U.S. Patent No. 7,447,574 (Patent Document 48) U.S. Patent No. 7,421,321 (Patent Document 49) U.S. Patent No. 7,363,129 (Patent Document 50) U.S. Patent No. 7,228,211 (Patent Document 51) U.S. Patent No. 7,225,065 (Patent Document 52) ​​U.S. Patent No. 7,162,339 (Patent Document 53) U.S. Patent No. 7,082,359 (Patent Document 54) U.S. Patent No. 7,050,897 (Patent Document 55) U.S. Patent No. 6,928,348 (Patent Document 56) U.S. Patent No. 6,879,894 (Patent Document 57) U.S. Patent No. 6,738,697 (Patent Document 58) U.S. Patent No. 6,732,032 (Patent Document 59) U.S. Patent No. 6,732,031 (Patent Document 60) U.S. Patent No. 6,636,790 (Patent Document 61) U.S. Patent Application Publication No. 2015 / 0007155 (Patent Document 62) U.S. Patent Application Publication No. 2013 / 0246135 (Patent Document 63) U.S. Patent No. 8,781,442 (Patent Document 64) U.S. Patent No. 9,747,254 (Patent Document 65) U.S. Patent Application Publication No. 2009 / 0178986 (Patent Document 66) U.S. Patent Application Publication No. 2012 / 0136827 (Patent Document 67) U.S. Patent Application Publication No. 2004 / 0111505 (Patent Document 68) U.S. Patent Application Publication No. 2015 / 0317594 (Patent Document 69) U.S. Patent Application Publication No. 2016 / 0347328 (Patent Document 70) U.S. Patent Application Publication No. 2016 / 0274160 (Patent Document 71) U.S. Patent Application Publication No. 2016 / 0239937 (Patent Document 72) U.S. Patent Application Publication No. 2016 / 0189447 (Patent Document 73) U.S. Patent Application Publication No. 2015 / 0298653 (Patent Document 74) U.S. Patent Application Publication No. 2014 / 0081481 (Patent Document 75) U.S. Patent Application Publication No. 2014 / 0100716 (Patent Document 76) U.S. Patent Application Publication No. 2014 / 0294180 (Patent Document 77) U.S. Patent Application Publication No. 2013 / 0275214 (Patent Document 78) U.S. Patent Application Publication No. 2013 / 0261914 (Patent Document 79) U.S. Patent Application Publication No. 2009 / 0318121 (Patent Document 80) U.S. Patent Application Publication No. 2012 / 0288016 (Patent Document 81) U.S. Patent Application Publication No. 2013 / 0261907 (Patent Document 82) U.S. Patent Application Publication No. 2013 / 0212659 (Patent Document 83) U.S. Patent Application Publication No. 2014 / 0379171 (Non-Patent Literature) (Non-Patent Document 1) GT Platinum Diesel Manual, Bully Dog by Derive, Doc. 40420-99 v4.0, available at https: / / www.bullydog.com / Products / unfiltered-product / bd / BDGTPD / bully-dog-gt-diesel, last accessed April 9, 2018 (Non-Patent Document 2) GT Quick Start Guide, Bully Dog by Derive, available at https: / / www.bullydog.com / Products / unfiltered-product / bd / BDGTPD / bully-dog-gt-diesel, last accessed April 9, 2018 (Non-Patent Document 3) H&S Performance Mini Maxx Street Tuner Installation / Operation Manual, available at https: / / www.dieselops.com / hs-performance-mini-maxx-race-tuner-programmer, last accessed April 9, 2018 (Non-Patent Document 4) H&S Performance Black Maxx Installation Manual, available at http: / / 4wheelonline.com / .253598.0?search=h%26s%20performance%20black%20maxx, last accessed April 9, 2018 [Brief description of the drawings]

[0006] [Figure 1] FIG. 1 is a system diagram for a cloud-based automotive technician system. [Figure 2A] Figure 2A is a sequence diagram related to a method for updating parameters in an automotive controller. [Figure 2B] Figure 2B is a sequence diagram related to a method of interaction between an automotive controller and a client device. [Diagram 3] Figure 3 is a configuration diagram related to a cloud-based automotive technician system. [Figure 4A] Figure 4A is a sequence diagram related to a method for updating an automotive controller based on data from the automotive controller. [Figure 4B] Figure 4B is a sequence diagram related to a method for updating an automotive controller based on data from the automotive controller. [Figure 5A] Figure 5A is a user interface diagram according to a preferred embodiment related to a plurality of gauge displays having eight gauges. [Figure 5B] Figure 5B is a user interface diagram according to a preferred embodiment related to the drag and drop of gauges. [Figure 6A] Figure 6A is a user interface diagram according to a preferred embodiment related to a plurality of gauge displays having four sliding gauges. [Figure 6B] Figure 6B is a user interface diagram according to a preferred embodiment related to a plurality of gauge displays having four sliding gauges. [Figure 6C] Figure 6C is a user interface diagram according to a preferred embodiment related to a plurality of gauge displays having four sliding gauges. [Figure 7A] Figure 7A is a user interface diagram according to a preferred embodiment related to the selection of gauges. [Figure 7B] Figure 7B is a user interface diagram according to a preferred embodiment related to the selection of gauges. [Figure 7C] Figure 7C is a user interface diagram according to a preferred embodiment related to the selection of gauges. [Figure 8A]FIG. 8A is a user interface diagram according to a preferred embodiment for selecting a first gauge style. [Figure 8B] FIG. 8B is a user interface diagram according to a preferred embodiment relating to selection of a first gauge style. [Figure 9A] FIG. 9A is a user interface diagram according to a preferred embodiment relating to selection of a second gauge style. [Figure 9B] FIG. 9B is a user interface diagram according to a preferred embodiment relating to the selection of a second gauge style. [Figure 10A] FIG. 10A is a user interface diagram according to a preferred embodiment relating to the selection of a third gauge style. [Figure 10B] FIG. 10B is a user interface diagram according to a preferred embodiment relating to the selection of a third gauge style. [Figure 11A] FIG. 11A is a user interface diagram according to a preferred embodiment relating to the selection of a fourth gauge style. [Figure 11B] FIG. 11B is a user interface diagram according to a preferred embodiment relating to the selection of a fourth gauge style. [Figure 12A] FIG. 12A is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12B] FIG. 12B is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12C] FIG. 12C is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12D] FIG. 12D is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12E] FIG. 12E is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12F]FIG. 12F is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12G] FIG. 12G is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12H] FIG. 12H is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 12I] FIG. 12I is a user interface diagram according to a preferred embodiment for adjusting parameters. [Figure 13A] FIG. 13A is a user interface diagram according to a preferred embodiment for selecting units of a gauge. [Figure 13B] FIG. 13B is a user interface diagram according to a preferred embodiment for selecting units of the gauge. [Figure 14A] FIG. 14A is a user interface diagram in accordance with a preferred embodiment for a multiple gauge display having five gauges. [Figure 14B] FIG. 14B is a user interface diagram in accordance with a preferred embodiment for a multiple gauge display having five gauges. [Figure 14C] FIG. 14C is a user interface diagram in accordance with a preferred embodiment for a multiple gauge display having five gauges. [Figure 14D] FIG. 14D is a user interface diagram in accordance with a preferred embodiment for a multiple gauge display having five gauges. [Figure 14E] FIG. 14E is a user interface diagram in accordance with a preferred embodiment for a multiple gauge display having five gauges. [Figure 15A] FIG. 15A is a user interface diagram for selecting gauges in a multiple gauge view in accordance with a preferred embodiment. [Figure 15B] FIG. 15B is a user interface diagram for selecting gauges in a multiple gauge view in accordance with a preferred embodiment. [Figure 15C] FIG. 15C is a user interface diagram in accordance with a preferred embodiment for selecting gauges in a multiple gauge view. [Figure 15D] FIG. 15D is a user interface diagram for selecting gauges in a multiple gauge view in accordance with a preferred embodiment. [Figure 16A] FIG. 16A is a user interface diagram according to a preferred embodiment for vehicle management. [Figure 16B] FIG. 16B is a user interface diagram according to a preferred embodiment for vehicle management. [Figure 16C] FIG. 16C is a user interface diagram according to a preferred embodiment for vehicle management. [Figure 16D] FIG. 16D is a user interface diagram according to a preferred embodiment for vehicle management. [Figure 16E] FIG. 16E is a user interface diagram according to a preferred embodiment for vehicle management. [Figure 17A] FIG. 17A is a user interface diagram according to a preferred embodiment for displaying a diagnosis. [Figure 17B] FIG. 17B is a user interface diagram according to a preferred embodiment for displaying a diagnosis. [Figure 17C] FIG. 17C is a user interface diagram according to a preferred embodiment for displaying a diagnosis. [Figure 18A] FIG. 18A is a user interface diagram according to a preferred embodiment for data log management. [Figure 18B] FIG. 18B is a user interface diagram according to a preferred embodiment for data log management. [Figure 19A] FIG. 19A is a user interface diagram according to a preferred embodiment for configuration management. [Figure 19B] FIG. 19B is a user interface diagram according to a preferred embodiment for managing settings. [Figure 19C]FIG. 19C is a user interface diagram according to a preferred embodiment for settings management. [Figure 19D] FIG. 19D is a user interface diagram according to a preferred embodiment for configuration management. [Figure 20A] FIG. 20A is a diagram of a database and records according to a preferred embodiment. [Figure 20B] FIG. 20B is a diagram of the database and records according to a preferred embodiment. [Figure 20C] FIG. 20C is a diagram of a database and records according to a preferred embodiment. [Figure 20D] FIG. 20D is a diagram of a database and records according to a preferred embodiment. [Figure 21] FIG. 21 is a block diagram of a local device according to a preferred embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0007] 1, a system 100 is provided. The system 100 includes a system server 102 connected to the Internet 108 through a web server 104. The system server also includes a database 106.

[0008] The client device 110 is connected to the Internet 108 through a mobile network. The client device 110 is also connected to a local device 112. In a preferred embodiment, the local device establishes a WiFi or Bluetooth connection between the client device and the car. The local device 112 is hardwired to a car controller 114. The car controller 114 is connected to sensors 120 and actuators 122 located within the vehicle. The sensors and actuators communicate with the on-board controller through a CAN BUS (also known as a Controller Area Network (CAN)), which is well known in the art.

[0009] The client device 110 functions as both a client of the system server 102 and a client of the local device 112. Embodiments of the client device 110 include any portable wireless device, such as a smart phone, a tablet computer, a notebook computer, a netbook computer, and the like.

[0010] A dealer server 116 is also connected to the Internet 108 and communicates with both the system server and the local devices via the Internet. Similarly, a calibration writer server 118 is connected to the system server 102 and the client devices 110.

[0011] 2A, the operation of the preferred embodiment 200 is described. In use, the device allows for recording and viewing of vehicle information, diagnostics, on-board computer updates, and data logging, thus allowing for fuel economy studies by examining driving habits.

[0012] In step 201, the client device opens the application and sets up an account by entering some demographic information. In step 202, the application uploads the account information to the system server 102.

[0013] In step 203, the calibration writer server sets up an account using a form provided by the system server over the Internet. The calibration writer server includes account information such as name, address, email address, sending computer Cal / Pid, etc. In step 204, the calibration writer server inputs a set of operating system parameters including programming information and lookup tables for the on-board controller. In step 206, the parameters are provided to the system server 102. In step 208, the system server 102 stores the parameters and the account information. In step 210, the database is updated with the new parameters by the system server and associated with the calibration writer server. In step 212, the system server uploads the parameters to the client device 110 over the wireless network.

[0014] In an alternative embodiment, the technician downloads the parameters or firmware from the calibration writer server 118 through a web browser. The technician then uses the system server 102 to download the updated parameters or firmware to the smartphone 110.

[0015] At step 214, the client device stores the parameters. At step 215, the client device opens an application (or app) that displays the parameters and certain options to the user. At step 216, the client device receives options from the user regarding which parameters to implement. At step 218, the selected parameters are uploaded to the local device through a WiFi or Bluetooth connection. At step 220, the local device stores the parameters and initiates certain timing functions such as on-board recording, data storage, etc.

[0016] In step 222, the selected parameters are uploaded to the vehicle controller. In step 224, the vehicle controller stores the new parameters and lookup table. In step 226, the vehicle controller executes the new parameters and lookup table. In step 228, the vehicle controller generates an acknowledgement signal. In step 230, the acknowledgement signal is sent to the local device. In step 231, the local device stores the acknowledgement signal. In step 232, the local device reports the acknowledgement signal to the client device 110 through a WiFi or Bluetooth connection. In step 233, the client device stores the acknowledgement signal and the app displays the status of the local device and the uploaded parameters.

[0017] Referring to Figure 2B, a preferred alternative embodiment 238 is described. In step 243, the client device selects a target for a live data feed from the vehicle controller. In step 244, the client device sends the request to the local device. In step 245, the local device stores the live data request. In step 248, the local device sends the live data request to the vehicle controller 114. In step 252, the system state is sent to the local device. In step 256, the local device stores the system state. In step 258, the local device uploads the system state to the client device. In step 250, the vehicle controller uploads the system state from the vehicle to the local device. In step 260, the client device stores the system state. In step 262, the app displays the system state. As updated system state is received from the local device, the display is refreshed. In step 261, the local device enters a loop to repeatedly request system state from the vehicle controller.

[0018] In step 263, the client device 110 selects the option on the application to clear the error code. In step 264, the request is uploaded to the local device. In step 265, the request is stored in memory. In step 266, the request is uploaded to the vehicle controller. In step 267, the vehicle approves the request and clears the error code.

[0019] In step 268, the client device selects an option on the application to request a diagnostic report. In step 269, the request is uploaded to the local device. In step 270, the local device stores the request. In step 266, the local device uploads the request to the vehicle controller. In step 271, the vehicle controller generates a diagnostic report. In step 272, the diagnostic report is sent to the local device. In step 273, the local device stores the diagnostic report in memory according to date and time. In step 274, the diagnostic report is sent to the client device. In step 275, the diagnostic report is displayed according to the user's request.

[0020] In step 276, the client device uses an application to request a calibration report. In step 277, the calibration request is uploaded to the local device. In step 278, the local device stores the calibration request. In step 279, the local device sends the request to the vehicle controller. In step 280, the vehicle controller accesses the currently stored parameters and calibration. In step 281, the parameters are sent to the local device. In step 282, the local device stores the current set of parameters according to a date / time stamp. In step 283, the local device sends the parameters to the client device. In step 284, the application on the client device displays the requested calibration parameters.

[0021] Referring to FIG. 3, a schematic diagram 300 of the configuration of the system server 102 and specific functionality according to a preferred embodiment is described.

[0022] The system server 102, through the web server 104, provides a set of web pages for various users of the system using a user / password interface. Schematic diagrams of local home pages are shown at 302, 304, and 306. The local home pages provide options for selecting user types for each of the calibration writer server, dealers, and customers or "end users." The database includes each vehicle 310 and each computer profile ID number 312. Each record 310 includes the vehicle identification number, ECU serial number, manufacturer, model, engine, fuel tank number, gear ratio, tire size, and vehicle modification category. Each record is associated with a particular vehicle entered into the system. The computer profile ID number 312 is a database entry that includes the vehicle, calibration, PID configuration, and alert type. The computer profile ID number 312 also includes vehicle options and data log recordings for each vehicle.

[0023] The calibration writer web page 304 contains a data record entry form for the user to enter engine control parameters. Each data record includes entries for a photo or logo, name, phone, address, start date, email, and computer Cal / Pid. When the form is completed, at the time of entry, the system server 102 records and enters the data from the data form into a database. The system server then copies the data record to a computer profile ID number 312. All reports generated by the vehicle controller based on requests from local devices are associated with the vehicle's current calibration when stored in memory. In a preferred embodiment, the data in the record is then copied directly into the vehicle's 310 memory.

[0024] The Dealer web page 306 provides a form for data entry including data related to photo / logo, name, phone, address, start date, and email address. A "dealer," in the preferred embodiment, is typically a repair shop that repairs vehicles but does not write calibrations.

[0025] The customer web page 308 includes a form for data entry regarding photo, phone number, start date, and email address. This web form allows the customer to request the download of locally installed applications. The App GUI provides access to local device functions. In the preferred embodiment, such functions include requesting a report of the current calibration, requesting a real-time report of engine status, requesting a diagnostic report, requesting to clear error codes, and updating calibration updates from the dealer or manufacturer.

[0027] A preferred embodiment of the local device 112 includes the provision of a Freescale IMX28 microcontroller, a UART for translating between parallel and serial data forms, a WiFi connection service using IEEE 802.11 standard or other wireless protocol for communication between the client device 110 and the local service 112, and a Local Interconnect Network (LIN) for communication between vehicle components and a CAN BUS for communication between the microcontroller and other devices.

[0028] 4A and 4B, a method 400 updates engine parameters in response to a check engine code (also called a diagnostic trouble code (DTC)) generated by a vehicle controller 114. The method includes one or more messages passing between a calibration writer server 118, a system server 102, a client device 110, a local device 112, and the vehicle controller 114.

[0029] In step 411, the vehicle controller 114 generates a check engine code and freezes the data frame. The check engine code identifies the vehicle problem. The freeze data indicates the vehicle conditions at the time of the problem that caused the check engine code to be generated.

[0030] At step 412, a data connection is established between the local device 112 and the vehicle controller 114. In one embodiment, the data connection is established by connecting the local device 112 to an on-board diagnostic port that is connected to the CAN BUS (to which the vehicle controller 114 is connected).

[0031] At step 413, a wireless connection is established between the client device 110 and the local device 112. In one embodiment, the local device 112 functions as a wireless local area network (WLAN) access point to which the client device 110 can connect. In establishing the wireless connection, a Transmission Control Protocol (TCP) is opened between the client device 110 and the local device 112 so that data can be exchanged between the client device 110 and the local device 112 using JavaScript Object Notation (JSON) messages.

[0032] In step 414, a gauge data request is sent from the client device 110 and received by the local device 112. In one embodiment, the request is sent using JSON over a TCP socket. A gauge data request is sent for each of one or more gauges displayed by the client device 110. After the local device 112 receives the request from the client device 110, the client device 110 accepts and receives notifications from the local device 112 including updated data to be displayed on the gauge associated with the gauge data request.

[0033] In step 415 , a data request is sent from the local device 112 and received by the vehicle controller 114 .

[0034] The vehicle controller 114 retrieves the gauge data in step 416. In one embodiment, the vehicle controller 114 retrieves a parameter identifier (PID) associated with the gauge data.

[0035] In step 417 , the data is sent from the vehicle controller 114 and received by the local device 112 .

[0036] Optionally, in step 418 , the local device 112 logs the data received from the vehicle controller 114 in a log file of the local device 112 .

[0037] In step 419, the requested data is sent from the local device 112 and received by the client device 110. In one embodiment, the client device 110 agrees with the local device 112 to also receive notifications from the local device 112 each time the local device 112 receives update data from the vehicle controller 114.

[0038] In step 420, the data is displayed by the client device 110. Layout settings that describe the look and feel of the gauge are stored on the client device 110, and the data is displayed according to those layout settings.

[0039] In step 421 , a request for engine code, frozen data, and optionally log data is sent from the client device 110 and received by the local device 112 .

[0040] In step 422 , a request for engine codes and freeze data is sent from the local device 112 and received by the vehicle controller 114 .

[0041] In step 423 , the vehicle controller 114 retrieves the engine code and freeze data generated in step 411 . In step 424 , the engine code and freeze data is sent from the vehicle controller 114 and received by the local device 112 .

[0042] In step 425 , the engine code, freeze data, and any logs are sent from the local device 112 and received at the client device 110 .

[0043] In step 426, the client device 110 stores the engine code, the frozen data, and any logs.

[0044] In step 427, the client device 110 displays the engine code.

[0045] In step 428 , the engine code, freeze data, and any logs are sent from the client device 110 and received by the system server 102 .

[0046] In step 429 , an update engine parameter request is sent from the client device 110 and received by the system server 102 .

[0047] In step 430 , a request for updated engine parameters is sent from the system server 102 and received by the calibration writer server 118 .

[0048] In step 431 , the updated parameters and / or firmware are sent from the calibration writer server 118 and received by the system server 102 .

[0049] In step 432 , the update parameters and firmware are sent from the system server 102 and received by the client device 110 .

[0050] In step 433 , the update parameters and firmware are stored on the client device 110 .

[0051] In step 434, the technician selects one or more parameters and firmware for updating the vehicle.

[0052] In step 435 , the selected parameters and firmware are sent from the client device 110 and received by the local device 112 .

[0053] In step 436, a reprogramming command is sent from the local device 112 and received by the vehicle controller 114. In one embodiment, the command causes the vehicle controller 114 to be flashed with the updated firmware (if such a firmware update is selected). In addition, parameters can be changed beyond what is included in the updated firmware. The updated firmware may be the latest default firmware from the vehicle manufacturer, but not all parameters may be tuned for the vehicle's particular configuration. In one embodiment, the local device 112 reprogramming command first reflashes the vehicle controller 114 with the updated firmware and then updates certain engine tuning parameters.

[0054] In step 437 , the vehicle controller 114 updates the firmware and parameters with the values ​​received from the local device 112 .

[0055] 5A and 5B, a user interface 502 includes a menu button 504 on a title bar 506 above multiple gauge views 508. Multiple gauge views 508 include eight mini gauge views 510, 512, 514, 516, 518, 520, 522, and 524.

[0056] The user interface 502 is displayed on the client device through an app running on the client device. The name, value, and units of each of the small gauge displays 510, 512, 514, 516, 518, 520, 522, and 524 are displayed in the user interface 502 on the client device. The values ​​542, 544, 546, 548, 550, 552, 554, and 556 of each small gauge 510, 512, 514, 516, 518, 520, 522, and 524 are continuously updated as new PID values ​​are received from the vehicle controller. In the embodiment of FIG. 5A, ten PIDs are named with units as shown in the table below. The PID values, names, and units will vary from vehicle to vehicle, and the table below is merely an example.

[0057] [Table 1]

[0058] The miniature gauge display 510 shows a name 526, a value 542, and units 558, and is associated with one PID. The name 526 indicates that the miniature gauge 510 is displaying the engine coolant temperature, its value 542 is 156.0, and its units 558 are in degrees Fahrenheit. The miniature gauge display 510 is imprinted with a green color to indicate that the value 542 is within the desired range for the engine coolant temperature.

[0059] The minor gauge display 512 shows a name 528, a value 544, and units 560, and is associated with one PID. The name 528 indicates that the minor gauge 512 is displaying a speed, its value 544 is 31.0, and the units 560 indicate that it is miles per hour. The minor gauge display 512 is not imprinted green, which would indicate that the value 544 is in the desired range, nor is it imprinted red, which would indicate that the value 544 is in the warning range.

[0060] The minor gauge display 514 shows a name 530, a value 546, and units 562, and is associated with one PID. The name 530 indicates that the minor gauge 514 is displaying the engine's revolutions per minute (RPM), the value 546 is 31.0, and the units 562 indicate revolutions per minute. The minor gauge display 514 is not imprinted with a green color to indicate that the value 546 is in the desired range, nor is it imprinted with a red color to indicate that the value 546 is in the warning range.

[0061] The mini gauge display 516 shows a name 532, a value 548, and units 564, and is associated with one PID. The name 532 indicates that the mini gauge 516 is displaying the engine battery voltage, the value 548 is 2.00, and the units 564 are Volts (V). The mini gauge display 516 is stamped red, indicating that the value 548 is within the warning range for the battery voltage.

[0062] The small gauge display 518 shows a name 534, a value 550, and units 566, and is associated with one PID. The name 534 indicates that the small gauge 518 is displaying the engine transmission temperature, its value 550 is 219.0, and the units 566 are in degrees Fahrenheit. The small gauge display 518 is imprinted with a red color, indicating that the value 550 is within the warning range for the transmission temperature.

[0063] The mini gauge display 520 shows a name 536, a value 552, and units 568, and is associated with one PID. The name 536 indicates that the mini gauge 520 is displaying a throttle position sensor, its value 552 is 35, and the units 568 indicate that it is a percentage value. The mini gauge display 520 is not imprinted with a green color, which would indicate that the value 552 is in the desired range, nor is it imprinted with a red color, which would indicate that the value 552 is in the warning range.

[0064] The minor gauge display 522 shows a name 538, a value 554, and units 570, and is associated with a PID. The name 538 indicates that the minor gauge 522 is displaying the calculated load on the engine, its value 554 is 35, and the units 570 indicate that it is a percentage value. The minor gauge display 522 is not imprinted with a green color, which would indicate that the value 554 is in the desired range, nor is it imprinted with a red color, which would indicate that the value 554 is in the warning range.

[0065] The small gauge display 524 shows a name 540, a value 556, and units 572, and is associated with one PID. The name 540 indicates that the small gauge 524 is displaying the engine's injector pressure, the value 556 is 25.0, and the units 572 indicate that it is in thousand pounds per square inch (kPSI). The small gauge display 524 is imprinted with a green color, indicating that the value 556 is within the desired range.

[0066] 5B illustrates a drag-and-drop operation used to swap the positions of two minor gauges within multiple gauge views 508. The position of minor gauge 514 has been swapped with the position of minor gauge 524 within multiple gauge views 508 by dragging minor gauge 514 from its original position towards the original position of minor gauge 524.

[0067] 6A, user interface 502 has been updated to display multiple gauge displays 604. Multiple gauge displays 604 include four minor gauge displays (512, 530, 518, and 520) and one selected gauge display 606. Minor gauge display 530 has been updated to be highlighted to indicate that gauge 530 is associated with selected gauge 606 and has the same PID. When gauge 530 is selected from multiple gauge displays 508 by touch or click, user interface 502 transitions from multiple gauge displays 508 (eight gauge displays 508) to multiple gauge displays 604 (four gauge displays 604).

[0068] The top row 608 includes minor gauges 510 and 512. The bottom row 610 includes minor gauges 518 and 520.

[0069] Referring to Figure 6B, top column 608 is slid or dragged to the left, revealing mini-gauge 516. By sliding or dragging top column 608 left or right, any two adjacent mini-gauge displays 510, 512, 514, and 516 can be displayed in top column 608. Up to three mini-gauge displays can be displayed during a drag or slide event. After a drag or slide event, two mini-gauge displays are displayed, which does not necessarily include the selected mini-gauge (minor gauge 512 in Figure 6B).

[0070] 6C, the bottom column 610 is slid or dragged to the left. By sliding or dragging the bottom column 610 left or right, any two adjacent mini-gauge displays 518, 520, 522, and 524 can be displayed in the top column 610. Up to three mini-gauge displays can be displayed during the drag or slide event. After the drag or slide event, two mini-gauge displays are displayed, which does not necessarily include the selected mini-gauge.

[0071] 7A, 7B, and 7C, the user interface 502 is manipulated to change the PID of the small gauge display 530.

[0072] 7A, small gauge view 604 is displayed in user interface 502. Small gauge view 530 has been selected and selected gauge view 606 is shown in user interface 502.

[0073] In FIG. 7B, when the selected gauge display is slid or dragged, a second selected gauge display 706 appears.

[0074] 7C, small gauge display 512 is updated to become small gauge display 712. In one embodiment, small gauge display 712 duplicates information from small gauge display 532 so that when small gauge display 712 is not selected and user interface 502 is returned to multiple gauge displays 508, both small gauge display 532 and small gauge display 712 are displayed and both show the battery voltage.

[0075] 8A and 8B, a circular gauge style 802 in a settings view 804 is selected for the selected gauge view 606. The settings view 802 in FIG. 8A is displayed after a user interface element 806 is selected from the selected gauge view 606 in FIG. 8B.

[0076] The settings view 804 includes a name 808 and units 810 that identify the name and units of the PID associated with the selected view 606. The settings view 804 includes a user interface element 812 that, when selected, transitions the user interface 502 from the displayed settings view 804 (FIG. 8A) to the displayed settings view 606 (FIG. 8B). Selecting the circular gauge style 802 causes a circular gauge display 814 to be shown in the selected gauge 606.

[0077] In the selected gauge display 606, name 816 and units 818 identify the name and units of the PID associated with the selected gauge display 606. Value 820 indicates the current value of the PID associated with the selected gauge display 606. Units 822 indicates the current value of the PID associated with the selected gauge display 606. User interface element 824 indicates which gear is going to be reported by the vehicle controller as the current vehicle gear.

[0078] Circular gauge display 814 includes an alert section 824. In one embodiment, alert section 824 has a red shade, indicating that the RPM level is too low.

[0079] Circular gauge display 814 includes a desired section 826. In one embodiment, desired section 826 has a green shade to indicate that the RPM level is in the desired operating range for the vehicle.

[0080] 9A and 9B, an arc gauge style 902 in the settings view 804 is selected for the gauge display 606. When the arc gauge style 902 is selected, the selected gauge display 606 shows an arc gauge display 904. The arc gauge display 904 includes an alert section 906. In one embodiment, the alert section 906 has a red shade, indicating that the PID value within the alert section 906 is too low.

[0081] The arc gauge display 904 includes a desired section 908. In one embodiment, the desired section 908 has a green shade, indicating that the PID values ​​within the desired section 908 are within a preferred range for one of maximum torque or horsepower.

[0082] 10A and 10B, a bar gauge style 1002 in the settings view 804 is selected for the gauge display 606. When the bar gauge style 1002 is selected, the selected gauge display 606 shows a bar gauge display 1004. The bar gauge display 1004 includes an alert section 1006. In one embodiment, the alert section 1006 has a red shade, indicating that the PID value within the alert section 1006 is too low.

[0083] The bar gauge display 1004 includes a desired section 1008. In one embodiment, the desired section 1008 has a green shading, indicating that the PID values ​​within the desired section 1008 are within a preferred range for one of maximum torque or horsepower.

[0084] 11A and 11B, the line history gauge style 1102 in the settings view 804 is selected for the gauge display 606. Once the line history gauge style 1102 is selected, the selected gauge display 606 shows the line history gauge display 1104. The line history gauge display 1104 is a graph showing the most recent value of the selected gauge as a function of time. The most recent values ​​are stored on the client device. The line history gauge display 1104 shows the most recent data to the right of the graph.

[0085] 12A-12I, the user interface 502 is comprised of a plurality of gauge displays 604 having a select gauge display 606. The select gauge displays 606 each include an adjustable alert section 824, a desired section 826, and an alert section 1202. The alert section 824 is identified when the PID value is too low and the alert section 1202 is identified when the PID value is too high.

[0086] To adjust settings for alerts section 824, desired section 826, and alerts section 1202, select user interface element 806 to display settings view 804 (FIG. 12B) and then select user interface element 1204 from settings view 804 to display view 1206 (FIG. 12C) on user interface 502. View 1206 is also referred to as parameter adjustment view 1206.

[0087] The parameter adjustment diagram 1206 includes a user interface element 1208 , a user interface element 1210 , a name 1212 , and a unit 1214 .

[0088] User interface element 1208 is a cancel button that, when selected, undoes the changes made in parameter adjustment view 1206. After selecting user interface element 1208, user interface 502 reverts to multiple gauge display 604 with settings view 804, as shown in FIGURE 12B.

[0089] User interface element 1210 is a button that, when selected, accepts the changes made in parameter adjustment view 1206. After selecting user interface element 1210, user interface 502 returns to multiple gauge display 604 with settings view 804, as shown in FIG.

[0090] Name 1212 and units 1214 identify the type and units of PID information displayed in view 1206. In one embodiment, name 1212 is revolutions per minute (RPM) and units 1214 is RPM.

[0091] User interface element 1216 is a checkbox that indicates whether desired section 826 is shown in selection gauge display 606. The range of desired section 826 is controlled by a range between a minimum desired threshold 1218 and a maximum desired threshold 1220. If the PID value is between the minimum desired threshold 1218 and the maximum desired threshold 1220, the PID value is in the desired or preferred range.

[0092] The display of alert section 824 and alert section 826 is controlled by user interface element 1222. The extent of the gap between alert section 824 and alert section 826 is controlled by the range between a minimum alert threshold 1224 and a maximum alert threshold 1226. If the PID value is below the minimum alert threshold 1224 or above the maximum alert threshold 1226, then the PID value is in a warning range that may lead to engine malfunction, damage, or failure.

[0093] A user interface element 1228 identifies whether the fuel removal setting is active. If the PID value is below the minimum fuel removal threshold 1224 or above the maximum fuel removal threshold 1226, the PID value is in a fuel removal range where fuel supply to the engine is reduced to protect the engine.

[0094] In one embodiment, the thresholds displayed in the parameter adjustment diagram 1206 maintain the relationships shown below.

[0095] Minimum fuel removal threshold 1230 is less than or equal to minimum alert threshold 1224 Relationship 1 The minimum alert threshold 1224 is less than or equal to the minimum desired threshold 1218. The minimum desired threshold 1218 is less than or equal to the maximum desired threshold 1220. Maximum desired threshold 1220 is less than or equal to maximum alert threshold 1226 Relationship 4 Maximum alert threshold 1226 is less than or equal to Maximum fuel removal threshold 1232 Relationship 5 Referring to FIG. 12D, dragging the minimum desired threshold 1218 to the left also moves the minimum alert threshold 1224 and the minimum fuel removal threshold 1230 to the left so that both remain below the minimum desired threshold 1218.

[0096] Dragging the maximum desired threshold 1220 to the right also moves the maximum alert threshold 1226 and the maximum fuel removal threshold 1232 to the right so that both remain above the maximum desired threshold 1220 .

[0097] Referring to FIG. 12E, if the minimum alert threshold 1224 is dragged to the right, the minimum desired threshold 1218 also moves to the right so that the minimum desired threshold 1218 remains above the minimum alert threshold 1224 .

[0098] Dragging maximum alert threshold 1226 to the left also moves maximum desired threshold 1220 to the left so that maximum desired threshold 1220 remains below maximum alert threshold 1226 .

[0099] Referring to FIG. 12F, dragging the minimum alert threshold 1224 to the left also moves the minimum fuel removal threshold 1230 to the left so that the minimum fuel removal threshold 1230 remains below the minimum alert threshold 1224 .

[0100] Dragging the maximum alert threshold 1226 to the right also moves the maximum fuel removal threshold 1232 to the right so that the maximum fuel removal threshold 1232 remains above the maximum alert threshold 1226 .

[0101] Referring to FIG. 12G, dragging the minimum fuel removal threshold 1230 to the right also moves the minimum alert threshold 1224 and the minimum desired threshold 1218 to the right so that both remain above the minimum fuel removal threshold 1230.

[0102] Dragging the maximum fuel removal threshold 1232 to the left also moves the maximum alert threshold 1226 and the maximum desired threshold 1220 to the left so that both remain below the maximum fuel removal threshold 1232 .

[0103] 12H and 12I, when user interface element (checkbox) 1216 is deselected and user interface element (done button) 1210 is selected, the desired section is not displayed in selection gauge display 606, as shown in FIG. 12I.

[0104] 13A and 13B, user interface 502 displays multiple gauge views 604, minor gauge 518 is selected, and settings view 804 is displayed. Settings view 804 includes user interface element 1302 and user interface element 1304.

[0105] User interface element 1302 and user interface element 1304 allow the selection of one of several units for the PID value associated with small gauge 518. In one embodiment, small gauge 518 is associated with a transmission temperature, which can be displayed in degrees Celsius (°C) by selecting user interface element 1302 or in degrees Fahrenheit (°F) by selecting user interface element 1304.

[0106] Referring to Figures 14A to 14E, the user interface 502 transitions from multiple (8) gauge displays 508 to multiple gauge displays 1401. The multiple gauge indications 1401 may be referred to as five gauge indications 1401. The transition from the 8 gauge display 508 to the 5 gauge display 1401 occurs when there is a slide or drag event that drags the 8 gauge display 508 upward to expose the 5 gauge display 1401. Additionally, the transition from five gauge displays 1401 to eight gauge displays 508 occurs when there is a slide or drag event that drags five gauge displays 1401 downward to expose eight gauge displays 508.

[0107] Referring to FIG. 14B, the five gauge displays 14101 include gauge displays 14202, 14203, 14204, 14205, and 14206, which may be referred to as large center gauge display 14202, upper left gauge display 14203, lower left gauge display 14204, upper right gauge display 14205, and lower left gauge display 14206.

[0108] The large center gauge indication 14204 includes the name 14207, a value 14208, a unit 14209, a gear 14210, and a circular gauge indication 14211. The circular gauge indication 14211 includes a lower alert section 14212, a desired item 14213, and an upper alert section 14214. The large center gauge indication 14204 indicates that the vehicle is in a retracted position and the transmission temperature is 274.0°F, in a vigilance range beyond the desired range.

[0109] The upper left gauge indication 14203 includes the name 14215, the unit 14216, the value 14217, and the arc gauge indication 14218. The arc gauge indication 14218 includes a lower alert section 14219, a desired section 14220, and an upper alert section 14221. The upper left gauge indication 14203 indicates that the motor's RPM is 4328RPM, which is just above the desired range and within the upper alert range.

[0110] The lower left gauge display 14204 includes a name 14223, a unit 14224, a value 14225, and an arc gauge display 14226. The arc gauge display 14226 includes a lower alert section 14227, a desired section 14228, and an upper alert section 14229. The lower left gauge display 14204 indicates that the battery voltage is 15.00V, which is in the upper alert range.

[0111] The top right gauge reading 14205 includes a name 14230, a unit 14231, a value 14232, and an arc gauge reading 14233. The arc gauge reading 14233 includes a lower alert section 14234, a desired section 14235, and an upper alert section 14236. The top right gauge reading 14205 indicates that the engine coolant temperature is 240.0°F, which is in the upper alert range above the desired level.

[0112] The lower right gauge display 14206 includes a name 14237, units 14238, a value 14239, and an arcuate gauge display 14240. The arcuate gauge display 14240 includes a warning section 14241 indicating that the value is too high. The lower right gauge display 14206 indicates that the vehicle's speed is 299.0 MPH, which is in the upper warning range.

[0113] The name, units and value displayed on the gauges of the large five gauge displays 14101 are each shaded red to indicate that each value on each gauge is in the alert section. When any one of gauge indications 14202, 14203, 14204, 14205, and 14206 is selected from the large five gauge indications 14101, the user interface 502 transitions from displaying the large five gauge indications 14101 to multiple gauge indications 14301 and the selected gauge indication 14302, as shown in FIG. 14C. Multiple gauge indications 14301 may also be referred to as the small five gauge indications 14301.

[0114] 14C, the small five gauge indications 14301 include gauge indications 14303, 14304, 14305, 14306, and 14307, which may be referred to as small center gauge indication 14303, top left gauge indication 14304, bottom left gauge indication 14305, top right gauge indication 14306, and bottom right gauge indication 14307, respectively. The gauge indications 14303, 14304, 14305, 14306, and 14307 of the small five gauge indications 14301 are associated with the same PIDs as the gauge indications 14202, 14203, 14204, 14205, and 14206, respectively, of the large five gauge indications 14101 of FIG. Gauge readings 14303, 14304, 14305, 14306, and 14307 are continuously updated to reflect the current condition of the engine.

[0115] Selected gauge display 14302 of Figure 14C is similar to selected gauge display 606 of Figure 6 and is associated with small central gauge display 14303. Small central gauge display 14303 includes outline 14308, which indicates that small central gauge display 14303 is a gauge display linked or associated with selected gauge display 14302, and further indicates that large central gauge display 14202 may have been selected from multiple gauge displays 14101 of Figure 14B.

[0116] When user interface element 14309 of Figure 14C is selected, user interface 502 transitions from selection gauge display 14302 of Figure 14C to settings view 14401 of Figure 14D. Settings view 14401 of Figure 14D is similar to settings view 804 of Figure 8.

[0117] 14D, Fahrenheit (°F) is first selected and displayed in small center gauge display 14303. When user interface element 14310 is selected, Celsius (°C) is selected and displayed in small center gauge display 14303.

[0118] 15A-15D, sliding or dragging the selected gauge reading 14302 upwards causes a second selected gauge reading 1502 to appear. In addition, the small center gauge reading 14303 associated with the transmission temperature is updated to a second small center gauge reading 1504. The second small center gauge reading 1504 is a boost value of 29.0 pounds per square inch.

[0119] Selecting small upper right gauge display 14306 in Figure 15D updates selected gauge display 1502 in Figure 15C to selected gauge display 1504 in Figure 15D. Selected gauge display 1504 shows the same PID information as small upper right gauge display 14306. Small upper right gauge display 14306 is updated to include outline 1510 and removes outline 1506 around small center gauge display.

[0120] 16A, menu button 504 is selected. Eight gauge displays 508 slide partially to the right and downward and turn more transparent to highlight the display of menu 1602. Menu 1602 includes user interface elements 1604, 1606, 1608, 1610, 1612, and 1614, which may be referred to as a "My Gauges" button 1604, a "My Vehicle" button 1606, a "Programs" button 1608, a "Diagnostics" button 1610, a "Data Log" button 1612, and a "Settings" button 1614.

[0121] Selecting button 1604 removes menu 1602 and returns to the most recent gauge display, ie, eight gauge display 508 of FIG. 16A.

[0122] Selecting button 1606 removes menu 1602 and transitions user interface 502 to view 1616 of Figure 16B. View 1616 may be referred to as a "My Vehicles" view 1616 and includes user interface elements for each vehicle associated with the client device app. User interface elements 1618 include the vehicle year, make, and model, and indicate that a local device is installed in the vehicle associated with the user interface.

[0123] Selecting user interface element 1618 causes user interface 502 to transition to view 1620 in Figure 16C. View 1620 may be referred to as vehicle view 1620 and includes user interfaces 1622 and 1624, which identify the number of technicians sharing the vehicle and the current ECU profile.

[0124] Upon selecting user interface 1622, user interface 502 transitions to view 1626 in Figure 16D. View 1626 may be referred to as share management view 1626 and includes user interface elements 1628 that list the technicians who share the vehicle in one or more user interface elements. As shown in Figure 16D, the vehicle is not being shared with any technicians.

[0125] Selecting user interface 1624 brings up another view (not shown) that allows management of ECU profiles, including updating one or more parameters in a profile and deleting a profile from a client device.

[0126] Selecting user interface element 1628 transitions user interface 502 to view 1630 in Figure 16E. View 1630 may be referred to as share management view 1630 and includes user interface element 1632, keyboard 1634, and user interface element 1636. User interface element 1632 is an edit box that receives the technician's email address, which serves as login information for accessing a system server (e.g., system server 102 in Figure 1).

[0127] In one embodiment, a view 1630 of the user interface 502 is displayed on a client device used by a technician diagnosing a vehicle and allows the technician to log into the server. Upon selection of the "Done" button on keyboard 1634 or user interface element 1636, the client device app attempts to log into the system server and associate (or share) the vehicle with the technician's client device.

[0128] In an alternative embodiment, the view 1630 of the user interface 502 is displayed on a client device used by the owner of the vehicle being diagnosed. Selecting the "Done" button on the keyboard 1634 or user interface element 1636 causes the client device app to send the technician's email address to the server so that the technician can log in and share vehicle information from the vehicle's ODB2 port on a second client device operated by the technician. Sharing vehicle information on the technician's client device allows the technician to diagnose the vehicle even if the vehicle and technician are in separate locations.

[0129] 17A, 17B, and 17C, upon selection of user interface element 1610 from menu 1602, user interface 502 displays view 1702. View 1702 may be referred to as a diagnostic view 1702 and displays a list 1704 of diagnostic codes with textual descriptions. List 1704 is a list that can show more than one page of information by scrolling up or down. FIG. 17B shows the top of list 1704 and FIG. 17C shows the bottom of list 1704.

[0130] 18A and 18B, selecting user interface element 1612 from menu 1602 causes user interface 502 to display view 1802. View 1802 may be referred to as a "Data Log" view 1802 and displays a list of data logs 1804 below which is located user interface element 1806. List 1804 is a scrollable list showing data logs that are available for sending to the system server. Data logs store information received by the local device from the vehicle controller and by the client device from the local device. Selecting user interface element 1806 causes the data log selected from list 1804 to be sent to the system server.

[0131] 19A, 19B, 19C, and 19D, upon selection of user interface element 1614, user interface 502 displays view 1902. View 1902 may be referred to as a "Settings" view 1902 and displays one or more user interface elements that allow a user of the app to view and control various app-related settings.

[0132] User interface element 1904 displays contact information including name and email address. When user interface element 1904 is selected, user interface 502 displays another view (not shown) that allows the user to view and manipulate the contact information, which may also include phone number and date of birth. The contact information is used by a technician to contact the owner of the vehicle to which the local device is connected.

[0133] Selecting user interface element 1906 displays one or more videos showing how to use the client device app.

[0134] User interface element 1908 is for development of the client device app itself. When user interface element 1908 is selected, the client device app will email a log of information recorded by the client device app to the contact specified in user interface element 1904.

[0135] User interface element 1910 displays the currently running version of the client device app.

[0136] User interface element 1912 displays the currently running version of firmware running on the local device.

[0137] User interface element 1914 displays a received signal strength indicator (RSSI) that indicates the strength of the wireless signal transmitted by the local device and received by the client device.

[0138] User interface element 1916 is an edit box that contains an Internet Protocol (IP) address that the client device uses to connect to a server running on the local device.

[0139] User interface element 1918 is a binary selector switch that, when enabled, allows the app to connect to a server running on the local device.

[0140] User interface element 1920 is a multi-position single selector switch that is used to select the protocol version that the client device app will use to communicate with the server running on the local device.

[0141] Referring to Figure 20A, a server database 20100 is an embodiment of the database 106 accessed by the system server of Figure 1. The server database 20100 contains one or more records that are themselves databases. The records may include any of the system In one embodiment, the server database 20100 includes vehicle 20102, technician 20104, and engine control unit (ECU) profiles 20106.

[0142] The vehicles 20102 each have a vehicle record 20200 of FIG. 20B associated with them. The technicians 20104 each have a technician record 20200 associated with them. The ECU profiles 20106 each have a profile record 20400 associated with them.

[0143] Referring to FIG. 20B, vehicle record 20200 has data and information about a vehicle. Vehicle Identification Number (VIN) is unique data assigned to the vehicle by the vehicle's manufacturer according to the international standard ISO 3833. Year 20204 is the model year of the vehicle, which in one embodiment is stored as an unsigned integer. Manufacturer 20206 identifies the manufacturer of the vehicle, which in one embodiment is stored as a character string according to the American National Standards Institute Information Interchange Standard Code (ASCII) or Unicode. Model 20208 identifies the model of the vehicle, which in one embodiment is stored as a character string. Technician 20210 is linked to technician record 20300 for each technician associated with the vehicle. ECU Profile 20212 is linked to ECU Profile record 20400 for each ECU Profile associated with the vehicle.

[0144] Referring to Figure 20C, technician record 20300 has data and information associated with a vehicle. Name 20302 is the technician's name, which in one embodiment is stored as a string of characters. Email 20304 is the technician's email address, which also serves as the technician's login identifier, which in one embodiment is stored as a string of characters. Vehicle 20308 is linked to the vehicle record 20200 associated with the technician. Client device data 20310 includes data and information regarding the device used by the technician to access the system, including a unique device identifier, operating system (OS) version, client application version, etc.

[0145] 20D, an ECU profile record 20400 contains data and information associated with an ECU profile. The ECU profile record 20400 includes firmware 20402 and parameters 20408.

[0146] Firmware 20402 is firmware that executes on a vehicle controller (e.g., vehicle controller 114 of FIG. 1). Firmware 20402 includes code 20404 and settings 20406. Code 20404 is computer code instructions that enable operation of the vehicle controller. Settings 20406 are settings used to tune the engine for efficiency or performance, including spark advance, spark timing, fuel injection, electronic throttle control, mushroom valve timing, boost control, anti-lock braking system, automatic transmission, speed governor, electronic stability control system, etc. Parameter 20408 is a parameter for the gauge to be displayed on a client device (e.g., client device 110 of FIG. 1). Parameter Identifier (PID) 20410 is an identification number that uniquely identifies the type of data from the vehicle controller associated with the parameter. Name 20412 identifies the name of the parameter, which may include engine coolant temperature, speed, RPM, electronic voltage, transmission temperature, boost, calculated load, injector pressure, injector pulse width, throttle position sensor, etc. Desired Max 20414 is a numeric value indicating the desired maximum value of the parameter. Desired Min 20416 is a numeric value indicating the desired minimum value of the parameter.

[0147] The Maximum Alert Value 20418 is a numerical value that indicates the beginning of the upper alert range. The Minimum Alert Value 20420 is a numerical value that indicates the end of the lower alert range. Continuing to operate the vehicle at values ​​associated with greater than the Maximum Alert Value 20418 or less than the Minimum Alert Value 20420 may result in engine failure.

[0148] Fuel Removal Max 20422 is a numeric value indicating the threshold above which the vehicle will be defueled to prevent breakdown. Fuel Removal Min 20424 is a numeric value indicating the threshold below which the vehicle will be defueled to prevent breakdown.

[0149] Gauge style 20426 specifies the style of the gauge used to display the parameter value on the client device.

[0150] Available units 20428 is a list of units that can be used to display the value associated with parameter 20408. Selected units 20430 specifies which units from available units 20428 will be used to display the value of parameter 20408.

[0151] Referring to Figure 21, a system 2102 is a system within the local device 112 of Figure 1. The system 2102 includes an application processor 2104 that controls the local device 112. The system 2102 includes an external memory interface (EMI) 2106, a generic media interface (GPMI) 2108, a synchronous serial port (SSP) 2110, and controller area network (CAN) interfaces 2112 and 2114.

[0152] EMI 2106 is connected to memory 2116, and GPMI 2108 is connected to memory 2118. In one embodiment, memory 2118 is a low-speed persistent memory that stores programs and data executed by application processor 2104 using memory 2116.

[0153] SSP2110 is a WiFi module 2120 2116 and 2118. In one embodiment, program instructions stored in one or more of memory 2116 and memory 2118 are executed by application processor 2104 to enable local device 112 to act as an access point to which client devices can connect.

[0154] CAN 0 Interface 2112 is a connector Linked to 2122 CAN 0_HI / LOW Through the vehicle's first CAN Transceiver 2124 It is connected to the CAN1 Interface 2114 is Analog multiplexer 2128 and connector 2122 Through the vehicle's second CAN Transceiver 2126 is connected to The analog multiplexer 2128 is connected to the connector 2122 through two CAN1_HI_B / LOW_B pins. The input / output (IO) multiplexer control unit 2113 is also connected to the analog multiplexer 2128. In one embodiment, the connector 2122 is an RJ45 connector and requires an adapter (not shown) teeth connector 2122 and the vehicle's On-Board Diagnostics (OBD) port To connection It has been .

[0155] Although the embodiments of the present disclosure have been described in detail above, it should be understood by those skilled in the art that various changes, substitutions, and modifications can be made without departing from the spirit and scope of the present disclosure. Accordingly, all such changes, substitutions, and modifications are intended to be included within the scope of the present disclosure as defined in the following claims. In any means-plus-function clause of the claims, the above-described structures are intended to be covered as performing the recited function as well as structural equivalents and equivalent configurations.

Claims

1. 1. A method for updating an engine control unit (ECU) of a vehicle connected to a network, the network including a local device electrically connected to the ECU, a client device connected to the local device, and a server connected to the client device, the method comprising: establishing a data connection between the local device and the ECU using a diagnostic port; establishing a wireless network connection between the local device and a client device; generating a vehicle data request from the client device; receiving, at the local device, the request for vehicle data; receiving, by the local device, vehicle data from the ECU based on the vehicle data request, the vehicle data including at least one parameter for the ECU; the local device transmitting the vehicle data to the client device; the client device sending an updated firmware request to the server; receiving, at the client device, updated firmware and parameters for the ECU from the server based on the vehicle data; displaying, at the client device, a list of a plurality of parameters for the ECU; selecting, at the client device, parameters for the ECU from the displayed list of parameters for the ECU; receiving, at the local device, updated firmware for the ECU and the selected parameters from the client device; A method comprising: loading the updated firmware into the ECU from the local device, the loading of the updated firmware reconfiguring at least one parameter for the ECU.

2. 2. The method of claim 1, receiving, at the local device, a request for gauge data from the client device; recording said gauge data request at said local device; receiving, at the local device, gauge data from the ECU in response to the gauge data request; The method further comprises:

3. 3. The method of claim 2, wherein the gauge data request is for one of engine coolant temperature, speed, revolutions per minute, battery voltage, transmission temperature, boost, calculated load, injector pressure, injector pulse width, and throttle position sensor.

4. 4. The method of claim 3, further comprising the steps of: transmitting, from the local device, the gauge data to the client device in response to the gauge data request; and displaying, at the client device, one or more gauges based on the gauge data.

5. 5. The method of claim 4, further comprising the step of receiving, at the local device, a request for engine code from the client device.

6. 6. The method of claim 5, further comprising the steps of: said local device receiving an engine code from said ECU; receiving freeze data associated with the engine code from the ECU, by the local device; The method further comprises:

7. 7. The method of claim 6, further comprising the step of transmitting, from the local device, an engine code response to the client device, the engine code and the frozen data.

8. 1. A method for updating an engine control unit (ECU) of a vehicle connected to a network, the network including a local device connected to the ECU, a client device connected to the local device, a first server connected to the client device, and a second server connected to the first server, the method comprising: establishing a network connection between the local device and the ECU; establishing a network connection between the local device and the client device; generating a vehicle data request from the client device; receiving, at the local device, the request for vehicle data; receiving, by the local device, vehicle data from the ECU based on the vehicle data request, the vehicle data including at least one parameter for the ECU; the local device transmitting the vehicle data to the client device; the client device sending a request to the first server for one of updated parameters for the ECU and updated firmware for the ECU; receiving, at the first server, the request from the client device for one of updated parameters for the ECU and updated firmware for the ECU; receiving, at the second server, the request from the first server for one of updated parameters for the ECU and updated firmware for the ECU; receiving, at the first server, one of updated parameters for the ECU and updated firmware for the ECU from the second server; transmitting, from the first server, one of updated parameters for the ECU and updated firmware for the ECU to the client device; displaying, at the client device, a list of a plurality of updated parameters for the ECU; selecting, at the client device, updated parameters for the ECU from a list of a plurality of updated parameters for the ECU; transmitting, from the client device, selected updated parameters for the ECU and updated firmware for the ECU to the local device; loading, from the local device, updated parameters selected for the ECU and updated firmware for the ECU into the ECU, the loading step resetting at least one of the updated parameters selected for the ECU.

9. 9. The method of claim 8, further comprising the step of: sending, from the first server, a request for updated firmware for the ECU to the second server.

10. 10. The method of claim 9, wherein the client device comprises a first client device, further comprising the step of receiving, at the local device, updated engine settings from the first client device.

11. 11. The method of claim 10, The method further includes a second client device connected to the first client device, and further includes receiving engine data from the first client device at the second client device after the updated engine settings are loaded into the ECU.

12. 1. A method for updating an engine control unit (ECU) of a vehicle connected to a network, the network including a local device connected to the ECU, a client device connected to the local device, and a system server connected to the client device, the method comprising: establishing a data connection between the local device and the ECU; establishing a wireless network connection between the client device and the local device; generating a vehicle data request from the client device; receiving, at the local device, the request for vehicle data; receiving, by the local device, vehicle data from the ECU based on the vehicle data request, the vehicle data including parameters for the ECU; the local device transmitting the vehicle data to the client device; the client device sending a request for updated parameters for the ECU to a system server; transmitting, from the system server, updated firmware for the ECU, the updated firmware including a plurality of operating system (OS) parameters for the ECU based on the vehicle data; receiving, at the client device, a response from the system server including updated firmware for the ECU; displaying, at the client device, a list of a plurality of OS parameters for the ECU; selecting, at the client device, OS parameters for the ECU from a list of OS parameters for the ECU; the client device transmitting updated firmware for the ECU and the selected OS parameters for the ECU to the local device; loading, from the local device, updated firmware for the ECU into the ECU, the loading of the updated firmware for the ECU reconfiguring at least one OS parameter for the ECU; The method of claim 1,

13. 13. The method of claim 12, further comprising the step of the client device sending a gauge data request to the local device for gauge data.

14. 14. The method of claim 13, further comprising the step of receiving, at the client device, the gauge data from the local device in response to the gauge data request and after the gauge data request has been recorded by the local device.

15. 15. The method of claim 14, The method further includes sending an engine code request from the client device to the local device.

16. 16. The method of claim 15, The method further includes receiving, at the client device, an engine code response from the local device.

17. 17. The method of claim 16, wherein the engine code response includes an engine code and freeze data associated with the engine code.

18. 20. The method of claim 17, further comprising the step of displaying the engine code on the client device.

19. 20. The method of claim 18, transmitting, from the client device, the engine code and the frozen data to the system server; sending, from the client device, a request for modified firmware for the ECU based on the engine code to the system server; storing the modified firmware for the ECU on the client device; the client device transmitting the modified firmware for the ECU to the local device; the local device transmitting the modified firmware for the ECU to the ECU; The method further comprises:

20. 8. The method of claim 7, transmitting, from the client device, the engine code and the frozen data to the server; sending, from the client device, a request for modified firmware for the ECU based on the engine code to the server; storing modified firmware for the ECU on the client device; the client device transmitting the modified firmware for the ECU to the local device; the local device transmitting the modified firmware for the ECU to the ECU.

21. 9. The method of claim 8, receiving, at the local device, a request for engine code from the client device; receiving an engine code from the ECU by the local device; receiving freeze data associated with the engine code from the ECU, by the local device; sending, from the local device, an engine code response to the client device, the engine code and freeze data; transmitting, from the client device, the engine code and the frozen data to the first server; sending, from the client device, a request for modified firmware for the ECU based on the engine code to the first server; storing the modified firmware for the ECU on the client device; the client device transmitting the modified firmware for the ECU to the local device; the local device transmitting the modified firmware for the ECU to the ECU; The method further comprises:

22. 1. A method for updating an engine control unit (ECU) of a vehicle connected to a network, the network including a local device connected to the ECU, a client device connected to the local device, and a system server connected to the client device, the method comprising: establishing a data connection between the local device and the ECU; establishing a wireless network connection between the local device and a client device; generating a vehicle data request from the client device; receiving, at the local device, the request for vehicle data; receiving, by the local device, vehicle data from the ECU based on the vehicle data request, the vehicle data including ECU parameters; the local device transmitting the vehicle data to the client device; the client device sending a request for updated parameters to the system server; transmitting, from the system server, updated firmware and a plurality of ECU operating system (OS) parameters based on the vehicle data; receiving, at the client device, a response from the system server including the updated firmware and a plurality of ECU operating system (OS) parameters; displaying, at the client device, a list of the plurality of ECU OS parameters; selecting, at the client device, an ECU OS parameter from the list of the plurality of ECU OS parameters; the client device transmitting the updated firmware and the selected ECU OS parameters to the local device; loading the updated firmware from the local device into the ECU, the loading of the updated firmware including reconfiguring at least one of the ECU parameters; the client device sending a gauge data request for gauge data to the local device; receiving, at the client device, the gauge data from the local device after the gauge data request has been recorded by the local device; sending an engine code request from the client device to the local device; receiving, at the client device, an engine code response from the local device, the engine code response including an engine code and frozen data associated with the engine code; displaying the engine code on the client device; transmitting, from the client device, the engine code and the frozen data to the system server; sending, from the client device, a request for revised firmware to the system server based on the engine code; storing the modified firmware on the client device; the client device transmitting the modified firmware to the local device; the local device transmitting the modified firmware to the ECU; the system server linking a plurality of technician records for each technician associated with the vehicle; sending, by a client device app, a log of information recorded by the client device to a contact identified in a user interface element; updating, by the ECU, certain engine tuning parameters with values ​​received from the local device that are adjusted for the particular settings of the vehicle; the ECU reducing fuel supply to an engine of the vehicle to protect the engine when RPM data falls below a minimum desired threshold or exceeds a maximum desired threshold; The method of claim 1,

Citation Information

Patent Citations

  • Vehicle diagnosis system

    JP2007240436A

  • Vehicle control device

    JP2012206551A

  • Portable terminal. sound output program, tone adjustment method, and sound output device

    JP2013123199A

  • Method and system for processing vehicle information

    JP2013507294A

  • On-vehicle device, communication terminal and vehicle function setting system

    JP2015150966A