Prosecution Insights
Last updated: April 19, 2026
Application No. 18/621,959

SYSTEMS AND METHODS FOR TOOL SYSTEM MEASUREMENT AGGREGATION AND CONTROL USING ELECTRONIC AND FIRMWARE MAPPINGS

Non-Final OA §101§103
Filed
Mar 29, 2024
Examiner
MACASIANO, JOANNE GONZALES
Art Unit
2197
Tech Center
2100 — Computer Architecture & Software
Assignee
Schlumberger Technology Corporation
OA Round
1 (Non-Final)
67%
Grant Probability
Favorable
1-2
OA Rounds
3y 8m
To Grant
99%
With Interview

Examiner Intelligence

Grants 67% — above average
67%
Career Allow Rate
203 granted / 305 resolved
+11.6% vs TC avg
Strong +42% interview lift
Without
With
+41.8%
Interview Lift
resolved cases with interview
Typical timeline
3y 8m
Avg Prosecution
33 currently pending
Career history
338
Total Applications
across all art units

Statute-Specific Performance

§101
13.5%
-26.5% vs TC avg
§103
63.5%
+23.5% vs TC avg
§102
12.3%
-27.7% vs TC avg
§112
8.9%
-31.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 305 resolved cases

Office Action

§101 §103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Claim Rejections - 35 USC § 101 35 U.S.C. 101 reads as follows: Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title. Claims 1-6 are rejected under 35 U.S.C. 101 because the claimed invention is directed to method generating a file based on retrieved information without significantly more. The limitation in Independent Claim 1 of generating a file based on retrieved information, as drafted, is a process that, under its broadest reasonable interpretation, covers steps that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitations of “generating a service definition file based on the electronic information and the firmware information, wherein the service definition file indicates a plurality of services capable of being performed by the two or more tool components” in Claim 1, as drafted, are processes that, under their broadest reasonable interpretation, recite the abstract idea of mental processes. These limitations encompass a human mind carrying out these functions through observation, evaluation judgment and/or opinion, or even with the aid of pen and paper. Thus, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. This judicial exception is not integrated into a practical application. Claim 1 recites the following additional elements “receiving an indication of an electromechanical tool system comprising two or more tool components, wherein each tool component is configured to perform a respective service”, “retrieving electronic information for the two or more tool components based on the indication”, “retrieving firmware information for the two or more tool components based on the indication” and “outputting the service definition file to control operation of the electromechanical tool system,” these limitations do nothing more than add insignificant extra solution activity to the judicial exception, such as data gathering and outputting the results of the abstract idea, see MPEP 2106.05(g). Further, with regard to the “electromechanical tool system” elements of Claim 1, these elements are recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using a generic computer component, see MPEP 2106.05(f). Accordingly, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. With regard to the individual dependent claims: Claim 2 recites, “wherein generating the service definition file comprises: identifying a combined service to be performed by a subset of the two or more tool components operating in a concerted manner; and generating the service definition file that includes the combined service.” Claim 4 recites, “wherein the service definition file that indicates the plurality of services capable of being performed by the two or more tool components comprises: a first service hierarchical organization indicating a first subset of electronic information and firmware information; and a second service hierarchical organization indicating a second subset of electronic information and firmware information.” Claim 5 recites, “wherein the service definition file includes firmware mappings and electronic mappings for the electromechanical tool system.” These limitations of Claims 2 and 4-5, as drafted, are processes that, under their broadest reasonable interpretation, recite the abstract idea of a mental process. These limitations encompass a human mind carrying out this function through observation, evaluation judgment and/or opinion, or even with the aid of pen and paper. Thus, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas. Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. Claim 3 recites, “wherein outputting the service definition file comprises providing the service definition file to a software system and a downhole firmware system in parallel.” These limitations of Claim 3 do nothing more than add insignificant extra solution activity to the judicial exception, such as data gathering, transmitting and outputting the results of the abstract idea, see MPEP 2106.05(g). Accordingly, these additional elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Further, these limitations of Claim 3 amount to no more than mere instructions to apply the exception using well-understood, routine and conventional computer components and functions, recited at a high level of generality, i.e. receiving/transmitting data over a network and storing/retrieving information in memory. As such, these additional elements do not amount to an inventive concept and are not by themselves sufficient to transform the judicial exception into a patent eligible invention, see MPEP 2106.05(d). Claim 6 recites, “wherein the two or more tool components comprise a downhole shifting component, a downhole milling component, a downhole cutting component, a downhole tractor component, a downhole collecting component, a downhole power component, a downhole drive component, a downhole telemetry component, or a combination thereof.” These limitations of Claim 6 do nothing more than generally link the judicial exception to a particular technological environment, see MPEP 2106.05(h). Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claim 1 is rejected under 35 U.S.C. 103 as being unpatentable over Senda (US PGPUB 2023/0176852; hereinafter “Senda”) in view of Nolterieke et al. (US PGPUB 2011/0154313; hereinafter “Nolterieke”). Claim 1: Senda teaches a method, comprising: receiving an indication of an electromechanical tool system comprising two or more tool components, wherein each tool component is configured to perform a respective service ([0002] “a control device such as a programmable logic controller (hereinafter, referred to as PLC).” [0064] “A unit configuration diagram showing the components of the control device 300 is displayed on the update screen. Here, a PLC is exemplified as the control device 300. The denotations are as follow: ‘PLC1’ for the PLC; ‘POW’ for the power supply unit; ‘CPU’ for the CPU unit; and Numbers ‘1’ to ‘7’ for Slots 1 to 7 to mount the functional units. As illustrated, the functional units are mounted on Slots 1, 2, and 4. It is also shown that a servo controller ‘SV1’ is connected to the functional unit mounted on Slot 1,” wherein the “functional units” are the “tool components”.); retrieving electronic information for the two or more tool components based on the indication ([0005] “The engineering tool has various functions such as creating and editing a control program for the control device, setting control parameters, and monitoring processes performed, in which the engineering tool and the control device work together.” [0035] “The updated version acquisition unit 111 acquires the updated version information from the server 200.” [0064] “FIG. 8 is a diagram showing an example of an update screen.” [0066] “When a component is specified, the information related to the update of firmware, such as available updated versions of the functional unit, is displayed,” wherein the “the information … such as available updated versions of the functional unit” is the “electronic information”.); and retrieving firmware information for the two or more tool components based on the indication ([0036] “The firmware information acquisition unit 121 acquires the firmware versions of the firmware installed in the control device 300 from the control device 300. In a case where the control device 300 includes a plurality of functional units, the firmware versions of the respective functional units are acquired.”). With further regard to Claim 1, Senda does not teach the following, however, Nolterieke teaches: generating a service definition file based on the electronic information and the firmware information, wherein the service definition file indicates a plurality of services capable of being performed by the two or more tool components ([0029] “comparing (206), by the firmware updating module, the information (126) describing the state of the currently installed components (212) to information (108) describing a state of the corresponding update components (214)… by determining, for each update component, whether the update component's state is more recent than the corresponding currently installed component's state.” [0030] “constructing (208), by the firmware updating module, a revised update package (106) that includes only update components (214) having a state more recent than the state of the corresponding currently installed components (212).”); and outputting the service definition file to control operation of the electromechanical tool system ([0030] “Constructing (208) a revised update package (106)… may be carried out by copying, to a new storage location, only those update components having a more recent state as well as any portion of the update package necessary to effect installation of the update components.” [0031] “The method of FIG. 2 also includes updating (210), by the firmware updating module, the currently installed components (212) with corresponding update components (216) of the revised update package (106).”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda with the generation of an update file based on a plurality of retrieved information as taught by Nolterieke as this results in a “reduced amount of time updating firmware by removing unnecessary updates of firmware components” (Nolterieke [0047]). Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Senda in view of Nolterieke as applied to Claim 1 above, and further in view of Davis (US PGPUB 2007/0043457; hereinafter “Davis”). Claim 2: Senda in view of Nolterieke teaches the method of claim 1. Senda in view of Nolterieke does not teach the following, however, Davis teaches wherein generating the service definition file comprises: identifying a combined service to be performed by a subset of the two or more tool components operating in a concerted manner; and generating the service definition file that includes the combined service ([0086] “In a ‘test bay’ circumstance, a `payload` (e.g., firmware, language module, Drive Identity Module (DIM) data, XIOLogix program) for a particular job can be sent to a drive system such as the drive system 2 from a central server. The contents of the payload, which would typically be configured by technical personnel, allow each job to be customized without a need for manual loading in the test bay. For example, a particular job may require a different version of firmware from the standard version being shipped with other drives, due to functionality or compatibility with other systems. Only certain jobs receive a language module, which also differ depending on the country of destination… Each of these operations relating to configuring the drive system with a payload… can be automated using a single step. Different payloads can be automatically communicated to different drive systems simply by selecting a job number/item and downloading the respective payload to the respective drive,” wherein the “payload” is equivalent to the “revised update package”, i.e. “service definition file”, as discussed above.). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke with the generating of a combined software and firmware package based on an identified combined service to be performed as taught by Davis in order “to configure or upgrade both a drive and associated web server in a coordinated, efficient manner” (Davis [0012]). Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Senda in view of Nolterieke as applied to Claim 1 above, and further in view of Feazle et al. (US PGPUB 2025/0291573; hereinafter “Feazle”) and Chen (US PGPUB 2013/0227543; hereinafter “Chen”). Claim 3: Senda in view of Nolterieke teaches all the limitations of claim 1 as described above. Senda in view of Nolterieke does not teach the following, however, Feazle teaches: wherein outputting the service definition file comprises providing the service definition file to a software system and a downhole firmware system ([0023] “the surface software applications 214 executing on the computing system 137 are discretized into separate plugins 302A-C, each plugin 302A-c associated with a respective firmware 306D-F, each firmware 306D-F being associated with a respective sensor 304x-z.” [0027] “the management component 310 may automatically retrieve and install the updates to the plugins 302A-c and/or firmware 306D-F.” [0032] “FIG. 5, a flow diagram is shown for updating firmware and plugin components… in block 502, the computing system 137 (e.g., via the management component 310) detects a connection to the computing system 137 by a downhole sensor.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke with the providing of an update to a software system and a downhole firmware system as taught by Feazle as this results in “an improved and streamlined installation and update process, thereby reducing any potential system (and rig) downtime as a result” (Feazle [0010]). With further regard to Claim 3, Senda in view of Nolterieke and Feazle does not teach the following, however, Chen teaches: providing the service definition file to a software system and a firmware system in parallel ([0007] “the invention is directed to a server deployment system and a method for updating data, in which server software and controller firmware are updated at the same time,” wherein the “software” and “firmware” are the “software system” and “downhole firmware system” as taught above by Senda in view of Nolterieke and Feazle.). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke and Feazle with the providing of an update to a software system and a firmware system in parallel as taught by Chen in order “to ensure the synchronism between the software and the firmware” (Chen [0040]). Claims 4-6 are rejected under 35 U.S.C. 103 as being unpatentable over Senda in view of Nolterieke as applied to Claim 1 above, and further in view of Feazle. Claim 4: Senda in view of Nolterieke teaches all the limitations of claim 1 as described above. Senda in view of Nolterieke does not teach the following, however, Feazle teaches wherein the service definition file that indicates the plurality of services capable of being performed by the two or more tool components comprises: a first service hierarchical organization indicating a first subset of electronic information and firmware information ([0028] “the server 312 may also provide additional predefined dependency data, such as distinct dependency matrices that may be well-suited when deployed in a given use-case scenario (e.g., a dependency matrix specifically for drilling operation use cases, a dependency matrix specifically for facility and asset management use cases, a dependency matrix for remote monitoring and control).” [0036] “evaluate, based on a dependency matrix mapping compatibilities with the plurality of plugin components, hardware components, and firmware components, whether the update is compatible with the respective hardware component; and install, upon a determination that the update is compatible, the update on the system.”); and a second service hierarchical organization indicating a second subset of electronic information and firmware information ([0041] “ the system to retrieve, from a server, a second dependency matrix; and update the dependency matrix with information from the second dependency matrix.” [0042] “wherein to evaluate whether the update is compatible with the respective hardware component comprises to query the dependency matrix to determine whether the update to the software plugin component is compatible with the respective firmware component and respective hardware component.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke with the subsets of information as taught by Feazle in order to “allow the operator to optimize the system and surface software for a given use case” (Feazle [0028]). Claim 5: Senda in view of Nolterieke teaches all the limitations of claim 1 as described above. Senda in view of Nolterieke does not teach the following, however, Feazle teaches: wherein the service definition file includes firmware mappings and electronic mappings for the electromechanical tool system ([0010] “the software architecture may maintain dependency data that maps software plugin features with capabilities of the hardware based on dependencies between the software plugins, firmware components, and hardware.” [0022] “dependency data 218, which may be embodied as any data that maps compatibilities between the surface software to hardware and firmware components.” [0036] “evaluate, based on a dependency matrix mapping compatibilities with the plurality of plugin components, hardware components, and firmware components, whether the update is compatible with the respective hardware component; and install, upon a determination that the update is compatible, the update on the system.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke with the information and firmware mappings as taught by Feazle as this “allows the software to rapidly install and/or update software plugins or firmware in the field, such as in instances where a new version of software or firmware is released, a new feature is added, or new hardware is installed” (Feazle [0010]). Claim 6: Senda in view of Nolterieke teaches all the limitations of claim 1 as described above. Senda in view of Nolterieke does not teach the following, however, Feazle teaches: wherein the two or more tool components comprise a downhole shifting component, a downhole milling component, a downhole cutting component, a downhole tractor component, a downhole collecting component, a downhole power component, a downhole drive component, a downhole telemetry component, or a combination thereof ([0014] “Telemetry sub 128 communicates with detection tools 126 and transmits telemetry data to surface equipment (e.g., via mud pulse telemetry),” wherein “telemetry sub” is a type of “downhole telemetry component”. [0017] “Controller 152 includes processors, sensors, and other hardware/software such as a rotary steerable system (RSS)... While the controller 152 is shown and described as a single component that operates for a particular type of directional drilling, it is appreciated the controller 152 may include any number of sub-components that collectively communicate and operate to perform the above discussed functions,” wherein the “RSS” is a type of “downhole drive component”. [0026] “the management component 310 is configured to identify whether a given plugin is compatible with a firmware component 306 and/or sensor 304 (or other hardware component).” [0034] “the computing system 137 retrieves and installs the firmware update. During this period, the computing system 137 may cause the underlying hardware component to go offline”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke with the information and firmware mappings as taught by Feazle as this “allows the software to rapidly install and/or update software plugins or firmware in the field, such as in instances where a new version of software or firmware is released, a new feature is added, or new hardware is installed” (Feazle [0010]). Claims 7-9, 11 and 13-20 are rejected under 35 U.S.C. 103 as being unpatentable over Senda in view of Nolterieke, Davis, Feazle and Chen. Claim 7: Senda teaches a method, comprising: receiving an indication of an electromechanical tool system comprising two or more tool components, wherein each tool component is configured to perform a respective function ([0002] “a control device such as a programmable logic controller (hereinafter, referred to as PLC).” [0064] “A unit configuration diagram showing the components of the control device 300 is displayed on the update screen. Here, a PLC is exemplified as the control device 300. The denotations are as follow: ‘PLC1’ for the PLC; ‘POW’ for the power supply unit; ‘CPU’ for the CPU unit; and Numbers ‘1’ to ‘7’ for Slots 1 to 7 to mount the functional units. As illustrated, the functional units are mounted on Slots 1, 2, and 4. It is also shown that a servo controller ‘SV1’ is connected to the functional unit mounted on Slot 1,” wherein the “functional units” are the “tool components”.); retrieving reference tool component information corresponding to the two or more tool components based on the indication ([0005] “The engineering tool has various functions such as creating and editing a control program for the control device, setting control parameters, and monitoring processes performed, in which the engineering tool and the control device work together.” [0035] “The updated version acquisition unit 111 acquires the updated version information from the server 200.” [0064] “FIG. 8 is a diagram showing an example of an update screen.” [0066] “When a component is specified, the information related to the update of firmware, such as available updated versions of the functional unit, is displayed,” wherein the “the information … such as available updated versions of the functional unit” is the “component information”.). With further regard to Claim 7, Senda does not teach the following, however, Nolterieke teaches: generating a service definition file based on the reference tool component information ([0029] “comparing (206), by the firmware updating module, the information (126) describing the state of the currently installed components (212) to information (108) describing a state of the corresponding update components (214)… by determining, for each update component, whether the update component's state is more recent than the corresponding currently installed component's state.” [0030] “constructing (208), by the firmware updating module, a revised update package (106) that includes only update components (214) having a state more recent than the state of the corresponding currently installed components (212).”); and providing the service definition file ([0030] “Constructing (208) a revised update package (106)… may be carried out by copying, to a new storage location, only those update components having a more recent state as well as any portion of the update package necessary to effect installation of the update components.” [0031] “The method of FIG. 2 also includes updating (210), by the firmware updating module, the currently installed components (212) with corresponding update components (216) of the revised update package (106).”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda with the generation of an update file based on a plurality of retrieved information as taught by Nolterieke as this results in a “reduced amount of time updating firmware by removing unnecessary updates of firmware components” (Nolterieke [0047]). With further regard to Claim 7, Senda in view of Nolterieke does not teach the following, however, Davis teaches: wherein the service definition file indicates a plurality of services capable of being performed by the two or more tool components ([0086] “In a ‘test bay’ circumstance, a `payload` (e.g., firmware, language module, Drive Identity Module (DIM) data, XIOLogix program) for a particular job can be sent to a drive system such as the drive system 2 from a central server. The contents of the payload, which would typically be configured by technical personnel, allow each job to be customized without a need for manual loading in the test bay. For example, a particular job may require a different version of firmware from the standard version being shipped with other drives, due to functionality or compatibility with other systems. Only certain jobs receive a language module, which also differ depending on the country of destination… Each of these operations relating to configuring the drive system with a payload… can be automated using a single step. Different payloads can be automatically communicated to different drive systems simply by selecting a job number/item and downloading the respective payload to the respective drive,” wherein the “payload” is equivalent to the “revised update package”, i.e. “service definition file”, as discussed above.). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke with the generating of a combined software and firmware package based on an identified combined service to be performed as taught by Davis in order “to configure or upgrade both a drive and associated web server in a coordinated, efficient manner” (Davis [0012]). With further regard to Claim 7, Senda in view of Nolterieke and Davis does not teach the following, however, Feazle teaches: providing the service definition file to a software system and a downhole firmware system ([0023] “the surface software applications 214 executing on the computing system 137 are discretized into separate plugins 302A-C, each plugin 302A-c associated with a respective firmware 306D-F, each firmware 306D-F being associated with a respective sensor 304x-z.” [0027] “the management component 310 may automatically retrieve and install the updates to the plugins 302A-c and/or firmware 306D-F.” [0032] “FIG. 5, a flow diagram is shown for updating firmware and plugin components… in block 502, the computing system 137 (e.g., via the management component 310) detects a connection to the computing system 137 by a downhole sensor,” wherein Figs. 1 and 3 show Computing System 137 comprising Management Component 310.); receiving an electromechanical interface output as an output from the software system; and controlling operation of the electromechanical tool system based on the electromechanical interface output ([0015] “These input/output devices provide a user interface that enables an operator to interact and communicate with the borehole assembly 150, surface/downhole directional drilling components, and/or software executed by computer system 137.” [0022] “the memory 208 may include one or more surface software applications 214, which may be embodied as software and/or firmware for the aforementioned operations, such as communicating with drilling tools and downhole sensors.” [0034] “in block 512, the computing system 137 retrieves and installs the firmware update. During this period, the computing system 137 may cause the underlying hardware component to go offline (e.g., by transmitting a control signal thereto) while the firmware is updating. Once installed, the computing system 137 may restart the hardware component and ensure that the plugin is able to communicate with the firmware and hardware component.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke and Davis with the providing of an update to a software system and a downhole firmware system and controlling of operations as taught by Feazle as this results in “an improved and streamlined installation and update process, thereby reducing any potential system (and rig) downtime as a result” (Feazle [0010]). With further regard to Claim 7, Senda in view of Nolterieke, Davis and Feazle does not teach the following, however, Chen teaches: providing the service definition file to a software system and a firmware system in parallel ([0007] “the invention is directed to a server deployment system and a method for updating data, in which server software and controller firmware are updated at the same time,” wherein the “software” and “firmware” are the “software system” and “downhole firmware system” as taught above by Senda in view of Nolterieke, Davis and Feazle.). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke, Davis and Feazle with the providing of an update to a software system and a firmware system in parallel as taught by Chen in order “to ensure the synchronism between the software and the firmware” (Chen [0040]). Claim 8: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the method of claim 7. However, Senda in view of Davis, Feazle and Chen does not teach the following, but Nolterieke teaches wherein providing the service definition file to the software system comprises: providing the service definition file to a surface software parser to obtain a parsed service definition file output, wherein the parsed service definition file output comprises a data format configured to be utilizable by the software system ([0026] “The method of FIG. 2 includes receiving (202), by the firmware updating module, an update package (104) for the firmware package,” wherein the “firmware updating module” is the “surface software parser”. (102).” [0029] “comparing (206), by the firmware updating module, the information (126) describing the state of the currently installed components (212) to information (108) describing a state of the corresponding update components (214)… by determining, for each update component, whether the update component's state is more recent than the corresponding currently installed component's state.” [0030] “constructing (208), by the firmware updating module, a revised update package (106) that includes only update components (214) having a state more recent than the state of the corresponding currently installed components (212),” wherein the “update package” and “revised update package” are the “service definition file” and “parsed service definition file” respectively.); and providing the parsed service definition file output to the software system ([0030] “Constructing (208) a revised update package (106)… may be carried out by copying, to a new storage location, only those update components having a more recent state as well as any portion of the update package necessary to effect installation of the update components.” [0031] “The method of FIG. 2 also includes updating (210), by the firmware updating module, the currently installed components (212) with corresponding update components (216) of the revised update package (106).”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Davis, Feazle and Chen with the software parser as taught by Nolterieke as this results in a “reduced amount of time updating firmware by removing unnecessary updates of firmware components” (Nolterieke [0047]). Claim 9: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the method of claim 7. However, Senda in view of Davis, Feazle and Chen does not teach the following, but Nolterieke teaches wherein providing the service definition file to the downhole firmware system comprises: providing the service definition file to a downhole software parser to obtain a parsed service definition file output, wherein the parsed service definition output comprises a data format configured to be utilizable by the downhole firmware system ([0026] “The method of FIG. 2 includes receiving (202), by the firmware updating module, an update package (104) for the firmware package,” wherein the “firmware updating module” is the “downhole software parser”. (102).” [0029] “comparing (206), by the firmware updating module, the information (126) describing the state of the currently installed components (212) to information (108) describing a state of the corresponding update components (214)… by determining, for each update component, whether the update component's state is more recent than the corresponding currently installed component's state.” [0030] “constructing (208), by the firmware updating module, a revised update package (106) that includes only update components (214) having a state more recent than the state of the corresponding currently installed components (212),” wherein the “update package” and “revised update package” are the “service definition file” and “parsed service definition file” respectively.); and providing the parsed service definition file output to the downhole firmware system ([0030] “Constructing (208) a revised update package (106)… may be carried out by copying, to a new storage location, only those update components having a more recent state as well as any portion of the update package necessary to effect installation of the update components.” [0031] “The method of FIG. 2 also includes updating (210), by the firmware updating module, the currently installed components (212) with corresponding update components (216) of the revised update package (106),” wherein the ”downhole firmware system” was taught above by Feazle in the rejection of Claim 7.). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Davis, Feazle and Chen with the software parser as taught by Nolterieke as this results in a “reduced amount of time updating firmware by removing unnecessary updates of firmware components” (Nolterieke [0047]). Claim 11: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the method of claim 7. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches: wherein the service definition file at least partially comprises data associated with a downlink between the software system and the downhole firmware system ([0014] “Telemetry sub 128 communicates with detection tools 126 and transmits telemetry data to surface equipment (e.g., via mud pulse telemetry)… other forms of telemetry such as acoustic, electromagnetic, telemetry via wired drill pipe, and the like may also be used to communicate signals between downhole drilling tools and signal digitizer 134.” [0022] “the memory 208 may include one or more surface software applications 214, which may be embodied as software and/or firmware for the aforementioned operations, such as communicating with drilling tools and downhole sensors.” [0027] “the management component 310 may automatically retrieve and install the updates to the plugins 302A-c and/or firmware 306D-F,” wherein the firmware update for the “Telemetry sub 128” is “data associated with a downlink” since “Telemetry sub 128”, i.e. downhole firmware system, transmits/receives information to/from the “Computer System 137”, i.e. “software system”.), wherein the downlink comprises a plurality of commands and command mappings ([0017] “The controller 152 can communicate real-time data with one or more components of borehole assembly 150 and/or surface equipment. In this manner, the controller 152 can analyze real-time data.” [0024] “each plugin 302A-c corresponds to a collection of predefined functions (e.g., application programming interface (API) functions) that, when invoked, cause the plugin 302 to perform a given action (e.g., send control signals to the respective sensor, obtain sensor data, generate analytics, etc.). Advantageously, discretizing the plugins 302A-c into separate collections reduces the complexity of updating the surface software when compared to traditional surface software, which typically adapts a closed software architecture.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke, Davis and Chen the downhole communication configuration as taught by Feazle as this “allows the software to rapidly install and/or update software plugins or firmware in the field” (Feazle [0010]). Claim 13: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the method of claim 7. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches: wherein the service definition file at least partially comprises data associated with an uplink telemetry between the software systems and the downhole firmware system ([0014] “Telemetry sub 128 communicates with detection tools 126 and transmits telemetry data to surface equipment (e.g., via mud pulse telemetry)… other forms of telemetry such as acoustic, electromagnetic, telemetry via wired drill pipe, and the like may also be used to communicate signals between downhole drilling tools and signal digitizer 134.” [0022] “the memory 208 may include one or more surface software applications 214, which may be embodied as software and/or firmware for the aforementioned operations, such as communicating with drilling tools and downhole sensors.” [0027] “the management component 310 may automatically retrieve and install the updates to the plugins 302A-c and/or firmware 306D-F,” wherein the firmware update for the “Telemetry sub 128” is “data associated with an uplink” since “Telemetry sub 128”, i.e. downhole firmware system, transmits/receives information to/from the “Computer System 137”, i.e. “software system”. [0017] “The controller 152 can communicate real-time data with one or more components of borehole assembly 150 and/or surface equipment. In this manner, the controller 152 can analyze real-time data.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke, Davis and Chen the downhole communication configuration as taught by Feazle as this “allows the software to rapidly install and/or update software plugins or firmware in the field” (Feazle [0010]). Claim 14: With regard to Claim 14, this claim is equivalent in scope to Claim 7 rejected above, merely having a different independent claim type, and as such Claim 14 is rejected under the same grounds and for the same reasons as discussed above with regard to Claim 7. With further regard to Claim 14, the claim recites additional elements not specifically addressed in the rejection of Claim 7. The Senda reference also anticipates these additional elements of Claim 14, for example, Senda teaches: A non-transitory computer-readable medium comprising computer-executable instructions that, when executed, are configured to cause a processor to [perform operations] ([0003] “In yet another embodiment, a computer-readable storage medium having encoded therein computer-executable instructions for programming a computing device is provided.” [0016] “The processor 128 may perform functions of the storage controller 106 including functions disclosed herein as performed by module 110. The processor 128 may execute instructions stored on non-transitory computer readable media to perform the functions of the storage controller 106.”). Claim 15: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the computer-readable medium of claim 14. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches: wherein the electromechanical interface output comprises a communications mapping for the two or more tool components of the electromechanical tool system ([0017] “The controller 152 can communicate real-time data with one or more components of borehole assembly 150 and/or surface equipment. In this manner, the controller 152 can analyze real-time data.” [0024] “each plugin 302A-c corresponds to a collection of predefined functions (e.g., application programming interface (API) functions) that, when invoked, cause the plugin 302 to perform a given action (e.g., send control signals to the respective sensor, obtain sensor data, generate analytics, etc.). Advantageously, discretizing the plugins 302A-c into separate collections reduces the complexity of updating the surface software when compared to traditional surface software, which typically adapts a closed software architecture.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the computer-readable medium as disclosed by Senda in view of Nolterieke, Davis and Chen the communications mapping as taught by Feazle in order “to programmatically track and manage compatibilities between different versions of plugins, firmware, and hardware, particularly as each scale in number” (Feazle [0022]). Claim 16: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the computer-readable medium of claim 14. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches: wherein each service of the plurality of services comprises a plurality of modules, wherein each the plurality of modules comprises at least one of communication protocols data, command data, and tool component definitions ([0022] “As shown, the memory 208 may include one or more surface software applications 214, which may be embodied as software and/or firmware for the aforementioned operations, such as communicating with drilling tools and downhole sensors… the illustrative storage 210 includes a feature configuration 216, which may be embodied as any data representing a current configuration of features and plugins enabled for the applications 214. The configuration may also specify associated firmware components and hardware components for a given feature or plugin. The storage 210 also includes dependency data 218, which may be embodied as any data that maps compatibilities between the surface software to hardware and firmware components. For example, the dependency data 218 may be embodied as a multidimensional matrix, providing information about available software plugin components and respective features… Other examples that might be included within the matrix are software library dependencies, programming language-based package dependencies, system dependencies (e.g., system-level resources or configurations such as operating system versions, capabilities of hardware, network configurations, etc.), downhole hardware dependencies, device driver requirements, application programming interface (API) dependencies, and runtime dependencies. Advantageously, the dependency data 218 allows the computing system 137 to programmatically track and manage compatibilities between different versions of plugins, firmware, and hardware, particularly as each scale in number.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the computer-readable medium as disclosed by Senda in view of Nolterieke, Davis and Chen the service module configurations as taught by Feazle in order “to programmatically track and manage compatibilities between different versions of plugins, firmware, and hardware, particularly as each scale in number” (Feazle [0022]). Claim 17: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the computer-readable medium of claim 16. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches: wherein each service of the plurality of services includes a hierarchical structure based on the plurality of modules ([0028] “the server 312 may also provide additional predefined dependency data, such as distinct dependency matrices that may be well-suited when deployed in a given use-case scenario (e.g., a dependency matrix specifically for drilling operation use cases, a dependency matrix specifically for facility and asset management use cases, a dependency matrix for remote monitoring and control).” [0036] “evaluate, based on a dependency matrix mapping compatibilities with the plurality of plugin components, hardware components, and firmware components, whether the update is compatible with the respective hardware component; and install, upon a determination that the update is compatible, the update on the system.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the computer-readable medium as disclosed by Senda in view of Nolterieke, Davis and Chen with the hierarchically structured services as taught by Feazle in order to “allow the operator to optimize the system and surface software for a given use case” (Feazle [0028]). Claim 18: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the computer-readable medium of claim 16. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches comprising computer-executable instructions that, when executed, are configured to cause a processor to: generate a user interface based on the service definition file, wherein the user interface is configured to receive input associated with the command data, the communication protocols data, or the tool component definitions ([0025] “The user interface 308 may be rendered to a display of the computing system 137 to enable a user to view information relating to each plugin 302, determine which plugins 302 to enable (or install) or disable, identify which plugins (or features) and which versions are currently installed and/or enabled, view notifications relating to updates, and so on. The user interface 308 may present, to an operator user, a list of available plugins 302 and other information, such as features associated with a given plugin 302 and applicable hardware sensors 304 that the plugin 302 supports, system and firmware requirements, and the like. In some embodiments, the user interface 308 may present a list of features, each of which are mapped to one or more plugins 302 that support the given feature.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the computer-readable medium as disclosed by Senda in view of Nolterieke, Davis and Chen the user interface as taught by Feazle in order “to programmatically track and manage compatibilities between different versions of plugins, firmware, and hardware, particularly as each scale in number” (Feazle [0022]). Claim 19: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the computer-readable medium of claim 16. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches comprising computer-executable instructions that, when executed, are configured to cause a processor to: determine an operational relationship between a first tool component of the two or more tool components and a second tool component of the two or more tool components, wherein the operational relationship indicates that the first tool component is a master tool of the second tool component; and control operation of the electromechanical tool system based on the operational relationship ([0028] “the server 312 may also provide additional predefined dependency data, such as distinct dependency matrices that may be well-suited when deployed in a given use-case scenario (e.g., a dependency matrix specifically for drilling operation use cases, a dependency matrix specifically for facility and asset management use cases, a dependency matrix for remote monitoring and control).” [0036] “evaluate, based on a dependency matrix mapping compatibilities with the plurality of plugin components, hardware components, and firmware components, whether the update is compatible with the respective hardware component; and install, upon a determination that the update is compatible, the update on the system,” wherein a determined “dependency” relationship between components serves to determine the “operational relationship” between components, i.e. a second component being dependent on a first component indicates that the first component is a ‘master’ component of the second component.). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the computer-readable medium as disclosed by Senda in view of Nolterieke, Davis and Chen the determination of operational relationships as taught by Feazle in order “to programmatically track and manage compatibilities between different versions of plugins, firmware, and hardware, particularly as each scale in number” (Feazle [0022]). Claim 20: Senda in view of Nolterieke, Davis, Feazle and Chen teaches the computer-readable medium of claim 14. However, Senda in view of Nolterieke, Davis and Chen does not teach the following, but Feazle teaches wherein the software system is cloud-based ([0027] “the management component 310 may also establish communications with a server 312 over a network (e.g., the Internet). The server 312 may be embodied as a physical computing system or virtual computing instance (e.g., executing on a cloud provider network) that serves as a plugin and firmware repository for the decoupled software architecture. In addition, the server 312 may transmit notifications to the management component 310 regarding updates to plugins 302A-c and firmware 302D-F. In some embodiments, the management component 310 may, in turn, present the notifications on a display of the computing system 137 via the user interface 308 to confirm whether to retrieve and install the updates.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the computer-readable medium as disclosed by Senda in view of Nolterieke, Davis and Chen with the cloud-based software system as taught by Feazle as this “allows the software to rapidly install and/or update software plugins or firmware in the field, such as in instances where a new version of software or firmware is released, a new feature is added, or new hardware is installed” (Feazle [0010]). Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Senda in view of Nolterieke, Davis, Feazle and Chen as applied to Claim 7 above, and further in view of Sun et al. (US PGPUB 2024/0141772; hereinafter “Sun”.). Claim 10: Senda in view of Nolterieke, Davis, Feazle and Chen teaches all the limitations of claim 7 as described above. Senda in view of Nolterieke, Davis, Feazle and Chen does not teach the following, however, Sun teaches: comprising providing an application programming interface (API) to the downhole firmware system, and wherein the electromechanical interface output is generated based on the API ([0025] “In a block 315, the geosteering application transmits, via an application programming interface (API), the initial well path to a drilling application (e.g. drilling application 210) which is communicatively coupled with drilling equipment positioned downhole. The drilling equipment, in some embodiments, may include a rotary steerable system (RSS) drilling tool and at least one drill bit.” [0017] “The tool string 126 may also include a telemetry module 134… Data sent from the geosteering application to the drilling application may then be transmitted to the tools (e.g., a downhole measuring tools such as LWD/MWD tool 132, a rotary steering system (RSS) drilling tool 128, etc.) of the tool string 126. In some implementations, an application programming interface (API)… may be used to provide communication between the surface control unit 138 and the telemetry module 134. In some implementations, the geosteering application may communicate directly with the drilling application via an API for communication with and control of the LWD/MWD tool 132 and/or the RSS 128.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke, Davis, Feazle and Chen with the API communication as taught by Sun as this “may help reduce the time between decision making regarding an updated well path and execution within the wellbore from at least 20-30 minutes down to as low as about 2-5 minutes” (Sun [0020]). Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Senda in view of Nolterieke, Davis, Feazle and Chen as applied to Claim 11 above, and further in view of Prammer (US PGPUB 2009/0289808; hereinafter “Prammer”.). Claim 12: Senda in view of Nolterieke, Davis, Feazle and Chen teaches all the limitations of claim 11 as described above. Senda in view of Nolterieke, Davis, Feazle and Chen does not teach the following, however, Prammer teaches wherein the plurality of commands comprises: low-level commands, wherein the low-level commands comprise conditions for the one or more tool components, events for the one or more tool components, actions for one or more tool components; or a combination thereof ([0172] “FIG. 34 is a schematic circuit block diagram of the electronics inside a downhole interface sub 560. A core circuit 800 similar to the repeater circuit is employed to handle the radio packet functions and low-level communication functions.”); and high-level commands, wherein the high-level commands comprise a combination of low-level command configured to perform a high-level function ([0169] “The communications sub 700 is further augmented by additional processing and communication functions in communications block 750, including a serial interface 751, message packetization and message queuing block 752, channel acquisition and channel release block 753, session initiation and session control block 754 for communicating with the communications sub 700 via the MPU 510, as well as a two-way radio 755, message dequeuing and message packetization block 756, network supervision block 757, and network recover block 758 that together enable communications with the outside world. These additional functions handle the high-level end-to-end protocols including network supervision functions and connectivity to the outside world such as a rig data network via wireless links (as shown) or wired connections.” [0172] “A core circuit 800… augmented by additional circuitry 750 responsible for high-level end-to-end communications, network supervision functions and communication with the BHA instrumentation bus.”). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method as disclosed by Senda in view of Nolterieke, Davis, Feazle and Chen with the low and high level communications as taught by Prammer in order “to enable reliable high-speed data transmission on existing pipe string hardware” (Prammer [0020]). Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure is as follows: Vopni et al. (US PGPUB 2017/0147322) discloses systems, apparatuses and methods to facilitate firmware update to devices amongst a fleet of managed devices, including scheduling tasks for performing firmware updates to specified devices. Kachman et al. (“Firmware Update Manager: A Remote Firmware Reprogramming Tool for Low-Power Devices,” 2017) discusses a GUI based software tool for an easy generation and management of firmware updates for low-power embedded devices. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Joanne G. Macasiano whose telephone number is (571)270-7749. The examiner can normally be reached Monday to Thursday, 10:30 AM to 6:00 PM Eastern Standard Time. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached at (571) 272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /JOANNE G MACASIANO/Examiner, Art Unit 2197
Read full office action

Prosecution Timeline

Mar 29, 2024
Application Filed
Feb 21, 2026
Non-Final Rejection — §101, §103
Mar 13, 2026
Interview Requested
Mar 24, 2026
Applicant Interview (Telephonic)
Mar 24, 2026
Examiner Interview Summary

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596547
VERSION MANAGEMENT FOR MACHINE LEARNING PIPELINE BUILDING
2y 5m to grant Granted Apr 07, 2026
Patent 12585441
Automatic Generation of Chat Applications from No-Code Application Development Platforms
2y 5m to grant Granted Mar 24, 2026
Patent 12579057
COMPUTING ENVIRONMENT SOFTWARE APPLICATION TESTING
2y 5m to grant Granted Mar 17, 2026
Patent 12561223
Method For Decentralized Accessioning For Distributed Machine Learning and Other Applications
2y 5m to grant Granted Feb 24, 2026
Patent 12468511
INTEGRATING CODE REPOSITORIES
2y 5m to grant Granted Nov 11, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

1-2
Expected OA Rounds
67%
Grant Probability
99%
With Interview (+41.8%)
3y 8m
Median Time to Grant
Low
PTA Risk
Based on 305 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month