Patent ID: 12253846

Like reference numerals refer to corresponding parts throughout the drawings and specification.

DETAILED DESCRIPTION

Reference will now be made in detail to various embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various described embodiments. However, it will be apparent to one of ordinary skill in the art that the various described embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

FIG.1shows a network architecture100for electronic communication between manufacturing tools124in a manufacturing facility112and client devices104of an equipment supplier102, in accordance with some embodiments. The manufacturing tools124are items of manufacturing equipment (i.e., capital equipment) used for one or more manufacturing processes in the manufacturing facility112. In some embodiments, the manufacturing facility112is a semiconductor fabrication facility (i.e., a “semiconductor fab” or simply a “fab”) and the manufacturing tools124include semiconductor fabrication equipment and semiconductor inspection equipment used to fabricate and inspect semiconductor wafers. For example, a respective manufacturing tool124may be a semiconductor fabrication tool or a semiconductor inspection tool. In other embodiments, the manufacturing facility112is another type of factory with other manufacturing tools124for fabricating and/or inspecting products manufactured in the factory. The equipment supplier102supplies (e.g., designs, manufactures, sells, and/or supports) at least some of the manufacturing tools124.

The manufacturing tools124in the manufacturing facility112are situated behind a server114(e.g., manufacturing-facility server900,FIG.9) associated with the manufacturing facility112. In some embodiments, the server114is situated in the manufacturing facility112. Alternatively, the server114may have a different location (e.g., while still being under the control of the organization that operates the manufacturing facility112.) The server114acts as a gateway that provides computer security for the manufacturing facility112. The manufacturing tools124are communicatively coupled with the server114through a network119that is internal to the manufacturing facility112. For example, respective manufacturing tools124(e.g., manufacturing tools800,FIG.8) include respective computer systems (e.g., computer systems801,FIG.8) that control operation of the respective manufacturing tools124and report on the status of the respective manufacturing tools124. These respective computer systems are communicatively coupled with the server114through the network119. The manufacturing facility112also includes other electronic devices120(e.g., computers, mobile electronic devices, etc.) that are communicatively coupled with the server114through the network119. The manufacturing tools124and electronic devices120, as networked through the network119, compose a subnet126that is internal to the manufacturing facility112.

