Scheduling pre-departure charging of electric vehicles

A computer-implemented method for scheduling pre-departure charging for electric vehicles includes predicting a user-departure time based on a first machine learning prediction model. The method further includes determining a cabin temperature to be set for the user at the user-departure time based on a second machine learning prediction model. The method further includes determining a battery-temperature to be set at the user-departure time based on a third machine learning prediction model. The method further includes determining a present charge level of a battery of the electric vehicle. The method further includes computing a charging start-time to start charging the battery based on one or more attributes of a charging station to which the electric vehicle is coupled, and based on the user-departure time, the cabin temperature, and the battery-temperature. The method further includes initiating charging the battery at the charging start-time.

INTRODUCTION

The present disclosure relates to systems, storage media and methods for pre-departure charging scheduling for electric vehicles based on usage and charging patterns.

Various types of automotive vehicles, such as electric vehicles (EVs), extended-range electric vehicles (EREVs), and hybrid electric vehicles (HEVs) are equipped with energy storage systems that require periodic charging. The energy storage system may be charged by connecting to a power source, such as an AC supply line. It should be noted that any automotive vehicle that is charged using an AC supply line is referred to as an “electric vehicle” herein.

SUMMARY

According to one or more embodiments, a system includes a memory device, and one or more hardware processors configured by machine-readable instructions for scheduling pre-departure charging for electric vehicles. The one or more hardware processors are configured to predict a user-departure time based on a first machine learning prediction model, wherein the user-departure time represents when a user initiates driving an electric vehicle. The one or more hardware processors are further configured to determine a cabin temperature to be set for the user at the user-departure time based on a second machine learning prediction model. The one or more hardware processors are further configured to determine a battery-temperature of a battery of the electric vehicle to be set at the user-departure time based on a third machine learning prediction model. The one or more hardware processors are further configured to determine a present charge level of a battery of the electric vehicle. The one or more hardware processors are further configured to compute a charging start-time to start charging the battery based on one or more attributes of a charging station to which the electric vehicle is coupled, and based on the user-departure time, the cabin temperature, and the battery-temperature. The one or more hardware processors are further configured to start charging the battery at the charging start-time.

In one or more embodiments, the one or more hardware processors are further configured to start the electric vehicle at a vehicle start-time, which is prior to the user-departure time.

In one or more embodiments, the cabin temperature is adjusted at the vehicle start-time.

In one or more embodiments, the one or more attributes of the charging station are determined based on a prior charging session by the electric vehicle.

In one or more embodiments, the one or more attributes of the charging station are determined based on a prior charging session by another electric vehicle, wherein the one or more attributes are stored in a remote location.

In one or more embodiments, the one or more hardware processors are further configured to display, to the user, a confirmation message comprising one or more predicted values comprising the user-departure time, and the cabin temperature.

In one or more embodiments, the one or more hardware processors are further configured to receive, from the user, adjustments to at least one of the user-departure time, and the cabin temperature.

According to one or more embodiments, a non-transient computer-readable storage medium includes computer executable instructions, wherein one or more processors execute the computer executable instructions to perform a method for scheduling pre-departure charging for electric vehicles. The method includes predicting a user-departure time based on a first machine learning prediction model, wherein the user-departure time represents when a user initiates driving an electric vehicle. The method further includes determining a cabin temperature to be set for the user at the user-departure time based on a second machine learning prediction model. The method further includes determining a battery-temperature of a battery of the electric vehicle to be set at the user-departure time based on a third machine learning prediction model. The method further includes determining a present charge level of a battery of the electric vehicle. The method further includes computing a charging start-time to start charging the battery based on one or more attributes of a charging station to which the electric vehicle is coupled, and based on the user-departure time, the cabin temperature, and the battery-temperature. The method further includes initiating charging the battery at the charging start-time.

In one or more embodiments, the method further comprises starting the electric vehicle at a vehicle start-time, which is prior to the user-departure time.

In one or more embodiments, the cabin temperature is adjusted at the vehicle start-time.

