Reconfigurable portable device and system for HVACR equipment configuration management

An illustrative embodiment disclosed herein is a portable device for managing heating, ventilation, air conditioning, and refrigeration (HVACR) equipment configuration. The portable device includes a memory, a user-operable switch having a read position and a write position, and a controller interface coupled to the memory and the user-operable switch. The controller interface is configured to be coupled to an HVACR controller. The controller interface is configured to detect whether the user-operable switch is in the read position or the write position. The controller interface is configured to, responsive to detecting that the user-operable switch is in the read position, execute a read operation comprising obtaining a first set of configuration parameters from the HVACR controller. The controller interface is configured to, responsive to detecting that the user-operable switch is in the write position, execute a write operation comprising sending the first set of configuration parameters to the HVACR controller.

BACKGROUND

The present disclosure relates generally to heating, ventilation, air conditioning, and refrigeration (HVACR) systems and more particularly to a controller for a HVACR system.

HVACR systems can be found in a wide variety of settings, including grocery stores, hotels, restaurants, office buildings, cafeterias, and other types of buildings or structures. In these HVACR systems, there are many parameters to be controlled. Generally, these parameters are controlled using one or more controllers that are programmed at their respective site to satisfy the demands of the particular application in which the HVACR system is used.

SUMMARY

An illustrative embodiment disclosed herein is a portable device for managing heating, ventilation, air conditioning, and refrigeration (HVACR) equipment configuration. The portable device includes a memory storing a first set of configuration parameters, device housing, a user-operable switch coupled to the device housing and having a read position and a write position, and a controller interface coupled to the memory and the user-operable switch. The controller interface is configured to be coupled to an HVACR controller. The controller interface is configured to detect whether the HVACR controller is coupled to the controller interface. The controller interface is configured to, responsive to detecting that the HVACR controller is coupled to the controller interface, detect whether the user-operable switch is in the read position or the write position. The controller interface is configured to, responsive to detecting that the user-operable switch is in the read position, execute a read operation comprising obtaining the first set of configuration parameters from the HVACR controller. The controller interface is configured to, responsive to detecting that the user-operable switch is in the write position, execute a write operation comprising sending the first set of configuration parameters to the HVACR controller.

In some embodiments, the read operation includes encoding a first command code requesting to read the first set of configuration parameters from the HVACR controller, sending a first command frame including the first command code to the HVACR controller, and receiving a response frame including the first set of configuration parameters from the HVACR controller in response to sending the first command frame.

In some embodiments, the user-operable switch is a first user-operable switch. The portable device may further include a second user-operable switch coupled to the device housing. The second user-operable switch may have an overwrite protect position and a non-overwrite protect position. The controller interface may be further configured to, responsive to detecting that the first user-operable switch is in the read position and the second user-operable switch is in the non-overwrite protect position, overwrite a second set of configuration parameters at address locations in the memory by storing the first set of configuration parameters at the address locations in the memory.

In some embodiments, the controller interface further configured to, responsive to detecting that the first user-operable switch is in the read position and the second user-operable switch is in the overwrite protect position, discard the first set of configuration parameters.

In some embodiments, the write operation includes encoding a second command code requesting the HVACR controller to save the first set of configuration parameters and sending a second command frame including the second command code and the first set of configuration parameters to the HVACR controller.

In some embodiments, the controller interface further configured to receive a first identifier from the HVACR controller and determine that the first identifier matches a second identifier corresponding to the portable device.

In some embodiments, the controller interface further configured to receive a first checksum from the HVACR controller, calculate a second checksum based on the first set of configuration parameters, and, responsive to determining that the second checksum matches the first checksum, determine that the first set of configuration parameters is not corrupt.

Another illustrative embodiment disclosed herein is a method for managing heating, ventilation, air conditioning, and refrigeration (HVACR) equipment configuration. The method includes detecting whether an HVACR controller is coupled to a controller interface. The method includes, responsive to detecting that the HVACR controller is coupled to the controller interface, detecting whether a user-operable switch coupled to device housing of a portable device is in a read position or a write position. The method includes, responsive to detecting that the user-operable switch is in the read position, executing a read operation comprising obtaining a first set of configuration parameters from the HVACR controller. The method includes, responsive to detecting that the user-operable switch is in the write position, executing a write operation comprising sending the first set of configuration parameters to the HVACR controller.

In some embodiments, the read operation includes encoding a first command code requesting to read the first set of configuration parameters from the HVACR controller, sending a first command frame including the first command code to the HVACR controller, and receiving a response frame including the first set of configuration parameters from the HVACR controller in response to sending the first command frame.

