Independently upgradeable docking stations

Information

  • Patent Grant
  • 12073205
  • Patent Number
    12,073,205
  • Date Filed
    Tuesday, September 14, 2021
    3 years ago
  • Date Issued
    Tuesday, August 27, 2024
    5 months ago
Abstract
Systems and methods for independently upgradeable docking stations are discussed herein. One or more chipsets of a docking station may provide services to a host device, and each may use a corresponding firmware. The docking station may receive chipset firmware update data for one or more of the chipsets. In a first case, this data is received from a universal serial bus (USB) storage device (which in some cases can independently update its copy of the chipset firmware update data with a cloud server). In other cases, this data is received from a cloud server using a network interface system on a chip (which may be internal to, or separately connected to, the docking station). The docking station performs this receipt and/or the corresponding firmware update with no input from any host device that may (or may not) be attached, and/or without interrupting chipset services of any such host device.
Description
TECHNICAL FIELD

This application relates generally to docking stations, including docking stations that are independently upgradeable (e.g., can be upgraded without the use and/or presence of a host device attached to the docking station).


BACKGROUND

Docking stations for electronic host devices may be configured to allow a host device connected to the docking station to operate with and/or use one or more external devices (also) connected the docking station. Examples of host devices may include a laptop, a tablet, a smartphone, etc. Examples of external devices may include a display monitor, a mouse, a keyboard, a network switch, a universal serial bus (USB) device, etc. Further, the docking station may provide power to the host device that the host device can use to operate (e.g., perform user functions, charge a battery, etc.).





BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.



FIG. 1 illustrates a system including a universal serial bus (USB) storage device and a docking station, according to an embodiment.



FIG. 2 illustrates a system including a USB storage device, a docking station, a cloud server, and an Ethernet/Wi-Fi access point according to an embodiment.



FIG. 3 illustrates a system including a cloud server, an Ethernet/Wi-Fi access point, an external network interface system on a chip (SoC), and a docking station, according to an embodiment.



FIG. 4 illustrates a system including a cloud server, an Ethernet/Wi-Fi access point, and a docking station, according to an embodiment.



FIG. 5 illustrates a method of performing a docking station chipset firmware update, according to an embodiment.



FIG. 6 illustrates a method of a USB storage device, according to an embodiment.





DETAILED DESCRIPTION

Docking stations may include one or more chipsets that operate to interface the docking station with a host device using the docking station. One or more of the chipsets may be responsible for transporting data as between the host device and the docking station (in either direction), and/or for signaling for or otherwise controlling power distribution from the docking station to the host device. The chipsets may perform these operations relative to one or more ports on the docking station. For example, in the case of a host device that is connected to a universal serial bus (USB) Type C (USB-C) port on the docking station, a first chipset may be responsible for transporting video data through the USB-C port as between the host device and the docking station, a second chipset may be responsible for transporting power through the USB-C port from the docking station to the host device, and a third chipset may be responsible for transporting data from an external device attached to the docking station from the docking station to the host device through the USB-C port. It is also contemplated that multiple ports of the docking station may be so used between one (or more) host devices. The operation(s) of a chipset as between a host device and the docking station may be referred to herein as “chipset services.” It is contemplated that a docking station may comprise any combination of such chipset(s) that are configured to provide any corresponding combination of chipset service(s).


The chipsets of the docking station may operate their services according to a firmware for the chipset. The firmware may be stored on a memory of the chipset (or another memory found on the docking station that corresponds to the associated chipset), and may, when used to configure the chipset, enable the chipset to perform its associated services. In some instances, a firmware for a chipset of the docking station may be updated (or upgraded). Such updates may improve the operation of the chipset (e.g., make the chipset more efficient and/or accurate in performing its associated service(s) for host device(s), enable the chipset to perform new services for host device(s), and/or enable the chipset to operate with a new kind of host device, etc.).


In some cases, docking station chipset firmware updates may be performed while a host device is attached to the docking station. This may be because in some instances a host device is used to perform the firmware update by leveraging communications between the host device and the docking station. However, a system for docking station chipset firmware updates that uses a host device to update the chipset(s) of the docking station may cause the interruption of valuable worktime corresponding to the docking station, as, for example, a host device capable of updating the docking station chipset(s) must occupy the docking station to perform the update. Systems depending on host devices to perform docking station chipset firmware updates may also incur logistics concerns, in that the scheduling of updates at the right time for various groups in different locations (and any placement of human operators to perform the updates) may be difficult and/or time-consuming, and may need to be done outside the regular workday to avoid interruption.


Further, systems depending on host devices to perform docking station chipset firmware updates may depend on specific types of host devices. For example, if the chipset firmware update software for a docking station is Microsoft™ Windows™ based, the logistics of providing a Windows™ based host device at the docking station in order to perform the update may not be convenient (e.g., for companies that regularly equip their users with non-Windows™ based computers). Finally, systems depending on host devices to perform docking station chipset firmware updates may (in cases undesirably) allow chipset firmware to be changed via a host device with no (or insufficient) security protections.


It may therefore be beneficial to develop systems and methods of a docking station chipset firmware updating solution that does not require the use of a host device. Such methods may enable the updating of one or more chipsets of a docking station without the productivity, logistical, compatibility, and/or security concerns discussed above (among other possible issues).



FIG. 1 illustrates a system 100 including a USB storage device 102 and a docking station 104, according to an embodiment. As illustrated, the USB storage device 102 may include a firmware update binary 120. The docking station 104 may include a USB hub controller 106, a USB mini host controller 108 having a USB hosting engine 122, a microcontroller unit (MCU) 110 having a decryption engine 124 and a validation engine 126, and a number of chipsets, each operating according to its respective firmware. In the example of FIG. 1, the docking station 104 comprises a chipset A 112 having firmware A 128, a chipset B 114 having firmware B 130, a chipset C 116 having firmware C 132, and a chipset D 118 having firmware D 134.


The USB storage device 102 may contain chipset firmware update data useable to perform a firmware update for one or more chipsets of the docking station 104. For example, the USB storage device 102 may contain a firmware update binary 120 that can be used by the docking station 104 to update one or more of the chipsets 112 through 118. The USB storage device 102 may be any type of storage device capable of communicating over USB, such as, for example, a flash drive, a hard drive, a solid state drive, etc.


It is contemplated that in some embodiments, the firmware update binary 120 is encrypted to protect the contents of the firmware update binary 120. Further, it is contemplated that in some embodiments, the firmware update binary 120 may be signed such that the integrity of the firmware update binary 120 can be verified by the docking station 104.


As illustrated, the USB storage device 102 communicates with the USB hub controller 106 of the docking station 104 via a USB interface. For example, each of the USB storage device 102 and the docking station 104 may include respective USB ports corresponding to the USB interface (e.g., a USB-A port, a USB-C port, etc.) that can be used to physically connect the USB storage device 102 to the USB hub controller 106 of the docking station 104. This USB interface may be an example of a physical communication interface used by the docking station 104.


The USB hub controller 106 may be responsible for managing signaling that occurs according to this physical connection. The USB hub controller 106 communicates (via a second USB interface, as illustrated) with a USB mini host controller 108 of the docking station 104. The USB mini host controller 108 may include a USB hosting engine 122 that, when operated by the USB mini host controller 108, can host the USB storage device 102 for the docking station 104 (via the USB hub controller 106). In other words, the USB hosting engine 122 includes instructions that, when operated by the USB mini host controller 108 of the docking station 104, configure the docking station 104 to read and/or write data to and/or from the USB storage device 102. This may occur independently of any host device that is (or is not) also connected to the docking station 104.


Then, through the operation of the USB hosting engine 122, the USB hub controller 106 receives the firmware update binary 120 from the USB storage device 102 (e.g., via a USB connection to the USB storage device 102) and then passes the firmware update binary 120 to the USB mini host controller 108 (e.g., via the second USB interface, as illustrated).


As shown in FIG. 1, the USB mini host controller 108 may be in communication with the MCU 110 via one of a (third) USB interface, a serial interface, a universal asynchronous receiver-transmitter (UART) interface, or a general purpose input/output (GPIO) interface that may exist between the USB mini host controller 108 and the MCU 110. The USB mini host controller 108 may pass the firmware update binary 120 to the MCU 110 according to an interface used between the two.


Upon receipt of the firmware update binary 120, the MCU 110 may determine whether the firmware update binary 120 is encrypted. If so, the decryption engine 124 of the MCU 110 is used to decrypt the firmware update binary 120 as received. In some embodiments, if the firmware update binary 120 cannot be decrypted, the firmware update binary 120 is not further used and is discarded. This decryption may be performed without any input from any host device attached to the docking station 104 (which may or may not be present)


Further, the MCU 110 may determine whether the firmware update binary 120 is signed. If so, the validation engine 126 of the MCU 110 may be used to validate the signature of the firmware update binary 120 as received, thereby ensuring that the firmware update binary 120 is valid. In some embodiments, if the firmware update binary 120 is not signed, or if the signature is determined to be invalid, the firmware update binary 120 is not further used and is instead discarded. This validation may be performed without any input from any host device attached to the docking station 104 (which may or may not be present).


Once the firmware update binary 120 is decrypted and/or validated, the MCU 110 may proceed to perform a firmware update for one or more of the chipset A 112, the chipset B 114, the chipset C 116, and/or the chipset D 118 using the firmware update binary 120. This process may change or replace the firmware of the respective chipset. For example, it may be that the firmware update binary 120 is operable to change or replace the firmware A 128 of chipset A 112. In other cases, it may be that the firmware update binary 120 is operable to change or replace each of the firmware A 128 of chipset A 112 and the firmware C 132 of chipset C 116. In other cases, it may be that the firmware update binary 120 is operable to change or replace the firmware of all chipsets of the docking station 104 (e.g., change or replace the firmware A 128 of the chipset A 112, the firmware B 130 of the chipset B 114, the firmware C 132 of the chipset C 116, and the firmware D 134 of the chipset D 118).


As illustrated, the MCU 110 may communicate with the chipsets 112 through 118 via one or more of a USB interface, a serial interface, a UART interface, or a GPIO interface. In some embodiments, different interfaces could be used for different chipsets (e.g., the MCU 110 could communicate with the chipset A 112 via a serial interface, while the MCU 110 communicates with the chipset D 118 via a GPIO interface). According to the operability of the firmware update binary 120, the firmware update is performed for a respective chipset via the interface between the chipset and the MCU 110.


The firmware update process for the one or more chipsets 112 through 118 can be performed without any input from any host device of the docking station 104. For example, the USB mini host controller 108 may operate the USB hosting engine 122 to access the firmware update binary 120 on the USB storage device 102 and eventually communicate the firmware update binary 120 to the MCU 110 independently of any host device useable with the docking station 104. Further, the MCU 110 may then perform a corresponding firmware update for any of the chipsets 112 through 118 independently of any host device useable with the docking station 104. In other words, the firmware update process described in relation to the system 100 can happen independently of whether or not any host device is connected to the docking station 104 at the time of the firmware update.