In one or more embodiments, the one or more attributes of the charging station are determined based on a prior charging session by the electric vehicle.

In one or more embodiments, the one or more attributes of the charging station are determined based on a prior charging session by another electric vehicle, wherein the one or more attributes are stored in a remote location.

In one or more embodiments, the method further comprises displaying, to the user, a confirmation message comprising one or more predicted values comprising the user-departure time, and the cabin temperature.

In one or more embodiments, the method further comprises receiving, from the user, adjustments to at least one of the user-departure time, and the cabin temperature.

According to one or more embodiments, a computer-implemented method for scheduling pre-departure charging for electric vehicles includes predicting a user-departure time based on a first machine learning prediction model, wherein the user-departure time represents when a user initiates driving an electric vehicle. The method further includes determining a cabin temperature to be set for the user at the user-departure time based on a second machine learning prediction model. The method further includes determining a battery-temperature of a battery of the electric vehicle to be set at the user-departure time based on a third machine learning prediction model. The method further includes determining a present charge level of a battery of the electric vehicle. The method further includes computing a charging start-time to start charging the battery based on one or more attributes of a charging station to which the electric vehicle is coupled, and based on the user-departure time, the cabin temperature, and the battery-temperature. The method further includes initiating charging the battery at the charging start-time.

In one or more embodiments, the method further comprises starting the electric vehicle at a vehicle start-time, which is prior to the user-departure time.

In one or more embodiments, the cabin temperature is adjusted at the vehicle start-time.

In one or more embodiments, the one or more attributes of the charging station are determined based on a prior charging session by the electric vehicle.

In one or more embodiments, the one or more attributes of the charging station are determined based on a prior charging session by another electric vehicle, wherein the one or more attributes are stored in a remote location.

In one or more embodiments, the method further comprises displaying, to the user, a confirmation message comprising one or more predicted values comprising the user-departure time, and the cabin temperature.

In one or more embodiments, the method further comprises receiving, from the user, adjustments to at least one of the user-departure time, and the cabin temperature.

DETAILED DESCRIPTION

FIG.1illustrates a system100configured for scheduling pre-departure charging of electric vehicles. A user102of an electric vehicle110(“vehicle”) is presented a user interface103that displays information of one or more charging stations120, one or more predictions, and one or more options for scheduling such pre-departure charging of the vehicle110, in one or more embodiments. In one or more embodiments, the user102can select one or more options via the user interface103to adjust actions to be taken for scheduling the pre-departure charging of the vehicle110.

The user interface103is presented to the user102via a communication device104in one or more embodiments. The communication device104can be a phone, a tablet computer, a laptop computer, a desktop computer, or any other communication device. The communication device104can include one or more processing units such as microprocessors, and other such processing units that can execute one or more computer executable instructions. The communication device104can also include one or more memory devices that store computer executable instructions and/or other data that is used for execution of the computer executable instructions.

In one or more embodiments, the user interface103is presented to the user102via an infotainment system112of the vehicle110. The infotainment system112can include one or more processing units such as engine control units (ECUs), microprocessors, and other processing units that can execute one or more computer executable instructions. The infotainment system112can also include one or more memory devices that store computer executable instructions and/or other data that is used for execution of the computer executable instructions. The infotainment system112can be considered as a vehicle controller that manages various operations of the vehicle110.

In one or more embodiments, the infotainment system112can access one or more sensors114. The infotainment system112can access data from the sensors114, for example, using an application programming interface of the respective sensors114. The sensors114include a location sensor, for example, a global positioning system (GPS) that provides information about the geographic location of the vehicle110. The sensors114further include a charging station sensor that identifies one or more attributes of the charging station120being used to charge the vehicle110.

Attributes of the charging station120can include a unique station-identifier, charging speed (charging level), wattage, session fees, time fees, per kilowatt hour fees, penalties for staying over time limit, and other such attributes.