In some embodiments, the user-operable switch is a first user-operable switch. The method may further include detecting whether a second user-operable switch coupled to the device housing is in an overwrite protection position or a non-overwrite protection position and, responsive to detecting that the first user-operable switch is in the read position and the second user-operable switch is in the non-overwrite protect position, overwriting a second set of configuration parameters at address locations in a memory of the portable device by storing the first set of configuration parameters at the address locations in the memory.

In some embodiments, the method further includes, responsive to detecting that the first user-operable switch is in the read position and the second user-operable switch is in the overwrite protect position, discarding the first set of configuration parameters.

In some embodiments, the write operation includes encoding a second command code requesting the HVACR controller to save the first set of configuration parameters and sending a second command frame including the second command code and the first set of configuration parameters to the HVACR controller.

In some embodiments, the method further includes receiving a first identifier from the HVACR controller and determining that the first identifier matches a second identifier corresponding to the portable device.

In some embodiments, the method further includes receiving a first checksum from the HVACR controller, calculating a second checksum based on the first set of configuration parameters, and, responsive to determining that the second checksum matches the first checksum, determining that the first set of configuration parameters is not corrupt.

Another illustrative embodiment disclosed herein is a system for managing heating, ventilation, air conditioning, and refrigeration (HVACR) equipment configuration. The system includes an HVACR controller and a portable device including a memory storing a first set of configuration parameters, device housing, a user-operable switch coupled to the device housing and having a read position and a write position, and a controller interface coupled to the memory and the user-operable switch. The controller interface is configured to be coupled to the HVACR controller. The controller interface is configured to detect whether the HVACR controller is coupled to the controller interface. The controller interface is configured to, responsive to detecting that the HVACR controller is coupled to the controller interface, detect whether the user-operable switch is in the read position or the write position. The controller interface is configured to, responsive to detecting that the user-operable switch is in the read position, execute a read operation comprising obtaining the first set of configuration parameters. The controller interface is configured to, responsive to detecting that the user-operable switch is in the write position, execute a write operation comprising sending the first set of configuration parameters.

In some embodiments, the read includes encoding a first command code requesting to read the first set of configuration parameters from the HVACR controller, sending a first command frame including the first command code to the HVACR controller, and receiving a response frame including the first set of configuration parameters from the HVACR controller in response to sending the first command frame.

In some embodiments, the user-operable switch is a first user-operable switch. The portable device may further include a second user-operable switch coupled to the device housing. The second user-operable switch may have an overwrite protect position and a non-overwrite protect position. The controller interface may be further configured to, responsive to detecting that the first user-operable switch is in the read position and the second user-operable switch is in the non-overwrite protect position, overwrite a second set of configuration parameters at address locations in the memory by storing the first set of configuration parameters at the address locations in the memory.

In some embodiments, the controller interface further configured to, responsive to detecting that the first user-operable switch is in the read position and the second user-operable switch is in the overwrite protect position, discard the first set of configuration parameters.

In some embodiments, the write operation includes encoding a second command code requesting the HVACR controller to save the first set of configuration parameters and sending a second command frame including the second command code and the first set of configuration parameters to the HVACR controller.

In some embodiments, the portable device further includes a personal computer (PC) interface coupled to the memory and the user-operable switch. The system may further include a PC coupled to the PC interface. The PC may include a configuration manager configured to receive user selection of the first set of configuration parameters and, responsive to receiving the user selection of the first set of configuration parameters, store the first set of configuration parameters in the memory, via the PC interface.

DETAILED DESCRIPTION

In the heating, ventilation, air conditioning, and refrigeration (HVACR) systems, there are many parameters to be controlled. For example, commercial refrigeration systems may have controllers that are dedicated for control of humidity, pressure, temperature, and so forth, including set points or ranges for a number of different devices in the refrigeration system (e.g., fans, alarms, sensors). The parameters are set in a configuration file.

Such configuration files may be configured through a user interface located on the HVACR unit. However, using the local user interface is non-intuitive and too time consuming. Furthermore, the process of setting up all the parameters for each unit is error prone. In accordance with present embodiments, it is recognized that there is a technological need to equip such systems with reconfigurable, easy-to-use portable devices for the HVACR infrastructure.

Disclosed herein is reconfigurable portable device and system. The portable device may provide an intuitive user interface to users via physical switches and connectors on the portable device, and additionally or alternatively, via a configuration manager on a personal computing device. The portable device may automatically read a configuration file from an HVACR controller or write a configuration file to an HVACR controller in response to how the physical switches on the portable device are positioned. One advantage is that the portable device and system will reduce setup time from minutes down to seconds. Another advantage is a reduction in setup errors. The reduction in setup time and errors will result in efficiency improvements and a reduction in operational costs.