Further, it is anticipated that the firmware update process described above could be performed while the docking station 104 (also) continues to perform the functions of the docking station 104 for an attached host device (in the case that one is attached to the docking station 104 at the time of the firmware update). For example, the USB storage device 102 could be inserted into the docking station 104, and the MCU 110 may receive the firmware update binary 120 from the USB storage device 102 and use it to perform a corresponding firmware update, while the docking station 104 continues to, for example, transport data between the host device and the docking station 104 and/or transport power from the docking station 104 to the host device.


It is contemplated that in alternative embodiments to FIG. 1, an MCU of the docking station 104 having the functions of the MCU 110 may itself (also) include a USB mini host controller and/or a USB hub controller. In such cases, the USB interface illustrated in FIG. 1 between the USB hub controller 106 and the USB mini host controller 108 may not be used, and/or the one or more of the USB, serial, UART, and/or GPIO interface(s) illustrated between the USB mini host controller 108 and the MCU 110 in FIG. 1 may not be used. Further, in cases where the functions of a USB hub controller and a USB mini host controller are incorporated into such an MCU, a USB port to which a USB storage device is connected may correspond to a USB interface proceeding directly to that MCU (with the supporting operations of the USB hosting engine in such cases being performed directly by that MCU).



FIG. 2 illustrates a system 200 including a USB storage device 202, a docking station 204, a cloud server 206, and an Ethernet/Wi-Fi access point 208 according to an embodiment. As illustrated, the USB storage device 202 may include a firmware update binary 224, an MCU 226, and a network interface system on a chip (SoC) 228. The docking station 204 may include a USB hub controller 210, a USB mini host controller 212 having a USB hosting engine 230, an MCU 214 having a decryption engine 232 and a validation engine 234, and a number of chipsets, each operating according to its respective firmware. In the example of FIG. 2, the docking station 204 comprises a chipset A 216 having firmware A 236, a chipset B 218 having firmware B 238, a chipset C 220 having firmware C 240, and a chipset D 222 having firmware D 242. The cloud server 206 may include the firmware update binary 224 (which may be the same firmware update binary 224 as that found on the USB storage device 202).


The cloud server 206 may host a pre-determined and/or generally accessible network location (e.g., on the Internet) where chipset firmware update data useable to perform a firmware update for one or more chipsets of the docking station 204 may be found. The firmware update binary 224 may be an example of such chipset firmware update data. The firmware update binary 224 (as found on the cloud server 206) may be kept up-to-date by, e.g., a manufacturer or provider of the other elements of the system 200 (e.g., a manufacturer/provider of either or both of the USB storage device 202 and/or the docking station 204). Accordingly, it may be understood in some cases that the firmware update binary 224 as found on the cloud server 206 is an up-to-date or “production” firmware update binary 224 for updating one or more chipsets of the docking station 204.


The cloud server 206 may send the firmware update binary 224 to the Ethernet/Wi-Fi access point 208 (e.g., via the Internet). The Ethernet/Wi-Fi access point 208 may be an access point that is local to the USB storage device 202. For example, it may be an access point that is within a Wi-Fi communication range with the general location of the USB storage device 202, or an access point physically situated relatively near to the USB storage device 202 such that a physical connection (e.g., an Ethernet cable) can feasibly be run between the Ethernet/Wi-Fi access point 208 and the general location of the USB storage device 202.


The network interface SoC 228 of the USB storage device 202 may include any connectors, circuitry, and firmware for receiving network communications (e.g., a “network interface”) from an access point external to the docking station USB storage device 202 (such as the Ethernet/Wi-Fi access point 208). For example, the network interface SoC 228 may include one or more antenna(s) and related circuitry and firmware for a Wi-Fi interface between the network interface SoC 228 and the Ethernet/Wi-Fi access point 208. Additionally or alternatively, the network interface SoC 228 may include an RJ-45 port and related circuitry and firmware for an Ethernet interface (facilitated by an Ethernet cable) between the network interface SoC 228 and the Ethernet/Wi-Fi access point 208.


Under instructions from the MCU 226, the USB storage device 202 may use the network interface SoC 228 to communicate with the cloud server 206 via the Ethernet/Wi-Fi access point 208. As part of this communication, the USB storage device 202 may be able to receive or download the firmware update binary 224 from the cloud server 206 (accordingly, it may be understood that each of the cloud server 206 and the USB storage device 202 has a copy of the same firmware update binary 224, as illustrated). The MCU 226 may be configured to cause this behavior by the USB storage device 202 as part of ensuring that a firmware update binary as stored at the USB storage device 202 matches the firmware update binary 224 as stored on the cloud server 206 (e.g., so that it can update or replace the firmware update binary as stored at the USB storage device 202 to match the firmware update binary 224 as stored on the cloud server 206). Accordingly, whenever this behavior occurs, because the firmware update binary 224 on the cloud server 206 is kept up-to-date as described above, the corresponding firmware update binary 224 on the USB storage device 202 is also (as a result of this behavior) kept up-to-date.


The MCU may perform a check with the cloud server (via the Ethernet/Wi-Fi access point 208) whether the USB storage device 202 has a firmware update binary that matches a firmware update binary found on the cloud server 206. As a first example of such a check, there may be cases where the MCU determines that a USB storage device 202 device does not yet have a firmware update binary (e.g., the firmware update binary 224, as illustrated in FIG. 2, or any other firmware update binary, may not yet be present on the USB storage device 202). In such cases, the MCU triggers the above-described download behavior to cause the USB storage device 202 to obtain the firmware update binary 224 from the cloud server 206.


In a second example of such a check involving cases where the USB storage device 202 already has a firmware update binary, the MCU 226 may communicate with the cloud server 206 to check whether the firmware update binary 224 on the cloud server 206 matches the firmware update binary that is stored on the USB storage device 202, and, if not, it causes the USB storage device 202 to perform the above-described download behavior to obtain the firmware update binary 224 from the cloud server. The firmware update binary stored on the USB storage device 202 is then matched to and/or replaced with the firmware update binary 224).


Such checks check may be performed by the MCU 226 of the USB storage device 202, for example, on a configured (e.g., periodic) basis, whenever the USB storage device 202 connects to an Ethernet/Wi-Fi access point (such as the Ethernet/Wi-Fi access point 208) via a network interface (such as the network interface SoC 228), and/or whenever the USB storage device 202 connects to a docking station 204 and prior to providing the firmware update binary 224 to the docking station 204 (as will be described).


Then, the firmware update binary 224 (e.g., the up-to-date copy present on the USB storage device 202) can be used by the docking station 204 to update one or more of the chipsets 216 through 222. The USB storage device 202 may be any type of storage device capable of communicating over USB, such as, for example, a flash drive, a hard drive, a solid state drive, etc.


It is contemplated that in some embodiments, the firmware update binary 224 is encrypted to protect the contents of the firmware update binary 224. Further, it is contemplated that in some embodiments, the firmware update binary 224 may be signed such that the integrity of the firmware update binary 224 can be verified by the docking station 204.


As illustrated, the USB storage device 202 communicates with the USB hub controller 210 of the docking station 204 via a USB interface. For example, each of the USB storage device 202 and the docking station 204 may include respective USB ports corresponding to the USB interface (e.g., a USB-A port, a USB-C port, etc.) that can be used to physically connect the USB storage device 202 to the USB hub controller 210 of the docking station 204. This USB interface may be an example of a physical communication interface used by the docking station 204.


The USB hub controller 210 may be responsible for managing signaling that occurs according to this physical connection. The USB hub controller 210 communicates (via a second USB interface, as illustrated) with a USB mini host controller 212 of the docking station 204. The USB mini host controller 212 may include a USB hosting engine 230 that, when operated by the USB mini host controller 212, can host the USB storage device 202 for the docking station 204 (via the USB hub controller 210). In other words, the USB hosting engine 230 includes instructions that, when operated by the USB mini host controller 212 of the docking station 204, configure the docking station 204 to read and/or write data to and/or from the USB storage device 202. This may occur independently of any host device that is (or is not) also connected to the docking station 204.


Then, through the operation of the USB hosting engine 230, the USB hub controller 210 receives the firmware update binary 224 from the USB storage device 202 (e.g., via a USB connection to the USB storage device 202) and then passes the firmware update binary 224 to the USB mini host controller 212 (e.g., via the second USB interface, as illustrated).


As shown in FIG. 2, the USB mini host controller 212 may be in communication with the MCU 214 via one of a (third) USB interface, a serial interface, a universal asynchronous receiver-transmitter (UART) interface, or a general purpose input/output (GPIO) interface that may exist between the USB mini host controller 212 and the MCU 214. The USB mini host controller 212 may pass the firmware update binary 224 to the MCU 214 according to an interface used between the two.


Upon receipt of the firmware update binary 224, the MCU 214 may determine whether the firmware update binary 224 is encrypted. If so, the decryption engine 232 of the MCU 214 is used to decrypt the firmware update binary 224 as received. In some embodiments, if the firmware update binary 224 cannot be decrypted, the firmware update binary 224 is not further used and is discarded. This decryption may be performed without any input from any host device attached to the docking station 204 (which may or may not be present)


Further, the MCU 214 may determine whether the firmware update binary 224 is signed. If so, the validation engine 234 of the MCU 214 may be used to validate the signature of the firmware update binary 224 as received, thereby ensuring that the firmware update binary 224 is valid. In some embodiments, if the firmware update binary 224 is not signed, or if the signature is determined to be invalid, the firmware update binary 224 is not further used and is instead discarded. This validation may be performed without any input from any host device attached to the docking station 204 (which may or may not be present).


Once the firmware update binary 224 is decrypted and/or validated, the MCU 214 may proceed to perform a firmware update for one or more of the chipset A 216, the chipset B 218, the chipset C 220, and/or the chipset D 222 using the firmware update binary 224. This process may change or replace the firmware of the respective chipset. For example, it may be that the firmware update binary 224 is operable to change or replace the firmware A 236 of chipset A 216. In other cases, it may be that the firmware update binary 224 is operable to change or replace each of the firmware A 236 of chipset A 216 and the firmware C 240 of chipset C 220. In other cases, it may be that the firmware update binary 224 is operable to change or replace the firmware of all chipsets of the docking station 204 (e.g., change or replace the firmware A 236 of the chipset A 216, the firmware B 238 of the chipset B 218, the firmware C 240 of the chipset C 220, and the firmware D 242 of the chipset D 222).