When the user102uses the charging station120to recharge the vehicle110, the infotainment system112records a charging session in a dataset125. The charging session dataset125is stored at a location that is remote from the vehicle110. It is understood that the infotainment system112can maintain a local copy of the charging session data that is recorded in the charging session dataset125. Further, it should be noted that the infotainment system112can record the charging session data in the charging session dataset125during the recharging, or at a later time. The infotainment system112accesses the charging session dataset125via a communication network150, such as a WIFI® network, a cellular network, or any other type of communication network or a combination thereof.

The charging session dataset125is a database that stores multiple charging session data entries. WhileFIG.1depicts the charging session dataset125receiving data from a single vehicle110, in some embodiments, the charging session dataset125receives charging session data entries from several vehicles110. In some embodiments, the charging dataset125can include data associated with a particular charging station120collected from multiple vehicles110.

Table 1 depicts a charging session dataset125according to one or more embodiments. Each entry in the charging session dataset125represents a charging session. Each entry includes identifying information associated with the charging session, such as a unique identifier of the charging session, a unique identifier of the charging station120, a unique identifier of the vehicle110, a unique identifier of the user102initiating the charging, etc. In addition, each entry includes several attributes associated with the charging session, such as the wattage, charging speed, charge pricing, and other such attributes of the charging station120. It is understood that the number of attributes and number of entries shown in Table 1 are illustrative and that in embodiments of the technical solutions described herein, those numbers can vary.

The sensors114further include one or more cabin sensors that detect temperature, humidity, airflow, and other cabin climate related measurements within the cabin (i.e., inside) the vehicle110. The cabin sensors facilitate detection and storage of data associated with heating, ventilation, and air conditioning (HVAC) of the cabin.

When the user102uses one or more interfaces (not shown), such as buttons, touchscreen, etc. to adjust HVAC of the cabin, the infotainment system112records a cabin climate session in a cabin climate dataset127. The cabin climate dataset127is stored at a location that is remote from the vehicle110. It is understood that the infotainment system112can maintain a local copy of the cabin climate dataset127. The infotainment system112accesses the cabin climate dataset127via the communication network150. The cabin climate dataset127is a database that stores multiple cabin climate data entries, which are particular to the user102of the vehicle110.

Table 2 depicts a cabin climate dataset127according to one or more embodiments. Each entry in the user-comfort dataset127represents a change made to the cabin climate and particular contextual information at the time of such change being made. Each entry includes identifying information, such as a unique identifier of the entry, a unique identifier of the user102initiating the change, etc. In addition, each entry includes several attributes associated with the change, such as a previous temperature, set temperature, outside temperature, time of day, battery charge level, and other attributes that provide contextual information of the change in the cabin climate. It is understood that the number of attributes and number of entries shown in Table 2 are illustrative and that in embodiments of the technical solutions described herein, those numbers can vary.

The infotainment system112further records user behavior, particularly associated with trips with the vehicle110, in a user behavior dataset129. The user behavior dataset129is stored at a location that is remote from the vehicle110. It is understood that the infotainment system112can maintain a local copy of the user behavior dataset129. The infotainment system112accesses the user behavior dataset129via the communication network150. The user behavior dataset129is a database that stores multiple user behavior data entries, which are particular to the user102of the vehicle110.

Table 3 depicts a user behavior dataset129according to one or more embodiments. Each entry in the user behavior dataset129represents a trip made by the user102. Each entry includes identifying information, such as a unique identifier of the entry, and in addition, several attributes associated with the trip, such as start time(s), stop time(s), route(s), start location(s), stop location(s), distance(s) travelled in the trip, and the like. The sensors114further include one or more sensors that detect the amount of charge in a battery116of the vehicle110, a temperature of the battery116, and other attributes of the battery116. In some embodiments, the battery charge level, and other attributes of the battery116are stored as part of the user behavior entry. For example, the battery charge level at the start time, and at the stop time can be recorded. The battery charge level at different timepoints in the trip can also be recorded in one or more embodiments. In some embodiments, the battery temperatures at the start time, and at the stop time, are also recorded. The battery temperatures at additional timepoints can also be stored in one or more embodiments. It is understood that the number of attributes and number of entries shown in Table 3 are illustrative and that in embodiments of the technical solutions described herein, those numbers can vary.