Advantageously, the portable device and system is reconfigurable by providing three modes of communication. In a first mode, the portable device can be connected to the personal computing device, such that a configuration file can be created or updated by the configuration manager and stored on the computing device. In a second mode, the portable device can be connected to an HVACR unit in order to load, save, or clone the configuration file. In pass through mode, the portable device can simultaneously be connected to the personal computing device and the HVACR unit, such that the configuration file of the HVACR unit can be updated directly from the configuration manager easy-to-use user interface. The reconfigurable portable device and system provides flexibility such that use of the reconfigurable portable device and system can be tailored to the preferences and policies of each end-user.

FIG. 1is a block diagram of a HVACR controller system100, according to an exemplary embodiment. The HVACR controller system100is shown to include a portable device102, a personal computing device104, and an HVACR device106. In some embodiments, the portable device102connects to the personal computing device104or the HVACR device106. In other embodiments, the portable device102connects to the personal computing device104and the HVACR device106simultaneously. In some embodiments, the portable device102is a flash drive.

The personal computing device104may include a configuration manager108. The configuration manager108is configured to create or update a configuration file216as shown inFIG. 2. The configuration file216contains all the information for provisioning the HVACR device106. The configuration file216may include configuration parameters including sensor setup for multiple sensors, actuator setup for multiple actuators, backlight setup, and calibration. Each configuration parameter may have a hexadecimal value and a corresponding index. The configuration file216may be uploaded to an HVACR controller110of the HVACR device106. In some embodiments, the configuration parameters may be uploaded individually to the HVACR controller110. In some embodiments, the configuration manager108accesses, via the portable device102, the configuration file216located on the HVACR controller110in order to update it. The configuration manager108may be configured to update a number or types of parameters in the configuration file216(herein referred to as a “firmware update”). The configuration file216may be implemented as an Extensible Markup Language (XML) file, a JavaScript Object Notation (JSON) file, a plain-text file, or the like. The configuration manager108may be a software program that runs on an operating system on the personal computing device104. In some embodiments, the configuration manager108includes a user interface for displaying and editing the configuration file216. The configuration manager108may be configured to send a first command frame112to the portable device102and receive a first response frame114from the portable device102. The personal computing device104can be a laptop, a desktop, a mobile phone, a smart phone, a tablet, or the like. The configuration manager108can send the configuration file216to a PC interface204of the portable device102. The PC interface204can store the configuration file216in flash memory210of the portable device102. The configuration manager108can store the configuration file216in the flash memory210, via the PC interface204.

The HVACR device106may include the HVACR controller110. The HVACR controller110may be configured to receive inputs from measurement devices and provide control signals to control devices. The measurement devices may include temperature sensors, pressure sensors, lighting sensors, or any other type of measurement device. Control devices may be actuators, chillers, boilers, air handling units, variable air volume units, or any other type of control device. The HVACR controller110may be configured to send an I2C identifier120, for identifying the portable device102, to the portable device102. The HVACR controller110may be configured to receive an Inter-Integrated Circuit (I2C) command frame116from the portable device102(e.g. in the form of a request) and send an I2C response frame118to the portable device102. The HVACR controller110may include memory configured to store the configuration file216. The memory may include electrically erasable programmable read-only memory (EEPROM). The memory may include flash memory. The HVACR controller110may include one or more processing units. The processing units may process the I2C command frame116, create the I2C response frame118, read some or all of the data in the configuration file216, and write data to some or all of the configuration file216.

FIG. 2is a block diagram of the portable device102as shown in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. The portable device102is shown to include a user interface202, a personal computer (PC) interface204, a controller interface206, an interface converter208, a flash memory210, and a processing circuit212. Each of the blocks within the portable device102are communicably coupled to one another via a bus220.

The user interface202is shown to include switches214. In one embodiment, the switches are located on an outer surface of device housing of the portable device. In one embodiment, the switches are user-operable (e.g. a user can physically set the switch in one of two positions and/or adjust the switch from a first position to a second position). A first switch of the switches214may be a read/write switch configured to control whether the controller interface206reads or writes the configuration file216. Responsive to the read/write switch being set to a first position (e.g., “read” or “low”), the user interface202may read the configuration file216from the HVACR controller110and save the configuration file216to the flash memory210, overwriting the previous configuration file. Responsive to the read/write switch being set to a second position (e.g., “write” or “high”), the user interface202may write the configuration file216to the memory of the HVACR controller110. A second switch of the switches214may be a write protect switch configured to enable or disable overwrite protection. Responsive to the write protect switch being set to a first position (e.g., “no write protect” or “low”), the user interface202may overwrite a previous configuration file saved in the flash memory210of the portable device102. Overwriting is accomplished by saving the configuration parameters in the configuration file216to address locations in the flash memory210corresponding to previous configuration parameters of the previous configuration file. Responsive to the write protect switch being set to a second position (e.g., “write protect” or “high”), the user interface202may be prevented from overwriting the previous configuration file saved in the flash memory210. In some embodiments, responsive to the write protect switch being set to the second position, the configuration parameters in the configuration file216are discarded.