As illustrated, the MCU 214 may communicate with the chipsets 216 through 222 via one or more of a USB interface, a serial interface, a UART interface, or a GPIO interface. In some embodiments, different interfaces could be used for different chipsets (e.g., the MCU 214 could communicate with the chipset A 216 via a serial interface, while the MCU 214 communicates with the chipset D 222 via a GPIO interface). According to the operability of the firmware update binary 224, the firmware update is performed for a respective chipset via the interface between the chipset and the MCU 214.


The firmware update process for the one or more chipsets 216 through 222 can be performed without any input from any host device of the docking station 204. For example, the USB mini host controller 212 may operate the USB hosting engine 230 to access the firmware update binary 224 on the USB storage device 202 and eventually communicate the firmware update binary 224 to the MCU 214 independently of any host device useable with the docking station 204. Further, the MCU 214 may then perform a corresponding firmware update for any of the chipsets 216 through 222 independently of any host device useable with the docking station 204. In other words, the firmware update process described in relation to the system 200 can happen independently of whether or not any host device is connected to the docking station 204 at the time of the firmware update.


Further, it is anticipated that the firmware update process described above could be performed while the docking station 204 (also) continues to perform the functions of the docking station 204 for an attached host device (in the case that one is attached to the docking station 204 at the time of the firmware update). For example, the USB storage device 202 could be inserted into the docking station 204, and the MCU 214 may receive the firmware update binary 224 from the USB storage device 202 and use it to perform a corresponding firmware update, while the docking station 204 continues to, for example, transport data between the host device and the docking station 204 and/or transport power from the docking station 204 to the host device.


It is contemplated that in alternative embodiments to FIG. 2, an MCU of the docking station 204 having the functions of the MCU 214 may itself (also) include a USB mini host controller and/or a USB hub controller. In such cases, the USB interface illustrated in FIG. 2 between the USB hub controller 210 and the USB mini host controller 212 may not be used, and/or the one or more of the USB, serial, UART, and/or GPIO interface(s) illustrated between the USB mini host controller 212 and the MCU 214 in FIG. 2 may not be used. Further, in cases where the functions of a USB hub controller and a USB mini host controller are incorporated into such an MCU, a USB port to which a USB storage device is connected may correspond to a USB interface proceeding directly to that MCU (with the supporting operations of the USB hosting engine in such cases being performed directly by that MCU).



FIG. 3 illustrates a system 300 including a cloud server 302, an Ethernet/Wi-Fi access point 304, an external network interface SoC 306, and a docking station 308, according to an embodiment. As illustrated, the cloud server 302 may include a firmware update binary 322. The docking station 308 may include an MCU 310 having a decryption engine 324 and a validation engine 326 and a number of chipsets, each operating according to its respective firmware. In the example of FIG. 3, the system 300 comprises a chipset A 312 having firmware A 328, a chipset B 314 having firmware B 330, a chipset C 316 having firmware C 332, and a chipset D 318 having firmware D 334.


As illustrated, an administrator instruction 320 may arrive at the cloud server 302. Alternatively, the administrator instruction 320 may originate at the cloud server 302. The administrator instruction 320 may instruct the cloud server 302 to perform a firmware update for one or more of the chipsets 312 to 318 of the docking station 308.


The cloud server 302 may be, for example, a system operated by an administrator of the system 300 and that can be reached via a network (e.g., the Internet). The cloud server 302 may contain chipset firmware update data useable to perform a firmware update for one or more of the chipsets of the docking station 308. For example, the cloud server 302 may contain a firmware update binary 322 that can be used by the docking station 308 to update the firmware of one or more of the chipsets 312 through 318.


The administrator instruction 320 may arrive/occur at the cloud server 302 according to a configuration of the cloud server 302 (e.g., as configured by an administrator of the system 300). For example, the administrator instruction 320 may arrive/occur whenever it is determined by the cloud server 302 that new firmware for one or more of the chipsets 312 through 318 of the docking station 308 is available, and/or at a predetermined update cadence. Alternatively, the administrator instruction 320 may be manually triggered (e.g., via manual interaction with a user of the cloud server 302).


In response to the administrator instruction 320, the cloud server 302 may send the firmware update binary 322 to the Ethernet/Wi-Fi access point 304 (e.g., via the Internet). The Ethernet/Wi-Fi access point 304 may be an access point that is local to the docking station 308. For example, it may be an access point that is within a Wi-Fi communication range with the general location of the docking station 308, or an access point physically situated relatively near to the docking station 308 such that a physical connection (e.g., an Ethernet cable) can feasibly be run between the Ethernet/Wi-Fi access point 304 and the general location of the docking station 308.


As illustrated, the docking station 308 may be connected to an external network interface SoC 306. The external network interface SoC 306 may communicate with the MCU 310 of the docking station 308 via one or more of a USB interface (e.g., via USB ports of the external network interface SoC 306 and the docking station 308), a serial interface (e.g., via serial ports of the external network interface SoC 306 and the docking station 308), a UART interface (e.g., via an RS232 (DB9) connector on each of the external network interface SoC 306 and the docking station 308), and/or a GPIO interface (e.g., via GPIO pins of the external network interface SoC 306 and the docking station 308), each of which may be an example of a physical communication interface used by the docking station 308. The external network interface SoC 306 may also include any connectors, circuitry, and firmware for receiving network communications (e.g., a “network interface”) from an access point external to the docking station 308 (such as the Ethernet/Wi-Fi access point 304). For example, the external network interface SoC 306 may include one or more antenna(s) and related circuitry and firmware for a Wi-Fi interface between the external network interface SoC 306 and the Ethernet/Wi-Fi access point 304. Additionally or alternatively, the external network interface SoC 306 may include an RJ-45 port and related circuitry and firmware for an Ethernet interface (facilitated by an Ethernet cable) between the external network interface SoC 306 and the Ethernet/Wi-Fi access point 304.


The external network interface SoC 306 may have been connected to the docking station 308 for purposes of facilitating a firmware update of one or more of the chipsets 312 to 318 and may therefore be in proximity to the docking station 308 (and thus within the described range of the Ethernet/Wi-Fi access point 304). Accordingly, the Ethernet/Wi-Fi access point 304 may provide the firmware update binary 322 to the external network interface SoC 306 via one or more of the Ethernet and/or Wi-Fi interface. The external network interface SoC 306 may then use one or more of the in-use USB, serial, UART, and/or GPIO interface(s) between the external network interface SoC 306 and the MCU 310 of the docking station 308 to provide the MCU 310 with the firmware update binary 322.


Upon receipt of the firmware update binary 322, the MCU 310 may determine whether the firmware update binary 322 is encrypted. If so, the decryption engine 324 of the MCU 310 is used to decrypt the firmware update binary 322 as received. In some embodiments, if the firmware update binary 322 cannot be decrypted, the firmware update binary 322 is not further used and is discarded. This decryption may be performed without any input from any host device attached to the docking station 308 (which may or may not be present)


Further, the MCU 310 may determine whether the firmware update binary 322 is signed. If so, the validation engine 326 of the MCU 310 may be used to validate the signature of the firmware update binary 322 as received, thereby ensuring that the firmware update binary 322 is valid. In some embodiments, if the firmware update binary 322 is not signed, or if the signature is determined to be invalid, the firmware update binary 322 is not further used and is instead discarded. This validation may be performed without any input from any host device attached to the docking station 308 (which may or may not be present).


Once the firmware update binary 322 is decrypted and/or validated, the MCU 310 may proceed to perform a firmware update for one or more of the chipset A 312, the chipset B 314, the chipset C 316, and/or the chipset D 318 using the firmware update binary 322. This process may change or replace the firmware of the respective chipset. For example, it may be that the firmware update binary 322 is operable to change or replace the firmware A 328 of chipset A 312. In other cases, it may be that the firmware update binary 322 is operable to change or replace each of the firmware A 328 of chipset A 312 and the firmware C 332 of chipset C 316. In other cases, it may be that the firmware update binary 322 is operable to change or replace the firmware of all chipsets of the docking station 308 (e.g., change or replace the firmware A 328 of the chipset A 312, the firmware B 330 of the chipset B 314, the firmware C 332 of the chipset C 316, and the firmware D 334 of the chipset D 318).


As illustrated, the MCU 310 may communicate with the chipsets 312 through 318 via one or more of a USB interface, a serial interface, a UART interface, or a GPIO interface. In some embodiments, different interfaces could be used for different chipsets (e.g., the MCU 310 could communicate with the chipset A 312 via a serial interface, while the MCU 310 communicates with the chipset D 318 via a GPIO interface). According to the operability of the firmware update binary 322, the firmware update is performed for a respective chipset via the interface between the chipset and the MCU 310.


The firmware update process for the one or more chipsets 312 through 318 can be performed without any input from any host device of the docking station 308. For example, the external network interface SoC 306 may receive the firmware update binary 322 from the Ethernet/Wi-Fi access point 304 and communicate the firmware update binary 322 to the MCU 310 independently of any host device useable with the docking station 308. Further, the MCU 310 may then perform a corresponding firmware update for any of the chipsets 312 through 318 independently of any host device useable with the docking station 308. In other words, the firmware update process described in relation to the system 300 can happen independently of whether or not any host device is connected to the docking station 308 at the time of the firmware update.


Further, it is anticipated that the firmware update process described above could be performed while the docking station 308 (also) continues to perform the functions of the docking station 308 for an attached host device (in the case that one is attached to the docking station 308 at the time of the firmware update). For example, the external network interface SoC 306 could be connected to the docking station 308 and receive the firmware update binary 322 from the Ethernet/Wi-Fi access point 304, and the MCU 310 may receive the firmware update binary 322 from the external network interface SoC 306 and use it to perform a corresponding firmware update, while the docking station 308 continues to, for example, transport data between the host device and the docking station 308 and/or transport power from the docking station 308 to the host device.



FIG. 4 illustrates a system 400 including a cloud server 402, an Ethernet/Wi-Fi access point 404, and a docking station 406, according to an embodiment. As illustrated, the cloud server 402 may include a firmware update binary 422. The docking station 406 may include a network interface SoC 408, an MCU 410 having a decryption engine 424 and a validation engine 426, and a number of chip sets, each operating according to its respective firmware. In the example of FIG. 4, the docking station 406 comprises a chipset A 412 having firmware A 428, a chipset B 414 having firmware B 430, a chipset C 416 having firmware C 432, and a chipset D 418 having firmware D 434.


As illustrated, an administrator instruction 420 may arrive at the cloud server 402. Alternatively, the administrator instruction 420 may originate at the cloud server 402. The administrator instruction 420 may instruct the cloud server 402 to perform a firmware update for one or more of the chipsets 412 to 418 of the docking station 406.


The cloud server 402 may be, for example, a system operated by an administrator of the system 400 and that can be reached via a network (e.g., the Internet). The cloud server 402 may contain chipset firmware update data useable to perform a firmware update for one or more of the chipsets of the docking station 406. For example, the cloud server 402 may contain a firmware update binary 422 that can be used by the docking station 406 to update the firmware of one or more of the chipsets 412 through 418.