A technical challenge with electric vehicles is that climate control use during the ride reduces the battery range. Technical solutions described herein facilitate the vehicle110to be preconditioned ahead of departure to improve the battery range and improve user comfort by preconditioning the cabin climate. For example, one or more embodiments facilitate adjusting the cabin climate to a predicted user comfort level while the vehicle110is charging. Accordingly, a desired cabin climate, for example, temperature, is achieved without consuming energy from the battery116.

Embodiments described herein further facilitate getting the battery116to an operating temperature, which is a predetermined temperature, before the user102departs. Having the battery116achieve the operating temperature prior to using the vehicle110conserves energy and improves the battery range. Embodiments described herein facilitate using machine learning techniques, such as neural networks, to determine what should be the optimal time to start charging the vehicle110pre-departure. Embodiments described herein provide technical solutions that consider several factors, such as user desired temperature, external temperature, and charging station characteristics, among others, in determining the charging start-time.

Referring toFIG.1again, the charging session dataset125, the cabin climate dataset127, and the user behavior dataset129(collectively, “datasets”), are accessible by a computing device130. The computing device130can be a server computer, a laptop computer, a tablet computer, a desktop computer, or any other such device that includes one or more processing units coupled with one or more memory devices. The processing units execute one or more computer executable instructions that are stored on the memory devices. In one or more embodiments, the processing units execute the computer executable instructions to implement one or more methods described herein.

The computing device130analyzes the datasets. The computing device130, based on the analysis, generates a pre-departure charging schedule for the battery116. The computing device130trains a user departure prediction model132to predict a user departure schedule. The user departure prediction model132is a machine-learning based model that is implemented by the computing device130. For example, the computing device130can use techniques such as decision trees, logistic regression, random forest, neural networks, or any other machine-learning technique to implement the user departure prediction model132. It should be noted that the type of prediction model used does not affect the aspects of the technical solutions described herein. The user departure prediction model132is trained to output one or more user-departure times, and one or more respectively corresponding confidence scores. A confidence score represents a probability that the user102will depart at the corresponding predicted user-departure time. The user departure prediction model132is trained to generate the output based on the user behavior dataset129, and spatial-temporal context. The spatial-temporal context includes the present location of the vehicle110(and hence, the user102), time of day, day of week, etc. The user departure prediction model132is pre-trained in one or more embodiments. In some embodiments, the user departure prediction model132is continuously trained.

In one or more embodiments, the user departure prediction model132determines whether the user102has a consistent routine for a week, a day of the week, or any other such predetermined time duration. For example, the user102starts the vehicle110at substantially 8:00 AM every weekday (Monday-Friday) at a particular location (e.g., his/her home), drives to a particular second location (e.g., work), parks the vehicle110until 5:00 PM, and returns to the first location thereafter. If such a routine is observed, within a predetermined tolerance threshold (e.g., 15 minutes, 30 minutes, etc.), the user departure prediction model132determines that the user102follows a consistent routine on weekdays. Alternatively, or in addition, the user102can have a consistent routine on the weekend too. For example, on Saturdays, the user102leaves the first location at 10:00 AM, drives to a third location (e.g., gym, park, etc.), parks there until 4:00 PM, and returns to the first location thereafter. On Sundays, the user102leaves the first location at 11:00 AM, drives to a fourth location (e.g., mall, grocery store, restaurant, etc.), parks there until 2:00 PM, and returns to the first location thereafter. Such trips are recorded in the user behavior dataset129, as noted herein. It is understood that the times and days can vary in different embodiments. Further, it is understood that the routine can be deemed consistent by the user departure prediction model132as long as the user102proceeds in this manner for at least a predetermined number of times.