In some embodiments, the write protect switch only affects operation of the read/write switch when the read/write switch is set to read the configuration file216. In other embodiments, the write protect switch affects both operations controlled by the read/write switch. In some embodiments, the switches214can be bypassed by enabling an override feature in the configuration manager108. In some embodiments, the switches214affect all modes including pass through mode. The switches214may be single-pole, double-throw (SPDT) switches. The switches214may be implemented as any type of hardware including, but not limited to, physical switches, mechanical switches, electrical switches, magnetic switches, toggles, sliders, levers, buttons, adjustable knobs, capacitive touchscreens, metal-oxide-semiconductor field-effect transistors (MOSFETs), bipolar switches, and micro-electro-mechanical system (MEMS) switches.

The portable device102is shown to include the PC interface204. The PC interface204may be configured to receive the first command frame112from the configuration manager108. The PC interface204may be configured to send the first response frame114to the configuration manager108. The PC interface204may include a physical connector operable to receive and transmit data upon being connected to a corresponding port on the personal computing device104. In this regard, the PC interface204may be configured to communicate with the configuration manager108in response to the physical connector being connected to the corresponding port on the personal computing device104. In some embodiments, the physical connector is be a universal serial bus (USB) connector. The physical connector may be a recommended standard 232 (RS-232) connector. In some embodiments, the physical connector is operable to receive serial peripheral interface (SPI) data. The physical connector may be operable to receive universal asynchronous receiver-transmitter (UART) data. Transmission of the first command frame112or the first response frame114may use, or comply with, SPI protocol. In some embodiments, transmission of the first command frame112or the first response frame114uses, or complies with, UART protocol.

FIG. 3Ais a drawing of the first command frame112as shown in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. The first command frame112is shown to include a command code304. The first command frame112may include start of message302character, data306, checksum308, and end of message310. Each of the blocks illustrated in the drawing of the first command frame112inFIG. 3Amay be referred to as a slot.

The command code304can correspond to a requested action. Examples of the command code304are “A,” “B,” “S,” “R,” “U,” and “X.” “A” may correspond to a first action to read the configuration file216that is currently stored on the portable device102. “B” may correspond to a second action to write the configuration file216provided in the first command frame112to the portable device102. “S” may correspond to a third action to retrieve a state of the write protect switch from memory of the portable device. “R” may correspond to a fourth action to retrieve portable device102information from the memory. “U” may correspond to a fifth action to command the portable device102to enter bootloader mode for firmware updates. “X” may correspond to a sixth action to send or receive data directly with the HVACR controller110(e.g. pass through mode).

Some first command frames112contain data306whereas other first command frames112do not contain data306. Adding the data306to a first command frame112can cause a primary first command frame112to contain more bytes than a second first command frame112that does not contain the data306. The data306could vary in length in which case each data306byte may be comma delimited.

The checksum308may be used to detect accidental changes in raw data. The personal computing device104may calculate and send a first checksum308in the first command frame112. The portable device102may receive the first checksum308, calculate a second checksum, and compare the first checksum308to the second checksum. If the second checksum matches the first checksum308, the data may uncorrupted by transmission (e.g. by channel noise or distortion). In some embodiments, the checksum308is calculated as a remainder of a ratio of an input binary stream and a polynomial generator. The input binary stream may be n bits. The input binary stream may include the start of message302, an American Standard Code for Information Interchange (ASCII) representation of the command code304, some or all of the data306, the end of message310, or a combination thereof. The polynomial generator may be n+1 bits. In some embodiments, the polynomial generator is a hexadecimal value of 0x1021, which is the polynomial generator used for CRC-16-CCITT. The checksum308may be calculated in other ways or use other polynomial generators in the calculation, without departing from the scope of the present disclosure.