The administrator instruction 420 may arrive/occur at the cloud server 402 according to a configuration of the cloud server 402 (e.g., as configured by an administrator of the system 400). For example, the administrator instruction 420 may arrive/occur whenever it is determined by the cloud server 402 that new firmware for one or more of the chipsets 412 through 418 of the docking station 406 is available, and/or at a predetermined update cadence. Alternatively, the administrator instruction 420 may be manually triggered (e.g., via manual interaction with a user of the cloud server 402).


In response to the administrator instruction 420, the cloud server 402 may send the firmware update binary 422 to the Ethernet/Wi-Fi access point 404 (e.g., via the Internet). The Ethernet/Wi-Fi access point 404 may be an access point that is local to the docking station 406. For example, it may be an access point that is within a Wi-Fi communication range with the general location of the docking station 406, or an access point physically situated relatively near to the docking station 406 such that a physical connection (e.g., an Ethernet cable) can feasibly be run between the Ethernet/Wi-Fi access point 404 and the general location of the docking station 406.


As illustrated, the docking station 406 may include a network interface SoC 408. The network interface SoC 408 may communicate with the MCU 410 of the docking station 406 via one or more of a USB interface, a serial interface, a UART interface, and/or a GPIO interface. The network interface SoC 408 may also include any connectors, circuitry, and firmware for receiving network communications (e.g., a “network interface”) from an access point external to the docking station 308 (such as the Ethernet/Wi-Fi access point 404). For example, the network interface SoC 408 may include one or more antenna(s) and related circuitry and firmware for a Wi-Fi interface between the network interface SoC 408 and the Ethernet/Wi-Fi access point 404. Such a Wi-Fi interface may be an example of a network interface of the docking station 406. Additionally or alternatively, the network interface SoC 408 may include an RJ-45 port (that is physically exposed through the docking station 406) and related circuitry and firmware for an Ethernet interface (facilitated by an Ethernet cable) between the network interface SoC 408 and the Ethernet/Wi-Fi access point 404. Such an Ethernet interface may be an example of each of a physical communication interface and a network interface of the docking station 406.


The Ethernet/Wi-Fi access point 404 may provide the firmware update binary 422 to the network interface SoC 408 via one or more of the Ethernet and/or Wi-Fi interface. The network interface SoC 408 may then use one or more of the in-use USB, serial, UART, and/or GPIO interface(s) between the network interface SoC 408 and the MCU 410 of the docking station 406 to provide the MCU 410 with the firmware update binary 422.


Upon receipt of the firmware update binary 422, the MCU 410 may determine whether the firmware update binary 422 is encrypted. If so, the decryption engine 424 of the MCU 410 is used to decrypt the firmware update binary 422 as received. In some embodiments, if the firmware update binary 422 cannot be decrypted, the firmware update binary 422 is not further used and is discarded. This decryption may be performed without any input from any host device attached to the docking station 406 (which may or may not be present)


Further, the MCU 410 may determine whether the firmware update binary 422 is signed. If so, the validation engine 426 of the MCU 410 may be used to validate the signature of the firmware update binary 422 as received, thereby ensuring that the firmware update binary 422 is valid. In some embodiments, if the firmware update binary 422 is not signed, or if the signature is determined to be invalid, the firmware update binary 422 is not further used and is instead discarded. This validation may be performed without any input from any host device attached to the docking station 406 (which may or may not be present).


Once the firmware update binary 422 is decrypted and/or validated, the MCU 410 may proceed to perform a firmware update for one or more of the chipset A 412, the chipset B 414, the chipset C 416, and/or the chipset D 418 using the firmware update binary 422. This process may change or replace the firmware of the respective chipset. For example, it may be that the firmware update binary 422 is operable to change or replace the firmware A 428 of chipset A 412. In other cases, it may be that the firmware update binary 422 is operable to change or replace each of the firmware A 428 of chipset A 412 and the firmware C 432 of chipset C 416. In other cases, it may be that the firmware update binary 422 is operable to change or replace the firmware of all chipsets of the docking station 406 (e.g., change or replace the firmware A 428 of the chipset A 412, the firmware B 430 of the chipset B 414, the firmware C 432 of the chipset C 416, and the firmware D 434 of the chipset D 418).


As illustrated, the MCU 410 may communicate with the chipsets 412 through 418 via one or more of a USB interface, a serial interface, a UART interface, or a GPIO interface. In some embodiments, different interfaces could be used for different chipsets (e.g., the MCU 410 could communicate with the chipset A 412 via a serial interface, while the MCU 410 communicates with the chipset D 418 via a GPIO interface). According to the operability of the firmware update binary 422, a firmware update is performed for a respective chipset via the interface between the chipset and the MCU 410.


The firmware update process for the one or more chipsets 412 through 418 can be performed without any input from any host device of the docking station 406. For example, the network interface SoC 408 may receive the firmware update binary 422 from the Ethernet/Wi-Fi access point 404 and communicate the firmware update binary 422 to the MCU 410 independently of any host device useable with the docking station 406. Further, the MCU 410 may then perform a corresponding firmware update for any of the chipsets 412 through 418 independently of any host device useable with the docking station 406. In other words, the firmware update process described in relation to the system 400 can happen independently of whether or not any host device is connected to the docking station 406 at the time of the firmware update.


Further, it is anticipated that the firmware update process described above could be performed while the docking station 406 (also) continues to perform the functions of the docking station 406 for an attached host device (in the case that one is attached to the docking station 406 at the time of the firmware update). For example, the network interface SoC 408 could receive the firmware update binary 422 from the Ethernet/Wi-Fi access point 404, and the MCU 310 may in turn receive the firmware update binary 422 from the network interface SoC 408 and use it to perform a corresponding firmware update, while the docking station 406 continues to, for example, transport data between the host device and the docking station 406 and/or transport power from the docking station 406 to the host device.



FIG. 5
[A1] illustrates a method 500 of performing a docking station chipset firmware update, according to an embodiment. The method 500 optionally includes hosting 502 a USB memory device via a physical communication interface using a USB engine of the docking station.


The method 500 further includes receiving 504 chipset firmware update data at the docking station. In some embodiments, the chipset firmware update data is received in encrypted form. Further, in some embodiments, the chipset firmware data is received in signed form (e.g., received along with a signature to use for validating the chipset firmware update data).


The method 500 further includes decrypting 506 the chipset firmware update data using a decryption engine of an MCU of the docking station.


The method 500 further optionally includes validating 508 the signature of the chipset firmware update data using a validation engine of the MCU.


The method 500 further includes operating 510 the MCU to update a chipset firmware of a chipset configured to operate chipset services with a host device, the update performed using the chipset firmware update data and without input from the host device.


In some embodiments of the method 500, the chipset firmware update data is received at the docking station via a physical communication interface of the docking station. In some of these embodiments that include the hosting 502, the chipset firmware update data is received at the docking station from the USB memory device via the physical communication interface being operated to host the USB memory device.


In some embodiments of the method 500, the chipset firmware update data is received at the docking station via a network interface of the docking station.


In some embodiments of the method 500, the chipset firmware update data is received at the docking station without input from the host device.


In some embodiments of the method 500, the chipset firmware update data is decrypted using the decryption engine of the MCU without input from the host device.


In some embodiments of the method 500 that include the validating 508, the signature of the chipset firmware update data is validated using the validation engine of the MCU without input from the host device.


In some embodiments of the method 500, the host device is not connected to the docking station.



FIG. 6 illustrates a method 600 of a USB storage device, according to an embodiment. The method 600 includes connecting 602 to an access point in communication with a cloud server using a network interface of the USB storage device.


The method 600 further includes performing 604 a check, using an MCU of the USB storage device, via the access point, whether the USB storage device stores chipset firmware update data found on the cloud server.


The method 600 further optionally includes downloading 606, via the network interface, the chipset firmware update data from the cloud server. The downloading 606 may be performed responsive to a determination made by the MCU during the check that the USB storage device does not include the chipset firmware update data found on the cloud server.


The method 600 further includes interfacing 608 with a docking station via a USB interface of the USB storage device.


The method 600 further includes providing 610 the chipset firmware update data to the docking station without input from a host device of the docking station.


In some embodiments of the method 600, the chipset firmware update data is in an encrypted form.


In some embodiments of the method 600, the chipset firmware update data is in a signed form.


In some embodiments of the method 600, the network interface comprises a Wi-Fi interface.


In some embodiments of the method 600, the MCU performs the check on a periodic basis.


In some embodiments of the method 600, the MCU performs the check upon a connection of the USB storage device to the access point via the network interface.


In some embodiments of the method 600, the MCU performs the check upon a connection of the USB storage device to the docking station and prior to the USB storage device providing the firmware update data to the docking station.


The devices disclosed herein may respectively include one or more MCUs, SoCs, controllers, processors, etc. using instructions present thereon to implement one or more functionalities of each such device as those functionalities are described herein. The instructions used by such MCUs, SoCs, controllers, processors, etc. may be stored on a memory (e.g., a non-transitory computer readable storage medium) on, or in communication with, such MCUs, SoCs, controllers, processors, etc. It is anticipated that these MCUs, SoCs, controllers, processors, etc. (and/or any associated non-transitory computer-readable instructions for use thereon) may be present in any embodiment disclosed herein (even if not explicitly discussed).


This disclosure has been made with reference to various exemplary embodiments, including the best mode. However, those skilled in the art will recognize that changes and modifications may be made to the exemplary embodiments without departing from the scope of the present disclosure. While the principles of this disclosure have been shown in various embodiments, many modifications of structure, arrangements, proportions, elements, materials, and components may be adapted for a specific environment and/or operating requirements without departing from the principles and scope of this disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure.


This disclosure is to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope thereof. Likewise, benefits, other advantages, and solutions to problems have been described above with regard to various embodiments. However, benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element. The scope of the present invention should, therefore, be determined by the following claims.