In the above example scenario, the user102can charge the vehicle110at charging stations120at any of the first, second, third, or fourth locations. The attributes of the charging stations120that are used are recorded in the charging session dataset125.

Alternatively, the user departure prediction model132determines that the user102has an inconsistent schedule. For example, when the user102performs one or more activities at particular times but does not repeat these activities for at least the predetermined number of times. In one or more embodiments, the computing device130predicts departure time only for users102with a consistent routine. For example, the computing device130uses a predicted user-departure time, or any other predicted value only when a confidence score associated with the prediction is above a pre-defined threshold.

Further, the computing device130trains a cabin climate prediction model134to predict a user desired cabin climate at the user departure time, and other times. The cabin climate prediction model134is a machine-learning based model that is implemented by the computing device130. For example, the computing device130can use techniques such as decision trees, logistic regression, random forest, neural networks, or any other machine-learning technique to implement the cabin climate prediction model134. It should be noted that the type of prediction model used does not affect the aspects of the technical solutions described herein. The cabin climate prediction model134is trained to output one or more sets of cabin climate attributes, and one or more respectively corresponding confidence scores. A confidence score represents a probability that the user102desires the corresponding cabin climate attributes at the predicted user-departure time. The cabin climate prediction model134is trained to generate the output based on the datasets, including the cabin climate dataset127, and one or more external factors. The external factors include the present location of the vehicle110(and hence, the user102), weather conditions at the present location, time of day, etc. The cabin climate prediction model134is pre-trained in one or more embodiments. In some embodiments, the cabin climate prediction model134is continuously trained as the user102operates the vehicle110. A set of cabin climate attributes includes cabin temperature, cabin humidity, etc.

Additionally, the computing device130trains a battery prediction model136to predict one or more attributes of the battery116at the user departure time in response to charging the battery using the charging station120at the present location of the vehicle110. The battery prediction model136is a machine-learning based model that is implemented by the computing device130. For example, the computing device130can use techniques such as decision trees, logistic regression, random forest, neural networks, or any other machine-learning technique to implement the battery prediction model136. It should be noted that the type of prediction model used does not affect the aspects of the technical solutions described herein. The battery prediction model136is trained to output one or more sets of battery attributes, and one or more respectively corresponding confidence scores. A confidence score represents a probability that the battery116exhibits the battery attributes at the predicted user-departure time. The battery prediction model136is trained to generate the output based on the datasets, including the charging session dataset125, and one or more external factors. The external factors include the present location of the vehicle110, charging station120(and its attributes) at the present location, present battery charge level, etc. The battery prediction model136is pre-trained in one or more embodiments. In some embodiments, the battery prediction model136is continuously trained as the user102operates the vehicle110. The battery attributes that are predicted include battery charge level, battery temperature, etc.

FIG.2depicts a flowchart of a method for generating the pre-departure charging schedule for the vehicle according to one or more embodiments. The method200can be implemented by the computing device130that is remote from the vehicle110in one or more embodiments. Alternatively, in one or more embodiments, the method200can be implemented by the infotainment system112of the vehicle. Alternatively, the infotainment system112and the computing device130execute the method200in combination. In yet other embodiments, the method200can be executed by a combination of computing devices that includes the computing device130, the infotainment system, the communication device104, etc.

The method200includes predicting a user-departure time based on user departure prediction model132, at block202. The user-departure time represents when the user102initiates driving the vehicle110. Further, at block204, a cabin climate to be set for the user102at the user-departure time is determined based on the cabin climate prediction model134. At block206, the battery prediction model136outputs predicted battery conditions at the user-departure time if the battery116is charged using the charging station120at the present location of the vehicle110.

The present charge level of the battery116is determined, at block208. The battery prediction model136can use the present charge level to determine the amount of time required to charge the battery116to a predetermined value, for example, fully charged (100% charged), 90% charged, or any other such predetermined value.