The manufacturing facility112may desire to remotely collaborate with the equipment supplier102. For example, an engineer, technician, or operator at the manufacturing facility112may seek the help of an expert at the equipment supplier102regarding the installation, operation, servicing, and/or repair of one or more manufacturing tools124supplied by the equipment supplier102. The expert may provide this help from a client device104(e.g., a computer) at the equipment supplier102or another location remote from the manufacturing facility112(e.g., at the expert's home). The expert uses the client device104to access the computer system of a manufacturing tool124and/or an electronic device120at the manufacturing facility112. (The expert is thus the user of the client device104). For example, the expert may access the computer system of the manufacturing tool124to check the status of the manufacturing tool124, review data from the manufacturing tool124, control operation of the manufacturing tool124, write or modify a recipe for the manufacturing tool124, view an image or video feed (e.g., from a camera832,FIG.8) showing a portion of the manufacturing tool124(e.g., to view operation of the manufacturing tool124or to check for mechanical issues with the manufacturing tool124), and/or view an image of the product under process or test (e.g., to view status of the product to gauge performance of the manufacturing tool124). An electronic device120may include a camera122that the expert seeks to access to videoconference with someone at the manufacturing facility112and/or to view the manufacturing tool124. The camera122may provide an image or video feed for the expert to view. In some embodiments, an electronic device120may be a camera headset capable of providing live streaming for remotely viewing a manufacturing tool124.

The client device104may be situated behind a gateway108at the equipment supplier102(or at another remote location). For example, the client device104is one of a plurality of client devices104at the equipment supplier102that are communicatively coupled to the gateway108through a network106that is internal to the equipment supplier102. The gateway108communicates electronically with the server114through the Internet110. Client devices104communicate electronically with manufacturing tools124through the network106, the gateway108, the Internet110, the server114, and the network119, in accordance with some embodiments.

To allow remote collaboration, the computer system of a manufacturing tool124may send frames showing data for the manufacturing tool124to a remote client device104. The frames may show a user interface (or portions thereof, such as a user-interface screens) for the manufacturing tool124. Sending the frames to the remote client device104allows the data for the manufacturing tool124(e.g., the user interface or portions thereof) to be displayed on the client device104. The expert at the client device104can use the user interface to send commands to the manufacturing tool124(e.g., as described below forFIGS.2A and2B). The computer system of the manufacturing tool124may adjust the bandwidth for frames (i.e., the bandwidth used to transmit the frames), as described below for the methods300-600(FIGS.3-6). For example, the computer system of the manufacturing tool124may adjust the resolution used for frames and/or portions of frames, and/or may adjust the frame rate (e.g., frames per second). Adjusting the bandwidth for frames allows for timely transmission of frames from the computer system of the manufacturing tool124to the client device104(e.g., by reducing the resolution and/or frame rate), resulting in responsiveness that improves the user experience for the expert. The frame rate may be increased to improve video quality when desired by the expert. The resolution used for frames and/or portions of frames may be adjusted to provide higher resolution when desired by the expert. Post-processing by the gateway108can reduce choppiness that can result from reducing the frame rate.

The manufacturing facility112seeks to maintain security while allowing remote collaboration with the equipment supplier102, to protect secrets (e.g., intellectual property) held by the manufacturing facility112. Such secrets include, for example, information about the design of products manufactured in the manufacturing facility112and information about the manufacturing process used to make the products. The equipment supplier102seeks to maintain security while providing equipment support, to protect secrets (e.g., intellectual property) held by the equipment supplier102. Such secrets include, for example, information about the design of the manufacturing tool124provided by the equipment supplier102and proprietary service procedures for the manufacturing tool124provided by the equipment supplier102. To provide security and protect these secrets, the server114may determine whether a particular client device104is authorized to receive certain frames from a particular manufacturing tool124. The server114may make this determination based at least in part on information received from the manufacturing tool124(e.g., a descriptor for the frames, classifier for the frames, source identifier, date, and/or time), as described below for the method700(FIG.7).

FIGS.2A-2Cshow examples of a client device104that is communicatively coupled with the computer system of a manufacturing tool124for remote collaboration, in accordance with some embodiments. A display screen200of the client device104displays a graphical user interface (GUI)202for the manufacturing tool124. The GUI202is provided in frames sent from the computer system of the manufacturing tool124to the client device104. In the example ofFIGS.2A-2C, the GUI202occupies the entire display screen200. Alternatively, the GUI202may be displayed within a window that occupies a portion of the display screen200.

In some embodiments, the GUI202includes a command line204that the expert may use to send commands to the computer system of the manufacturing tool124. InFIG.2A, the expert has already typed the text “Com” (e.g., using the keyboard206). This text has been sent from the client device104to the computer system of the manufacturing tool124. In response, the computer system of the manufacturing tool124has sent a frame to the client device104showing “Com” in the command line204. The expert then types a second “m” (e.g., using the keyboard206). The client device104sends the second “m” to the computer system of the manufacturing tool124. In response, the computer system of the manufacturing tool124sends a new frame to the client device104. The new frame shows “Comm” in the command line204, reflecting the typing of the second “m”. The client device104displays the new frame in the display screen200, thus updating the GUI202. The expert may continue to enter text in the command line204(e.g., using the keyboard206), with the GUI202being updated accordingly to display the new text: the client device104transmits the new text to the computer system of the manufacturing tool124, which responds with new frames showing the new text in the command line204. Alternatively, or in addition, user inputs may be provided in a different manner (e.g., in a different text-entry field than the command line204and/or by selecting one or more affordances in the GUI202), with the GUI202being updated accordingly in response to the user inputs: the client device104transmits indications of the user inputs to the computer system of the manufacturing tool124, which responds with new frames showing the user inputs and/or results of the user inputs. To allow the GUI202to be updated quickly in response to the user inputs, the resolution of frames (e.g., a predefined number of frames) sent by the computer system of the manufacturing tool124in response to receiving indications of the user inputs may be reduced (i.e., degraded). Degrading the resolution of the frames reduces the size of the frames, thus reducing the bandwidth for the frames and speeding transmission of the frames from the computer system of the manufacturing tool124to the client device104. Speeding transmission of the frames to the client device104causes the GUI202promptly to reflect the results of user inputs (e.g., promptly to display newly entered text), resulting in a responsive feel for the expert. A lack of timely response to user input, on the other hand, creates a frustrating user experience for the expert, potentially to the point that remote collaboration becomes impractical.

More generally, the client device104may detect a user interaction (i.e., an interaction of the expert) with the client device104. The user interaction may provide explicit user input (e.g., through the keyboard206and/or selection of an affordance in the GUI202). Or the user interaction may detect behavior of the expert, while the expert views the GUI202, that does not amount to explicit user input. The client device104may send an indication of this behavior to the computer system of the manufacturing tool124and receive one or more frames updating the GUI202(e.g., adjusting the resolution of all or a portion of the GUI202) from the computer system of the manufacturing tool124in response. For example, looking at a particular area208(FIG.2C) in the GUI202on the display screen200is a user interaction with the client device104. The client device104may perform eye-tracking using a camera122to determine that the expert is looking at the area208in the GUI202. The area208is an area in frames sent from the computer system of the manufacturing tool124to the client device104, since the frames provide the GUI202. The client device104sends an indication specifying the area208to the computer system of the manufacturing tool124and receives one or more frames updating the GUI202(e.g., increasing the resolution of the area208but not of the remainder of the GUI202) from the computer system of the manufacturing tool124in response. Alternatively, the area208may be defined by an explicit user input (e.g., a click-and-drag operation using a mouse or other user-input device). In some embodiments, the area208is defined by aggregating information from multiple user inputs, including previously received user inputs. While the area208is shown as a rectangle inFIG.2C, the area208may have a different shape (e.g., a circle or ellipse) instead.

FIG.3is a flowchart showing a method300for performing resolution adjustment for communications from a manufacturing tool124to a client device104, in accordance with some embodiments. The method300is performed (302) at a computer system of a manufacturing tool124in a manufacturing facility112(e.g., a manufacturing tool124associated with an equipment supplier102). For example, the method300is performed by a computer system801of a manufacturing tool800(FIG.8). The method300allows bandwidth management for the communications and improves the user experience for the user of the client device104(e.g., for an expert providing remote collaboration).

In the method300, a series of frames is sent (304) showing data for the manufacturing tool124to the client device104for display. Examples of the data include, without limitation, data regarding a status of the manufacturing tool124, current operation of the manufacturing tool124(e.g., including one or more physical parameters), an operating history of the manufacturing tool124(e.g., including one or more physical parameters), and/or results for the manufacturing tool124. The data may include still images and/or video showing portions of the manufacturing tool124(e.g., while idle and/or during operation) and/or a product being processed or tested (e.g., inspected) using the manufacturing tool124. The client device104is remote from the manufacturing facility112. The client device104may be a client device104of the equipment supplier112for the manufacturing tool124. In some embodiments, the series of frames is provided (306) to a server114associated with (e.g., in) the manufacturing facility112, for forwarding to the client device104.

An indication of a user interaction with the client device104is received (308) from the client device104. The indication of the user interaction may be an indication of user input (e.g., as in the example ofFIGS.2A and2B) or an indication of other user behavior (e.g., as in the eye-tracking example ofFIG.2C). In response to the indication, the bandwidth for one or more frames of the series of frames is adjusted (310). In some embodiments, a resolution of at least a portion of the one or more frames is adjusted (312) and/or a frame rate of the one or more frames is adjusted (314). The one or more frames may be a predefined number of frames. Examples of adjusting the bandwidth are provided below for the methods400(FIG.4),500(FIG.5), and600(FIG.6).

The one or more frames (i.e., the frame(s) with the adjusted resolution) are transmitted (316) to the client device104for display. The one or more frames are transmitted with the adjusted bandwidth (i.e., the bandwidth used to transmit the one or more frames is the adjusted bandwidth). In some embodiments, the one or more frames are provided (318) to the server114associated with (e.g., in) the manufacturing facility112, for forwarding to the client device104. The client device104may display the one or more frames, for example as the GUI202(FIGS.2A-2C). If the resolution of the whole frame(s) was adjusted, then the client device104will display the whole frame(s) with the adjusted resolution. If the resolution of only a portion of the frame(s) was adjusted, then the client device104will display that portion of the frame(s) with the adjusted resolution and display the remainder of the frame(s) with the unadjusted resolution. If the frame rate was adjusted, then the client device104may display the one or more frames at the adjusted frame rate.

While transmitting (316) the one or more frames to the client device104is shown separately from sending (304) the series of frames to the client device104, the transmitting of step316may be considered part of the sending of step304: sending (304) the series of frames includes transmitting (316) the one or more frames. The one or more frames transmitted in step316thus may be part of the series of frames sent in step304. Some frames of the series of frames are sent (304) to the client device104before receiving the indication of the user interaction with the client device104, and other frames of the series of frames (including the one or more frames of step316) are sent (304) to the client device104after receiving the indication of the user interaction with the client device104.

FIG.4is a flowchart showing a method400that is an example of the method300(FIG.3), in accordance with some embodiments. In the method400, sending (304) the series of frames (e.g., providing (306) the series of frames to the server114for forwarding to the client device104) includes sending (402) a first set of frames with a first resolution to the client device104for display. The first set of frames is sent before receiving (308) the user interaction.

Receiving (308) the user interaction includes receiving (404) a character provided as user input to the client device104. For example,FIGS.2A and2Billustrate receiving a character (the second “m”) that is a portion of a command.

Adjusting (310) the bandwidth of at least a portion of the one or more frames includes adjusting the resolution of the one or more frames by selecting (406) a second resolution for at least a portion of each frame of a second set of frames. The second set includes the one or more frames. The second resolution is lower than the first resolution. The character is included in the second set of frames in response to receiving the indication. In some embodiments, the second resolution is (408) a lowest available resolution.

In some embodiments, the entire frame of each frame of the first set has the first resolution and the entire frame of each frame of the second set has the second resolution. For example, the entire GUI202may have the first resolution inFIG.2Aand the second resolution inFIG.2B.

In some embodiments, the character is a portion of a command for the manufacturing tool124. Each frame in the second set includes the character. For example, in each frame of the second set, the character is situated in a command line (e.g., command line204,FIGS.2A-2C) of a user-interface for the manufacturing tool124. Adjusting (310) the bandwidth of the one or more frames includes adjusting the resolution of at least a portion of the one or more frames, which may include, for each frame of the second set, maintaining the first resolution for the command line and selecting the second resolution (e.g., the lowest available resolution) for a remainder of the frame outside of the command line. For example, inFIG.2Bthe command line204may have the first resolution while the remainder of the GUI202outside of the command line may have the second resolution. Such a frame may be transmitted quickly in response to a user interaction (e.g., in response to the user inputting the second “m” ofFIG.2B) because the use of the second resolution outside of the command line reduces the frame size. Combining this responsiveness with high resolution for the command line, which may be the area of interest to an expert entering a command, results in a positive user experience for the expert.

Transmitting (316) the one or more frames to the client device104(e.g., providing (318) the one or more frames to the server114for forwarding to the client device104) includes sending (410) the second set of frames to the client device104for display using the second resolution: the client device104will display the one or more frames of the second set using the second resolution either for the entire frame(s) or the specified portions (e.g., the area outside of the command line). The second set is sent to the client device104after receiving (308) the user interaction.

In some embodiments, the method400further includes selecting the first resolution for a third set of frames that follows the second set. Sending (400) the series of frames (e.g., providing (306) the series of frames to the server114for forwarding to the client device104) further includes sending the third set of frames to the client device104for display using the first resolution (e.g., after sending the second set to the client device104).

FIG.5is a flowchart showing a method500that is another example of the method300(FIG.3), in accordance with some embodiments. In the method500, sending (304) the series of frames (e.g., providing (306) the series of frames to the server114for forwarding to the client device104) includes sending (502) video with a first resolution from a video feed for the manufacturing tool124to the client device104for display. In some embodiments, the manufacturing tool124is an example of the manufacturing tool800and the video feed is provided by the camera832(FIG.8). The video may be full-motion video or may have a lower frame rate than full-motion video. The video is sent to the client device104before receiving (308) the indication of the user interaction with the client device104.

In some embodiments, the indication of the user interaction indicates that the user hit a key (e.g., a hot key) on the keyboard206(FIGS.2A-2C) or selected an affordance in the GUI202(FIGS.2A-2C) to pause the video in favor of showing a still image.

Adjusting (310) the bandwidth of the one or more frames includes adjusting the resolution of at least a portion of the one or more frames, which includes selecting (506) a second resolution for a single frame. Adjusting (310) the bandwidth of the one or more frames also includes reducing the frame rate to zero, thus pausing the video. The single frame includes the still image from the video feed. The second resolution is higher than the first resolution. For example, the second resolution is (508) a highest available resolution. The still image may be taken after the video of step502has been recorded or may correspond to a frame (e.g., the last frame) of the video of step502.

In some embodiments, the video and the single frame show at least a portion of the manufacturing tool124in operation.

Transmitting (316) the one or more frames to the client device104(e.g., providing (318) the one or more frames to the server114for forwarding to the client device104) includes, in response to receiving the indication, ceasing (510) to send the video to the client device104and sending (512) the single frame to the client device104for static display using the second resolution. The method500thus allows the expert to view video in near-real time and also to view an image of interest in high resolution. There may be a delay at the client device104between when the video stops and when the single frame is displayed, due to the time taken to generate and transmit the single frame with the second resolution.

The method500may further include, after sending (512) the single frame to the client device104for static display, receiving (514) from the client device104an indication of another user interaction with the client device104(i.e., an indication of a second user interaction, whereas the user interaction of step308is a first user interaction). For example, the indication of step308is an indication of a first user input at the client device104and the indication of step514is an indication of a second user input at the client device104. The second user input may be hitting a key (e.g., the hot key) on the keyboard206(FIGS.2A-2C) or selecting an affordance in the GUI202(FIGS.2A-2C) to resume the video. In response, the computer system of the manufacturing tool124resumes sending (516) video from the video feed with the first resolution to the client device104for display. The second resolution may be too high to allow for smooth playback of the video at the client device104(e.g., without dropping frames due to bandwidth and/or memory limitations) and thus is not used for the video, in accordance with some embodiments.

FIG.6is a flowchart showing a method600that is yet another example of the method300(FIG.3), in accordance with some embodiments. In the method600, the indication of the user interaction with the client device104received in step308includes (602) a specification of an area (e.g., area208,FIG.2C) in the series of frames that is of interest to a user of the client device104. In some embodiments, the area is defined (604) by user input (e.g., a click-and-drag operation) from the expert using the client device104. In some other embodiments, the area is defined (606) using eye tracking on the client device104. Alternatively, the area is a pre-defined region of a user-interface screen stored by the computer system of the manufacturing tool124(e.g., as defined by aggregated information from multiple user inputs) and the indication specifies the user-interface screen (e.g., indicates that the expert has activated the user-interface screen for display).

Adjusting (310) the bandwidth of the one or more frames includes increasing the resolution of at least a portion of the one or more frames, which includes increasing (608) a resolution of the area of interest in the one or more frames. For example, the resolution of the area is increased (610) to a highest available resolution. A resolution outside the area in the one or more frames (e.g., the remainder of the GUI202outside the area208,FIG.2C) is not increased (e.g., remains the same as in previous frames, or is decreased).

Transmitting (316) the one or more frames to the client device104(e.g., providing (318) the one or more frames to the server114for forwarding to the client device104) includes, after receiving the indication, transmitting (612) the one or more frames to the client device104for display using the increased resolution for the area.

The methods400(FIG.4),500(FIG.5), and600(FIG.6) may be combined. For example, the computer system of a particular manufacturing tool124may perform one or more instances of the method400, one or more instances of the method500, and one or more instances of the method600, in any order.

FIG.7is a flowchart showing a method700for providing security for communications from a manufacturing tool124to a client device104, in accordance with some embodiments. The method700is performed (702) at a computer system of a manufacturing tool124in a manufacturing facility112(e.g., a manufacturing tool124associated with an equipment supplier102). For example, the method700is performed by a computer system801of a manufacturing tool800(FIG.8). The computer system is communicatively coupled to a server114associated with (e.g., in) the manufacturing facility112.

In the method700, a descriptor is assigned (704) to a series of frames showing data for the manufacturing tool124. The descriptor specifies the type of data in the series of frames.

In some embodiments, the series of frames shows (706) a user interface (e.g., GUI202,FIGS.2A-2C) for the computer system of the manufacturing tool124. The descriptor specifies the user interface. The user interface may include a number of different user-interface screens (e.g., which the user may navigate between using tabs, links, or other affordances), with the series of frames showing different user-interface screens. Respective descriptors may specify respective user-interface screens.

In some embodiments, the series of frames shows (708) one or more values of a physical parameter for the manufacturing tool124. The descriptor specifies the physical parameter. Examples of the physical parameter include, without limitation, a temperature or a light intensity in the manufacturing tool124.

In some embodiments, a security classification is assigned (710) to the series of frames (e.g., along with the descriptor). The security classification specifies a level of secrecy (selected from a plurality of secrecy levels) for the series of frames. In addition, or alternatively, a date, time, and/or source identifier may be associated (712) with the series of frames. The source identifier identifies the manufacturing tool124.

The descriptor is provided (714) to the server114. If a security classification was assigned (710) to the series of frames, the security classification may be provided (716) to the server114. If a date, time, and/or source identifier were associated (712) with the series of frames, the date, time, and/or source identifier may be provided (718) to the server114.

The series of frames is provided (720) to the server114for forwarding to the client device104, which is remote from the manufacturing facility. The server114forwards the series of frames to the client device104in accordance with a decision, based at least in part on the descriptor, that the client device104is authorized to receive the series of frames. If the security classification was provided (716) to the server114, the decision may be further based (722), at least in part, on the security classification. If the date, time, and/or source identifier were provided (718) to the server114, the decision may be further based (724), at least in part, on the date, time, and source identifier. In some embodiments, the decision is made by performing a look-up in a look-up table (e.g., in security module914,FIG.9) that stores permissions as a function of descriptor, security classification, date, time, source identifier, equipment supplier, client device, and/or other variables.

In some embodiments, the frames, descriptor, security classification, date, time, and/or source identifier are provided to the server114in data packages in a self-describing format. For example, the data packages may use Javascript Object Notation (JSON) format or HyperText Markup Language format.

Having the server114instead of the computer system of the manufacturing tool124decide whether the client device104is authorized to receive the frames reduces the computational load on the computer system of the manufacturing tool124(e.g., allowing it to be lightweight). Making the decision using information from the computer system of the manufacturing tool124allows for end-to-end security.

The method300(FIG.3) (e.g., the method400,FIG.4;500,FIG.5; or600,FIG.6) may be combined with the method700(FIG.7). For example, providing (306,FIGS.3-6) the series of frames to the server114, including providing (318,FIGS.3-6) the one or more frames to the server114, is performed in accordance with step720(FIG.7): the server114forwards the series of frames to the client device104in accordance with the decision that the client device104is authorized to receive the series of frames.

FIG.8is a block diagram of a manufacturing tool800in accordance with some embodiments. The manufacturing tool800, which is an example of a manufacturing tool124in a manufacturing facility112(FIG.1), includes hardware830and a computer system801. The hardware830processes or inspects products (e.g., semiconductor wafers) being fabricated in the manufacturing facility112. The computer system801controls the hardware830and reports on the status of the hardware830. The hardware830may include a camera832positioned to provide images (e.g., a video feed) of a portion of the hardware830.

The computer system801includes one or more processors802(e.g., CPUs), user interfaces806, memory810, one or more network interfaces803, and communication bus(es)804interconnecting these components. The network interfaces803are used for communicating via the network119(FIG.1). The user interfaces806may include a display807and one or more input devices808(e.g., a keyboard, mouse, touch-sensitive surface of the display807, etc.). The display807may display graphical user interfaces for the manufacturing tool800.

Memory810includes volatile and/or non-volatile memory. Memory810(e.g., the non-volatile memory within memory810) includes a non-transitory computer-readable storage medium. Memory810optionally includes one or more storage devices remotely located from the processors802and/or a non-transitory computer-readable storage medium that is removably inserted into the computer system801. In some embodiments, memory810(e.g., the non-transitory computer-readable storage medium of memory810) stores the following modules and data: an operating system812, a hardware-control module814for controlling the hardware830, a user-interface module818for generating a user interface (e.g., GUI202,FIGS.2A-2C) and corresponding frames, and a transmission module824for sending the frames. The hardware-control module814includes a command-processing module816for processing commands received from client devices104. The user-interface module818includes a frame-generation module820for generating the frames and a bandwidth-adjustment module822for adjusting the bandwidth of the frames (e.g., for setting the resolution of the frames or portions thereof and/or for setting the frame rate). The frame-generation module820may assign a descriptor to frames, assign a security classifier to frames, and/or associate a date, time, and/or source identifier with frames.

The memory810(e.g., the non-transitory computer-readable storage medium) stores instructions for performing the method300(FIG.3) (e.g., the methods400,FIG.4;500,FIG.5; and/or600,FIG.6) and/or the method700(FIG.7). Each of the modules stored in the memory810corresponds to a set of instructions for performing one or more functions described herein. Separate modules need not be implemented as separate software programs. The modules and various subsets of the modules may be combined or otherwise re-arranged. In some embodiments, the memory810stores a subset or superset of the modules and/or data structures identified above.

FIG.8is intended more as a functional description of various features that may be present in a manufacturing tool and its computer system than as a structural schematic. For example, the functionality of the computer system801may be split between multiple devices. A portion of the modules stored in the memory810may alternatively be stored in one or more other computer systems communicatively coupled with the computer system801through one or more networks.

FIG.9is a block diagram of a manufacturing-facility server900, in accordance with some embodiments. The server900is an example of a server114associated with (e.g., in) a manufacturing facility112(FIG.1). The server900includes one or more processors902(e.g., CPUs), user interfaces906, memory910, one or more network interfaces903, and communication bus(es)904interconnecting these components. The one or more network interfaces903are used for communicating via the Internet110and/or the network119(FIG.1). The user interfaces906may include a display907and one or more input devices908(e.g., a keyboard, mouse, touch-sensitive surface of the display907, etc.). The display907may display graphical user interfaces regarding remote support activities and corresponding requests, connections, and transmissions.

Memory910includes volatile and/or non-volatile memory. Memory910(e.g., the non-volatile memory within memory910) includes a non-transitory computer-readable storage medium. Memory910optionally includes one or more storage devices remotely located from the processors902and/or a non-transitory computer-readable storage medium that is removably inserted into the server900. The memory910(e.g., the non-transitory computer-readable storage medium of the memory910) includes instructions for performing all or a portion of the method300(FIG.3). In some embodiments, memory910(e.g., the non-transitory computer-readable storage medium of memory910) stores the following modules and data: an operating system912, a security module914for authorizing communications between manufacturing tools124and remote client devices104, and a communication module916for transmitting and receiving communications (e.g., for manufacturing tools124and client devices104). The memory910(e.g., the security module914) stores instructions (e.g., in the non-transitory computer-readable storage medium) for making the decision of step720(e.g., including steps722and/or724) in the method700(FIG.7).

Each of the modules stored in the memory910corresponds to a set of instructions for performing one or more functions described herein. Separate modules need not be implemented as separate software programs. The modules and various subsets of the modules may be combined or otherwise re-arranged. In some embodiments, the memory910stores a subset or superset of the modules and/or data structures identified above.

FIG.9is intended more as a functional description of various features that may be present in a server than as a structural schematic. For example, the functionality of the server900may be split between multiple devices. A portion of the modules stored in the memory910may alternatively be stored in one or more other computer systems communicatively coupled with the server900through one or more networks.

FIG.10is a block diagram of a client device1000, in accordance with some embodiments. The client device1000may be an example of a client device104of an equipment supplier102. The client device1000includes one or more processors1002(e.g., CPUs), user interfaces1006, memory1010, one or more network interfaces1003, and communication bus(es)1004interconnecting these components. The one or more network interfaces1003are used for communicating via one or more networks (e.g., the Internet110and/or the network106,FIG.1). The client device may also include a camera1001(e.g., camera122,FIGS.1-2C) interconnected with other components by the communication bus(es)1004. The user interfaces1006may include a display1007(e.g., display screen200,FIGS.2A-2C) and one or more input devices1008(e.g., a keyboard206,FIGS.2A-2C; mouse; touch-sensitive surface of the display1007; etc.). The display1007may display graphical user interfaces (e.g., GUI202,FIGS.2A-2C) regarding remote support activities for manufacturing tools124(FIG.1) (e.g., manufacturing tools800,FIG.8).

Memory1010includes volatile and/or non-volatile memory. Memory1010(e.g., the non-volatile memory within memory1010) includes a non-transitory computer-readable storage medium. Memory1010optionally includes one or more storage devices remotely located from the processors1002and/or a non-transitory computer-readable storage medium that is removably inserted into the client device1000. In some embodiments, memory1010(e.g., the non-transitory computer-readable storage medium of memory1010) stores the following modules and data: an operating system1012; a manufacturing-tool remote-control module1014for interacting with a remote manufacturing tool124, and an eye-tracking module1020for determining areas (e.g., the area208,FIG.2C) on the display1007that the user looks at. The manufacturing-tool remote-control module1014may include a user-interface module1016for displaying a user interface (e.g., GUI202,FIGS.2A-2C, as received in frames from the computer system of the manufacturing tool124) and a command module1018for receiving commands from the user (i.e., expert) and sending the commands to the computer system of the manufacturing tool124.

Each of the modules stored in the memory1010corresponds to a set of instructions for performing one or more functions described herein. Separate modules need not be implemented as separate software programs. The modules and various subsets of the modules may be combined or otherwise re-arranged. In some embodiments, the memory1010stores a subset or superset of the modules and/or data structures identified above.

FIG.10is intended more as a functional description of various features that may be present in a client device than as a structural schematic. For example, the functionality of the client device1000may be split between multiple devices. A portion of the modules stored in the memory1010may alternatively be stored in one or more other computer systems communicatively coupled with the client device1000through one or more networks.

The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the scope of the claims to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen in order to best explain the principles underlying the claims and their practical applications, to thereby enable others skilled in the art to best use the embodiments with various modifications as are suited to the particular uses contemplated.