Claims
  • 1. A docking station, comprising: a universal serial bus (USB) port for connecting to a USB memory device comprising chipset firmware update data usable to perform a firmware update for one or more chipsets of the docking station;a microcontroller unit (MCU) including a validation engine;a USB host controller comprising a USB hosting engine;a chipset of the one or more chipsets configured to operate chipset services with a host device communicatively coupled to the docking station, according to chipset firmware;wherein the docking station is configured to:host the USB memory device via the USB host controller using the USB hosting engine;receive, from the USB memory device, the chipset firmware update data including a signature;determine that the chipset firmware update data, including a firmware update binary, is signed;determine that the chipset firmware update data is valid based on validating the received signature of the chipset firmware update data without input from the host device; andbased on the validation, operate the MCU to update the chipset firmware using the chipset firmware update data without input from the host device.
  • 2. The docking station of claim 1, wherein the chipset firmware update data from the USB memory device is received without input from the host device.
  • 3. The docking station of claim 1, wherein: the chipset firmware update data is received from the USB memory device in encrypted form;the MCU further comprises a decryption engine; andthe MCU is further configured to decrypt the chipset firmware update data.
  • 4. The docking station of claim 3, wherein the MCU is further configured to decrypt the chipset firmware update data without input from the host device.
  • 5. The docking station of claim 1, wherein: the MCU further comprises the validation engine; andthe MCU is further configured to validate the signature of the chipset firmware update data.
  • 6. A docking station, comprising: a microcontroller unit (MCU) comprising a decryption engine and a validation engine; anda chipset of one or more chipsets of the docking station, the chipset configured to operate chipset services with a host device, communicatively coupled to the docking station, according to chipset firmware;wherein the docking station is configured to:receive, from a universal serial bus (USB) memory device, chipset firmware update data including a signature wherein the chipset firmware update is usable to perform a firmware update for one or more chipsets of the docking station;operate the MCU to decrypt the chipset firmware update data using the decryption engine;determine that the chipset firmware update data, including a firmware update binary, is signed using the received signature;determine that the chipset firmware update data is valid based on validating the received signature of the chipset firmware update data without input from the host device; andbased on the validation, operate the MCU to update the chipset firmware using the chipset firmware update data without input from the host device.
  • 7. The docking station of claim 6, wherein the docking station receives the chipset firmware update data without input from the host device.
  • 8. The docking station of claim 6, wherein the docking station operates the MCU to decrypt the chipset firmware update data without input from the host device.
  • 9. The docking station of claim 6, further comprising: a network interface, wherein the chipset firmware update data is received at the docking station via the network interface.
  • 10. The docking station of claim 6, further comprising: a physical communication interface, wherein the chipset firmware update data is received at the docking station via the physical communication interface.
  • 11. The docking station of claim 6, wherein: the MCU further comprises the validation engine; andthe docking station is further configured to operate the MCU to validate the signature of the chipset firmware update data using the validation engine.
  • 12. A method of a docking station, comprising: receiving chipset firmware update data at the docking station from a universal serial bus (USB) memory device, wherein the chipset firmware update data is received in encrypted form, and includes a firmware update binary and a signature, and wherein the firmware update data is usable to perform a firmware update for one or more chipsets of the docking station;decrypting the chipset firmware update data using a decryption engine of a microcontroller unit (MCU) of the docking station;determining that the chipset firmware update data, including the firmware update binary, is signed using the received signature;determine that the chipset firmware update data is valid based on validating the received signature of the chipset firmware update data without input from a host device communicatively coupled to the docking station; andbased on the validation, operating the MCU to update a chipset firmware of a chipset configured to operate chipset services with the host device, the update performed using the chipset firmware update data and without input from the host device.
  • 13. The method of claim 12, further comprising validating the signature of the chipset firmware update data using a validation engine of the MCU.
  • 14. The method of claim 12, wherein the chipset firmware update data is received at the docking station via a physical communication interface of the docking station.
  • 15. The method of claim 14, further comprising hosting the USB memory device via the physical communication interface using a USB hosting engine of the docking station.
  • 16. The method of claim 12, wherein the chipset firmware update data is received at the docking station via a network interface of the docking station.
  • 17. The method of claim 12, wherein the chipset firmware update data is received at the docking station without input from the host device.
  • 18. The method of claim 12, wherein the chipset firmware update data is decrypted using the decryption engine of the MCU without input from the host device.
  • 19. A universal serial bus (USB) storage device, comprising: a network interface configured to communicate with a cloud server via an access point;a microcontroller unit (MCU) to perform a check of whether the USB storage device stores chipset firmware update data, including a firmware update binary and including a signature, found on the cloud server;a USB interface to connect the USB storage device to a docking station, wherein the USB storage device provides the chipset firmware update data, including the firmware update binary and the signature, to the docking station via the USB interface without input from a host device communicatively coupled to the docking station,wherein the chipset firmware update data is usable to perform a firmware update for one or more chipsets of the docking station; andwherein the MCU is further configured to: determine that the chipset firmware update data, including a firmware update binary, is signed using the received signature;determine that the chipset firmware update data is valid based on validating the received signature without input from the host device; andupdate the chipset firmware using chipset firmware update data without input from the host device.
  • 20. The USB storage device of claim 19, wherein the chipset firmware update data is in an encrypted form.
  • 21. The USB storage device of claim 19, wherein the chipset firmware update data is in a signed form.
  • 22. The USB storage device of claim 19, wherein the network interface comprises a Wi-Fi interface.
  • 23. The USB storage device of claim 19, further comprising downloading, using the network interface, the chipset firmware update data from the cloud server responsive to a determination made by the MCU during the check that the USB storage device does not include the chipset firmware update data found on the cloud server.
  • 24. The USB storage device of claim 19, wherein the MCU performs the check on a periodic basis.
  • 25. The USB storage device of claim 19, wherein the MCU performs the check upon a connection of the USB storage device to the access point via the network interface.
  • 26. The USB storage device of claim 19, wherein the MCU performs the check upon a connection of the USB storage device to the docking station and prior to the USB storage device providing the chipset firmware update data to the docking station.