FIG. 3Bis a drawing of the first response frame114as shown in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. The first response frame114is similar to the first command frame112except that the first response frame114may include (a) a response code322instead of the command code304, and (b) a checksum324instead of the checksum308. The response code322can include a result identifier indicating whether the command code304was successfully executed. In some embodiments, the result identifier indicates that the checksum308generated an error, the command code304is invalid, or the first command frame112length is invalid. The response code322may include the command code304. The checksum324is similar to checksum308except that the checksum324is calculated by the portable device102before sending the first response frame114.

Referring back toFIG. 2, The portable device102is shown to include the controller interface206. In some embodiments, the controller interface206detects whether a first switch of the switches214is configured in a read position or a write position. Responsive to detecting that the first switch is configured in the read position, the controller interface206can execute a read operation. The read operation may include obtaining configuration parameters from the HVACR controller110. The read operation may include encoding a primary first command code304requesting to read the first set of configuration parameters from the HVACR controller110. The primary first command code304may be encoded from an indicator of the switch position, such as a voltage or current. Responsive to detecting that the first switch is configured in the write position, the controller interface206can execute a write operation. The write operation may include sending configuration parameters to the HVACR controller110. The write operation may include encoding a second first command code304requesting to write the first set of configuration parameters to the HVACR controller110. The second first command code304may be encoded from an indicator of the switch position, such as a voltage or current. In some embodiments, the controller interface206detects whether a second switch of the switches214is configured in an overwrite protect or a non-overwrite protect position. The controller interface206may be configured to not store configuration parameters received from the HVACR controller110in response to detecting that the second switch is in overwrite protect position. In some embodiments, the controller interface206detects that the controller interface206is coupled to the HVACR controller110by detecting a signal satisfying a threshold. The signal may be a voltage or a current. The signal may be used to energize (e.g. power up) the portable device102via the controller interface206. The signal may be a clock signal such as a signal on a serial clock line.

The controller interface206may be configured to receive the I2C identifier120from the HVACR controller110. The controller interface206may be configured to send the I2C command frame116to the HVACR controller110. In some embodiments, sending the I2C command frame116is responsive to receiving the I2C identifier120. The controller interface206may be configured to receive the I2C response frame118from the HVACR controller110. In some embodiments, receiving the I2C response frame118is responsive to sending the I2C command frame116to the HVACR controller110. Transmission between the controller interface206and the HVACR controller110may be bidirectional. The controller interface206and the HVACR controller110may be coupled by a serial data (SDA) line and a serial clock (SCL) line. In some embodiments, control of transmission is taken by device that pulls down the SDA line. The controller interface206may include a physical connector operable to receive and transmit I2C data upon being connected to a corresponding port on the HVACR device106. In this regard, the controller interface206may be configured to communicate with the HVACR controller110responsive to the physical connector being connected to the corresponding port on the HVACR device106. Transmission of the I2C command frame116or the I2C response frame118may use, or comply with, I2C protocol.

The I2C identifier120may include the address of the portable device102. Upon the HVACR controller110sending the I2C identifier120, the portable device102may pull down the SDA line, thereby taking the control of the transmission. In some embodiments, upon receiving the I2C identifier120, the controller interface206may compare the I2C identifier120to a second identifier stored in the flash memory210. The second identifier may be a unique address associated with the portable device102. Responsive to determining that the I2C identifier120matches the second identifier, the controller interface206may pull down the SDA line. In some embodiments, the I2C identifier120may include a read/write (R/W) bit. Whether the portable device102pulls down the SDA line may be determined by whether read or write is enabled.

FIG. 3Cis a drawing of the I2C command frame116as shown in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. Responsive to pulling down the SDA line, the portable device102may send the I2C command frame116. In some embodiments, responsive to determining that the I2C identifier120matches the unique second identifier, the portable device102sends the I2C command frame116without pulling down the SDA line. In some embodiments, sending the I2C command frame116is responsive to all of the following criteria being met: (a) determining that the I2C identifier120matches the unique second identifier; and (b) the read/write switch of the switches214selecting the read operation.

The I2C command frame116may include a command code342, a data344, and a checksum346. Examples of the command code342are “CMD_READ_CONFIG” and “CMD_WRITE_CONFIG.” “CMD_READ_CONFIG” may correspond to a first action to request to read the configuration parameters that are currently stored on the HVACR controller110. “CMD_WRITE_CONFIG” may correspond to a second action to request to write the configuration file216provided in the I2C command frame116to the HVACR controller110.

The data344may be similar to the data306except that (a) a length of the data344may be different than the length of the data306, and (b) a number of bits per slot may be different. The checksum346may be similar to checksum308except that (a) the checksum346may be calculated by the portable device102before sending the I2C command frame116, and (b) the checksum346may use a different calculation or a different polynomial generator than the checksum308.

