US20140309842A1
US20140309842A1
5/7
INSTALLER RECEIVES CONTROL MODULE
PREASSIGNED IN CLOUD DATABASE TO
INSTALLER
6/2
INSTALL CONTROL MODULE WITHUNIQUE
IDENTIFIERINTO OBD2 PORT INVEHICLE
5/5
INSTALL CONTROL MODULE WITHUNICUE
DNTIFIERINTO BCM NETWORK
Af
INSTALL OR CODEFOR WEHICLE OR OTHER
IDENTIFIER FORWEHICLE FRECURED
5/5
SCANORNPUT IDENTIFIERS INTO
MOBILE COMPUTING DEVICE
529
Aas
SEND IDENTIFIERS TO CLOUD SERVERS
TOMAKE ASSOCATION BETWEEN CAR
AND CONTROL UNIT
Patent Application Publication Oct. 16, 2014 Sheet 1 of 19 US 2014/0309842 A1
Patent Application Publication Oct. 16, 2014 Sheet 2 of 19 US 2014/0309842 A1
FIG 2
Patent Application Publication Oct. 16, 2014 Sheet 3 of 19 US 2014/0309842 A1
C
O
ad
CD
s
d
C
d
CD
1.
s
C
C
s
d
f
Patent Application Publication Oct. 16, 2014 Sheet 4 of 19 US 2014/0309842 A1
62,6
E_LOWRH H(ESAH)ES
OIH
#
29/
SVLTEVINCRHIOA
EºCTOIHEIA ?C|EWOLS|TI
Patent Application Publication Oct. 16, 2014 Sheet 5 of 19 US 2014/0309842 A1
Load:Balancer Management
-------- Console
Operations
Admin
472 O
Web Servers S)
NH H - H - - - - -1
CO DB StarCes
i
92 Connections Map Connections Map O
2
(2
Queues
Data Storage
OO Queues
Data Storage
Fer
Management
...' s Console
--- -- -- -- -- - - -- - --
App Servers App Servers
Admin Wireless
Portal
±%24’° CT?NEWID
$)/H.
$
TFT
Patent Application Publication Oct. 16, 2014 Sheet 7 of 19 US 2014/0309842 A1
NOL\/|S ELEITCHWO
|O5D?N-IlSe-E|
Z Zº CITNEWID DOET
NOIS|W.E ÅWLN?IO V
Patent Application Publication Oct. 16, 2014 Sheet 8 of 19 US 2014/0309842 A1
6//
INSTALLER RECEIVES CONTROL MODULE
PREASSIGNED IN CLOUD DATABASE TO
INSTALLER
/ 97.3
INSTALL CONTROL MODULE WITH UNIOUE
IDENTIFIER INTO BCM NETWORK
/ 3/4
INSTALL QR CODE FORVEHICLE OR OTHER
IDENTIFIER FORVEHICLE IF RECQUIRED
FIG 5B
Patent Application Publication Oct. 16, 2014 Sheet 9 of 19 US 2014/0309842 A1
FIC 5C
- 22
ENTERVEHICLE LEARN MODE ON POWER
UP OR LEARN BUTTON SURPRESSED
- 27
REOUEST AND RECEIVE VIN
2.3% 225
END VEHICLE NO
LEARN MODE DIFFERENT THAN STORED
YES
- 529
SAVE NEW WIN IN MEMORY
227
DIGITAL NO
COMMAND CODES ON
BOARD?
YES
- 537
DECODE VINFOR YEAR, MAKE AND MODEL
- 52
LOOKUP YMM DIGITAL COMMAND
CODES IN LOOKUP TABLE
2.57 32
YES DCC NO SEND WINTO
FOUND IN REMOTE SERVERS
TABLE2
- 533
RECEIVE DIGITAL COMMAND
CODES FROMREMOTE SERVERS
Patent Application Publication Oct. 16, 2014 Sheet 11 of 19 US 2014/0309842 A1
V CN CO VL CO
enpoWIOUOOOL
Patent Application Publication Oct. 16, 2014 Sheet 12 of 19 US 2014/0309842 A1
57% 677
WSS
WDD
VREF 35/
6 ODB-Pin 14
STB CANL
TXD CANH
ODB-Pin 6
ODB-Pin 11
ODB-Pin 3
CAN EXT L
572
RXD
: STB
TXD
CANL
CANH
579
STB CANL at
TXD CANH ec
SN65HVD1040D FIC. 5F
Patent Application Publication Oct. 16, 2014 Sheet 13 of 19 US 2014/0309842 A1
|OS NIJSd|E
(OIH
9
CT?NEWID
AOLVNOTV
[SINTOEQU ?)][FETO
Patent Application Publication Oct. 16, 2014 Sheet 14 of 19 US 2014/0309842 A1
C?NEWID
VZ(OIH
Patent Application Publication Oct. 16, 2014 Sheet 15 of 19 US 2014/0309842 A1
62° V
(GNTI?5ÕE7G)
ZZ
(TE?N5 7)
.962,
(TERN?OT)
Patent Application Publication Oct. 16, 2014 Sheet 16 of 19 US 2014/0309842 A1
CITNEWID
[SINTOE] ?[FT]
Patent Application Publication Oct. 16, 2014 Sheet 17 of 19 US 2014/0309842 A1
fe2/
Scan Bar/OR Code FIG. 9
with Mobile App
A422
Upload Customer ID and
Vehicle ID to remote Server
AZ224
Walid Inform customer via GT
Customer ID Mobile App
A(225
Available
vehicles nearby
Yes
f(777
Send all relevant
reservation-in-progress Send all relevant to
data to Mobile App end-of-reservation
data to Mobile App
f(274 Aa/2
NO End
of reservation LOCk doors, disable starter,
dispose temporary access
Code
Yes
Patent Application Publication Oct. 16, 2014 Sheet 18 of 19 US 2014/0309842 A1
FIG 10
A A 747/
RECEIVERESERVATION FROM
RESERVATION SYSTEM
DETERMINEDESTINATION
BASED ON RESERVATION
A fa
RECEIVE END OF PREVIOUS RESERVATION
TRIPSUMMARY FROM CONTROL MODULE
WITH CURRENT FUELLEVELAND
LOCATION
- 7/24
CALCULATEDRIVING DSTANCE
OF SHORTEST ROUTE USING
GEOMAPPING SERVICES
CALCULATEFUEL RECQUIRED
BASED ON VEHICLEMPG
42,6
O/]
SEOVH?LNI CSEIOLNA\C/I
LI(NnEKdOA)C
O/] OSV–RHE_LNI CSEIOLNA\C/I
LI(NnEOdAC)
US 2014/0309842 A1 Oct. 16, 2014
car-share (RCS) companies of any critical diagnostics and/or 0028 FIG. 5A is a series of exemplary graphic user inter
mileage based maintenance alerts. faces, as used in one embodiment, that may be displayed by a
0017. Another feature and advantage of some embodi mobile app for entering data during the unit commission,
ments is that they provide a method of collecting and storing install, or reinstall process by an installer.
customer specific vehicle usage data (e.g., fuel level, start/end 0029 FIG. 5B is a flow chart diagram for an example
odometer reading, total miles, hours in use, max/average embodiment illustrating a method of installing and associat
speed, idle time, start/stop dates and time, carbon foot print, ing a control module within an RCS vehicle.
driver rating, etc.) for purposes of billing (e.g., invoice based 0030 FIG.5C is a flow chart diagram illustrating example
on hourly usage, mileage or flat day rate). Additional charges steps for one or more embodiments to auto-configure a con
or discounts can be applied (e.g., User Based Insurance— trol module.
UBI) for safe driving and safe driving areas (e.g., Location 0031 FIG.5D is a flow chart diagram illustrating example
Based Insurance—LBI) if the vehicle is used in a high or low steps for one or more embodiments to auto-configure a con
risk area. trol module.
0018. Another feature and advantage of some embodi 0032 FIG. 5E is a contact layout illustrating a sample
ments is that they provide a method of automatically checking embodiment's CAN bus PIN configuration.
out and billing customers when a RCS vehicle is returned. 0033 FIG. 5F is a contact layout illustrating a sample
The charge for the rental period can be dynamically generated embodiment's automatic CAN bus PIN configuration.
based, for example, on time used (e.g., hours, days), miles 0034 FIG. 6 is an example embodiment's series of dis
traveled with additional charges for insurance (based on plays and menus that are shown on a mobile device by a
driver rating and location) and/or fuel (is the tank full; if not, mobile app for allowing a customer to enter data during a
additional charge for the difference based on fuel tank vehicle pick up process.
level). 0035 FIG. 7A-B is an example embodiment’s series of
0019. A further feature and advantage of some embodi displays and menus that are shown on a mobile device by a
ments is that they provide a method of enabling the a RCS mobile app for allowing a customer to reserve a vehicle.
companies to remotely perform location based inventory uti 0036 FIG. 8 is an example embodiment's series of dis
lizing a Graphic User Interface (GUI), wireless network and plays and menus that are shown on a mobile device by a
GPS, companies can perform a virtual roll call giving them mobile app for allowing a customer to enter data during a
count and location of all their vehicles and vehicle status vehicle drop off process.
(reserved, not reserved, in use, online, offline, miles to next (0037 FIG. 9 is an example flow diagram illustrating the
service and DTC status). steps of accessing an example reserved rental/car-share
0020. A still further feature and advantage of some (RCS) vehicle.
embodiments is that they provide a method of preloading the 0038 FIG. 10 is an example flow diagram illustrating one
rental or fleet vehicle's onboard navigation system with the embodiment's method for detection and location of gas avail
renter's trip destinations. During the reservation (web based ability.
or mobile app) process a renter can select their destinations 0039 FIG. 11 is a block diagram illustrating computer
(trip log) during the rental period; the trip log is stored in the system configurations for various embodiments.
customer's database. When the vehicle is checked out via the
QR Code, RFID or NFC, the trip log is downloaded to the DETAILED DESCRIPTION OF SPECIFIC
RCS control module which uploads the trip log to the onboard EMBODIMENTS
navigation system.
0021 Neither this summary nor the following detailed Overview
description purports to define the scope of protection. The
Scope of protection is defined by the claims. 0040. This disclosure illustrates a rental/car-share (RCS)
vehicle control module, and other related embodiments. The
BRIEF DESCRIPTION OF THE DRAWINGS RCS vehicle control module may be installed in a rental car or
0022 FIG. 1 is a view of the control module as exemplified carshare vehicle. The RCS vehicle control module may inter
in one embodiment. act with a mobile application, or multiple mobile applica
0023 FIG. 2 is a perspective view showing a control mod tions, in order to provide rental and installation services. For
ule being plugged into the onboard diagnostics module of a example, disclosed herein, in one embodiment, a mobile
application may interact with the control module via one or
rental/car-share (RCS) vehicle. more wireless networks and/or the Internet in order to unlock
0024 FIG.3 is a perspective view illustrating a rental/car the doors, install and associate a vehicle control module
share (RCS) vehicle having decals with barcodes and/or QR within a vehicle, make a reservation, access a car with a
codes. reservation, and uninstall or transfer a vehicle control mod
0025 FIG. 4 is a simplified flow diagram of a network ule. In some embodiments, the vehicle control module may
illustrating the flow of data between the rental/car-share send information to a mobile application, or other output
(RCS) vehicle and one or more servers. device, about a detected location for a “last chance' to stop for
0026 FIG. 4A is a block diagram illustrating example gas (or other service) prior to arriving at a location. In some
remote servers and network used in management of control embodiments, the disclosure herein describes a method for
modules. installing a vehicle control module. In some embodiments,
0027 FIG. 5 is a series of exemplary graphic user inter the vehicle control module may automatically configure itself
faces, as used in one embodiment, that may be displayed by a to interact with its connected vehicle Such as to unlock its
mobile app for entering data during the unit commission, doors or roll down a window. In some embodiments, the
install, or reinstall process by an installer. vehicle control module may automatically configure itself to
US 2014/0309842 A1 Oct. 16, 2014
appropriately select the correct CAN bus network in a vehicle Control Unit or Module (ECU and ECM) firmware version. It
in order to accomplish desired functionality. can also query engine performance measures, such as catalyst
0041. The terms rental car share (RCS) and RCS vehicle counters, the primary oxygen sensor, the evaporating system,
are broad terms that include their ordinary and plain mean EGR system, WT system, secondary air system, secondary
ings, including, but not limited to, vehicles rented and leased oxygen sensor. Other queryable information include vehicle
by traditional car rental services Such as Budget, Enterprise, speed, RPMs, odometer, and current fuel level, among others.
Hertz, etc., and are returned to locations usually run by these The OBD port may be connected to other devices that may
services. The terms also include vehicles that may be a part of provide functionality Such as enable/disabling the starter,
a car share business model, (e.g. ZipCar, etc) where custom door lock/unlock, flash lights, open/close windows, open/
ers may rent cars on the fly throughout a city or location using close Sunroof, Sound horn, pop trunk, etc.
a member identification system, and need not return the 0046. The control module may also be connected to or
vehicle to a rental service.
comprise a GPS antenna 104 and GPS tracking sub-system
Vehicle Control Module (internal or external to the control module). Such a subsystem
may be configurable to track, using longitude and latitude, the
0042. Referring now to FIGS. 1, 2, and 3, some embodi current location of the control module and attached vehicle.
ments may comprise a hardware module or control module This information may be queried from the GPS subsystem
(e.g. vehicle control module 104). The vehicle control mod and accessed by the control module.
ule may comprise one or more processors (including, but not
limited to, special purpose processors or general processors) 0047. The control module may also comprise, or be con
that control the vehicle control module. For example, vehicle nected to, an RFID and/or NFC communications device.
control module may include one or more processors, and one RFID (radio-frequency identification) and NFC (near field
or more storage devices. The processor(s) may allow the communication) are methods of querying information from,
execution of executable computer code capable of instructing and communicating with a radio identification device within
the processor to control various aspects of the control module a set proximity. While RFID usually operates in one direction,
and its related peripherals. It also may allow the execution of NFC is typically used by smartphones for two way RFID type
computer code configured to interact with other devices in a communication. By connecting to an RFID or NFC commu
vehicle, or on the Internet (such as a user with a mobile nications device, the control module may communicate via
device, or a server(s) on the Internet). The vehicle module RFID or NFC to query identification (or other) information
may also comprise one or more storage devices. Such as a from an installer, care renter, or their devices/smartphones.
magnetic disk, memory, cache, or any combination of storage For example, an installer may use their Smartphone to query
devices. These storage devices may store instructions and/or from the control module a vehicle identifier, or send a user
data required for the operation of the vehicle control module. identifier to the control module (other information is also
0043. A vehicle control module may have a variety of contemplated for communication, other than identifiers).
connectors to other related devices and peripherals (in some 0048. As describe above, the control module may be asso
embodiments, these can be considered part of the vehicle ciated with one or more identifiers. These identifiers, in addi
control module). For example, the vehicle control module tion or separate from being queryable from the control mod
may connect to an on-board diagnostic unit (e.g. OBD2 port ule through RFID, NFC, or wireless networking, may also be
105), a vehicle starter 107, a door lock/unlock harness 109, an available for scan via a bar code or QR code (or any visual
external CAN bus harness 102, and an RFID/NFC commu representation of the identifier). For example, in FIG.3, a car
nications device 104, among others. Not all of these connec with an installed control module appears with a QR code or
tions need be used. For example, in Some embodiments, the bar code in the window associated with the CAR and/or
door lock/unlock harness 109 need not be connected to enable control module, or both (it is well known in the art that a bar
functionality to lock and unlock the doors. Instead, in these code or QR code can contain multiple identifiers). This would
embodiments, the doors may be unlocked via the connection allow a Smartphone application (such as one that is pro
to the CAN buss 102 by using specialized command codes. grammed to interact with the phones camera to Scanbar codes
0044) This method of locking and unlocking the doors or QR codes), or any QR or barcode reader to scan the codes
saves the installer valuable time. It is often difficult to run and receive the corresponding information, Such as control
wires to all of the door locks which are difficult to access in module or vehicle identifiers. This may enable a mobile app
the car. Instead, it is easier to access the CAN bus network to with wireless networking capability use the vehicle or control
interact with the door locks. In addition, other CAN bus module identifiers in an installation process, or for a customer
operable devices may be accessed through the same CAN bus to bypass the reservation desk and pickup and drop off
interface. The CAN bus may also provide other functionality, reserved RCS vehicles.
Such as enable/disable starter, door lock/unlock, flash lights, 0049. In some embodiments, the QR code on the window
open/close windows, open/close Sunroof, Sound horn, pop decal replaces a required RFID reader. This feature signifi
trunk, etc. cantly reduces hardware and installation costs (by eliminat
0045. The on-board diagnostic unit may be plugged into ing the expensive RFID and/or NFC hardware) and may
the OBD port connection. In some embodiments, this may be maintain security by placing the customer at the vehicle.
an OBD2 connection. As seen in FIG. 2, the RCS vehicle
control module (herein known as the “control module') may 0050. In some embodiments, no QR code or RFID/NFC
be plugged into the OBD port 202 of the car. The OBD port communication is needed. Instead, (and this applies through
may be used to query a wide range of information from the out the specification when discussing scanning a QR code for
vehicle, including, but not limited to, vehicle information, a car), in Some embodiments, an installer or customer could
such as a Vehicle Identification Number (VIN), Calibration photograph the car's license plate or VIN label via the mobile
Identification, Calibration Verification Number, Electronic device (e.g. one with a camera). This photo could then be
US 2014/0309842 A1 Oct. 16, 2014
analyzed by the mobile device or the remote servers to extract remote server may verify that the customer identifier sent is a
the VIN or license plate number, the result being input of the registered customer with the rental or carshare service, and
vehicle's identifier. that customer is allowed to access the identified car. If veri
0051. The control module may also include, or be con fication is Successful, the remote server may send a command
nected to, one or more accelerometers. Accelerometers can be 404 to the control module in the car 303 via the Internet. The
used to measure vehicle acceleration and deceleration. They control module may receive the command via the Internet
allow for evaluation of overall vehicle performance and over its cellular connection, and unlock the doors, giving car
response. This information can then be used to make adjust access to the user. The control module's wireless connection
ments to various vehicle Subsystems as needed. They can also security (e.g. the commands sent to the control module, etc.)
be used for modeling and detecting events. For example, may be protected using host and network security mecha
given a certain abnormal deceleration detected, the control nisms known in the art, such as Authentication, Authoriza
module may determine that the accelerometer detected a tion, and Accounting schemes, including PKI, identifiers/
vehicle accident. This can be recorded in the control module passwords, access control lists, etc.
and/or reported to the driver, the installer, the rental fleet, 0055. The remote servers in FIG. 4 that the control module
and/or communicated to a remote server on the Internet. may communicate with may be called remote computing
Other events that can be tracked via the accelerometer may servers, remote computing services, remote servers, remote
include, but are not limited to, unsafe driving habits, vehicle services, etc. They may be managed by the rental car share
speed, rollover or tilt (e.g. to detect towing) etc. The control company, the manager or manufacturer of the control mod
module may either calculate these types of events themselves ules, or a third party. They may be hosted by a third party
using accelerometer data, or, in the case of more Sophisticated hosting service in a location unaffiliated with the rental/car
accelerometers, be informed of (or have access to) the share company of control module manufacturer. Their role is
detected events by the accelerometer. to provide a central repository of vehicle control, and an
0052. The control module may also include, or be con associated database. For example, programs and data in the
nected to, wireless networking devices. For example, a PCB servers may allow a user with a mobile device to communi
mounted wireless (cellular) modem with internal antenna (or cate directly with a control module, even if no RFID, NFC, or
any type of wireless networking, such as satellite, Wi-Fi, orad any local communication between the control module and the
hoc networking) may provide communication with the Inter mobile device is established. This may allow for all remote
net. For example, the control module may be able to, via the capabilities to be accessed either by a user of the car via their
wireless networking device, communicate over a cellular net Smartphones, or by a remote user (such as an operator assist
work that connects to the Internet. FIG. 4 describes one ing a customer with a car). For example, an operator can
example of the communication that is possible using the unlock the car doors for a customer if they have lost their
wireless capabilities of the control module. For example, the Smartphone.
onboard control module is connected by a wireless portal to 0056. The servers also keep a number of tables and or
one or more remote server(s) containing a vehicle database, a associations may between the cars, control modules, install
customer registration mobile device interface, and/or a billing ers, customers, and others as required by an RCS system.
system, among any other features that may be used to manage These associations assist with billing and authorization/con
rental or carshare vehicles. Customers and installers can trol of car functionality. For example, there may exist an
access the system with a camera equipped mobile communi association within the server (e.g. in a database table)
cation device such as a mobile phone, tablet or laptop by between a vehicle's VIN number and the control module.
downloading a mobile app. This assigns the vehicle to the control module, and the control
0053 Turning to FIG. 4A, which depicts an example lay module to the vehicle. Thus, when the control module is sent
out of remote computing services for use with the control a command, an embodiment of the invention will know
module, the remote servers may comprise a number of remote exactly which vehicle is being controlled. When a control
computing devices, including load balancers 451, application module is first installed in a vehicle, this association may be
servers 452, web servers 453, and databases 454. These created. When a control module is transferred to another
remote servers may be connected using VPN connections 460 vehicle, this vehicle may be updated to correctly associate the
to one or more wireless carriers 461 These can be imple control module to the new vehicle.
mented using dedicated or cloud based servers. A GUI inter 0057 There may also exist an association between a user
face to the remote servers may allow an administrator (472, and a control module, or a user and a vehicle (or both). Either
473) to manage the clients, devices, and control modules via association allows for an association to be made between all
an application, website, or mobile application. In some cases, three using the VIN/control module association described
the remote servers may be known as an RCS gateway. Other above. This may be created when a user rents a vehicle, or
configuration of providing remote server services are also makes a reservation. This allows the allocations of users to
contemplated. vehicles and/or control modules. There may also exist an
0054. In the example depicted in FIG. 4 renter may be association between an installer or owner of the RCS fleet,
trying to access a rental car. The user's mobile device 162 and the control module or vehicle. Again, this allows a pro
may be running an application that is capable of reading a QR gram (such as a web program accessible through a GUI) to
code on the car that corresponds to the vehicle's identification determine the exact vehicles in the installers/owners fleet, and
number (the VIN, or any other number) or corresponds to the the exact control modules belonging or associated with the
control module’s identification number. The mobile device installer/owner. This also allows for permissions to be veri
162 or application running on the mobile device, or the cus fied when an installer is creating an association between a
tomer, may have its own identifier. In this example, the vehicle and a control module, because ownership of both the
vehicle identifier and a customer identifier may be sent to a control module and the vehicle may be verified prior to mak
remote server via a cellular network and/or the Internet. The ing the VIN/control module association.
US 2014/0309842 A1 Oct. 16, 2014
0058. These, and many other associations also enable bill application. The installer application may then test the control
ing to take place. The billing software that uses data stored in module over a variety of criteria, including whether the con
the remote servers may use the associations to charge cus trol module knows its serial number, whether the VIN has
tomers or installers/owners, etc. based on the number of con been automatically detected correctly, whether the VIN and
trol modules they use or are associated with, or the number of serial numbers for the control module are correctly paired,
vehicles they have rented, or how long those vehicles have whether the vehicle's command codes or executable instruc
been rented, etc. tions have been found or downloaded (e.g. Learn Mode Suc
0059. In addition to these associations, any information cessful). It may also test and display results for GPS signal
accessible by the control module may also be uploaded to strength, current address, cellular signal strength, battery
these servers for access by an installer, owner, or user (or any Voltage, etc. Each of these categories may have a pass or fail
manager of the control modules). This data may include, for display associated with them that indicates whether the
example, accelerometer information or its results (such as vehicle has passed or failed testing. If the vehicle did fail
whether there was safe driving or not, or whether an accident Some tests, trouble shooting tips associated with the failed
occurred, its time/date, etc.). QR Code/RFID/NFC access or tests may be displayed in the mobile application. If success
communication, starts or stops of the vehicle, its GPS loca ful, the vehicle may then be registered as described below.
tion, door lock or unlock events, etc. Any data accessible by 0064. In one embodiment, the registration process may
the control module is contemplated. also be improved. A mobile application may be used to
accomplish increased registration efficiency. The following is
Installation/Mobile Installation Application a brief overview of the mobile applications interaction with
0060 Current methods of installation may be too labor the control module in order to install or transfer a control
and time intensive (e.g. 1.5 to 2 hours to install). For example, module. The mobile application may be installed on a Smart
previous systems for unlocking the doors in RCS vehicles phone, for example, through download of Apple's iTunes
require running hardwires to the door lock and unlock motor. service, or any other content distribution mechanism for the
Furthermore, previous systems required calibrating a system mobile device. The installer, after connecting the control
to current mileage and fuel levels. For example, to calibrate module physically with the OBD2 port (and possibly other
the fuel level (voltage input from fuel gauge) the installer had inputs depending on the embodiment) may use the mobile
to 1) turn on the engine with an empty fuel tank to sample the application to initiate an association of the control module.
Voltage output from the fuel sensor and 2) fill up the gas tank For example, FIGS.5 and 5A is a series of displays and menus
to sample the voltage output when full. After fuel calibration, that are shown on the mobile device by the mobile app for
the installer calibrated the mileage using the Vehicle Speed entering data during the unit commission (install, FIG.5A) or
Sense (VSS) output. This requires the installer to drive the transfer (uninstall/reinstall, FIG. 5) process by an installer.
vehicle 2 to 3 times for over a mile each time. The installer The displays are only representative, and may be designed in
then compared the miles driven (vehicle trip log) with the any manner to carry out the functionality described by the
reported mileage from the device. If they were within 1% figures and in this specification.
each trip, the device passes. If not, the device is calibrated and 0065 Prior to installation of the control module, the con
the process is repeated. trol module may be scanned by an installer after it is pulled
0061. In addition, the installer may have to configure a from inventory. The module, based on the scan, may be
long test and registration process. After hardware install, the assigned by an operator of the remote server or through the
installer will call a remote technician and give them the serial mobile app. In any event, this association between the
number of a RCS system to be tested. The technician will run installer and control module is then stored within the remote
several tests (to verify connectivity to the network, GPS and servers. In addition, the device may be removed from any
send forward commands to the device) to verify the device is “unpaid” or “unassociated inventory in the remote servers
installed and functioning. Alternatively, the installer may reg database. At this point, the device may be picked up or
ister the device through a website on a laptop or other desktop shipped to the installer. In addition, the unit ID may then be
and perform similar tests. This may add up to 15 minutes per sent to the installer's mobile app, so that the mobile app
vehicle, and add considerable cost to a vehicle each time a knows which control modules have been assigned to the
device is moved from one car to another. installer.
0062. The systems and methods described herein reduce 0.066 Other “inventory' management functionality is also
this install time and cost by eliminating the need to calibrate, supported through the combination of an installer's mobile
and streamlining the testing and registrations process (with a app and the remote servers. For example, a control module
possible savings of 50% time). For example, the device does may be removed from a vehicle for a variety of reasons (e.g.
not require calibration because fuel information and mileage move to another vehicle, returned to inventory, or returned for
information may be requested from a diagnostic unit using warranty/repair). To move the device between vehicles, a QR
the OBD2 port (e.g. a CAN Bus). In some alternative embodi code or bar code may be scanned to get the serial number of
ments useful for certain year, makes and models, the control the control module. Then, an option to “transfer” or “port the
module may request from the odometer a reading over the device may be selected. This will send to the remote servers a
CAN bus to calculate miles drive. command to a listing of control modules available in inven
0063 Prior to installation, but before registration, an tory. This may then be uploaded to the remote servers where
installer may use a mobile application (or in a separate mobile it too may mark the device as available/in inventory to be
application, or web application) to interact with the control associated with another vehicle. This may cause the control
module based on scanning the control module for an ID. This module to be unpaired with any vehicle, and the association
ID may then be sent to the remote servers so that the remote between it and any vehicle in the remote servers database (or
servers can issue commands to the control module over the the installer app) may be removed. The installer may then
wireless network. The installer may select “test” in the mobile continue with installation/transfer of the device to the new
US 2014/0309842 A1 Oct. 16, 2014
vehicle. When moved to inventory, a similar process occurs. 0070. In some embodiments, other installation procedures
The control module is unpaired with the vehicle and moved may include mounting an RFID or NFC reader on the car,
into an available inventory status. For warranty, a similar Such as a dashboard, and running a connecting wire to the
process occurs, except the control module may be remove control module. The installation process may also include
from inventory and unassociated with a vehicle. connecting the control module to the vehicle's starter, or
0067. In some embodiments, when a device is unassoci directly to the vehicle doors (only used if cannot be controlled
ated with a vehicle, the remote servers may alter a billing through external CANbus). They also may include mounting
system so that the rental car company is no longer charged for a cellular and/or GPS antenna on the dashboard and running
service on, or rental of the unused control module until it is a similar wire. In some embodiments, a LED status indicator
later installed in a vehicle. For example, some rental car on the control module housing may indicate whether the
companies have over a million vehicles, many of which are in control module is receiving a signal from either the GPS or
a state of transition. Thus, it is contemplated that costs may be cellular (or other wireless) network once turned on.
reduced for rental car companies if they do not have to pay a 0071. Once installed and associated with a car, any pro
monthly wireless service charge (or other charge) for unused gram or device (such as a mobile device running a mobile
control modules. application) may be able to communicate with and control the
0068. After installation of the control module, upon power vehicle through the remote service. For example, in one
up, the control module will query the vehicle ECU (electronic embodiment, the remote system may communicate over the
control unit) via the OBD2 port in order to obtain the Vehicle Internet with a mobile application that can control the cars
Identification Number (VIN). The VIN is transmitted to the functionality after authentication and authorization of the
server. The installer may then launch the mobile application, user (such as through a login, where the user is authorized to
and select to “install' or “transfer the control module (501, control the car (e.g. they rented the car), or if the car can tell
506). The mobile app may then present, to the installer, the that the user is in close proximity (e.g. the control module has
opportunity to scan (507,508,502,503) the control module detected the user, either through a QR/Bar code scan, RFID
barcode and the vehicle QR code in order to pair the control communication, NFC, or adhoc wireless networking). At this
module to the QR code (alternative embodiments may use point, the user may control a variety of functions, depending
other identifiers to transferan identification, such as an RFID, on its access control, including the list of the following com
or a visible set of numbers and letters, such as a VIN, that one mands: locating the vehicle. Such as by sending GPS infor
can input into a mobile device). The two codes may then be mation back to the user, tracking the vehicle via frequent
sent by the Smartphone to the cloud servers via the Smart updates of GPS information, locking or unlocking the doors,
phone's network to confirm association of the control module unlocking doors for an approved Valet, updating a list of
with the vehicles VIN (which enables association with an RFIDs that are able to access the car (such as approved user
installer, a consumer, etc that tracks vehicles) (e.g. processing RFIDs (e.g. a member of a car share organization), RFIDs
504,509). More detail on the method of querying for the VIN associated with maintenance personnel, or a valet), or set
is described herein. settings in the control module, such as for the accelerometer,
0069 FIG.5B illustrates a flow chart diagram correspond or to configure whether the control module is tracking mile
age.
ing to one method for installing a control module in a vehicle. 0072 The control module may also send a variety of data
The method may start with a control module being allocated to the user, including car diagnostics, data about a high or low
to a specific installer in the remote servers (511). After the impact crash from the accelerometer, a trip log, including
control module is delivered to the installer, or is somehow put start/end locations, date/time, miles driven, duration of trip,
into the possession of the installer, the installer may actually max speed, average speed, max acceleration, fuel level, etc.
place the control module within the car. This usually involves Other data may include whether extreme acceleration or
mounting the control module within the car. The control braking occurred, whether the engine was ever turned on
module is then connected to various parts of the car, including without proper access (unauthorized user), the maximum
connecting the OBD port of the control module to a diagnos speed, whether the vehicle has left a certain geographical
tics unit 512. The control module may then also be connected area, critical diagnostic information (Diagnostic Trouble
to one or more CAN busses 513 (e.g. so as to access a body Code (DTC)) such as whether the car has a low battery or
control module (BCM) that may control various functionality engine coolant, etc., whether the car has been towed or tam
of a vehicle's body). Connecting the control module to a CAN pered with, and whether maintenance has been performed.
bus may enable the control module to execute a variety of
commands for the car, including unlocking the doors or a Auto Configuration
trunk, controlling lights, chairs, windows, headlights, etc. In
Some embodiments, the installer may mount a QR code for 0073. As described above, in some embodiments, vehicle
the vehicle on a window or in any other accessible area 514. manufacturers broadcast digital commands over a vehicles
At this point the installer may use the mobile app described CAN Bus network to control electro-mechanical functions
above and scan the QR or bar codes related to the vehicle and within a vehicle (example: door lock/unlock, arm/disarm OE
the mobile computing device (514 and 515), or any other alarm, trunk release, lights, horn, etc.). The digital commands
method for gathering the identifiers and sending the identifi are unique to each year, make and model; therefore, to control
ers to the remote servers for association. For example, in one functions within a vehicle the device must be able to deter
embodiment, the control module itself may, upon startup of mine the vehicles identity in order to load the right command
the car, determine the VIN of the car and send the VIN and its codes.
own identifier to the remote service via a connected wireless 0074. In some embodiments, a manual process may be
network and/or the Internet. After installation, the control used to configure the control module. A person or external
module may be tested 599 (described above), and associated computer may determine the vehicles year make and model,
with the vehicle 517 (described above). and then connect a control module to a PC via USB, log into
US 2014/0309842 A1 Oct. 16, 2014
a web site on the PC, select the year, make and model, and appropriate command codes may be retrieved over the wire
flash the control module with the selected vehicles codes. Or, less network via download, and stored in the control module
in the alternative, the control module may monitor the CAN for future use.
Bus and determine the vehicle based on the transmission
protocol. 0082 In block 531, if the command codes are stored
locally, then the VIN may be analyzed in order to decode the
0075 Advantageously, this configuration may also be per year, make and model of the vehicle. The Vehicle Identifica
formed automatically by the control module. The control tion Number (VIN) is 17 digit number encoded with the
module is capable of storing a set of executable instructions or vehicles year, make and model and can be obtain/requested
command codes to use to operate the car in its memory or electronically when connected to the CAN Bus. Code of
permanent storage. These command codes or executable Federal Regulations contains information on how to decode
instructions may be organized in storage and mapped accord the VIN. For example, the 1st character may determine where
ing to their functionality. For example, a table or mapping the vehicle was manufactured/assembled. The second two
may exist that cross references a key for the “unlock doors” characters of the VIN may determine the manufacturer. The
command with either the storage location for the command 4th-8th characters may determine the brand, engine, size, and
code/executable instruction, or the codes/instructions them type of vehicle. The 9th character may identify the VIN as
selves. being authorized by the manufacturer. The 10th character
0076 FIG.5C discloses a method the control module may may provide the model year of the car. The 11th character
be automatically configured to perform in order to determine, may indicate which plant assembled the vehicle, and the final
store, and access specific instructions for a specific vehicle. 6 characters may contain the serial number of the vehicle. By
This method may be performed, for example, on power up using this information, in association with a table stored in the
(12V Supplied to device, e.g., the control module is plugged control module's data store mapping the various codes con
into OBD or vehicle batter connected). This may be per tained within the VIN, the make, model, and year may be
formed after every power up, after the power up when newly determined. Once the year, make and model (YMM) is
associated with a new vehicle, or if specifically set into known, the appropriate YMM may be cross referenced with
“Learn Mode” (e.g. by Suppressing an outside button on the stored command codes or executable instructions for that
control module to reset and relearn its settings, FIG. 1, 125). specificYMM.532. These codes may then be referenced in the
0077. In block 525, the device is powered up, or set into appropriate memory location (e.g. as the command table
reset mode, which may begin the automatic configuration described above for operating the car) for future use on the
process for learning/looking up the command codes or CAN bus for automated car commands, and the “learn mode'
executable instructions to operate the vehicle. or autoconfiguration may end 536.
0078. In block 526, in some embodiments, the control I0083. In the alternative, (or in the case that the codes for
module will detect whether or not the ignition has been turned the YMM are not found already stored within the control
on or the engine has been started. These may be detected by module 537), the VIN may be instead sent via the wireless
sensing the starter/ignition interrupt harness, or by querying network connection to the remote computing system. The
information via the OBD2 port, among other methods. If one remote computing system 534 may then determine the correct
or both of these requirements have been met (depending on codes to use, and transmit them to the control module over the
the embodiment), then the control module may continue on to wireless network/Internet. The codes (e.g. command codes or
block 527. However, if the required signal is not detected, executable instructions) may be received 535 by the control
then the process may stall until the signal is detected. module and stored in an appropriate table for use to operate
the CAN bus and enable car commands.
0079. In block 527, the control module will request and
receive the VIN. This is usually performed by querying the I0084 FIG.5D is a flow chart illustrating how the embodi
Electronic Control Unit/Module (ECU) through the OBD2 ment that downloads the codes may function. As explained
port. Once the VIN is received, the received VIN may be previously, the control module may power up or enter learn
compared to a previously stored VIN in block 528. The pre ing mode 517. The control module may then query the ECU
viously stored VIN may have been received from a prior via the OBD2 port for the vehicle's VIN 518. The control
startup or learning mode operation, for example from the module then uploads (via the wireless network/Internet) the
same vehicle or a vehicle that the control module was previ VIN to the remote servers, and optionally, a selfidentification
ously installed in. If the vehicle is the same, and the VINs code for the control module 519 (or optionally any other
match, then there is no need to do any auto configuration, and useful information for the remote servers to use as authenti
the process may end 536. If the VINs do not match (or if there cation/authorization, to verify the pairing between the VIN
was no previously stored VIN because this is a new install), and the control module).
then the control module has been placed in a new vehicle and I0085. In block520, the remote servers may update the VIN
needs to perform autoconfiguration to determine the appro if necessary in their database. This may occur if, in some
priate codes to use to automate the vehicle. embodiments, the remote servers will update the vehicle
0080. In block 529, the new VIN may be saved in memory. associated with the control module based on a new VIN
This may, in some embodiments, overwrite the old stored reported by the control module. This may allow a skip of
VIN, or may be stored in a new memory location, thus allow using a mobile application for assigning control modules to
ing for the control module to record a history of VINs that the vehicles.
control module has been associated with. I0086. In block521, the remote server may decode the VIN
I0081. Block 530 is meant to represent two alternative and lookup in its database the correct command codes and/or
embodiments. In one embodiment, a Superset of command executable instructions to send to the control module. In 522,
codes may be stored within the control module in a data store the remote server uploads this information to the control
(i.e. magnetic disk, memory, etc). In other embodiments, the module. The control module may then download and store the
US 2014/0309842 A1 Oct. 16, 2014
codes/instructions for lookup, access, and use when execut are controlled by the control module. Multiplexer 576, such
ing certain features, such as unlocking the doors, etc. as digital multiplexers, to implement this invention are
0087. In some embodiments, autoconfiguration may also readily available. In some implementations, the MUX can sit
involve configuring hardware for communication with a spe on the vehicleside of the CAN transceiver. This would reduce
cific CAN bus networks. Different makes (and models) of the number of CAN transceivers from 3 to 1. The vehicle side
automobiles utilize different communication buses to achieve of the CAN transceiver has unique electrical requirements so
similar functions (e.g. unlocking doors, rolling down win common readily available multiplexers would be difficult to
dows, unlocking the trunk, etc.). This may provide a chal SC.
lenge when designing universal product that is intended to
work across all makes and models. This situation actually Customer Mobile Applications
applies to multiple communication protocols within the 0091 FIG. 6 is a series of displays and menus that are
vehicle—for example, there are single wire & two wire CAN shown on the mobile device by a mobile app used by members
protocols for vehicle. In the examples presented, the focus is or customers for a rental service or a car share service. The
on 2-wire CAN buses, however, the same strategy applies to mobile application may allow a customer to enter data during
single wire CAN bus and can be extended to other commu the vehicle pick up process in order to speed up the process.
nication protocols as well. For example, a customer may select “pickup' from a list of
0088. In some embodiments, installers may require menu options in the mobile application running on their
knowledge (available via the install manual or online vehicle mobile, wirelessly connected device 601, 602. The mobile
lookup or other) of the vehicle and must configure the control application may then query the user to scan a QR code, bar
module manually to use the appropriate communication bus. code or other identifier associated with the vehicle to be
This method can be cumbersome and Subject to human error. picked up. Using the camera of the mobile communication
A common implementation is to utilize a dipswitch, which device. Such as a mobile phone, the customer scans the bar
must be set according to the specific vehicle requirements code or QR code on the window decal 603. The QR code is
based on the vehicle's type of CAN bus. For example, in some usually placed on the rental vehicle, as described above. This
embodiments, the control module may require transmission will allow the mobile application to determine the correct
on at least two CAN bus networks, one for the ECU and identifier associated with the vehicle. Other methods of input
another for the Body Control Module (BCM). For the ECU, for this identifier are also contemplated for this procedure,
the OBD2 harness may be used for transmission. For the including, but not limited to NFC communication with the
BCM, the external CAN Bus harness may be used for trans control module to transfer the identifier, or texting a specific
mission. However, the installer must configure the DIP switch phone number associated with the car or rental service (the
to isolate the proper communication wires to communicate appropriate car may be unlocked via the rental service know
correctly on the BCM connected CAN bus network. ing which car was reserved for the user associated with a
0089 FIG. 5E shows a typical implementation. In this mobile phone). After the vehicle's identifier has been deter
figure, component 561 represents the multiple buses—this is mined, the mobile application may transmit a reservation
an abstraction, as they are not necessarily available on the request and the identifier to the remote servers to verify the
same connector. Component 562 is a dipswitch that can be person has reserved that vehicle 604. If the remote servers
configured according to connected vehicle's requirements. Verify the reservation, a confirmation may appear on the
One example setting would be having the switch for OBD mobile device 605, and the remote servers may command the
pins 14 & 6 active (ON), while having the other switches car, via communication with the control module over a wire
inactive (OFF). In this scenario, only 1 bus may be active at a less network, to unlock the doors. The control module may
time to avoid joining multiple buses on the vehicles (which then consult the stored command(s) associated with unlock
are intended to be separate). The control module in this sce ing the cars (as determined based on autoconfiguration for
nario is not aware of which bus it is connected to. example), and send those commands to the CAN bus to
0090 FIG. 5F shows one example embodiment of an unlock the doors. The user may then enter the car, and use the
improved solution that can be auto-configured without the keys found within to drive the vehicle. The control module
need for DIP switches. A control module would retrieve the may then begin to monitor driver behavior using the acceler
vehicle's VIN and utilize this to determine the appropriate ometer and other information queried via the OBD2 port or
communication configuration. The appropriate vehicle con CAN bus, as described above (such as driver habits, going
figuration can either be stored locally within the control mod past a geofence (if a vehicle departs a preset area, and alert is
ule or be retrieved remotely via various wireless options, such sent to the installer, remote servers/admins, or the user), diag
as the described cellular network and Internet connection. nostic trouble codes (DTCs), or collisions.
Once the configuration is known, the microcontroller would 0092. In another embodiment, the control module may
activate the appropriate channel (via channel select pins 575) have an RFID reader that can detect a mobile device and send
via a digital multiplexer 576 to enable the appropriate CAN the mobile device's ID to the remote servers (which can then
transceiver (transceivers 577, 578,579 that can be enabled/ in turn, send the vehicle's ID to the mobile device, or imme
disabled by the 1 to 3 MUX 576). Thus, this method elimi diately confirm the reservation and unlock the doors).
nates the need for the installer to manually configure the 0093 FIG. 7 is a series of example displays and menus that
module’s communication setup (requiring costly time and may be shown on the mobile device by a mobile app used by
labor on the part of the installer). This also eliminates the risk customers to enter data during a non-reservation vehicle pick
of inadvertently joining multiple buses on the vehicle because up process. The user may select that he is picking up a car, or
in this case there can be no common connection point sce that he wishes to reserve a car (701, 702). Using the camera of
narios, which eliminates the chance of joining buses. The 1 to the mobile communication device. Such as a mobile phone,
3 multiplexer 576 routes the digital CAN communications to the customer scans the barcode or QR code on the window
a single channel that is set via the channel select lines, which decal to download the vehicle information 703. The rental fee
US 2014/0309842 A1 Oct. 16, 2014
and vehicle specific information may then be displayed for 0098. If the remote servers’ database contains a valid res
the consumer 704. This information may have been embed ervation for the identified car for the identifier customerator
ded in the QR code, or may have been received from the near the time period the request is made, then the reservation
remote servers (e.g. the QR code may have contained a may be considered valid. If not valid, then the remote system
vehicle ID, which may then be sent to the remote servers, may determine if the vehicle is not reserved 1006 and allow
which respond with information about the vehicle, and may for an immediate reservation to be made 1009. If the vehicle
put a temporary reservation on the vehicle until the transac cannot be reserved, the remote system may determine if any
tion either succeeds, or is cancelled/times out). The customer nearby vehicles may be reserved, and if so, transfer that
may then selector customize certain reservation criteria, Such information back to the mobile device, including the location
as the length of time to rent/use the car 705, accept terms and of the proposed vehicles 1008. If no vehicles are nearby that
conditions required by the rental or car share service to use the can be reserved, an error message is transmitted back to the
car 706, be offered insurance 707 with its own terms and mobile application 1004. Assuming the inquired vehicle, or
conditions 708, etc. This information may then be sent to the nearby vehicles, can be reserved, the remote servers may
remote servers to either confirm or reject the reservation initiate the reservation process via the mobile application
based on this information. To perform this operation, the 1009. An example of such a reservation is disclosed herein
remote servers may consult with a third party, Such as a rental under the discussion of FIG. 7.
or car share server, to transact the reservation. If the reserva
tion is available, and payment Succeeds (e.g. a credit card 0099. Once the customer has reserved the vehicle a tem
either type into the app or associated with the customer is porary access code may be generated by the remote server
verified), then the reservation may be confirmed. The confir 1011. The access code may be sent to the mobile application
mation may be transferred to the mobile device, and may also for storage, along with all relevant reservation data 1012 (i.e.
be sent via text or email to the customer email account. At this length of reservation, dates, times, destination, starting
point, as with a normal reservation, the doors may be places, prices for all services, services included, etc.) The
unlocked remotely by commands sent by the remote servers. access code may now be used by the customer to begin using
0094 FIG. 8 is a series of example displays and menus that the car. This may be done in multiple ways. First, the access
are shown on a mobile device by a mobile app for allowing a code itself may be transmitted from the remote servers to the
customer to enter data during the vehicle drop off process. control module. Then, if the access code is presented by the
When checking out (801, 802), the customer may scans the mobile device to the control module (e.g. using NFC for
barcode or QR code on the window decal 803 (or use any example), and it is a match with the access code on the control
other identification mechanism to input an identifier). The module, the control module will unlock all the doors and
vehicle data and the personal and vehicle specific data is sent enables the starter 1013 (e.g. through commands sent to the
to the remote servers via the wireless network. The servers CAN buses and/or starter as described herein). In some
verify the fuel level (and if not full, charges accordingly), and embodiments, the temporary access code may instead be sent
from the mobile device to the remote servers. If the access
process the charges on the credit card of the customer's code matches the access code that the remote servers have
account 804. The mobile app displays a confirmation mes associated with an active reservation, the remote servers will
sage and sends a receipt to the email address on the custom send a command to the control module to unlock the doors for
er's account or via SMS text. the customer and enable the starter 2013.
0095. In some embodiments, the user may receive an
access code for frequent access to a vehicle during a reserva 0100 When a customer's trip ends 1014 (for example,
tion. A customer may start the mobile app, which includes a time of the reservation has run out and/or the destination has
QR Code scanner and will scan the QR code associated with been reached or approached which can be tracked via GPS
the vehicle from the sticker visible from outside of the car data uploaded to the remote servers from the control module),
1001. (Any other input method may be used, including NFC all relevant reservation in progress data is sent to the mobile
communication, or taking a digital photograph of the cars app from the remote servers 1015 (i.e. checkout information,
license plate or VIN and converting that to an identifier, or fuel information, etc.). If the customer confirms that the res
sending the photograph to the remote servers to be con ervation is over, then all end of reservation data may be sent to
verted). the mobile app 1017, such as the final checkout receipt and
0096. The scanned QR code, or other input may then be inspection of the vehicle. After the reservation is over, the
decoded to determine the vehicle's identifier. This identifier, remote servers may send a command to the control module to
along with an identifier of the customer may be uploaded to disable the starter, lock the doors, and dispose of the tempo
the remote servers via the mobile device's wireless network rary access code if any.
connection for verification 1002. The customer identifier may 0101. In some embodiments, the customer's mobile appli
include a phone number/ESN (electronic serial number) and cation may further comprise user interfaces and functionality
mobile account information, or other identifier. These iden for communication, over the wireless network/Internet, with
tifier may be encrypted. the rental car service or car share service (e.g. their severs)
0097. The remote servers may then test to determine during the rental period. For example, these user interfaces
whether that customer is in its database based on the identifier may allow a use to terminate a reservation, extend a reserva
provided 1003. If so, and that customer is a valid customer tion, purchase gas plans or insurance, add new drivers, change
1003 (e.g. Subscribed, up to date on payments, such checks reservations, or contact a customer service representative. By
may require communication with the RCS provider), then the putting this functionality into an application on a mobile
remote server continues on to check for a reservation 1005. If device Such as a mobile phone, it reduces custom hardware
the customer isn’t valid, then the customer may receive via and Software requirements by leveraging existing customer
the mobile appan indication that they are not a valid customer hardware. In addition, it saves on wireless data costs paid for
1004 (e.g. the remote server sent back an error message). by the rental/carshare service.
US 2014/0309842 A1 Oct. 16, 2014
Gas Stop Detection and Notice Nearing Final Destination Other Features
0102. In FIG. 10, one embodiment is described where the 0108. In some embodiments, remote servers will interface
user may be notified about whether they need to stop for gas with a user's mobile device application or other client GUI to
prior to returning a vehicle. In block 1101, the remote servers gather vehicle and customer data. The vehicle data may
may receive a reservation from the reservations system (e.g. include the destination or drop off location or lot. The remote
the rental company or the car share company's IT infrastruc servers may then know to forward, and may forward, vehicle
ture). The remote servers may determine the destination for maintenance related notifications to the registered recipient at
the car associated with the reservation based on the return site the destination or drop off location upon the vehicles arrival
listed in the reservation 1101. and/or end of reservation. Arrival may be determined when
0103) The remote servers, in 1103, may then receive, from the vehicle enters the geofence/geoZone associated with the
the control module (or by looking up in its own database), the lot, for example, by constantly polling GPS information in the
reservation trip Summary from the previous trip to determine control module. This may trigger a notice to a remote server,
current fuel levels and a location of the vehicle. A trip sum installer, or user upon arrival.
mary is a report that may contain data about the current status 0109. In some embodiments, a maintenance feature of the
of a vehicle, including the fuel level, its location, miles per control module enables vehicle maintenance/service person
gallon of the vehicle based on the trip, among other data. (In nel to receive geo-specific (vehicles on lots they service)
various embodiments, this information need not be received vehicle maintenance alerts (diagnostic trouble code and/or
via a reservation trip Summary. Instead, this information (lo mileage based maintenance). For example, ifa Vehicles check
cation, fuel, mpg) may be periodically uploaded to the remote engine light is ON, the control module would send a diagnos
servers by the control module, and the same process may be tic alert (e.g. device ID, time/date, location and Diagnostic
performed). Trouble Code or DTC) to the remote servers. The remote
0104 Regardless of how the data from the control module servers may push (email, SMS and/or sent to a mobile appli
is sent to the remote servers, using the vehicles location, the cation as a notification) the information to service personnel
remote servers may calculate the driving distance of the asso assigned to receive vehicle diagnostic alerts at that the closest
ciated vehicle of the shortest route to the destination of the location near the car. The maintenance feature has a Find
new reservation 1104. Based on this distance, and the mpg of feature that will enable the service personnel to navigate to
the vehicle, the remote servers may calculate the fuel required the vehicle on the lot using GPS information from the control
to reach the destination 1105. If there is enough fuel to reach module and transmitted to the installer's mobile device via
the destination 1106, the remote servers may repeat this pro the remote servers.
cess 1009. As the vehicle progresses through its trip, it will
periodically upload new information (new location, new fuel Example System Implementation and Architecture
level, optionally new mpg) in an end of trip Summary (or any
other format). The remote servers may then recalculate the 0110 FIG. 11 is a block diagram showing an embodiment
distance and fuel calculations to determine whether there is of computing device 162, and control module 101, which may
enough fuel to reach the destination. be in communication with network 160 (wireless networks
0105. If at any time, it is determined that there is not connected to the Internet) and various computing systems,
enough fuel to reach the destination, the remote servers may such as remote servers 970, that are also in communication
calculate the fuel station closest to the destination that is still with the network 160. The computing device 162 and/or the
reachable with current fuel levels 1107. This may be per control module 101 may be used to implement systems and
formed with geomapping services such as Google Maps. The methods described herein.
destination may then be transmitted to the user or the control 0111. As described above, some embodiments may
module 1108. For example, the user may received a text include portions that are executed by the remote servers 970
message about the current fuel level, the inability to reach the and/or by the computing device 162 and/or the control unit
destination, and the location of the calculated fuel station to 101, or are entirely executed by the remote servers 970 or the
stop at. This may include a map or other information usable to computing device 162, or the control unit 101. Thus, discus
find the fuel station. This may be transferred via SMS, IM, sion herein of any structure (e.g. cpu, memory, etc) of the
email, or in car display). This information may also be trans computing device 162 or control module 101, or operations
mitted over wireless to the control module. For example, the performed by the computing device 162 or control module
control module may interface with an onboard navigation unit 101, may be equally applied to the remote servers 970.
to change the navigation unit to now navigate to the fuel 0112 The computing device 162 (e.g. the mobile device
station instead of the vehicle's destination. that executes mobile applications described herein) includes,
0106. This process may also apply to other locations for example, a personal computer that is IBM, Macintosh,
besides the final destination. For example, a customer may iOS, Android or Linux/Unix compatible or a server or work
make a reservation and insert information into their trip log to station. In one embodiment, the computing device 162 com
indicate multiple destinations. The destination used for mea prises a server, a laptop computer, a Smartphone, a personal
Suring and comparison in this process can then be the next digital assistant, a kiosk, oran media player, for example. In
destination instead of the final destination. one embodiment, the exemplary computing device 162
0107 This “last chance to get gas' process may be further includes one or more central processing unit (“CPU”) 905,
expandable to other consumable services that can be mapped. which may each include a conventional or proprietary micro
For example, there may be a “last chance for food” feature processor. The computing device 162 further includes one or
where, based on location, destination, and current fuel, the more memory 930, such as random access memory (“RAM)
remote servers may be able to inform the customer if they for temporary storage of information, one or more read only
should stop for food in a certain location. Other possibilities memory (“ROM) for permanent storage of information, and
to consider are rest stops, oil, water, etc. one or more mass storage device 920. Such as a hard drive,
US 2014/0309842 A1 Oct. 16, 2014
diskette, Solid State drive, or optical media storage device. Server as well as other types of databases such as, for
Typically, the modules of the computing device 162 may be example, a flat file database, an entity-relationship database,
connected to the computer using a standard based bus system and object-oriented database, and/or a record-based database.
980. In different embodiments, the standard based bus system 0117. In the embodiment of FIG. 11, the computing device
could be implemented in Peripheral Component Interconnect 162 includes a user interface module 912 that may be stored
(PCI), Microchannel, Small Computer System Interface in the mass storage device 920 as executable software codes
(“SCSI), Industrial Standard Architecture (“ISA') and that are executed by the CPU905. This and other modules in
Extended ISA (“EISA) architectures, for example. In addi the computing device 162 may include, by way of example,
tion, the functionality provided for in the components and components, such as Software components, object-oriented
modules of computing device 162 may be combined into Software components, class components and task compo
fewer components and modules or further separated into nents, processes, functions, attributes, procedures, Subrou
additional components and modules, and executed in Soft tines, segments of program code, drivers, firmware, micro
ware, hardware, or a combination of hardware and software. code, circuitry, data, databases, data structures, tables, arrays,
0113. The computing device 162 is generally controlled and variables. In the embodiment shown in FIG. 11, the
and coordinated by operating system software, such as iOS, computing device 162 is configured to the execute the user
Android, Chrome OS, Windows XP, Windows Vista, Win interface module 112 in order to for example, reserve and
dows 7, Windows 8, Windows Server, Windows CE, Unix, pickup vehicles, and perform and visualize other operations
Linux, SunOS, Solaris, iOS, Blackberry OS, or other com described herein.
patible operating systems. In Macintosh Systems, the operat 0118 User interface module 912 may generate and render,
ing system may be any available operating system, Such as for example, user interfaces depicted in FIGS. 5, 7, 8, etc. By
MAC OS X. In other embodiments, the computing device 162 interacting with these user interfaces, a user of computing
may be controlled by a proprietary operating system. Con device 162 may view various information about their reser
ventional operating systems control and Schedule computer Vation and associated car.
processes for execution, perform memory management, pro 0119. In general, the word “module,” as used herein (ex
vide file system, networking, I/O services, and provide a user cept as otherwise defined, such as in control module), refers to
interface functionality usable by the user interface module logic embodied in hardware or firmware, or to a collection of
110, such as a graphical user interface (“GUI), among other Software instructions, possibly having entry and exit points,
things. Written in a programming language. Such as, for example,
0114. The exemplary computing device 162 may include Java, Lua, C or C++. A software module may be compiled and
one or more commonly available input/output (I/O) devices linked into an executable program, installed in a dynamic link
and interfaces 910. Such as a keyboard, mouse, touchscreen, library, or may be written in an interpreted programming
and printer. In one embodiment, the I/O devices and inter language such as, for example, BASIC, Perl, or Python. It will
faces 910 include one or more display devices, such as a be appreciated that software modules may be callable from
monitor or touchscreen 940, that allows the visual presenta other modules or from themselves, and/or may be invoked in
tion of data to a user. More particularly, a display device response to detected events or interrupts. Software modules
provides for the presentation of GUIs, application software configured for execution on computing devices may be pro
data, and multimedia presentations, for example. The com vided on a computer readable medium, Such as a compact
puting device 162 may also include one or more multimedia disc, digital video disc, flash drive, magnetic disc, or any other
devices, such as speakers, video cards, graphics accelerators, tangible medium, or as a digital download (and may be origi
and microphones, for example. nally stored in a compressed or installable format that
0115. In the embodiment of FIG. 11, the I/O devices and requires installation, decompression or decryption prior to
interfaces 910 provide a communication interface to various execution). Such software code may be stored, partially or
external devices. In the embodiment of FIG. 11, the comput fully, on a memory device of the executing computing device,
ing device 162 is electronically coupled to a network 160 (as Such as the computing device 162, for execution by the com
shown in FIG. 1), which comprises one or more of a LAN, puting device. Software instructions may be embedded in
WAN, and/or the Internet, for example, via a wired, wireless firmware, such as an EPROM. It will be further appreciated
(such as 802.11 networks or a cell phone network), or com that hardware modules may be comprised of connected logic
bination of wired and wireless, communication link. The units, such as gates and flip-flops, and/or may be comprised of
network 160 communicates with various computing devices programmable units, such as programmable gate arrays or
and/or other electronic devices via wired or wireless commu processors. The modules described herein are preferably
nication links. implemented as Software modules, but may be represented in
0116. In some embodiments information may be provided hardware or firmware. Generally, the modules described
to the computing device 162 over the network 160 from herein refer to logical modules that may be combined with
remote servers 970. Similarly, in some embodiments, infor other modules or divided into sub-modules despite their
physical organization or storage.
mation may be provided to the remote servers 970 over the I0120 Like the computing device 162, remote servers 970
network 160 control module 101 or computing device 162. and control module 101 may comprise similar computing
The remote servers 970 may include one or more internal hardware, software, and functionality as described above for
and/or external data sources. The data sources may include computing device 162.
internal and external data sources which store, for example,
rental car or car share reservation data, and vehicle, control Other
unit and customer data and properties, and associations there
of. In some embodiments, one or more of the databases or I0121 Each of the processes, methods, and algorithms
data sources may be implemented using a relational database, described in the preceding sections may be embodied in, and
such as Sybase, Oracle, CodeBase and Microsoft(R) SQL fully or partially automated by, code modules executed by one
US 2014/0309842 A1 Oct. 16, 2014
or more computer systems or computer processors compris purpose computers. For example, the methods described
ing computer hardware. The code modules may be stored on herein may be performed by the remote servers 970, control
any type of non-transitory computer-readable medium or module 101, consumer computing device 162, and/or any
computer storage device. Such as hard drives, Solid state other suitable computing device. The methods may be
memory, optical disc, and/or the like. The systems and mod executed on the computing devices in response to execution
ules may also be transmitted as generated data signals (for of software instructions or other executable code read from a
example, as part of a carrier wave or other analog or digital tangible computer readable medium. A tangible computer
propagated signal) on a variety of computer-readable trans readable medium is a data storage device that can store data
mission mediums, including wireless-based and wired/cable that is readable by a computer system. Examples of computer
based mediums, and may take a variety of forms (for example, readable mediums include read-only memory, random-ac
as part of a single or multiplexed analog signal, or as multiple cess memory, other Volatile or non-volatile memory devices,
discrete digital packets or frames). The processes and algo CD-ROMs, magnetic tape, flash drives, and optical data stor
rithms may be implemented partially or wholly in applica age devices.
tion-specific circuitry. The results of the disclosed processes I0126. It should be emphasized that many variations and
and process steps may be stored, persistently or otherwise, in modifications may be made to the above-described embodi
any type of non-transitory computer storage Such as, for ments, the elements of which are to be understood as being
example, Volatile or non-volatile storage. among other acceptable examples. All Such modifications and
0122) The various features and processes described above variations are intended to be included herein within the scope
may be used independently of one another, or may be com of this disclosure. The foregoing description details certain
bined in various ways. All possible combinations and Sub embodiments of the invention. It will be appreciated, how
combinations are intended to fall within the scope of this ever, that no matter how detailed the foregoing appears intext,
disclosure. In addition, certain method or process blocks may the invention can be practiced in many ways. AS is also stated
be omitted in Some implementations. The methods and pro above, it should be noted that the use of particular terminol
cesses described herein are also not limited to any particular ogy when describing certain features or aspects of the inven
sequence, and the blocks or states relating thereto can be tion should not be taken to imply that the terminology is being
performed in other sequences that are appropriate. For re-defined herein to be restricted to including any specific
example, described blocks or states may be performed in an characteristics of the features or aspects of the invention with
order other than that specifically disclosed, or multiple blocks which that terminology is associated. The scope of the inven
or states may be combined in a single block or state. The tion should therefore be construed in accordance with the
example blocks or states may be performed in serial, in par appended claims and any equivalents thereof.
allel, or in Some other manner. Blocks or states may be added What is claimed is:
to or removed from the disclosed example embodiments. The
example systems and components described herein may be 1. A method of supporting registration of a control module
configured differently than described. For example, elements with a rental vehicle to enable a remote computing system to
may be added to, removed from, or rearranged compared to wirelessly communicate instructions to the rental vehicle via
the disclosed example embodiments. the control module, the method comprising:
0123 Conditional language, such as, among others, “can.” prior to the control module communicating with the rental
“could.” “might,” or “may, unless specifically stated other vehicle in response to any instructions received by the
wise, or otherwise understood within the context as used, is control module from the remote computing system via
generally intended to convey that certain embodiments cellular communication, a mobile computing device
include, while other embodiments do not include, certain receiving a first identifier via a wireless data capture
features, elements and/or steps. Thus, Such conditional lan technique distinct from cellular communication, the first
guage is not generally intended to imply that features, ele identifier corresponding to a unique identifier of the
ments and/or steps are in any way required for one or more control module;
embodiments or that one or more embodiments necessarily prior to the control module communicating with the rental
include logic for deciding, with or without user input or vehicle in response to any instructions received by the
prompting, whether these features, elements and/or steps are control module from the remote computing system via
included or are to be performed in any particular embodi cellular communication, the mobile computing device
ment.
receiving a second identifier via a wireless data capture
0.124. Any process descriptions, elements, or blocks in the technique distinct from cellular communication, the sec
flow diagrams described herein and/or depicted in the ond identifier corresponding to a unique identifier of the
attached figures should be understood as potentially repre rental vehicle:
senting modules, segments, orportions of code which include the mobile computing device sending the first identifier
one or more executable instructions for implementing spe and the second identifier to the remote computing sys
cific logical functions or steps in the process. Alternate imple tem for association of the first identifier with the second
mentations are included within the scope of the embodiments identifier to register the control module with the rental
described herein in which elements or functions may be vehicle within the remote computing system.
deleted, executed out of order from that shown or discussed,
including Substantially concurrently or in reverse order, 2. The method of claim 1 wherein the wireless data capture
depending on the functionality involved, as would be under technique for receiving the first identifier comprises a bar
stood by those skilled in the art. code Scan.
0.125 All of the methods and processes described above 3. The method of claim 2 wherein the wireless data capture
may be embodied in, and partially or fully automated via, technique for receiving the second identifier comprises a QR
Software code modules executed by one or more general code Scan.
US 2014/0309842 A1 Oct. 16, 2014
4. The method of claim 1 wherein the wireless data capture gram, the installation program configured to be executed
technique for receiving the first identifier comprises near by the processor in response to input from a user of the
field communication. mobile computing device;
5. The method of claim 1 wherein the wireless data capture wherein the installation program, when executed by the
technique for receiving the first identifier comprises a QR processor, is configured to cause the mobile computing
code scan. device to:
6. The method of claim 1 wherein the wireless data capture receive a first identifier via a wireless data capture tech
technique for receiving the first identifier comprises a radio nique distinct from cellular communication, the first
frequency identification (RFID) communication. identifier corresponding to a unique identifier of a
7. The method of claim 1 wherein the wireless data capture control module, wherein the control module is to be
technique for receiving the second identifier comprises a bar registered with a rental vehicle within a remote com
code scan. puting system to enable the remote computing system
8. The method of claim 1 wherein the wireless data capture to wirelessly communicate instructions to the rental
technique for receiving the second identifier comprises a QR vehicle via the control module:
code scan. receive a second identifier via a wireless data capture
technique distinct from cellular communication, the
9. The method of claim 1 wherein the wireless data capture second identifier corresponding to a unique identifier
technique for receiving the second identifier comprises near of the rental vehicle; and
field communication. send the first identifier and the second identifier to the
10. The method of claim 1 wherein the wireless data cap remote computing system for association of the first
ture technique for receiving the second identifier comprises a identifier with the second identifier to register the
radio frequency identification (RFID) communication. control module with the rental vehicle within the
11. The method of claim 1 wherein the wireless data cap remote computing system.
ture technique for receiving the second identifier comprises a 18. The computer program product of claim 17 wherein the
photograph of a license plate or a vehicle identification num instructions are configured for execution by a processor of a
ber (VIN) for the rental vehicle. Smartphone.
12. The method of claim 1 further comprising: 19. The computer program product of claim 17 wherein the
electronically connecting the control module to an on instructions are configured for execution by a processor of a
board diagnostics (OBD) unit of the rental vehicle; and tablet computer.
electronically connecting the control module to a control 20. An apparatus comprising:
ler area network (CAN) bus of the rental vehicle. a control module for connection to a vehicle to enable a
13. The method of claim 12 further comprising: remote computing system to wirelessly communicate
while the control module is electronically connected to the instructions to the vehicle via the control module, the
OBD unit and the CAN bus of the rental vehicle, testing control module comprising:
the control module by the control module determining a processor,
whether a plurality of correct command codes for the a wireless network interface configured to interface the
rental vehicle are stored in the control module. processor with a wireless network; and
14. The method of claim 13 further comprising condition a vehicle interface configured to interface the processor
ing performance of the sending step on the testing step being with an on-board diagnostics (OBD) unit and a con
Successful. troller area network (CAN) bus of the vehicle, the
vehicle interface comprising a plurality of CAN bus
15. The method of claim 14 wherein the testing step further transceivers, each CAN bus transceiver configured to
comprises (1) the control module determining whether the interface the processor with a CANbus type of at least
control module knows its own first identifier, (2) the control one vehicle type such that the plurality of CAN bus
module determining whether the control module is able to transceivers are configured to interface the processor
automatically detect the second identifier from the rental with the CAN bus types of a plurality of different
vehicle, and (3) the control module determining whether its vehicle types in the aggregate;
own determined first identifier is correctly paired with the wherein the processor is configured to (1) automatically
automatically detected second identifier. detect an identifier for the vehicle through the vehicle
16. The method of claim 12 wherein the registration of the interface, (2) automatically select a CAN bus trans
control module with the rental vehicle within the remote ceiver, from among the plurality of CAN bus trans
computing system permits the remote computing system to ceivers based on the detected identifier, and (3) com
remotely unlock the rental vehicle by sending an unlock municate with the vehicle's CAN bus via the selected
instruction via cellular communication to the control module, CAN bus transceiver.
whereupon the control module electronically interacts with 21. The apparatus of claim 20 wherein the control module
the rental vehicle to unlock the rental vehicle in response to further comprises a memory in which configuration informa
the unlock instruction, and wherein the method steps are tion for a plurality of different vehicle types is stored, and
performed without directly connecting the control module to wherein the processor is further configured to (1) determine
a locking mechanism of the rental vehicle. the vehicle type for the vehicle based on the detected identi
17. A computer program product comprising: fier, (2) retrieve the configuration information for the deter
a plurality of instructions that are resident on a non-transi mined vehicle type from the memory, and (3) select the CAN
tory computer-readable storage medium and are execut bus transceiver from among the plurality of CAN bus trans
able by a processor of a mobile computing device, ceivers in accordance with the retrieved configuration infor
wherein the instructions comprise an installation pro mation.
US 2014/0309842 A1 Oct. 16, 2014
22. The apparatus of claim 21 wherein the different vehicle (3) retrieve from the memory the stored code for the vehicle
types comprise a plurality of different years, makes, and function corresponding to the received command instruction,
models (YMMs) of vehicles. and (4) communicate the retrieved code to the vehicle via the
23. The apparatus of claim 21 wherein the stored configu vehicle interface to thereby cause the vehicle to perform the
ration information further comprises a plurality of codes for function corresponding to the received command instruction.
controlling a plurality of vehicle functions, wherein the codes 28. The apparatus of claim 27 wherein the function corre
vary by vehicle type such that a plurality of different vehicle sponding to the received command instruction comprises a
types exhibit a plurality of different codes for the vehicle member of the group consisting of (1) enabling/disabling a
functions, and wherein the processor is further configured to starter for the vehicle, (2) locking/unlocking a door for the
(1) receive an instruction from the remote computing system vehicle, (3) flashing lights for the vehicle, (4) opening/closing
via the wireless network interface, the instruction comprising a window for the vehicle, (5) opening/closing a Sunroof for
a command for the vehicle to perform a function, (2) retrieve the vehicle, (6) sounding a horn for the vehicle, and (7)
from the memory the stored code for the vehicle function opening or unlocking a trunk for the vehicle.
corresponding to the received command instruction based on 29. The apparatus of claim 26 wherein the detected iden
the determined vehicle type, and (3) communicate the tifier is a vehicle identification number (VIN), wherein the
retrieved code to the vehicle via the vehicle interface to processor is further configured to request and receive the VIN
thereby cause the vehicle to perform the function correspond from the vehicle via the vehicle interface, and wherein the
ing to the received command instruction. remote server is part of the remote computing system.
24. The apparatus of claim 23 wherein the function corre 30. The apparatus of claim 20 wherein the vehicle interface
sponding to the received command instruction comprises a further comprises a multiplexer, the multiplexer including a
member of the group consisting of (1) enabling/disabling a data input line, a channel select input line, and a plurality of
starter for the vehicle, (2) locking/unlocking a door for the channel output lines, each channel output line connected to a
vehicle, (3) flashing lights for the vehicle, (4) opening/closing different CAN bus transceiver, and wherein the processor is
a window for the vehicle, (5) opening/closing a Sunroof for further configured to select the CAN bus transceiver from
the vehicle, (6) sounding a horn for the vehicle, and (7) among the plurality of CAN bus transceivers via a control
opening or unlocking a trunk for the vehicle. signal applied to the channel select input line, the control
25. The apparatus of claim 21 wherein the detected iden signal causing the multiplexer to connect the data input line
tifier is a vehicle identification number (VIN), and wherein with the channel output line for the selected CAN bus trans
the processor is further configured to (1) request and receive ceiver.
the VIN from the vehicle via the vehicle interface, and (2) 31. The apparatus of claim 30 wherein the channel select
decode the VIN to determine the vehicle type. input line comprises a plurality of channel select pins.
26. The apparatus of claim 20 wherein the processor is 32. The apparatus of claim 20 wherein the processor com
further configured to (1) send the detected identifier to a prises a plurality of processors.
remote server via the wireless interface, (2) receive configu 33. The apparatus of claim 20 wherein the control module
ration information for the vehicle from the remote server via
further comprises a GPS chipset in communication with the
the wireless interface, and (3) select the CAN bus transceiver processor and an accelerometer in communication with the
from among the plurality of CAN bus transceivers in accor processor.
dance with the received configuration information. 34. The apparatus of claim 20 wherein the vehicle interface
27. The apparatus of claim 26 wherein the control module includes a connector, the control module configured to
further comprises a memory, wherein the received configu detachably connect with an OBD port of the vehicle via the
ration information includes a plurality of codes for control COnnectOr.
ling a plurality of functions of the vehicle, and wherein the 35. The apparatus of claim 20 wherein the control module
processor is further configured to (1) store the codes in the does not include a DIP switch configured to provide for
memory, (2) receive an instruction from the remote comput manual selection between the CAN bus transceivers.
ing system via the wireless network interface, the instruction
comprising a command for the vehicle to perform a function, k k k k k