At block210, a charging start-time is determined at which to start charging the battery116. The charging start-time is determined based on the predictions from the user departure prediction model132, the cabin climate prediction model134, and the battery prediction model136, among other factors. As noted herein, by using the prediction models132,134,136, determining the charging start-time takes into consideration one or more attributes of the charging station120to which the vehicle110is coupled, the user-departure time, the desired cabin climate, and a predicted battery-temperature at the user-departure time because of the charging.

In one or more embodiments, the charging start-time is displayed to the user102via the user-interface103. The user-interface103can further include the predictions of the desired cabin climate, user-departure time, etc., which are used to determine the charging start-time. The user102can adjust one or more of the predicted values in one or more embodiments. Alternatively, or in addition, the user102can confirm the displayed values that are used to compute the charging start-time. The charging start-time is recomputed based on any adjustments made by the user102.

At block212, charging the battery116is initiated at the computed charging start-time. Accordingly, the battery116is at the predetermined charge level, and the predetermined operating temperature at the user-departure time. Further, in one or more embodiments, the vehicle110is started based on the user-departure time, at block214. For example, the vehicle110is started at the user-departure time, or a predetermined duration, (e.g., 5 minutes, 2 minutes, 15 minutes etc.) prior to the user-departure time. One or more settings of the vehicle110are adjusted at the start, for example, the cabin climate, entertainment system settings (e.g., radio station, navigation destination, etc.), when the vehicle is started.

FIG.3depicts an example scenario600of for generating the pre-departure charging schedule for the vehicle according to one or more embodiments. Generating the pre-departure charging schedule uses one or more attributes of the battery116, the charging station120, the user102, along with one or more external factors. The attributes of the battery116include charge level, temperature, capacity, charging time, etc. The attributes of the charging station120include charging rate, wattage, pricing, etc. The attributes of the user102include typical departure time, desired cabin climate settings, typical ride distance, etc.

The attributes are accessed via the datasets125,127, and129to train the machine learning models132,134, and136during an initial learning phase602. The machine learning models132,134, and136are trained by the computing device130in one or more embodiments, which is remote from the vehicle110. The trained machine learning models132,134, and136are subsequently stored in the vehicle110, for example, in the infotainment system112. The infotainment system112uses the machine learning models132,134, and136to perform the method200in one or more embodiments during an inference phase604. Alternatively, the computing device130executes the method200, in conjunction with the infotainment system112during the inference phase604. The inference phase604includes predicting the user-departure time, the desired cabin climate, and the charging time required to charge the battery116to at least a predetermined level. As noted, the inference phase604uses, as input, the present condition of the vehicle110(such as location, battery charge level, etc.), and external factors (608) from the surroundings (such as weather, charging station120, etc.) to generate the predictions. The external factors608can be accessed via third-party providers using one or more application programming interfaces, queries, or other such techniques. For example, the third-party providers can include computer servers, web services, etc., such as weather forecast providers, charging station information providers, navigation database providers, etc.

The predictions are used to determine a charging start-time when the battery charging is to be initiated so that the battery116is not only charged to at least the predetermined level but is also at the predetermined operating temperature for optimal performance.

In one or more embodiments, the predictions are displayed to the user102via the user interface103(606). The user102can confirm and/or adjust the predicted values. The charging start-time is adjusted if the user102adjusts any of the predicted values. Such user interaction can be performed, for example, when the user102is about to exit the vehicle110after a trip is completed by displaying the predictions on the infotainment system112. Alternatively, or in addition, the user interaction can be performed by providing the predictions to the user102via the communication device104via a push-notification when the predictions are ready, or at a pre-scheduled time, etc.

Embodiments of the technical solutions described herein facilitate predicting departure time from a location of an electric vehicle's user, which in turn facilitates increasing the battery range. This is achieved by one or more embodiments herein by bringing the battery of the electric vehicle to an operating temperature before the user departs, thereby conserving energy in the battery. Further, embodiments described herein bring the cabin to a predicted temperature while the vehicle is in charge mode to reduce energy consumption from the battery for climate control during the ride.