In some embodiments, there is no start of message302or end of message310in an I2C command frame116. Frame transmission may initiate responsive to the HVACR controller110or the controller interface206pulling the SDA low, putting the portable device102on notice that transmission may start. Frame transmission may end responsive to the HVACR controller110or the controller interface206executing a low-to-high transition on the SCL line followed by a low-to-high transition on the SDA, with the SCL remaining high. In other embodiments not shown, the I2C command frame116includes the start of message302and the end of message310.

FIG. 3Dis a drawing of the I2C response frame118as shown in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. The I2C response frame118is similar to the I2C command frame116except that the I2C response frame118may include the identifier120and a response code364instead of the command code342, and a checksum366instead of the checksum346. The checksum366is similar to checksum346except that the checksum366is calculated by the HVACR controller110before sending the I2C response frame118.

Examples of the response code364are “READ_CONFIG_RESPONSE” and “WRITE_CONFIG_RESPONSE.” “READ_CONFIG_RESPONSE” may correspond to a first action to read the configuration parameters that are currently stored on the HVACR controller110. In some embodiments, upon reading the configuration parameters from the memory of the HVACR controller110, the configuration parameters are saved on the portable device102, overwriting any previous configuration file saved on the portable device102. “WRITE_CONFIG_RESPONSE” may correspond to a second action to write the configuration file216provided in the I2C command frame116to the memory of the HVACR controller110. The configuration parameters of the configuration file216may be written to the appropriate sensors, actuators, backlight, and calibration, thereby overwriting previously saved configuration parameters.

Referring back toFIG. 2, the portable device102is shown to include the interface converter208communicably coupled to the PC interface204and the controller interface206. The interface converter208may be configured to enable the pass through mode. In some embodiments, the pass through mode is responsive to receiving a command from the PC interface204to send or receive data directly with the HVACR controller110. The interface converter208may be configured to convert first commands frames112or first response frames114to I2C command frames116or I2C command responses118. The interface converter208may be configured to map a first command code304received by a personal computing device104to an I2C command code342to be sent to the HVACR controller110. In this regard, the interface converter208may perform the mapping by accessing a lookup table (LUT)218, as described below. The interface converter208may be configured to convert from a first transmission protocol to a second transmission protocol. For example, the first command frame112may be transmitted using a SPI protocol and the I2C command frame116may be transmitted using the I2C protocol. The interface converter208may change a first format of the first command frame112to a second format of the I2C command frame116. Changing the first format to the second format may include appending or removing slots to the first command frame112(e.g. removing the start of message302and end of message310), appending or removing bits to the front or back of one or more of the slots, changing an order of the slots, or changing a length of one or more of the slots (e.g. a number of bits carried per slot). The interface converter208may be configured to request the controller interface206to pull down an SDA line based on receiving the first command frame112. The interface converter208may convert a first voltage in the first command frame112(or the first response frame114) to a second voltage in the I2C command frame116(or the I2C response frame118), and vice versa, using level shifters. The level shifters may be implemented in hardware such as transistors.

The PC interface204, the controller interface206, and/or the interface converter208may be implemented in hardware, software, or a combination of hardware and software, in one or more embodiments. For instance, the PC interface204, the controller interface206, and/or the interface converter208can include any application, program, library, script, task, service, process or any type and form of executable instructions executing on hardware of the portable device102. The hardware includes circuitry such as one or more processing circuits212in one or more embodiments.

In some embodiments, the operations performed by the PC interface204and the controller interface206are performed by the interface converter208. The operations performed by the interface converter208may be performed by the PC interface204, the controller interface206, a combination thereof, or both. In some embodiments, some or all of the operations of the PC interface204, the controller interface206, and the interface converter208are performed by the processing circuit212.

The portable device102is shown to include the flash memory210. The flash memory210is shown to include the configuration file216and the LUT218. As described above, the configuration file216is used for provisioning the HVACR device106and has configuration parameters including parameters for sensors, actuators, backlight, and calibration. The LUT218may be a data structure with a plurality of command codes (including, for example, the command code304or the command code342). Each command code may be located at an index corresponding to an action or a switch position. A block having access to the LUT218, such as the PC interface204or the controller interface206, may be able to encode the command code from the action or a switch position. Encoding may be accomplished by finding the action in the LUT218and identifying the command code at the index in the LUT218corresponding to the action or the switch position. A block having access to the LUT218may be able to decode the command code to the action. Decoding may be accomplished by finding the command code in the LUT218and identifying the action at the index in the LUT218corresponding to the command code. The LUT218may include one or more LUTs. In some embodiments, the LUT218can include a plurality of first command codes304and first response codes322for communication with the personal computing device104. Each first command code304may be located at an index corresponding to an I2C command code342for communication with the HVACR controller110. Each first response code322may be located at an index corresponding to an I2C response code364for communication with the HVACR controller110. Mapping may be accomplished by finding the first command code304(or the first response code322) in the LUT218and identifying the I2C command code342(or the I2C command code364) at the index in the LUT218corresponding to the first command code304(or first response code322), or vice versa. In some embodiments, the LUT218may include first command codes304, first response codes322, I2C command codes342, I2C response codes364, actions, and/or indicators of switch positions.