US Referenced Citations (490)
Number Name Date Kind
5539616 Kikinis Jul 1996 A
5619397 Honda et al. Apr 1997 A
5627974 Watts, Jr. et al. May 1997 A
5692400 Bliven et al. Dec 1997 A
5751548 Hall et al. May 1998 A
5835733 Walsh et al. Nov 1998 A
5864708 Croft et al. Jan 1999 A
5873151 Sood Feb 1999 A
5886424 Kim Mar 1999 A
6029215 Watts, Jr. et al. Feb 2000 A
6170026 Kimura et al. Jan 2001 B1
6275378 Lee et al. Aug 2001 B1
6556435 Helot et al. Apr 2003 B1
6558201 Begley et al. May 2003 B1
6604199 Yang et al. Aug 2003 B1
6629182 Mizoguchi et al. Sep 2003 B1
6665805 Tsirkel et al. Dec 2003 B1
6804740 Watts et al. Oct 2004 B1
6888338 Popescu-Stanesti et al. May 2005 B1
6956474 Jakubowski Oct 2005 B2
6976885 Lord Dec 2005 B2
7000101 Wu et al. Feb 2006 B2
7035100 Charles Apr 2006 B2
7035126 Lanni Apr 2006 B1
7062389 Johnson et al. Jun 2006 B2
7099152 Gasbarro Aug 2006 B2
7103760 Billington et al. Sep 2006 B1
7171461 Ewing et al. Jan 2007 B2
7201611 Faranda Apr 2007 B2
7225227 Omura et al. May 2007 B2
7227747 Walker et al. Jun 2007 B2
7281698 Patterson, Jr. Oct 2007 B2
7315444 Chen et al. Jan 2008 B2
7369851 Okkonen et al. May 2008 B2
7403232 Orlicki et al. Jul 2008 B1
7471511 Montag et al. Dec 2008 B2
7532461 Krancher et al. May 2009 B2
7542759 Edwards Jun 2009 B2
7596687 Sultenfuss et al. Sep 2009 B2
7643283 Jubelirer et al. Jan 2010 B2
7681134 Grechishkin et al. Mar 2010 B1
7683573 Nikazm et al. Mar 2010 B2
7704147 Quraishi Apr 2010 B2
7818480 Hoerl et al. Oct 2010 B2
7857664 Waryck et al. Dec 2010 B2
7899970 Mori Mar 2011 B2
7926430 Bakker Apr 2011 B2
7976337 Cortopassi et al. Jul 2011 B1
8074581 Epstein et al. Dec 2011 B2
8312199 Johnson Nov 2012 B2
8323040 Prest Dec 2012 B2
8346753 Hayes Jan 2013 B2
8352784 Burg et al. Jan 2013 B2
8352934 Borole et al. Jan 2013 B1
8358943 Kim Jan 2013 B2
8359356 Belz et al. Jan 2013 B2
8395605 Sisto et al. Mar 2013 B2
8498618 Ben Jul 2013 B2
8508573 Grimshaw Aug 2013 B2
8510424 Ewing et al. Aug 2013 B2
8522322 Wishman et al. Aug 2013 B2
8601203 Holbrook Dec 2013 B2
8611076 Wetzel et al. Dec 2013 B2
8751836 Piszczek et al. Jun 2014 B1
8762752 Inbaraj et al. Jun 2014 B2
8770482 Ackermann et al. Jul 2014 B2
8774071 Meng Jul 2014 B2
8793680 Jeong Jul 2014 B2
8797159 Kirkpatrick et al. Aug 2014 B2
8799537 Zhu et al. Aug 2014 B1
8879250 Franz Nov 2014 B2
8884896 Tabone et al. Nov 2014 B2
8896656 Epstein et al. Nov 2014 B2
8909842 Johnson Dec 2014 B2
8913380 Enomoto et al. Dec 2014 B2
8990469 Benhard et al. Mar 2015 B2
9013283 Tackaberry Apr 2015 B1
9033228 Govindarajan et al. May 2015 B2
9092632 Wishman et al. Jul 2015 B2
9128796 Chitre et al. Sep 2015 B2
9152177 Feldstein Oct 2015 B2
9189751 Matsuoka et al. Nov 2015 B2
9197728 Pedersen et al. Nov 2015 B2
9224290 Mason et al. Dec 2015 B1
9249927 Graham Feb 2016 B2
9274994 Capezza Mar 2016 B2
9304545 Ramirez et al. Apr 2016 B2
9325595 O'Donovan et al. Apr 2016 B1
9338268 Holtman May 2016 B2
9345357 Davila, Jr. May 2016 B1
9362777 Lau et al. Jun 2016 B2
9377814 Ramirez et al. Jun 2016 B2
9392427 Goldman Jul 2016 B2
9411551 Haren Aug 2016 B2
9444508 Lee Sep 2016 B2
9456686 Epstein Oct 2016 B2
9531651 Cherubini Dec 2016 B1
D782562 Gustaveson, II Mar 2017 S
9602760 Griffin et al. Mar 2017 B2
9612628 Halim et al. Apr 2017 B2
9634903 Yan et al. Apr 2017 B2
9645812 Proschowsky May 2017 B2
9647481 Huang et al. May 2017 B2
9696777 Pamley et al. Jul 2017 B2
9712959 Haoyang et al. Jul 2017 B2
9723358 Chan Aug 2017 B1
9736427 Grimshaw et al. Aug 2017 B1
9760116 Wylie Sep 2017 B2
9778779 Chartier et al. Oct 2017 B2
9794496 Soffer et al. Oct 2017 B2
9829333 Calder Nov 2017 B1
9829669 Leipold Nov 2017 B1
9836969 Thompson et al. Dec 2017 B2
9838475 Brown et al. Dec 2017 B2
9854142 Freeze Dec 2017 B2
9961306 Lev et al. May 2018 B1
10001807 Chung et al. Jun 2018 B2
10013019 Juan et al. Jul 2018 B2
10013559 Ali et al. Jul 2018 B2
10070021 Rolle Sep 2018 B1
10083021 Jamadagni et al. Sep 2018 B2
10097563 Surdu et al. Oct 2018 B2
10108221 Jin et al. Oct 2018 B1
10203964 Johnnie et al. Feb 2019 B2
10224727 Li et al. Mar 2019 B2
10354531 Bronder et al. Jul 2019 B1
10356129 Elias et al. Jul 2019 B2
10409751 Grobelny Sep 2019 B2
10452096 Keilers et al. Oct 2019 B1
10462611 Klinkner et al. Oct 2019 B1
10468842 Sun Nov 2019 B2
10499531 Schmidt et al. Dec 2019 B2
10578657 Decamp Mar 2020 B2
10623701 Bracewell et al. Apr 2020 B1
10663498 Decamp et al. May 2020 B2
10684842 Lin et al. Jun 2020 B2
10705852 Vidyadhara et al. Jul 2020 B2
10782735 Wylie Sep 2020 B2
10789061 Dewan et al. Sep 2020 B2
10802818 Kondapi et al. Oct 2020 B2
10841791 Zhang et al. Nov 2020 B1
10962248 Hasan et al. Mar 2021 B1
11017334 Decamp et al. May 2021 B2
11138581 Fernando et al. Oct 2021 B2
11231448 DeCamp Jan 2022 B2
11269984 Raskin Mar 2022 B2
11320862 Tang et al. May 2022 B2
11360534 Decamp Jun 2022 B2
11470934 Yuan Oct 2022 B2
20020080132 Dai et al. Jun 2002 A1
20020095533 Esterberg et al. Jul 2002 A1
20020119800 Jaggers et al. Aug 2002 A1
20030084222 Wurzburg May 2003 A1
20030107566 Shin et al. Jun 2003 A1
20030114206 Timothy et al. Jun 2003 A1
20030154293 Zmolek et al. Aug 2003 A1
20030182150 Reddy Sep 2003 A1
20030217098 Bobde et al. Nov 2003 A1
20030217142 Bobde et al. Nov 2003 A1
20030222149 Solomon et al. Dec 2003 A1
20030222848 Solomon et al. Dec 2003 A1
20040064621 Dougherty et al. Apr 2004 A1
20040088465 Bianchi May 2004 A1
20040095713 Chuang May 2004 A1
20040111382 Haji-Ioannou Jun 2004 A1
20040116149 Yukie et al. Jun 2004 A1
20040125777 Doyle et al. Jul 2004 A1
20040212586 Denny Oct 2004 A1
20040268163 Yeh Dec 2004 A1
20050033481 Budhraja et al. Feb 2005 A1
20050036283 Hillman et al. Feb 2005 A1
20050057893 Homer et al. Mar 2005 A1
20050114503 Ruetschi et al. May 2005 A1
20050162824 Thompson Jul 2005 A1
20050164545 Rosenthal et al. Jul 2005 A1
20050180086 Schaefer et al. Aug 2005 A1
20050207110 Wang et al. Sep 2005 A1
20050213298 Doherty et al. Sep 2005 A1
20050245115 Bell et al. Nov 2005 A1
20050246421 Moore Nov 2005 A1
20060005055 Potega Jan 2006 A1
20060031454 Ewing et al. Feb 2006 A1
20060061958 Solomon et al. Mar 2006 A1
20060061961 Yin et al. Mar 2006 A1
20060075286 Hodge et al. Apr 2006 A1
20060095641 Pandit et al. May 2006 A1
20060103504 Vassallo May 2006 A1
20060112375 Schneider May 2006 A1
20060123807 Sullivan et al. Jun 2006 A1
20060141830 Diaz et al. Jun 2006 A1
20060161713 Belady Jul 2006 A1
20060190652 Keely et al. Aug 2006 A1
20060205381 Beart et al. Sep 2006 A1
20060238497 Velagapudi Oct 2006 A1
20060250764 Howarth et al. Nov 2006 A1
20060250765 Howarth et al. Nov 2006 A1
20060250767 Brophy et al. Nov 2006 A1
20070030276 Macinnis et al. Feb 2007 A1
20070033289 Nuyttens et al. Feb 2007 A1
20070054550 Cuthbert et al. Mar 2007 A1
20070055740 Luciani et al. Mar 2007 A1
20070058332 Canterbury et al. Mar 2007 A1
20070065078 Jiang Mar 2007 A1
20070070598 Chuang Mar 2007 A1
20070074284 Woog Mar 2007 A1
20070097618 Searby et al. May 2007 A1
20070101039 Rutledge et al. May 2007 A1
20070120874 MacInnis et al. May 2007 A1
20070130323 Landsman et al. Jun 2007 A1
20070168593 Montag et al. Jul 2007 A1
20080036780 Liang et al. Feb 2008 A1
20080053770 Tynyk Mar 2008 A1
20080079388 Sarnowsky Apr 2008 A1
20080099646 Kobara et al. May 2008 A1
20080100713 Liu May 2008 A1
20080119241 Dorogusker et al. May 2008 A1
20080126594 Monks et al. May 2008 A1
20080194119 Mori Aug 2008 A1
20080239681 Ida Oct 2008 A1
20080244026 Holt et al. Oct 2008 A1
20080313108 Carrabis Dec 2008 A1
20090016015 Seibert et al. Jan 2009 A1
20090058359 Fischer et al. Mar 2009 A1
20090061675 Chen Mar 2009 A1
20090066704 Daniel et al. Mar 2009 A1
20090072782 Randall Mar 2009 A1
20090079264 Minami Mar 2009 A1
20090079416 Vinden et al. Mar 2009 A1
20090125743 Robertson et al. May 2009 A1
20090158423 Orlassino et al. Jun 2009 A1
20090177906 Paniagua, Jr. et al. Jul 2009 A1
20090228614 Hwang Sep 2009 A1
20090247006 Thompson Oct 2009 A1
20090254313 Armour et al. Oct 2009 A1
20090300174 Floris et al. Dec 2009 A1
20090302799 Marquet et al. Dec 2009 A1
20090309748 Elgort et al. Dec 2009 A1
20100022285 Randall et al. Jan 2010 A1
20100037283 Zhu Feb 2010 A1
20100053387 Kim et al. Mar 2010 A1
20100066685 Cain et al. Mar 2010 A1
20100070217 Shimada et al. Mar 2010 A1
20100081473 Chatterjee et al. Apr 2010 A1
20100088140 Gil et al. Apr 2010 A1
20100102979 Huang et al. Apr 2010 A1
20100128766 Sugita May 2010 A1
20100138582 Bird et al. Jun 2010 A1
20100174419 Brumfield et al. Jul 2010 A1
20100182262 Yoshikawa et al. Jul 2010 A1
20100188808 Howarth et al. Jul 2010 A1
20100191487 Rada et al. Jul 2010 A1
20100251361 Collopy et al. Sep 2010 A1
20100259213 Maharaj Oct 2010 A1
20100295384 Kobayashi Nov 2010 A1
20100302454 Epstein et al. Dec 2010 A1
20100312938 Stampfli Dec 2010 A1
20110001486 Abouda et al. Jan 2011 A1
20110035443 Jensen Feb 2011 A1
20110058255 Weiss Mar 2011 A1
20110069445 Haren et al. Mar 2011 A1
20110085816 Kim Apr 2011 A1
20110105226 Perlman May 2011 A1
20110145466 Supran et al. Jun 2011 A1
20110179291 Weng et al. Jul 2011 A1
20110181238 Soar Jul 2011 A1
20110182029 Wu et al. Jul 2011 A1
20110204843 Foster Aug 2011 A1
20110208980 Brooks et al. Aug 2011 A1
20110239008 Lam et al. Sep 2011 A1
20110246679 Sretenovic Oct 2011 A1
20110266997 Krancher et al. Nov 2011 A1
20110273632 Casey Nov 2011 A1
20110292640 Clark et al. Dec 2011 A1
20110297566 Gallagher et al. Dec 2011 A1
20120009820 Byrne Jan 2012 A1
20120034951 Jones et al. Feb 2012 A1
20120039048 Mondragon et al. Feb 2012 A1
20120054400 Iverson et al. Mar 2012 A1
20120068538 Ye et al. Mar 2012 A1
20120081087 Ching-Wei Apr 2012 A1
20120110360 Lin et al. May 2012 A1
20120120581 Haren May 2012 A1
20120155013 Huang Jun 2012 A1
20120166115 Apostolakis Jun 2012 A1
20120170203 Oberpriller et al. Jul 2012 A1
20120170212 Gallouzi et al. Jul 2012 A1
20120188087 Wang Jul 2012 A1
20120196475 Lin Aug 2012 A1
20120203949 Benhard et al. Aug 2012 A1
20120229076 Zhu et al. Sep 2012 A1
20120262117 Ferber et al. Oct 2012 A1
20120275526 Hughes Nov 2012 A1
20120278640 Caglianone Nov 2012 A1
20120314360 Chen et al. Dec 2012 A1
20120314777 Zhang et al. Dec 2012 A1
20130010418 Flynn et al. Jan 2013 A1
20130050216 Whitby-Strevens et al. Feb 2013 A1
20130054348 Holsman et al. Feb 2013 A1
20130057567 Frank et al. Mar 2013 A1
20130060662 Carlson et al. Mar 2013 A1
20130073882 Inbaraj et al. Mar 2013 A1
20130106979 Chang et al. May 2013 A1
20130115826 Sloey et al. May 2013 A1
20130143521 Hernandez et al. Jun 2013 A1
20130159756 Ellis Jun 2013 A1
20130165046 Tang et al. Jun 2013 A1
20130169069 Stone et al. Jul 2013 A1
20130205060 Benhard et al. Aug 2013 A1
20130214931 Chia Aug 2013 A1
20130257368 Lau et al. Oct 2013 A1
20130262248 Kim et al. Oct 2013 A1
20130311801 Kong et al. Nov 2013 A1
20130326495 Reunamaki et al. Dec 2013 A1
20140000771 Sherman et al. Jan 2014 A1
20140028462 Lawson Jan 2014 A1
20140028923 Griffin et al. Jan 2014 A1
20140044281 Ganem et al. Feb 2014 A1
20140063049 Armstrong-Muntner Mar 2014 A1
20140117780 Buchheim et al. May 2014 A1
20140136749 North et al. May 2014 A1
20140150812 Liao Jun 2014 A1
20140168884 Wylie et al. Jun 2014 A1
20140172478 Vadasz Jun 2014 A1
20140172731 Ericksen et al. Jun 2014 A1
20140181350 Pedro et al. Jun 2014 A1
20140208134 Waters et al. Jul 2014 A1
20140244869 Adrian et al. Aug 2014 A1
20140274204 Williams et al. Sep 2014 A1
20140278645 Davidson et al. Sep 2014 A1
20140301575 Holtman et al. Oct 2014 A1
20140316584 Matsuoka et al. Oct 2014 A1
20140342669 Zeung et al. Nov 2014 A1
20140355200 Thiers Dec 2014 A1
20140359318 Liu et al. Dec 2014 A1
20140361995 Halim et al. Dec 2014 A1
20140365396 Kumar et al. Dec 2014 A1
20150006026 Schaffer et al. Jan 2015 A1
20150009399 Jonsson et al. Jan 2015 A1
20150013010 Rozenweig Jan 2015 A1
20150035939 Hillier et al. Feb 2015 A1
20150036051 Broberg et al. Feb 2015 A1
20150043154 Feldstein et al. Feb 2015 A1
20150046623 Ramirez et al. Feb 2015 A1
20150059251 Rinner et al. Mar 2015 A1
20150081381 Okoba Mar 2015 A1
20150082061 Ramirez et al. Mar 2015 A1
20150106814 Mlke et al. Apr 2015 A1
20150169477 Beel et al. Jun 2015 A1
20150170497 Thuersam et al. Jun 2015 A1
20150195489 Sobti et al. Jul 2015 A1
20150227177 McKean Aug 2015 A1
20150236743 Kennedy Aug 2015 A1
20150237191 Moran et al. Aug 2015 A1
20150278739 Parker et al. Oct 2015 A1
20150281627 Wang et al. Oct 2015 A1
20150295440 Liao Oct 2015 A1
20150333789 An Nov 2015 A1
20150346792 Rathi et al. Dec 2015 A1
20150356045 Soffer Dec 2015 A1
20150370681 Tonry et al. Dec 2015 A1
20150378420 Ippolito et al. Dec 2015 A1
20160007083 Gurha Jan 2016 A1
20160026883 Matos Jan 2016 A1
20160050375 Soffer et al. Feb 2016 A1
20160065633 Kawakubo Mar 2016 A1
20160087670 Lee Mar 2016 A1
20160091926 Saxton Mar 2016 A1
20160109864 Lonn Apr 2016 A1
20160134153 Miller et al. May 2016 A1
20160173678 Decamp Jun 2016 A1
20160187963 Leinonen et al. Jun 2016 A1
20160190817 Hartelt et al. Jun 2016 A1
20160193932 Pedram Jul 2016 A1
20160195856 Spero Jul 2016 A1
20160195897 Robinson Jul 2016 A1
20160227381 Bargetzi et al. Aug 2016 A1
20160285301 Kim Sep 2016 A1
20160285310 Tan et al. Sep 2016 A1
20160302320 Kim et al. Oct 2016 A1
20160306616 Tomppo Oct 2016 A1
20160308929 Fu Oct 2016 A1
20160321333 Oka Nov 2016 A1
20160364224 Tuukkanen Dec 2016 A1
20160372973 Fitzgerald et al. Dec 2016 A1
20170016696 Koskan et al. Jan 2017 A1
20170024197 Pantelka et al. Jan 2017 A1
20170025889 Ormesher et al. Jan 2017 A1
20170054734 Sigal et al. Feb 2017 A1
20170068913 Pignataro et al. Mar 2017 A1
20170070090 Miller Mar 2017 A1
20170092229 Greenebaum et al. Mar 2017 A1
20170099361 Digilov et al. Apr 2017 A1
20170123456 Chung et al. May 2017 A1
20170140235 Yu et al. May 2017 A1
20170150812 Tomomatsu et al. Jun 2017 A1
20170170859 Noori et al. Jun 2017 A1
20170177029 Nguyen et al. Jun 2017 A1
20170205852 Owens Jul 2017 A1
20170255452 Barnes et al. Sep 2017 A1
20170255880 Daher et al. Sep 2017 A1
20170262779 Remaker Sep 2017 A1
20170302099 Bolden et al. Oct 2017 A1
20170325318 Wendt et al. Nov 2017 A1
20170336846 Shieh et al. Nov 2017 A1
20170345290 Law et al. Nov 2017 A1
20170351638 Chen et al. Dec 2017 A1
20170374114 Feldman Dec 2017 A1
20180017992 Wylie Jan 2018 A1
20180055175 Rho et al. Mar 2018 A1
20180062417 Choi et al. Mar 2018 A1
20180067885 Hsieh et al. Mar 2018 A1
20180074546 Decamp et al. Mar 2018 A1
20180103212 Epstein et al. Apr 2018 A1
20180117446 Tran May 2018 A1
20180131148 Liu May 2018 A1
20180143664 Wylie May 2018 A1
20180143665 Wylie May 2018 A1
20180143934 Li May 2018 A1
20180177024 Mohan et al. Jun 2018 A1
20180189730 Wilkinson et al. Jul 2018 A1
20180191113 Byrne et al. Jul 2018 A1
20180198248 Sun et al. Jul 2018 A1
20180210744 Shih et al. Jul 2018 A1
20180267681 Epstein Sep 2018 A1
20180324393 Ryan et al. Nov 2018 A1
20180338368 Pfund et al. Nov 2018 A1
20190005476 Luo et al. Jan 2019 A1
20190018811 Hundal et al. Jan 2019 A1
20190025353 Decamp Jan 2019 A1
20190025354 Decamp Jan 2019 A1
20190025355 Decamp Jan 2019 A1
20190097962 Young et al. Mar 2019 A1
20190138737 Leipold May 2019 A1
20190197009 Chen et al. Jun 2019 A1
20190228348 O'Keefe-Sally et al. Jul 2019 A1
20190243419 Charlesworth et al. Aug 2019 A1
20190243637 Nachimuthu Aug 2019 A1
20190272005 Wickett Sep 2019 A1
20190272141 Poel et al. Sep 2019 A1
20190273754 Ting Sep 2019 A1
20190303342 Jen Oct 2019 A1
20190317774 Raghav Oct 2019 A1
20190354361 Gang et al. Nov 2019 A1
20190361407 Vogel et al. Nov 2019 A1
20190389064 High et al. Dec 2019 A1
20190392356 Munir et al. Dec 2019 A1
20200042710 Liu et al. Feb 2020 A1
20200081483 Laurent et al. Mar 2020 A1
20200104762 Gibson et al. Apr 2020 A1
20200133368 Volek Apr 2020 A1
20200177596 Grobelny et al. Jun 2020 A1
20200201388 Spyrison et al. Jun 2020 A1
20200212694 Spyrison et al. Jul 2020 A1
20200218324 Decamp et al. Jul 2020 A1
20200218811 Rangel-Martinez Jul 2020 A1
20200219036 Decamp et al. Jul 2020 A1
20200241597 Decamp et al. Jul 2020 A1
20200256902 Decamp et al. Aug 2020 A1
20200257517 Seater Aug 2020 A1
20200259805 Grobelny Aug 2020 A1
20200293634 Tsao et al. Sep 2020 A1
20200301693 Patel et al. Sep 2020 A1
20200314744 Bhanja et al. Oct 2020 A1
20200326955 Adiletta et al. Oct 2020 A1
20200348724 Vroom Nov 2020 A1
20200364342 Martinez et al. Nov 2020 A1
20200388377 Macdonald Dec 2020 A1
20210026964 Gopal Jan 2021 A1
20210034355 Montero et al. Feb 2021 A1
20210051298 Atkins et al. Feb 2021 A1
20210058584 Decamp et al. Feb 2021 A1
20210067365 Ansari et al. Mar 2021 A1
20210072792 Decamp et al. Mar 2021 A1
20210073155 Decamp et al. Mar 2021 A1
20210097565 Subbloie et al. Apr 2021 A1
20210119930 Debbage Apr 2021 A1
20210181794 Chung et al. Jun 2021 A1
20210191462 Decamp et al. Jun 2021 A1
20210233010 Decamp et al. Jul 2021 A1
20210258538 Decamp, II et al. Aug 2021 A1
20210286580 Tian Sep 2021 A1
20210326763 Bernat Oct 2021 A1
20220011382 Chiang et al. Jan 2022 A1
20220021227 Spyrison et al. Jan 2022 A1
20220116224 Guim Bernat Apr 2022 A1
20220188419 Stremlau Jun 2022 A1
20220210225 Shilimkar Jun 2022 A1
20220261056 Motoi et al. Aug 2022 A1
20230006833 Stolbikov Jan 2023 A1
20230019303 Suryanarayana Jan 2023 A1
Foreign Referenced Citations (81)
Number Date Country
2014100171 Mar 2014 AU
101893916 Nov 2010 CN
104094187 Oct 2014 CN
104838558 Aug 2015 CN
105593782 May 2016 CN
205651721 Oct 2016 CN
106707834 May 2017 CN
107274660 Oct 2017 CN
107702282 Feb 2018 CN
107702282 Feb 2018 CN
102013104216 Nov 2013 DE
202017102528 May 2017 DE
102016200482 Jul 2017 DE
1085400 Mar 2001 EP
2645343 Oct 2013 EP
2722728 Apr 2014 EP
2722728 Apr 2014 EP
2823372 Jan 2015 EP
2929613 Oct 2015 EP
3030948 Jun 2016 EP
3087476 Nov 2016 EP
3226182 Oct 2017 EP
2457252 Aug 2009 GB
2513197 Oct 2014 GB
201617004084 Dec 2015 IN
201406041 Jan 2016 IN
2006228234 Aug 2006 JP
2007172667 Jul 2007 JP
2013239178 Nov 2013 JP
6110878 May 2015 JP
2016504900 Feb 2016 JP
2016095633 May 2016 JP
2016532928 Oct 2016 JP
1020090069890 Jul 2009 KR
20100000082 Jan 2010 KR
20140069684 Jun 2014 KR
1020140069684 Jun 2014 KR
101452319 Oct 2014 KR
20150091362 Aug 2015 KR
20150130842 Nov 2015 KR
1020150130842 Nov 2015 KR
20160035397 Mar 2016 KR
1020160121116 Oct 2016 KR
20170075201 Jul 2017 KR
2020100000082 Jan 2020 KR
2630376 Jul 2017 RU
387182 Feb 2013 TW
201347581 Nov 2013 TW
201823978 Jul 2018 TW
03030304 Apr 2003 WO
2005003983 Jan 2005 WO
2008109193 Sep 2008 WO
2011040904 Apr 2011 WO
2011138581 Nov 2011 WO
2013024855 Feb 2013 WO
2013033573 Mar 2013 WO
2014172678 Oct 2014 WO
2015053976 Apr 2015 WO
2016011566 Jan 2016 WO
2016040781 Mar 2016 WO
2017069490 Apr 2017 WO
2017140474 Aug 2017 WO
2017167709 Oct 2017 WO
20018216004 Nov 2018 WO
2019018007 Jan 2019 WO
2019067600 Apr 2019 WO
2019072244 Apr 2019 WO
2019118130 Jun 2019 WO
2019161138 Aug 2019 WO
2019173346 Sep 2019 WO
2020117834 Jun 2020 WO
2020142525 Jul 2020 WO
2020172802 Sep 2020 WO
2020202181 Oct 2020 WO
2020231583 Nov 2020 WO
2020231624 Nov 2020 WO
2020231744 Nov 2020 WO
2020251546 Dec 2020 WO
2021035156 Feb 2021 WO
2021050215 Mar 2021 WO
2021050575 Mar 2021 WO
Non-Patent Literature Citations (77)
Entry
U.S. Appl. No. 17/229,547, Non-Final Office Action, Feb. 15, 2022, 24 pages.
PCT/US2012/023717 , International Search Report and Written Opinion, Aug. 30, 2012, 9 pgs.
PCT/US2014/017434 , International Search Report and Written Opinion, Jun. 30, 2014, 8 pgs.
PCT/US2015/065730 , International Search Report and Written Opinion, Apr. 6, 2016, 16 pgs.
PCT/US2017/048367 , International Search Report and Written Opinion, Oct. 27, 2017, 15 pgs.
PCT/US2018/017232 , International Search Report and Written Opinion, May 21, 2018, 13 pgs.
PCT/US2019/067581 , International Search Report and Written Opinion, Apr. 23, 2020, 10 pages.
PCT/US2019/069120 , International Search Report and Written Opinion, Apr. 29, 2020, 11 pages.
PCT/US2020/046703 , International Search Report and Written Opinion, Jan. 13, 2021, 12 pages.
PCT/US2020/046703 , Invitation to Pay Additional Fees and, Where Applicable, Protest Fee, Oct. 29, 2020, 2 pages.
PCT/US2020/047448 , International Search Report and Written Opinion, Nov. 20, 2020, 13 pages.
PCT/US2020/049980 , International Search Report and Written Opinion, Nov. 27, 2020, 15 pages.
Wikipedia , “USB”, https://web.archive.org/web/20141024053934/https://en.wikipedia.org/wiki/USB, Oct. 24, 2014, 42 pages.
U.S. Appl. No. 16/446,440, Notice of Allowance, Mar. 31, 2022, 8 pages.
U.S. Appl. No. 16/833,089, Non-Final Office Action, Apr. 8, 2022, 23 pages.
U.S. Appl. No. 13/365,754 , Final Office Action, Dec. 27, 2013, 18 pgs.
U.S. Appl. No. 13/365,754 , Notice of Allowance, Feb. 4, 2015, 8 pgs.
U.S. Appl. No. 13/365,754 , Final Office Action, Jun. 10, 2014, 22 pgs.
U.S. Appl. No. 13/365,754 , Non-Final Office Action, May 13, 2014, 18 pgs.
U.S. Appl. No. 13/365,754 , Non-Final Office Action, Sep. 10, 2013, 15 pgs.
U.S. Appl. No. 13/365,754 , Non-Final Office Action, Sep. 17, 2014, 25 pgs.
U.S. Appl. No. 13/786,038 , Non-Final Office Action, Sep. 18, 2014, 24 pgs.
U.S. Appl. No. 14/634,196 , Non-Final Office Action, Sep. 7, 2016, 25 pgs.
Ganesh, “Visible Engergy UFO Power Center Smart Power Strip Review”, AnandTech, http://www.anandtech.com/show/6413/visible-energy-ufo-power-center-smart-power-stripreview, Oct. 26, 2012.
U.S. Appl. No. 14/923,833 , Final Office Action, Aug. 9, 2017, 22 pgs.
U.S. Appl. No. 14/923,833 , Notice of Allowance, Dec. 18, 2017, 5 pgs.
U.S. Appl. No. 14/923,833 , Non-Final Office Action, Mar. 2, 2017, 22 pgs.
U.S. Appl. No. 14/923,833 , Non-Final Office Action, Nov. 1, 2016, 14 pgs.
U.S. Appl. No. 14/970,318 , Notice of Allowance, Dec. 6, 2017, 11 pgs.
U.S. Appl. No. 14/970,318 , Non-Final Office Action, Feb. 6, 2017, 21 pgs.
U.S. Appl. No. 14/970,318 , Non-Final Office Action, Jul. 11, 2017, 15 pgs.
U.S. Appl. No. 14/970,318 , Final Office Action, Jul. 11, 2017, 25 pgs.
U.S. Appl. No. 14/970,318 , Non-Final Office Action, Oct. 14, 2016, 13 pgs.
U.S. Appl. No. 14/970,318 , Advisory Action, Sep. 28, 2017, 3 pgs.
U.S. Appl. No. 15/261,204 , Non-Final Office Action, Apr. 30, 2018, 20 pgs.
U.S. Appl. No. 15/261,204 , Advisory Action, Feb. 1, 2019, 7 pages.
U.S. Appl. No. 15/261,204 , Notice of Allowance, Feb. 4, 2020, 8 pages.
U.S. Appl. No. 15/261,204 , Non-Final Office Action, Jun. 27, 2019, 20 pages.
U.S. Appl. No. 15/261,204 , Final Office Action, Nov. 2, 2018, 22 pgs.
U.S. Appl. No. 15/655,669 , Final Office Action, May 16, 2019, 16 pages.
U.S. Appl. No. 15/655,699 , Advisory Action, Aug. 1, 2019, 4 pages.
U.S. Appl. No. 15/655,699 , Final Office Action, Feb. 7, 2020, 8 pages.
U.S. Appl. No. 15/655,699 , Notice of Allowance, Mar. 6, 2020, 7 pages.
U.S. Appl. No. 15/655,699 , Non-Final Office Action, Nov. 19, 2018, 37 pgs.
U.S. Appl. No. 15/655,699 , Non-Final Office Action, Sep. 6, 2019, 18 pages.
U.S. Appl. No. 15/905,241 , Non-Final Office Action, Nov. 2, 2018, 34 pgs.
U.S. Appl. No. 16/029,339 , Final Office Action, Apr. 19, 2019, 14 pages.
U.S. Appl. No. 16/029,339 , Non-Final Office Action, Aug. 8, 2019, 14 pages.
U.S. Appl. No. 16/029,339 , Notice of Allowance, Dec. 4, 2019, 10 pages.
U.S. Appl. No. 16/029,339 , Non-Final Office Action, Nov. 2, 2018, 28 pgs.
U.S. Appl. No. 16/240,124 , Notice of Allowance, Feb. 22, 2021, 9 pages.
U.S. Appl. No. 16/240,124 , Non-Final Office Action, Nov. 13, 2020, 30 pages.
U.S. Appl. No. 16/446,440 , Non-Final Office Action, Sep. 16, 2021, 15 pages.
U.S. Appl. No. 16/721,403 , Non-Final Office Action, Feb. 1, 2022, 17 pages.
U.S. Appl. No. 16/849,799 , Notice of Allowance, Oct. 8, 2021, 5 pages.
U.S. Appl. No. 16/849,858 , Notice of Allowance, Jan. 22, 2021, 8 pages.
U.S. Appl. No. 16/849,858 , Non-Final Office Action, Jun. 26, 2020, 12 pages.
U.S. Appl. No. 16/999,778 , Notice of Allowance, Mar. 19, 2021, 13 pages.
U.S. Appl. No. 16/999,778 , Non-Final Office Action, Nov. 13, 2020, 16 pages.
U.S. Appl. No. 17/308,351 , Non-Final Office Action, Nov. 15, 2021, 14 pages.
17849313.6 , Extended European Search Report, Mar. 25, 2020, 8 pages.
Agnihotri, Mohit , et al., “Topology Formation in Mesh Networks Considering Role Suitability”, Workshop on Device Communications for 5G Networks, WD5G, 2016, 7 pages.
Dell , “Dell Docking Station WD15 User Guide”, 2015, 31 pages.
Dong, Wei , “Web-based Building Energy Consumption Monitoring and Conservation Service”, 4th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering (ICMMCCE 2015), pp. 3036-3040.
Fink, Thomas , “Toshiba Dynadock V Review”, Laptop Magazine, retrieved from the Internet on Dec. 21, 2013, at <http://www.laptopmag.com/review/accessories/Toshiba-dynadock-v.aspx>, Aug. 9, 2010, pp. 1-2.
U.S. Appl. No. 17/308,351, Notice of Allowance, Mar. 29, 2022, 5 pages.
Extended European Search Report for European Patent Application No. 19893787.2, mailed Jul. 28, 2022, 8 pages.
Extended European Search Report for European Patent Application No. 19900419.3, mailed Jul. 29, 2022, 9 pages.
Chau et al., 2015, “STAQ I Modular Powerbank, Wifi Memory, Audio & Dock System”, AEGLO, [ online], Available from: https ://www.kickstarter.com/projects/ aeglobrand/worlds-first-modular-phone-dock-power-and-multi-me/description [Accessed Jun. 22, 2022],22 pages.
Goodbros., et al., “Minimal Size Privacy Protecting WebCam cover Spyslide” (with English translation), NAVER blog, https://m.post.naver.com/viewer/postView.nhn?volumeNo=7636827&memberNo=36238167&vType=VERTICAL , May 15, 2017 ,32 pages.
PCT/US2019/020762, et al., International Search Report and Written Opinion , Jun. 13, 2019 , 11 pages.
PCT/US2019/064274, et al., International Search Report and Written Opinion ,Mar. 23, 2020 , 10 pages.
Tech Armor, et al., Tech Armor Macbook Pro Privacy Screen Protector, Privacy Apple MacBook Pro Retina, https://www.amazon.com/Macbook-Privacy-Protector-Tech-Armor/dp/B01MZ1W2Y2 , Dec. 20, 2016 , 9 pages.
Vmei, et al., Echo Show Screen Protecto, https://www.amazon.com/Protector-Important-Everyones-Safe-Designed-VMEI/dp/B075W6Y—Retrieved Jul. 30, 2019 ,2017.
European Patent Office, Extended European Search Report Received for European Patent Application No. 20863056.6, mailed Jul. 28, 2023, 14 pages.
European Search Report for European Patent Application No. 20862297.7, mailed Jul. 21, 2023, 10 pages.
Extended European Search Report for European Patent Application No. 19906961.8, mailed Aug. 29, 2022, 8 pages.
Related Publications (1)
Number Date Country
20230077706 A1 Mar 2023 US