In one or more embodiments, the user can manually inform the vehicle controller about the departure time. Alternatively, or in addition, the vehicle's controller can use machine learning techniques to learn and determine the user charging and departure times, and desired cabin temperature. Using such information, and additional factors, such as external temperature, charging station attributes, the vehicle controller can schedule when to start charging the battery of the electric vehicle, and adjust the cabin climate while charging. Accordingly, embodiments described herein provide technical solutions to generate a pre-departure charging schedule to optimize energy costs, and battery longevity. Further, embodiments herein ensure that the charging is completed in time for the user's departure.

As shown inFIG.4, the computer system700has one or more central processing units (CPU(s))701a,701b,701c, etc. (collectively or generically referred to as processor(s)701). The processors701can be a single-core processor, multi-core processor, computing cluster, or any number of other configurations. The processors701, also referred to as processing circuits, are coupled via a system bus702to a system memory703and various other components. The system memory703can include a read only memory (ROM)704and a random access memory (RAM)705. The ROM704is coupled to the system bus702and may include a basic input/output system (BIOS), which controls certain basic functions of the computer system700. The RAM is read-write memory coupled to the system bus702for use by the processors701. The system memory703provides temporary memory space for operations of said instructions during operation. The system memory703can include random access memory (RAM), read only memory, flash memory, or any other suitable memory systems.

The computer system700comprises an input/output (I/O) adapter706and a communications adapter707coupled to the system bus702. The I/O adapter706may be a small computer system interface (SCSI) adapter that communicates with a hard disk708and/or any other similar component. The I/O adapter706and the hard disk708are collectively referred to herein as a mass storage710.

Software711for execution on the computer system700may be stored in the mass storage710. The mass storage710is an example of a tangible storage medium readable by the processors701, where the software711is stored as instructions for execution by the processors701to cause the computer system700to operate, such as is described herein with respect to the various Figures. Examples of computer program product and the execution of such instruction is discussed herein in more detail. The communications adapter707interconnects the system bus702with a network712, which may be an outside network, enabling the computer system700to communicate with other such systems. In one embodiment, a portion of the system memory703and the mass storage710collectively store an operating system, which may be any appropriate operating system to coordinate the functions of the various components shown inFIG.4.

Additional input/output devices are shown as connected to the system bus702via a display adapter715and an interface adapter716. In one embodiment, the adapters706,707,715, and716may be connected to one or more I/O buses that are connected to the system bus702via an intermediate bus bridge (not shown). A display719(e.g., a screen or a display monitor) is connected to the system bus702by the display adapter715, which may include a graphics controller to improve the performance of graphics intensive applications and a video controller. A keyboard, a mouse, a touchscreen, one or more buttons, a speaker, etc. can be interconnected to the system bus702via the interface adapter716, which may include, for example, a Super I/O chip integrating multiple device adapters into a single integrated circuit. Suitable I/O buses for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols, such as the Peripheral Component Interconnect (PCI). Thus, as configured inFIG.4, the computer system700includes processing capability in the form of the processors701, and, storage capability including the system memory703and the mass storage710, input means such as the buttons, touchscreen, and output capability including a speaker723and the display719.

In some embodiments, the communications adapter707can transmit data using any suitable interface or protocol, such as the internet small computer system interface, among others. The network712may be a cellular network, a radio network, a wide area network (WAN), a local area network (LAN), or the Internet, among others. An external computing device may connect to the computer system700through the network712. In some examples, an external computing device may be an external webserver or a cloud computing node.

It is to be understood that the block diagram ofFIG.4is not intended to indicate that the computer system700is to include all of the components shown. Rather, the computer system700can include any appropriate fewer or additional components not illustrated inFIG.4(e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.). Further, the embodiments described herein with respect to computer system700may be implemented with any appropriate logic, wherein the logic, as referred to herein, can include any suitable hardware (e.g., a processor, an embedded controller, or an application specific integrated circuit, among others), software (e.g., an application, among others), firmware, or any suitable combination of hardware, software, and firmware, in various embodiments.