The portable device102is shown to include the processing circuit212configured to execute instructions. The instructions may be carried out by a special purpose computer, logic circuits, or hardware circuits of the processing circuit212. The processing circuit212may be implemented in hardware, firmware, software, or any combination thereof. The term “execution” is, for example, the process of running an application or the carrying out of the operation called for by an instruction. The instructions may be written using one or more programming language, scripting language, assembly language, etc. The processing circuit212, thus, execute an instruction, meaning that they perform the operations called for by that instruction.

The processing circuit212may be operably coupled to the other blocks of the portable device102, via the bus220, to receive, send, and process information, and to control the operations of one or more of the other blocks of the portable device102. The processing circuit212may retrieve a set of instructions from the one or more of the other blocks of the portable device102. Further, the processing circuit212may include a single stand-alone processing unit, or a plurality of processing units that use the same or different processing technology. In some embodiments, some or all of the other blocks of the portable device102may have one or more processing circuits212to perform operations for the respective block.

FIG. 4is a flow chart of a process400for operating the portable device102in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. The process400ofFIG. 4may be viewed as part of a bigger process including the process400ofFIG. 4, process500ofFIG. 5, process600ofFIG. 6, and process700ofFIG. 7, or the process400ofFIG. 4may be viewed as a stand-alone process. Additional, fewer, or different operations may be performed in the process400depending on the embodiment. At operation402, the PC interface204may determine whether a first connector is connected to the personal computing device104. At operation404and at operation406, the controller interface206may determine whether an I2C connector is connected to the HVACR controller110. The first connector may be a different connector than the I2C connector. Responsive to determining that the first connector is connected and the I2C connector is not connected, the process500ofFIG. 5may start. Responsive to determining that the first connector is not connected and the I2C connector is connected, the process600ofFIG. 6may start. Responsive to determining that both connectors are connected, the process700ofFIG. 7may start. Responsive to determining that neither connector is connected, the process ends.

FIG. 5is a flow chart of the process500of operating the portable device102with the HVACR controller110in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. Additional, fewer, or different operations may be performed in the process500depending on the embodiment. At operation502, the controller interface206may determine whether it has received an identifier120. In some embodiments the identifier120is an address. Responsive to the controller interface206determining that it has not received the identifier120, the process500may return to the operation502. Responsive to the controller interface206determining that it has received the identifier120, at operation504, the controller interface206may determine whether the identifier120matches a second identifier stored in memory of the portable device102. In some embodiments, the second identifier is a unique address associated with the portable device102. Responsive to determining that the identifier120does not match the second identifier stored in the memory of the portable device102, at operation506, the controller interface206may discard the identifier120, and the process500may return to the operation502. In some embodiments, the controller interface may detect whether the controller interface is coupled to the HVACR controller. The controller interface may detect that the controller interface is coupled to the HVACR controller by detecting that a signal satisfying a threshold. The signal may be a voltage or a current. The signal may be used to energize the portable device via the controller interface. In some embodiments, responsive to detecting that the controller interface is coupled to the HVACR controller, the controller interface detects switch positions.

Responsive to determining that the identifier120matches the second identifier stored in the memory of the portable device102, at operation508, the controller interface206may detect that a first switch of the portable device102is set to one of a read position and a write position. In one embodiment, detecting that the first switch is set to a write position includes sensing, by the controller interface, a first voltage satisfying a first threshold. The first switch, depending on a position of the switch, can couple or de-couple the first voltage to the controller interface. In one embodiment, detecting that the first switch is set to a read position includes sensing, by the controller interface, a second voltage satisfying a second threshold. The first switch can, depending on a position of the first switch, couple or de-couple the second voltage to the controller interface. The voltage can be an indicator of the switch position.

Responsive to detecting that the first switch is set to a write position, at operation510, the controller interface206may access an LUT218at an index and compare a switch position threshold at the index with the write position indicator. In some embodiments, the index initializes at zero. Responsive to determining that the write position indicator does not satisfy the switch position threshold at the index, at operation512, the controller interface206may increment the index, and the process500may return to the operation510. In one embodiment, the switch position threshold is a voltage range. In some embodiments, prior to operation512, the controller interface206determines whether the index is a maximum index (e.g. the index is equal to a number of actions in the LUT218minus one). Responsive to determining that the index is a maximum index, the controller interface206may indicate an error and exit the process500. The error may be indicated by a user interface element, such as a light emitting diode (LED). The error may be reported to the HVACR controller110. In this regard, the error may be displayed on a user interface associated with the HVACR device106.

Responsive to determining that write position indicator satisfies the switch position threshold at the index, at operation514, the controller interface206may send a command frame include a write command code342requesting to write, the write command code342corresponding to the index at which the switch position threshold is located. In some embodiments, the command frame is the I2C command frame116. In some embodiments, the operations of510and512may be substituted by other operations that encode a write command code342, without departing from the scope of the present disclosure.

Responsive to detecting that the first switch is set to a read position, at operation516, the controller interface206may detect that a second switch of the portable device102is in one of a overwrite protect position and a non-overwrite protect position. Responsive to detecting that the second switch is set to the overwrite protect position, the process500ends. Responsive to detecting that the second switch is set to the non-overwrite protect position, at operation518, the controller interface206may access an LUT218at an index and compare a switch position threshold at the index with the read position indicator. Responsive to determining that the read position indicator does not satisfy the switch position threshold at the index, at operation520, the controller interface206may increment the index, and the process500may return to the operation518. Responsive to determining that the read position indicator satisfies the switch position threshold at the index, at operation522, the controller interface206may send a command frame including a read command code342requesting to read, the read command code342corresponding to the index wherein the second action is located. In some embodiments, encoding the read command code342is similar to encoding the write command code342. In some embodiments, similar operations to those of process500may be performed for the HVACR controller110sending an I2C response frame118.

FIG. 6is a flow chart of the process600of operating the portable device102with the personal computing device104in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. Additional, fewer, or different operations may be performed in the process600depending on the embodiment. At operation602, the PC interface204may receive a command frame including a command code342and configuration parameters. At operation604, the PC interface204may determine whether the command code342matches a second command code342at an index. Responsive to determining that the second command code342at the index does not match the command code342, at operation606, the PC interface204may increment the index, and the process600may return to the operation604. Responsive to determining that the second command code342at the index matches the command code342, at operation608, the PC interface204may select an action corresponding to the index. Decoding the command code342may be accomplished in other ways without departing from the scope of the present disclosure. At operation610, the PC interface204may determine whether the action is to perform a write operation (e.g. from the perspective of the personal computing device104). Responsive to determining that the action is to perform the write operation, the PC interface204may save the configuration parameters. Responsive to determining that the action is not to perform the write operation, the PC interface204may send the configuration parameters to the personal computing device104. In some embodiments, the command frame is the first command frame112. In some embodiments, operations similar to those of process600may be performed for sending the first response frame114by the PC interface204.

FIG. 7is a flow chart of the process700of operating the portable device102in the pass through mode in the HVACR controller system100ofFIG. 1, according to an exemplary embodiment. Additional, fewer, or different operations may be performed in the process700depending on the embodiment. At operation702, the interface converter208may receive a first command frame including a PC command code304. In some embodiments, the transmission of the first command frame uses a first transmission protocol. In some embodiments, the first command frame is the first command frame112. Operations704,706, and708are similar to the operations502,504, and506ofFIG. 5except that the operations704,706, and708may be performed by the interface converter208. At operation710, the interface converter208may determine whether the PC command code304matches a second PC command code304at an index. Responsive to determining that the second PC command code304at the index does not match the PC command code304, at operation712, the interface converter208may increment the index, and the process700may return to the operation710. Responsive to determining that the second PC command code304at the index matches the PC command code304, at operation714, the interface converter208may map the PC command code304to a controller command code342corresponding to the index and send a second command frame including the controller command code342. Mapping the PC command code304to the controller command code342may be accomplished in other ways without departing from the scope of the present disclosure. In some embodiments, the transmission of the second command frame may use a second transmission protocol different from the first transmission protocol. In some embodiments, the second command frame is the I2C command frame116. In some embodiments, operations similar to those of process700may be performed for receiving, by the interface converter208, the I2C response frame118, converting, by the interface converter208, the I2C response frame118to the first response frame114, and sending, by the interface converter208, the first response frame114.

CONFIGURATION OF EXEMPLARY EMBODIMENTS