Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEMS AND METHODS FOR EVALUATING CRIMP APPLICATIONS
Document Type and Number:
WIPO Patent Application WO/2022/271632
Kind Code:
A1
Abstract:
Systems and methods for evaluating a crimping application. A power tool includes a pair of jaws configured to crimp a workpiece, a piston cylinder configured to actuate at least one of the pair of jaws, and a pressure sensor configured to provide pressure signals associated with a crimping application. The power tool also includes an electronic processor connected to the pressure sensor. The electronic processor is configured to monitor, while performing the crimping application, a pressure applied by the piston cylinder, construct a pressure curve indicative of a change in the pressure applied during the crimping application, process the pressure curve into a vector indicative of one or more features, evaluate the crimping application based on the vector, and provide an output indicative of the evaluation.

Inventors:
RADTKE TIMOTHY (US)
WESTERBY CARL (US)
ABBOTT JONATHAN (US)
DICKERT COREY (US)
Application Number:
PCT/US2022/034249
Publication Date:
December 29, 2022
Filing Date:
June 21, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MILWAUKEE ELECTRIC TOOL CORP (US)
International Classes:
G01L5/00; B25B7/04; B25B7/12; B25F5/00; G06N3/04
Foreign References:
US20200238487A12020-07-30
US20190217357A12019-07-18
US7174324B22007-02-06
US20190061135A12019-02-28
Other References:
MEINERS MORITZ; MAYR ANDREAS; KUHN MARLENE; RAAB BERNHARD; FRANKE JORG: "Towards an Inline Quality Monitoring for Crimping Processes Utilizing Machine Learning Techniques", 2020 10TH INTERNATIONAL ELECTRIC DRIVES PRODUCTION CONFERENCE (EDPC), IEEE, 8 December 2020 (2020-12-08), pages 1 - 6, XP033892803, DOI: 10.1109/EDPC51184.2020.9388207
Attorney, Agent or Firm:
RIEDL, Jared, D. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A power tool comprising: a pair of jaws configured to crimp a workpiece; a piston cylinder configured to actuate at least one of the pair of jaws; a pressure sensor configured to provide pressure signals associated with a crimping application; and an electronic processor connected to the pressure sensor, the electronic processor configured to: monitor, while performing the crimping application, a pressure applied by the piston cylinder, construct a pressure curve indicative of a change in the pressure applied during the crimping application, process the pressure curve into a vector indicative of one or more features, evaluate the crimping application based on the vector, and provide an output indicative of the evaluation.

2. The power tool of claim 1, wherein the one or more features includes at least one selected from the group consisting of a cumulative time during the crimping application spent below a first pressure threshold, a cumulative time during the crimping application spent above a second pressure threshold, a total crimping application time, a hydraulic work performed during the crimping application, and average derivatives of the pressure curve over a plurality of intervals.

3. The power tool of claim 1, wherein the electronic processor is configured to evaluate the crimping application using a random forest decision tree.

4. The power tool of claim 1, wherein the electronic processor is configured to evaluate the crimping application using an artificial neural network.

5. The power tool of claim 4, wherein a first layer of the artificial neural network includes at least triple a number of nodes as a number of inputs to the artificial neural network.

6. The power tool of claim 1, wherein the electronic processor is configured to: classify the crimping application as one of a passing application and a failing application; and identify a type of the crimping application.

7. The power tool of claim 1, wherein the electronic processor is configured to normalize the vector using a Z-transform function.

8. A method for evaluating crimping applications, the method comprising: monitoring, while performing a crimping application, a pressure applied during the crimping application; constructing a pressure curve indicative of a change in the pressure applied during the crimping application; processing the pressure curve into a vector indicative of one or more features; evaluating the crimping application based on the vector; and providing an output indicative of the evaluation.

9. The method of claim 8, wherein the one or more features includes at least one selected from the group consisting of a cumulative time during the crimping application spent below a first pressure threshold, a cumulative time during the crimping application spent above a second pressure threshold, a total crimping application time, a hydraulic work performed during the crimping application, and average derivatives of the pressure curve over a plurality of intervals.

10. The method of claim 8, wherein evaluating the crimping application based on the vector includes applying a random forest decision tree on the vector.

11. The method of claim 8, wherein evaluating the crimping application based on the vector includes applying an artificial neural network on the vector.

12. The method of claim 11, wherein a first layer of the artificial neural network includes at least triple a number of nodes as a number of inputs to the artificial neural network.

13. The method of claim 8, further comprising classifying the crimping application as one of a passing application and a failing application.

14. The method of claim 8, further comprising normalizing the vector using a Z-transform function.

15. A power tool comprising: a piston cylinder configured to be actuated to perform a crimping application; one or more sensors configured to sense power tool characteristics associated with the crimping application; and an electronic processor connected to the one or more sensors, the electronic processor configured to: monitor, while performing the crimping application, a power tool characteristic associated with the crimping application, construct a derivative curve indicative of a change in the power tool characteristic during the crimping application, process the derivative curve into a vector indicative of one or more features, evaluate the crimping application based on the vector, and provide an output indicative of the evaluation.

16. The power tool of claim 15, wherein the one or more features includes at least one selected from the group consisting of a cumulative time during the crimping application spent below a first pressure threshold, a cumulative time during the crimping application spent above a second pressure threshold, a total crimping application time, a hydraulic work performed during the crimping application, and average derivatives of the derivative curve over a plurality of intervals.

17. The power tool of claim 15, wherein the electronic processor is configured to evaluate the crimping application using an artificial neural network.

18. The power tool of claim 17, wherein a first layer of the artificial neural network includes at least triple a number of nodes as a number of inputs to the artificial neural network.

19. The power tool of claim 15, wherein the electronic processor is configured to: classify the crimping application as one of a passing application and a failing application, and identify a type of the crimping application.

20. The power tool of claim 15, wherein the output indicative of the evaluation includes a type of the crimping application, a time the crimping application was performed, and a location the crimping application was performed.

Description:
SYSTEMS AND METHODS FOR EVALUATING CRIMP APPLICATIONS

RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. Provisional Patent Application No. 63/212,929, filed June 21, 2021, and U.S. Provisional Patent Application No. 63/231,797, filed August 11, 2021, the entire content of each of which is hereby incorporated by reference.

FIELD

[0002] Embodiments described herein relate to power tools.

SUMMARY

[0003] The majority of power utility and commercial electrical connections are made with compression connectors, which are connectors that are bonded to wire through mechanical compression. To ensure the reliability of infrastructure, United Laboratories (“UL”) heavily tests crimpers for compliance, and once a tool bears the UL mark, a user relies on it to inform them if a good or bad crimp was made.

[0004] One way this is accomplished is through a tonnage, or pressure, assurance. For example, once a tool reaches a particular pressure, an indication is provided to the user that a good crimp was made.

[0005] However, mistakes can be made that result in a bad crimp even though the tool graded it as a pass. Thus, it is important to explore new technologies and methods for increasing the accuracy of these grading schemas. By increasing the accuracy of grading, the user will perform less rework and create a lower risk profile for electrical grid inspection.

[0006] Embodiments described herein provide designers of hydraulic power tools a framework to implement an accurate machine learning model within an embedded system responsible for the control and operation of this class of power tool.

[0007] Systems described herein include a power tool including a pair of jaws configured to crimp a workpiece, a piston cylinder configured to actuate at least one of the pair of jaws, and a pressure sensor configured to provide pressure signals associated with a crimping application. The power tool includes an electronic processor connected to the pressure sensor. The electronic processor is configured to monitor, while performing the crimping application, a pressure applied by the piston cylinder, construct a pressure curve indicative of a change in the pressure applied during the crimping application, process the pressure curve into a vector indicative of one or more features, evaluate the crimping application based on the vector, and provide an output indicative of the evaluation.

[0008] In some embodiments, the one or more features includes at least one selected from the group consisting of a cumulative time during the crimping application spent below a first pressure threshold, a cumulative time during the crimping application spent above a second pressure threshold, a total crimping application time, a hydraulic work performed during the crimping application, and average derivatives of the pressure curve over a plurality of intervals.

[0009] In some embodiments, the electronic processor is configured to evaluate the crimping application using a random forest decision tree. In some embodiments, the electronic processor is configured to evaluate the crimping application using an artificial neural network. In some embodiments, a first layer of the artificial neural network includes at least triple a number of nodes as a number of inputs to the artificial neural network. In some embodiments, the electronic processor is configured to classify the crimping application as one of a passing application and a failing application, and identify a type of the crimping application. In some embodiments, the electronic processor is configured to normalize the vector using a Z-transform.

[0010] Methods described herein for evaluating crimping applications include monitoring, while performing a crimping application, a pressure applied during the crimping application, constructing a pressure curve indicative of a change in the pressure applied during the crimping application, processing the pressure curve into a vector indicative of one or more features, evaluating the crimping application based on the vector, and providing an output indicative of the evaluation.

[0011] In some embodiments, the one or more features includes at least one selected from the group consisting of a cumulative time during the crimping application spent below a first pressure threshold, a cumulative time during the crimping application spent above a second pressure threshold, a total crimping application time, a hydraulic work performed during the crimping application, and average derivatives of the pressure curve over a plurality of intervals.

[0012] In some embodiments, evaluating the crimping application based on the vector includes applying a random forest decision tree on the vector. In some embodiments, evaluating the crimping application based on the vector includes applying an artificial neural network on the vector. In some embodiments, a first layer of the artificial neural network includes at least triple a number of nodes as a number of inputs to the artificial neural network. In some embodiments, the method further includes classifying the crimping application as one of a passing application and a failing application. In some embodiments, the method further includes normalizing the vector using a Z-transform function.

[0013] Systems described herein include a power tool including a piston cylinder configured to be actuated to perform a crimping application and one or more sensors configured to sense power tool characteristics associated with the crimping application. The power tool includes an electronic processor connected to the one or more sensors. The electronic processor is configured to monitor, while performing the crimping application, a power tool characteristic associated with the crimping application, construct a derivative curve indicative of a change in the power tool characteristic during the crimping application, process the derivative curve into a vector indicative of one or more features, evaluate the crimping application based on the vector, and provide an output indicative of the evaluation.

[0014] In some embodiments, the one or more features includes at least one selected from the group consisting of a cumulative time during the crimping application spent below a first pressure threshold, a cumulative time during the crimping application spent above a second pressure threshold, a total crimping application time, a hydraulic work performed during the crimping application, and average derivatives of the derivative curve over a plurality of intervals.

[0015] In some embodiments, the electronic processor is configured to evaluate the crimping application using an artificial neural network. In some embodiments, a first layer of the artificial neural network includes at least triple a number of nodes as a number of inputs to the artificial neural network. In some embodiments, the electronic processor is configured to classify the crimping application as one of a passing application and a failing application, and identify a type of the crimping application. In some embodiments, the output indicative of the evaluation includes a type of the crimping application, a time the crimping application was performed, and a location the crimping application was performed.

[0016] Before any embodiments are explained in detail, it is to be understood that the embodiments are not limited in its application to the details of the configuration and arrangement of components set forth in the following description or illustrated in the accompanying drawings. The embodiments are capable of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof are meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless specified or limited otherwise, the terms “mounted,” “connected,” “supported,” and “coupled” and variations thereof are used broadly and encompass both direct and indirect mountings, connections, supports, and couplings.

[0017] In addition, it should be understood that embodiments may include hardware, software, and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware. However, one of ordinary skill in the art, and based on a reading of this detailed description, would recognize that, in at least one embodiments, the electronic-based aspects may be implemented in software (e.g., stored on non-transitory computer-readable medium) executable by one or more processing units, such as a microprocessor and/or application specific integrated circuits (“ASICs”). As such, it should be noted that a plurality of hardware and software based devices, as well as a plurality of different structural components, may be utilized to implement the embodiments. For example, “servers” and “computing devices” described in the specification can include one or more processing units, one or more computer-readable medium modules, one or more input/output interfaces, and various connections (e.g., a system bus) connecting the components.

[0018] Other features and aspects will become apparent by consideration of the following detailed description and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0019] FIGS. 1 A-1C are cross-sectional views of a power tool in accordance with an embodiment described herein.

[0020] FIG. 2 is a perspective view of a rotary return valve of the power tool of FIG. 1 A.

[0021] FIG. 3 is a portion of the power tool of FIG. 1A, illustrating the rotary return valve in an open position.

[0022] FIGS. 4 and 5 are block circuit diagrams of the power tool of FIG. 1A, FIG. IB, or FIG. 1C. [0023] FIG. 6 is a communication system for the power tool of FIG. 1A, FIG. IB, or FIG. 1C and an external device in accordance with an embodiment described herein.

[0024] FIG. 7 illustrates a block diagram of a machine learning controller in accordance with an embodiment described herein.

[0025] FIG. 8 illustrates a graph of pressure profiles of the power tool of FIG. 1A, FIG. IB, or FIG. 1C in accordance with embodiments described herein.

[0026] FIG. 9 illustrates a block diagram of a method performed by a controller in accordance with an embodiment described herein.

[0027] FIGS. 10A-10C illustrate scatter plots of operating characteristics of the power tool of FIG. 1A in accordance with embodiments described herein.

[0028] FIG. 11 illustrates a flow chart of a method performed by the controller of FIG. 4 in accordance with an embodiment described herein.

[0029] FIG. 12 illustrates an example report generated by a controller in accordance with embodiments described herein.

[0030] FIG. 13 illustrates an example crimp in accordance with an embodiment described herein.

[0031] FIG. 14 illustrates a graph of training loss data versus validation loss during training in accordance with embodiments described herein.

[0032] FIG. 15 illustrates a block diagram of a method performed by a controller in accordance with embodiments described herein.

DETAILED DESCRIPTION

[0033] FIG. 1A illustrates an embodiment of a power tool 10, such as a crimper. The power tool 10 includes a crimper head 72 and a body 1 (e.g., a housing). As illustrated in FIG. 1B-1C, the power tool 10 includes an electric motor 12, and a pump 14 driven by the motor 12. In some embodiments, the power tool 10 also includes a cylinder housing 22 defining a piston cylinder 26, and an extensible piston 30 disposed within the piston cylinder 26. The power tool 10 also includes electronic control and monitoring circuitry for controlling and/or monitoring various functions of the power tool 10. In some embodiments, the pump 14 causes the piston 30 to extend from the cylinder housing 22 and actuate a pair of jaws 32 for crimping a workpiece, such as a connector. The jaws 32 are a part of a crimper head 72, which also includes a clevis 74 for ataching the head 72 to the body 1 of the power tool 10, which otherwise includes the motor 12, pump 14, cylinder housing 22, and piston 30.

[0034] The crimper head 72 may include different types of dies depending on the size, shape, and material of the workpiece. The dies are received, for example, by a recess included within the crimper head 72 or the cylinder housing 22. The dies can be used for electrical applications (e.g., wire and couplings) or plumbing applications (e.g., pipe and couplings). The size of the dies depends on the size of a wire, pipe, coupling, etc., to be crimped. In some embodiments, die sizes include #8, #6, #4, #2, #1, 1/0, 2/0, 3/0, 4/0, 250 MCM, 300 MCM, 350 MCM, 400 MCM, 500 MCM, 600 MCM, 750 MCM, and 1000 MCM. The shape formed by the die can be circular or another shape. In some embodiments, the dies are configured to crimp various malleable materials and metals, such as copper (Cu) and aluminum (Al). Additionally, the dies can be removable to allow the power tool 10 to crimp different workpieces. In some embodiments, the power tool 10 may be a dieless crimper (see, e.g., FIG. 1C).

[0035] With reference to FIG. 2, an assembly 18 also includes a valve actuator 46 driven by an input shaft 50 of the pump 14 for selectively closing a return valve 34 with rotational axis 40 (e.g., when a return port 38 is misaligned with a return passageway 42) and opening the return valve 34 (e.g., when the return port 38 is aligned with the return passageway 42). The valve actuator 46 includes a generally cylindrical body 48 that accommodates a first set of pawls 52 and a second set of pawls 56. In other embodiments, the sets of pawls 52, 56 may include any other number of pawls.

[0036] The pawls 52, 56 are pivotally coupled to the body 48 and extend and retract from the body 48 in response to rotation of the input shaft 50. The pawls 52 extend when the input shaft 50 is driven in a clockwise direction, and the pawls 52 retract when the input shaft 50 is driven in a counter-clockwise direction. Conversely, the pawls 56 extend when the input shaft 50 is driven in the counter-clockwise direction, and retract when the input shaft 50 is driven in the clockwise direction. The pawls 52, 56 are selectively engageable with corresponding first and second radial projections 60, 64 on the return valve 34 to open and close the valve 34.

[0037] Prior to initiating a crimping operation, the return valve 34 is in an open position as shown in FIG. 3, in which the return port 38 is aligned with the return passageway 42 to fluidly communicate the piston cylinder 26 and the reservoir. In the open position, the pressure in the piston cylinder 26 is at approximately zero pounds per square inch (psi), the speed of the motor 12 is at zero revolutions per minute (rpm), and the current supplied to the motor 12 is zero amperes (A or amps). A rebounding spring 70 causes the piston 30 to retract into the cylinder 26.

[0038] The pressure in the piston cylinder 26 may be sensed by a pressure sensor 68 and the signals from the pressure sensor 68 are sent to the electronic control and monitoring circuitry (see, e.g., controller 400 of FIG. 4). The pressure sensor 68 may be referred to as a pressure transducer, a pressure transmitter, a pressure sender, a pressure indicator, a piezometer, or a manometer. The pressure sensor 68 is either an analog or digital pressure sensor. In some embodiments, the pressure sensor 68 is a force collector type of pressure sensor, such as piezoresistive strain gauge, capacitive sensor, electromagnetic sensor, piezoelectric sensor, optical sensor, or potentiometric sensor. In some embodiments, the pressure sensor 68 is manufactured out of piezoelectric materials, such as quartz. In other embodiments, the pressure sensor 68 is a resonant, thermal, or ionization type of pressure sensor.

[0039] The speed of the motor 12 is sensed by a speed sensor that detects the position and movement of a rotor relative to stator and generates signals indicative of motor position, speed, and/or acceleration, which are provided to the electronic control and monitoring circuitry. In some embodiments, the speed sensor includes a Hall effect sensor to detect the position and movement of the rotor magnets.

[0040] The electric current flow through the motor 12 is sensed, for example, by a current sensor (e.g., an ammeter) and the output signals from the current sensor are sent to the electronic control and monitoring circuitry. Alternatively, the current flow through the motor 12 can be derived from voltage, using a voltage sensor (e.g., a voltmeter), taken across the resistance of the windings in the motor 12. Other methods can also be used to calculate the electric current flow through the motor 12 with other types of sensors (e.g., a shunt resistor). The power tool 10 can include other sensors to control and monitor other characteristics of the other movable components of the power tool 10, such as the motor 12, pump 14, or piston 30. The electronic current flow through the motor 12 may be used to determine other characteristics of the motor 12, such as a torque of the motor 12.

[0041] The position of the crimper head 72, such as the jaws 32 or the die, may be sensed by a position sensor 150, illustrated in FIG. 1C. The position sensor 150 is, for example, a displacement sensor, a distance sensor, a photodiode array, a potentiometer, a proximity sensor, a Hall sensor, or the like. In some embodiments, a displacement or distance may be determined by a light sensor that measures the clarity of hydraulic fluid within the piston 30. As the piston 30 moves, the amount (for example, the intensity) of light received by the light sensor changes. In some embodiments, displacement is measured by a number of revolutions of the motor 12. Seal wear may also be accounted for when determining displacement. Seal wear may be determined based on the performed crimping application (described in more detail below) or based on a user input. Signals from the light sensor and/or other position sensors 150 may be directly used as an input for controller 400 (see FIG. 4) or may be transformed into distance, displacement, and/or position for analysis by the controller 400.

[0042] In some embodiments, the piston 30 includes a plurality of conductive rings (e.g., copper rings) situated around the piston 30. When the power tool 10 operates, the piston 30 and the conductive rings move within the piston cylinder 26. In some embodiments, the position sensor 150, which may be a Hall effect sensor situated within or near the piston cylinder 26, detects the distance by detecting the conductive rings moving with the piston 30. The further the piston 30 extends, the greater the number of conductive rings and distance detected by the position sensor 150. Based on the movement of the piston 30 during an operation of the power tool 10, the position sensor 150 generates an output signal representative of a distance that the piston 30 has traveled from a particular reference point, such as a proximal position or a home position. The output signal may be communicated to a controller 400 of the power tool 10, as illustrated in FIG. 4.

[0043] In some embodiments, the position sensor 150 also provides information regarding the direction of motion of the piston 30. For example, the position sensor 150 determines if the piston 30 is extending or retracting. In some embodiments, the position sensor 150 continuously senses the movement of the piston 30. In some embodiments, the position sensor 150 is only activated during a period of time the piston 30 is being driven.

[0044] The controller 400 for the power tool 10 is illustrated in FIG. 4. The controller 400 is electrically and/or communicatively connected to a variety of modules or components of the power tool 10. For example, the illustrated controller 400 is connected to indicators 445, sensors 450 (which may include, for example, the pressure sensor 68, the speed sensor, the current sensor, the voltage sensor, the position sensor 150, etc.), a wireless communication controller 455, a trigger switch 462, a switching network 465, a power input unit 470, and a battery pack interface 475. [0045] The controller 400 includes a plurality of electrical and electronic components that provide power, operational control, and protection to the components and modules within the controller 400 and/or power tool 10. For example, the controller 400 includes, among other things, a processing unit 405 (e.g., a microprocessor, an electronic processor, an electronic controller, a microcontroller, or another suitable programmable device), a memory 425, input units 430, and output units 435. The processing unit 405 includes, among other things, a control unit 410, an arithmetic logic unit (“ALU”) 415, and a plurality of registers 420 (shown as a group of registers in FIG. 4), and is implemented using a known computer architecture (e.g., a modified Harvard architecture, a von Neumann architecture, etc.). The processing unit 405, the memory 425, the input units 430, and the output units 435, as well as the various modules connected to the controller 400 are connected by one or more control and/or data buses (e.g., common bus 440). The control and/or data buses are shown generally in FIG. 4 for illustrative purposes. The use of one or more control and/or data buses for the interconnection between and communication among the various modules and components would be known to a person skilled in the art in view of the embodiments described herein.

[0046] The memory 425 is a non-transitory computer readable medium and includes, for example, a program storage area and a data storage area. The program storage area and the data storage area can include combinations of different types of memory, such as a ROM, a RAM (e.g., DRAM, SDRAM, etc.), EEPROM, flash memory, a hard disk, an SD card, or other suitable magnetic, optical, physical, or electronic memory devices. The processing unit 405 is connected to the memory 425 and executes software instructions that are capable of being stored in a RAM of the memory 425 (e.g., during execution), a ROM of the memory 425 (e.g., on a generally permanent basis), or another non-transitory computer readable medium such as another memory or a disc. Software included in the implementation of the power tool 10 can be stored in the memory 425 of the controller 400. The software includes, for example, firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions. The controller 400 is configured to retrieve from the memory 425 and execute, among other things, instructions related to the control processes and methods described herein. In other embodiments, the controller 400 includes additional, fewer, or different components.

[0047] In some embodiments, as described above, the power tool 10 is a crimper. The controller 400 drives the motor 12 to perform a crimp in response to a user’s actuation of the trigger 460. Depression of the activation trigger 460 actuates a trigger switch 462, which outputs a signal to the controller 400 to actuate the crimp. The controller 400 controls a switching network 465 (e.g., a FET switching bridge) to drive the motor 12. When the trigger 460 is released, the trigger switch 462 no longer outputs the actuation signal (or outputs a released signal) to the controller 400. The controller 400 may cease a crimp action when the trigger 460 is released by controlling the switching network 465 to brake the motor 12

[0048] The battery pack interface 475 is connected to the controller 400 and couples to a battery pack 480. The battery pack interface 475 includes a combination of mechanical (e.g., a battery pack receiving portion) and electrical components configured to and operable for interfacing (e.g., mechanically, electrically, and communicatively connecting) the power tool 10 with the battery pack 480. The battery pack interface 475 is coupled to the power input unit 470. The battery pack interface 475 transmits the power received from the battery pack 480 to the power input unit 470. The power input unit 470 includes active and/or passive components (e.g., voltage step-down controllers, voltage converters, rectifiers, filters, etc.) to regulate or control the power received through the battery pack interface 475 and to the wireless communication controller 455 and controller 400. When the battery pack 480 is not coupled to the power tool 10, the wireless communication controller 455 is configured to receive power from a back-up power source 485.

[0049] The indicators 445 are also coupled to the controller 400 and receive control signals from the controller 400 to turn ON and OFF or otherwise convey information based on different states of the power tool 10. The indicators 445 include, for example, one or more light-emitting diodes (LEDs), a display screen, etc. The indicators 445 can be configured to display conditions of, or information associated with, the power tool 10. For example, the indicators 445 can display information relating to a type of operation or application (such as a type of crimping application) performed by the power tool 10, a status of the operation, the success or failure of the operation, etc. In addition to or in place of visual indicators, the indicators 445 may also include a speaker or a tactile feedback mechanism to convey information to a user through audible or tactile outputs.

[0050] In some embodiments, a camera (or scanner) 490 is coupled to the controller 400. The camera 490 may be configured to scan, read, or otherwise receive an RFID tag or visual identifier (such as a QR code or a bar code) on or associated with a crimp and/or a die received by the power tool 10. In some embodiments, the camera 490 is a modular device configured to attach to the power tool 10. The camera 490 may have its own power source, or may be powered by the battery pack 480. The camera 490 may be rotatable around the power tool 10 based on a direction of the crimping application being performed. In some embodiments, the camera 490 includes an accelerometer (or communicates with an accelerometer included in the sensors 450) to self-right an image taken by the camera 490. Additionally, the camera 490 may be wired to communicate with the controller 400 and receive power from the controller 400. However, in some embodiments, the camera 490 may wirelessly communicate with the controller 400, such as via a Bluetooth connection. In some embodiments, the camera 490 is configured to communicate with components within the communication system 600 (see FIG. 6). The visual identifier associated with each crimp or die may be unique. Accordingly, the controller 400 may track a number of crimp types based on the visual identifiers of each crimp and die. Each visual identifier may be associated with a location. Image analysis methods, such as optical character recognition (OCR), may be used by the controller 400 to analyze the visual identifiers. Crimps and die with visual identifiers and/or RFID tags may be used for reinforcement learning of machine learning control 710 (described in more detail below). In some embodiments, the camera 490 may provide an image output that is run through a machine learning classifier, such as a CNN or attention network. The CNN or attention network directly classifies the crimp and/or die. In some embodiments, this is achieved even without OCR because the crimp and die may be secured in a known position or orientation relative to the camera 490.

[0051] In some embodiments, the memory 425 includes die data, which specifies one or more of the type of die (e.g., the size and material of the die) attached to the body 1, the workpiece size, the workpiece shape, the workpiece material, the application type (e.g., electrical or plumbing), varieties of types of die compatible with the power tool 10, etc. The memory 425 can also include expected curve data, which is described in more detail below.

In some embodiments, the die data is communicated to and stored in the memory 425 via an external device 605 (see FIG. 6). In some embodiments, the die data is stored in a look-up table in the memory 425. The memory 425 may further store information relating to the manufacturer of the power tool 10. In some embodiments, the power tool 10 and/or the external device 605 includes a global positioning system (“GPS”) for determining a specific location of the power tool 10 and/or the external device 605. The location of the power tool 10 and/or the external device 605 can then be correlated to a particular worksite where required operations of the power tool 10 were to be performed. Using the techniques described herein, the operations of the power tool 10 can be automatically identified or determined and associated with the location of the power tool 10 and/or external device 605 to confirm that all of the required, particular operations of the power tool were performed at the proper location. Such documentation used to guarantee that a job was completed properly, can be used to automatically generate a compliance report for the specific location/operations, etc.

[0052] As shown in FIG. 5, the wireless communication controller 455 includes a processor 500, a memory 505, an antenna and transceiver 510, and a real-time clock (RTC) 515. The wireless communication controller 455 enables the power tool 10 to communicate with an external device 605 (see, e.g., FIG. 6). The radio antenna and transceiver 510 operate together to send and receive wireless messages to and from the external device 605 and the processor 500. The memory 505 can store instructions to be implemented by the processor 500 and/or may store data related to communications between the power tool 10 and the external device 605 or the like. The processor 500 for the wireless communication controller 455 controls wireless communications between the power tool 10 and the external device 605. For example, the processor 500 associated with the wireless communication controller 455 buffers incoming and/or outgoing data, communicates with the controller 400, and determines the communication protocol and/or settings to use in wireless communications. The communication via the wireless communication controller 455 can be encrypted to protect the data exchanged between the power tool 10 and the external device 605 from third parties.

[0053] In the illustrated embodiment, the wireless communication controller 455 is a Bluetooth® controller. The Bluetooth® controller communicates with the external device 605 employing the Bluetooth ® protocol. Therefore, in the illustrated embodiment, the external device 605 and the power tool 10 are within a communication range (i.e., in proximity) of each other while they exchange data. In other embodiments, the wireless communication controller 455 communicates using other protocols (e.g., Wi-Fi, ZigBee, a proprietary protocol, etc.) over different types of wireless networks. For example, the wireless communication controller 455 may be configured to communicate via Wi-Fi through a wide area network such as the Internet or a local area network, or to communicate through a piconet (e.g., using infrared or NFC communications).

[0054] In some embodiments, the network is a cellular network, such as, for example, a Global System for Mobile Communications (“GSM”) network, a General Packet Radio Service (“GPRS”) network, a Code Division Multiple Access (“CDMA”) network, an Evolution-Data Optimized (“EV-DO”) network, an Enhanced Data Rates for GSM Evolution (“EDGE”) network, a 3GSM network, a 4GSM network, a 4G LTE network, 5GNew Radio, a Digital Enhanced Cordless Telecommunications (“DECT”) network, a Digital AMPS (“IS- 136/TDMA”) network, or an Integrated Digital Enhanced Network (“iDEN”) network, etc.

[0055] The wireless communication controller 455 is configured to receive data from the controller 400 and relay the information to the external device 605 via the antenna and transceiver 510. In a similar manner, the wireless communication controller 455 is configured to receive information (e.g., configuration and programming information) from the external device 605 via the antenna and transceiver 510 and relay the information to the controller 400.

[0056] The RTC 515 can increment and keep time independently of the other power tool 10 components. The RTC 515 can receive power from the battery pack 480 when the battery pack 480 is connected to the power tool 10 and can receive power from the back-up power source 485 when the battery pack 480 is not connected to the power tool 10. Having the RTC 515 as an independently powered clock enables time stamping of operational data (stored in memory 505 for later export) and a security feature whereby a lockout time is set by a user (e.g., via the external device 605) and the tool is locked-out when the time of the RTC 515 exceeds the set lockout time.

[0057] FIG. 6 illustrates a communication system 600. The communication system 600 includes at least one power tool 10 (illustrated as a crimper) and the external device 605.

Each power tool device 10 (e.g., a crimper, a cutter, a battery powered impact driver, a power tool battery pack, and the like) and the external device 605 can communicate wirelessly while they are within a communication range of each other. Each power tool 10 may communicate power tool status, power tool operation statistics, power tool identification, power tool sensor data, stored power tool usage information, power tool maintenance data, and the like.

[0058] More specifically, the power tool 10 can monitor, log, and/or communicate various tool parameters that can be used for confirmation of correct tool performance, detection of a malfunctioning tool, and determination of a need or desire for service. Taking, for example, the crimper as the power tool 10, the various tool parameters detected, determined, and/or captured by the controller 400 and output to the external device 605 can include a crimping time (e.g., time it takes for the power tool 10 to perform a crimping action), a type of die received by the power tool 10, a type of application performed by the power tool 10, a time (e.g., a number of seconds) that the power tool 10 is on, a number of overloads (i.e., a number of times the tool 10 exceeded the pressure rating for the die, the jaws 32, and/or the tool 10), a total number of cycles performed by the tool, a number of cycles performed by the tool since a reset and/or since a last data export, a number of full pressure cycles (e.g., number of acceptable crimps performed by the tool 10), a number of remaining service cycles (i.e., a number of cycles before the tool 10 should be serviced, recalibrated, repaired, or replaced), a number of transmissions sent to the external device 605, a number of transmissions received from the external device 605, a number of errors generated in the transmissions sent to the external device 605, a number of errors generated in the transmissions received from the external device 605, a code violation resulting in a master control unit (MCU) reset, a short in the power circuitry (e.g., a metal-oxide-semiconductor field-effect transistor (MOSFET) short), a hot thermal overload condition (i.e., a prolonged electric current exceeding a full-loaded threshold that can lead to excessive heating and deterioration of the winding insulation until an electrical fault occurs), a cold thermal overload (i.e., a cyclic or in-rush electric current exceeding a zero load threshold that can also lead to excessive heating and deterioration of the winding insulation until an electrical fault occurs), a motor stall condition (i.e., a locked or non-moving rotor with an electrical current flowing through the windings), a bad Hall sensor, a non-maskable interrupt (NMI) hardware MCU Reset (e.g., of the controller 400), an over-discharge condition of the battery pack 480, an overcurrent condition of the battery pack 480, a battery dead condition at trigger pull, a tool FETing condition, gate drive refresh enabled indication, thermal and stall overload condition, a malfunctioning pressure sensor condition for the pressure sensor 68, trigger pulled at tool sleep condition, Hall sensor error occurrence condition for one of the Hall sensors, heat sink temperature histogram data, MOSFET junction temperature histogram data, peak current histogram data (from the current sensor), average current histogram data (from the current sensor), the number of Hall errors indication, raw sensor values, encoded sensor values (for example, from an RNN encoder), compressed sensor values, operating parameters of the power tool 10, etc.

[0059] Using the external device 605, a user can access the tool parameters obtained by the power tool 10. With the tool parameters (i.e., tool operational data), a user can determine how the power tool 10 has been used (e.g., number of crimps performed, a type of crimp application performed), whether maintenance is recommended or has been performed in the past, and identify malfunctioning components or other reasons for certain performance issues. The external device 605 can also transmit data to the power tool 10 for power tool configuration, firmware updates, or to send commands. The external device 605 also allows a user to set operational parameters, safety parameters, select usable dies, select tool modes, and the like for the power tool 10.

[0060] The external device 605 is, for example, a smart phone (as illustrated), a laptop computer, a tablet computer, a personal digital assistant (PDA), or another electronic device capable of communicating wirelessly with the power tool 10 and providing a user interface. The external device 605 provides the user interface and allows a user to access and interact with the power tool 10. The external device 605 can receive user inputs to determine operational parameters, enable or disable features, and the like. The user interface of the external device 605 provides an easy-to-use interface for the user to control and customize operation of the power tool 10. The external device 605, therefore, grants the user access to the tool operational data of the power tool 10, and provides a user interface such that the user can interact with the controller 400 of the power tool 10.

[0061] In addition, as shown in FIG. 6, the external device 605 can also share the tool operational data obtained from the power tool 10 with a remote server 625 connected through a network 615. The remote server 625 may be used to store the tool operational data obtained from the external device 605, provide additional functionality and services to the user, or a combination thereof. In some embodiments, storing the information on the remote server 625 allows a user to access the information from a plurality of different locations. In some embodiments, the remote server 625 collects information from various users regarding their power tool devices and provide statistics or statistical measures to the user based on information obtained from the different power tools. For example, the remote server 625 may provide statistics regarding the experienced efficiency of the power tool 10, typical usage of the power tool 10, and other relevant characteristics and/or measures of the power tool 10. The network 615 may include various networking elements (routers 610, hubs, switches, cellular towers 620, wired connections, wireless connections, etc.) for connecting to, for example, the Internet, a cellular data network, a local network, or a combination thereof as previously described. In some embodiments, the power tool 10 is configured to communicate directly with the server 625 through an additional wireless interface or with the same wireless interface that the power tool 10 uses to communicate with the external device 605. [0062] In some embodiments, the remote server 625 includes a machine learning controller 630. The machine learning controller 630 implements a machine learning program. For example, the machine learning controller 630 is configured to construct a model (e.g., building one or more algorithms) based on example inputs. Supervised learning involves presenting a computer program with example inputs and their actual outputs (e.g., categorizations). The machine learning controller 630 is configured to leam a general rule or model that maps the inputs to the outputs based on the provided example input-output pairs. The machine learning algorithm may be configured to perform machine learning using various types of methods. For example, the machine learning controller 630 may implement the machine learning program using decision tree learning (such as random decision forests), associates rule learning, artificial neural networks, recurrent artificial neural networks, long short term memory neural networks, inductive logic programming, support vector machines, clustering, Bayesian networks, reinforcement learning, representation learning, similarity and metric learning, sparse dictionary learning, genetic algorithms, k-nearest neighbor (KNN), among others, such as those listed in Table 1 below. In some embodiments the machine learning program is implemented by the controller 400, the external device 605, or a combination of the controller 400, the external device 605, and/or the machine learning controller 630.

[0063] The machine learning controller 630 is programmed and trained to perform a particular task. For example, in some embodiments, the machine learning controller 630 is trained to identify an application (or operation) performed by the power tool 10. The application performed by the power tool 10 may vary based on, for example, the type of die inserted into the power tool 10 or a setting of the power tool. The training examples used to train the machine learning controller 630 may be graphs or tables of operating profiles, such as pressure over time, voltage over time, current over time, speed over time, and the like for a given application. The training examples may be previously collected training examples, from, for example, a plurality of the same type of power tools. For example, the training examples may have been previously collected from a plurality of power tools of the same type (e.g., crimpers) over a span of, for example, one year.

[0064] A plurality of different training examples is provided to the machine learning controller 630. The machine learning controller 630 uses these training examples to generate a model (e.g., a rule, a set of equations, and the like) that helps categorize or estimate the output based on new input data. The machine learning controller 630 may weight different training examples differently to, for example, prioritize different conditions or inputs and outputs to and from the machine learning controller 630. For example, certain observed operating characteristics may be weighed more heavily than others, such as the hydraulic work being weighted more than the average derivative of the pressure.

[0065] In one example, the machine learning controller 630 implements an artificial neural network. The artificial neural network includes an input layer, a plurality of hidden layers or nodes, and an output layer. Typically, the input layer includes as many nodes as inputs provided to the machine learning controller 630. As described above, the number (and the type) of inputs provided to the machine learning controller 630 may vary based on the particular task for the machine learning controller 630. Accordingly, the input layer of the artificial neural network of the machine learning controller 630 may have a different number of nodes based on the particular task for the machine learning controller 630. The input layer connects to the hidden layers. The number of hidden layers varies and may depend on the particular task for the machine learning controller 630. Additionally, each hidden layer may have a different number of nodes and may be connected to the next layer differently. For example, each node of the input layer may be connected to each node of the first hidden layer. The connection between each node of the input layer and each node of the first hidden layer may be assigned a weight parameter. Additionally, each node of the neural network may also be assigned a bias value. However, each node of the first hidden layer may not be connected to each node of the second hidden layer. That is, there may be some nodes of the first hidden layer that are not connected to all of the nodes of the second hidden layer. The connections between the nodes of the first hidden layers and the second hidden layers are each assigned different weight parameters. Each node of the hidden layer is associated with an activation function. The activation function defines how the hidden layer is to process the input received from the input layer or from a previous input layer. These activation functions may vary and be based on not only the type of task associated with the machine learning controller 630, but may also vary based on the specific type of hidden layer implemented.

[0066] Each hidden layer may perform a different function. For example, some hidden layers can be convolutional hidden layers which can, in some instances, reduce the dimensionality of the inputs, while other hidden layers can perform statistical functions such as max pooling, which may reduce a group of inputs to the maximum value, an averaging layer, among others. In some of the hidden layers (also referred to as “dense layers”), each node is connected to each node of the next hidden layer. Some neural networks including more than, for example, three hidden layers may be considered deep neural networks. The last hidden layer is connected to the output layer. Similar to the input layer, the output layer typically has the same number of nodes as the possible outputs.

[0067] During training, the artificial neural network receives the inputs for a training example and generates an output using the bias for each node, and the connections between each node and the corresponding weights. The artificial neural network then compares the generated output with the actual output of the training example. Based on the generated output and the actual output of the training example, the neural network changes the weights associated with each node connection. In some embodiments, the neural network also changes the weights associated with each node during training. The training continues until a training condition is met. The training condition may correspond to, for example, a predetermined number of training examples being used, a minimum accuracy threshold being reached during training and validation, a predetermined number of validation iterations being completed, and the like. Different types of training algorithms can be used to adjust the bias values and the weights of the node connection based on the training examples. The training algorithms may include, for example, gradient descent, newton’s method, conjugate gradient, quasi newton, and levenberg marquardt, among others.

[0068] In another example, the machine learning controller 630 implements a support vector machine to perform classification. The machine learning controller 630 may receive inputs from the sensors 450, such as the pressure of the piston cylinder 26, the motor speed, the motor energy, operation time, and the like. The machine learning controller 630 then defines a margin using combinations of some of the input variables as support vectors to maximize the margin. In some embodiments ,the machine learning controller 630 defines a margin using combinations of more than one of similar input variables. The margin corresponds to the distance between the two closest vectors that are classified differently.

For example, the margin corresponds to the distance between a vector representing a 120 circular mil (“MCM”) Aluminum (“Al”) crimping application and a vector representing a 120 MCM copper (“Cu”) crimping application. In some embodiments, the machine learning controller 630 uses more than one support vector machine to perform a single classification. For example, when the machine learning controller 630 determines the power tool 10 is performing the 120 MCM Al crimping application, a first support vector machine determines the 120 MCM Al crimping application based on the hydraulic work and the touch off percent, while a second support vector machine determines the 120 MCM Al crimping application based on the touch off time and the touch off percent. The machine learning controller 630 may then determine whether the 120 MCM Al crimping application is being performed when both support vector machines classify the application as the 120 MCM Al crimping application. In other embodiments, a single support vector machine can use more than two input variables and define a hyperplane that separates the types of applications.

[0069] The training examples for a support vector machine include an input vector including values for the input variables (e.g., pressure of the piston cylinder 26, motor voltage, motor current, motor speed, position of the jaws 32, and the like), and an output classification indicating the crimping application performed by the power tool 10. During training, the support vector machine selects the support vectors (e.g., a subset of the input vectors) that maximize the margin. In some embodiments, the support vector machine may be able to define a line or hyperplane that accurately separates the types of applications. In other embodiments (e.g., in anon-separable case), however, the support vector machine may define a line or hyperplane that maximizes the margin and minimizes the slack variables, which measure the error in a classification of a support vector machine. After the support vector machine has been trained, new input data can be compared to the line or hyperplane to determine how to classify the new input data. In other embodiments, as mentioned above, the machine learning controller 630 can implement different machine learning algorithms to make an estimation or classification based on a set of input data. For example, a random forest classifier may be used, in which multiple decision trees are implemented to observe different operational features of the power tool 10. Each decision tree has its own output, and majority voting may be used to determine the final output of the machine learning controller 630.

[0070] As shown in FIG. 7, the machine learning controller 630 includes a machine learning electronic processor 700 and a machine learning memory 705. The machine learning memory 705 stores a machine learning control 710. The machine learning control 710 may include a trained machine learning program as described above with respect to FIG. 6. In some embodiments, the trained machine learning program is instead stored in the memory 425 of the power tool 10 and implemented by the processing unit 405. As discussed above with respect to FIG. 6, the machine learning control 710 may be built and operated by the remote server 625. In other embodiments, the machine learning control 710 may be built by the remote server 625, but implemented by the power tool 10. In yet other embodiments, the power tool 10 (e.g., the controller 400) builds and implements the machine learning control 710. In yet other embodiments, the machine learning control 710 is built on and/or implemented by an intermediate device, such as a phone, tablet (e.g., the external device 605), gateway, hub, or other power tool separate from the power tool 10.

[0071] To train the machine learning control 710, the machine learning controller 630 may be provided with a plurality of application profiles 805, as shown in graph 800 of FIG. 8. The plurality of application profiles 805 illustrated includes a 120 MCM A1 crimping profile, a 50 MCM A1 crimping profile, a 50 MCM Cu Ctap profile, a 240 MCM Cu Splice profile, a 35 MCM Cu Splice profile, and a 120 MCM Cu Splice profile, but additional application profiles may also be included in the plurality of application profiles 805. Additionally, while illustrated as a graph 800, the application profiles 805 can also correspond to tables of values or other sets of numerical values that represent the application profiles 805. Each application profile 805 provides, for example, an expected change in the pressure of the piston cylinder 26 over time as the corresponding crimping application is performed by the power tool 10. Additionally, each application profile may be labelled such that the machine learning controller 630 can learn the expected profile for each application. While only pressure profiles are illustrated, other profiles may be used to train the machine learning control 710, such as a voltage profile, a current profile, a position profile, and the like.

[0072] In embodiments where the machine learning program is implemented by the controller 400 (e.g., locally on the power tool 10), the machine learning control 710 may require firmware or memory updates. Accordingly, a prompt asking a user to update the machine learning program may be provided via the indicators 445 or on a display of the external device 605. Additionally, a user may provide feedback to the machine learning program via the external device 605, such as confirming typical or popular crimping applications performed by the power tool 10.

[0073] Returning to FIG. IB, when a crimping operation is initiated (e.g., by pressing a motor activation trigger 460 of the power tool 10), the input shaft 50 is driven by the motor 12 in a counter-clockwise direction, thereby rotating the valve actuator 46 counter-clockwise. In some embodiments, the electric current flow through the motor 12 initially increases with in rush current and then drops to a steady state current flow. As the valve actuator 46 rotates counter-clockwise, rotational or centrifugal forces cause the second set of pawls 56 to extend from the body 48 and the first set of pawls 52 to retract into the body 48. As the input shaft 50 continues to rotate, one of the pawls 56 engages the second radial projection 64, rotating the return valve 34 clockwise from the open position to a closed position in which the return port 38 is misaligned with the return passageway 42.

[0074] Each type of die (e.g., size and shape) for a particular power tool 10 along with the type of workpiece material (e.g., malleable metal) can correspond to different piston cylinder pressures, motor speeds, motor currents, and other characteristics over the time the crimp is being performed (e.g., the crimper head 72 is closing and opening). These characteristics (e.g., piston cylinder pressure, motor speed, ram distance, motor current, etc.) are used to monitor, analyze, and evaluate the activity of the power tool 10. For instance, by monitoring these characteristics, the controller 400 may determine the type of die used, the operation or application performed by the power tool 10, or the like. This may, for example, assist in confirming the correct type of die was used on a workpiece.

[0075] FIG. 9 provides a method 900 for determining a crimping application performed by the power tool 10. The steps of the method 900 are shown for illustrative purposes. The controller 400 can perform one or more of the steps in an order different than that shown in FIG. 9, or one or more steps of the method 900 can be removed from the method 900. Additionally, the method 900 may be performed by the controller 400 in conjunction with the machine learning controller 630.

[0076] Conventionally, a controller or power tool does not include a technical solution to categorizing or labeling a particular crimping application. Rather, a user of the tool would have to manually record or make note of what crimping action is being performed. The efficiency of completing operations at a worksite would be significantly improved if a power tool or controller were capable of receiving a variety of sensor inputs and, based on those sensor inputs, identify a specific type of operation (e.g., a particular type of crimp operation) that was performed by the power tool without user intervention. By automatically identifying what type of operation has been performed by the power tool, a user of the power tool can formally document what operations were performed, verify that the correct number of operations were performed, and that each operation satisfied technical requirements for the operation (e.g., maximum output pressure achieved, etc.). Indications can then be provided to the user (e.g., through the tool 10 display or indicator, the external device 605’s display, a generated report that is disseminated specifically to the tool 10 or the user’s external device 605 associated with an account on the server 625, etc.). For example, the power tool 10 may provide a visual indication of when a required number of a particular operation has been performed, or the power tool 10 may be stopped (e.g., prevented from performing further operations as a result of the required number of the particular operation having been performed). In some embodiments, a setting of the power tool 10 is changed after the required number of the particular operation have been performed (e.g., corresponding to a subsequent particular operation that is required to be performed). All of these control or notification features associated with the tool 10 are technically implemented using the operation determination techniques described herein.

[0077] At step 905, the controller 400 and/or the machine learning controller 630 receives one or more sensor signals. For example, the controller 400 may receive pressure signals from the pressure sensor 68 indicating a pressure in the piston cylinder 26. The controller 400 may receive speed signals from the speed sensor indicative of the speed of the motor 12. The controller 400 may receive current signals from the current sensor indicative of the electric current flow through the motor 12. The controller 400 may receive positions sensors from the position sensor 150 indicative of the position of the crimper head 72. As the controller 400 receives the sensor signals, the controller 400 may monitor the change in the sensor signals over time. In some embodiments, the pressure in the piston cylinder 26 is estimated, substituted, and/or combined with the input current, motor torque, and/or other torque within the power tool 10. Additionally, when analyzing the pressure, current, and torque inputs, the controller 400 may account for leakages and other losses in the pressure, current, and torque.

[0078] At step 910, the controller 400 and/or the machine learning controller 630 determines a first operating characteristic of the piston cylinder 26. The first operating characteristic may be based on the pressure signals received from the pressure sensor 68, such as the hydraulic work (e.g., time average pressure), contact distance (e.g., touch off percent), a maximum time derivative of pressure, an average time derivative of pressure, a minimum time derivative of pressure, a negative time derivative of pressure, a touch off time, a total operating time, an average time derivative of pressure, or an average second time derivative of pressure. In some embodiments, the first operating characteristic is based on the position signals received from the position sensor 150, such as a total distance travelled by the jaws 32 and/or the piston cylinder 26. In some embodiments, the first operating characteristic is based on voltage signals from the voltage sensor and current signals from the current sensor. For example, the total energy provided to the motor 12 may be determined based on the voltage signals and the current signals. In some embodiments, the first operating characteristic is based on a combination of various sensor signals.

[0079] At step 915, the controller 400 and/or the machine learning controller 630 determines a second operating characteristic of the piston cylinder 26. The second operating characteristic may be any of those listed above with respect to the first operating characteristic. However, the second operating characteristic may be different than the first operating characteristic.

[0080] At step 920, the controller 400 and/or the machine learning controller 630 determines the crimping application of the power tool 10. In one embodiment, the controller 400 and/or the machine learning controller 630 compares the first operating characteristic and the second operating characteristic to the plurality of application profiles 805. For example, the FIGS. 10A-10C provide a variety of pressure profiles plotted according to the selected first operating characteristic and the selected second operating characteristic. FIG. 10A illustrates a first graph 1000 with a first operating characteristic 1005 on the y-axis and a second operating characteristic 1010 on the x-axis. In the example of FIG. 10A, the first operating characteristic 1005 is the time average pressure (e.g., the hydraulic work), and the second operating characteristic 1010 is the touch off percent (e.g., the contact distance). A plurality of crimping applications are graphed according to the value of their hydraulic work and their contact distance, as determined by the sensor signals.

[0081] The controller 400 and/or the machine learning controller 630 can compare the measured first operating characteristic and the measured second operating characteristic with expected values to determine a probability of a particular crimping application having been performed. For example, FIG. 10A provides a first region 1015, a second region 1020, and a third region 1025 defined by values of the time average pressure and the touch off percent. Specifically, the first region 1015 is defined by a time average pressure of greater than approximately 2200 (e.g., as determined by the machine learning controller 630). The second region 1020 is defined by a time average pressure of less than approximately 2200 and a touch off percent of less than approximately 0.048 (e.g., as determined by the machine learning controller 630). The third region 1025 is defined by a time average pressure of less than approximately 2200 and a touch off percent of greater than approximately 0.048.

[0082] By comparing the measured time average pressure and the measured touch off percent to the expected values within the first region 1015, the second region 1020, and the third region 1025 as the power tool 10 operates, the controller 400 and/or the machine learning controller 630 may determine the crimping application that was performed. For example, should the measured time average pressure be greater than 2200, the performed application is either the 50 MCM Cu Ctap or the 240 MCM Cu Splice (as provided by legend 1030). If the measured time average pressure is less than 2200 and the touch off percent is less than 0.048, the performed application is either the 120 MCM A1 crimp, the 150 MCM Cu splice, or the 50 MCM A1 crimp (provided by legend 1030). If the measured time average pressure is less than 2200 and the measured touch off percent is greater than 0.048, the performed application is the 35 MCM Cu splice.

[0083] When several possible applications he within the same region (such as the first region 1015 and the second region 1020), the controller 400 and/or the machine learning controller 630 may determine a probability of each application. For example, when the measured time average pressure is 1750 and the touch off percent is 0.040, the controller 400 and/or the machine learning controller 630 may determine there is a 50% probability the crimping application is a 120 MCM A1 crimp, a 40% probability the crimping application is a 120 MCM A1 splice, and a 10% probability the crimping application is a 50 MCM A1 crimp. The determined crimping application may be the crimping application with the highest probability. In some embodiments, the controller 400 or machine learning controller 630 can also be used to diagnose and report a reason for failure of the power tool 10 based on the operating characteristics of the power tool 10.

[0084] FIG. 10B provides a graph 1040 with an alternative first operating characteristic 1045. In the example of FIG. 10B, the first operating characteristic 1045 is an average slope of the pressure between 1-3 kPSI, while the second operating characteristic 1050 remains the touch off percent. Graph 1040 includes a first region 1060 and a second region 1065. The first region 1060 is defined by a measurement of touch off percent less than approximately 0.048. The second region 1065 is defined by a measurement of touch off percent greater than approximately 0.048. Similar to the example described with respect to FIG. 10A, the controller 400 and/or the machine learning controller 630 may determine the crimping application of the power tool 10 by comparing the measured first operating characteristic and the measured second operating characteristic with values within the data in the graph 1040.

[0085] FIG. IOC provides a graph 1070 with an alternative first operating characteristic 1075. In the example of FIG. IOC, the first operating characteristic 1075 is a touch off time, while the second operating characteristic 1080 remains the touch off percent. Graph 1070 includes a first region 1090 and a second region 1095. The first region 1090 is defined by a measurement of touch off percent less than approximately 0.048. The second region 1095 is defined by a measurement of touch off percent greater than approximately 0.048. Similarly to the example described with respect to FIG. 10A, the controller 400 and/or the machine learning controller 630 may determine the crimping application of the power tool 10 by comparing the measured first operating characteristic and the measured second operating characteristic with values within the graph 1070.

[0086] FIG. 11 provides a method 1100 performed by the controller 400 and/or the machine learning controller 630 for comparing the first operating characteristic and the second operating characteristic to the first region 1015, the second region 1020, and the third region 1025 ofFIG. 10A. At block 1105, the controller 400 and/or the machine learning controller 630 determines whether the measured hydraulic work (e.g., the first operating characteristic, the time average pressure, etc.) is greater than 2200 Pavg (average pressure). If the hydraulic work is greater than 2200 P avg . the controller 400 and/or the machine learning controller 630 proceeds to block 1110. If the hydraulic work is less than 2200 Pavg, the controller 400 and/or the machine learning controller 630 proceeds to block 1115. At block 1110, the controller 400 and/or the machine learning controller 630 determines the application is within the first region 1015 and is either a 50 MCM Cu Ctap or a 240 MCM Cu splice.

[0087] At block 1115, the controller 400 and/or the machine learning controller 630 determines whether the measured touch off percent (e.g., the second operating characteristic, the contact distance, etc.) is greater than 4.75% touch off. If the measured touch off percent is greater than 4.75% touch off, the controller 400 and/or the machine learning controller 630 proceeds to block 1120. If the measured touch off percent is less than 4.75% touch off, the controller 400 and/or the machine learning controller 630 proceeds to block 1125. At block 1120, the controller 400 and/or the machine learning controller 630 determines the application is within the third region 1025, and that the application is a 35 MCM Cu splice.

At block 1125, the controller 400 and/or the machine learning controller 630 determines the application is within the second region 1020, and is either a 120 MCM A1 crimp, a 50 MCM A1 crimp, or a 120 MCM Cu splice.

[0088] While FIG. 11 provides a single “tree” of a method, in some embodiments, the crimping application is determined by a forest of such trees. For example, the controller 400 and/or the machine learning controller 630 may utilize a plurality of tree methods similar to that provided in FIG. 11, each tree determining the crimping application based on different operational characteristics. Accordingly, each tree has a unique output indicating the crimping application determined by that tree. The controller 400 and/or the machine learning controller 630 may then determine the crimping application based on which output has a majority among all of the tree methods.

[0089] The controller 400 and/or the machine learning controller 630 may determine the crimping application while the operation is being performed ore before the operation is started (rather than after the operation is performed). For example, the power tool 10 may have defined modes for the workpiece being operated on. The power tool 10 may accordingly have a predetermined pressure or displacement for each mode and/or selected die. When the crimping application is determined while the crimping operation is performed, the controller 400 and/or the machine learning controller 630 may alter the ending pressure or displacement for the remaining duration of the crimping operation. The crimping application may be determined during operation but after, for example, a predetermined period of time has passed since the beginning of the operation, an amount of pressure rise exceeds a pressure threshold, an amount of displacement exceeds a displacement threshold, or the like. When determining the crimping application during operation, the controller 400 and/or the machine learning controller 630 may detect that the determined crimping application does not align with the selected defined mode. In such a situation, the controller 400 and/or the machine learning controller 630 may provide an alert or notification using the indicators 445 (such as flashing a red or yellow light) or may perform a protective operation of the power tool (such as stopping or pausing the motor 12). The controller 400 and/or the machine learning controller 630 may require a user to verify the crimping application (e.g., override or confirm) prior to proceeding to finish the operation. For example, if the detecting touch-off distance or displacement does not align with the defined mode, the motor 12 may be controlled to pause or reverse to protect the workpiece. A user then verifies the crimpling application prior to restarting the motor 12. In some embodiments, the tool may receive a sound input for voice verification. For example, the controller 400 and/or the machine learning controller 630 may output, via a display or speaker, a confirmation request. A user of the power tool 10 then provides a verbal confirmation.

[0090] In some embodiments, the first operating characteristic, the second operating characteristic, and/or probabilities of certain crimping applications may be combined to determine the crimping application. For example, a user performs five crimping applications in succession. The controller 400 and/or the machine learning controller 630 determines that four of the five crimping applications are 120 A1 crimps, but 1 of the crimping applications is determined to be a 35 Cu splice. The controller 400 and/or the machine learning controller 630 may average (or otherwise apply a weight function to) the determined crimping applications to determine that all five crimping applications were 120 A1 crimps.

Additionally, the controller 400 and/or the machine learning controller 630 may account for the timing, the succession, the location, and the like when determining the crimping application(s). Historical information of the power tool 10 may also be used when determining the crimping application, such as which battery pack 480 is used, the user of the power tool 10, a geographical location of the power tool 10, and the like. In some embodiments, a user may preselect the crimping application performed by the power tool 10 (via, for example, the external device 605 or an input device of the power tool 10). The controller 400 and/or the machine learning controller 630 accounts for the preselected crimping application when determining subsequent operations. The preselection may include allowed crimping applications to limit the range of the power tool 10. Should the determined crimping application fall outside the range of what is allowed or typical of the power tool 10, the controller 400 and/or the machine learning controller 630 may output a warning via the indicators 445 or include a warning on the report 1200 (described in more detail below).

[0091] In some embodiments, the crimp has a distinguishing feature that the controller 400 and/or the machine learning controller 630 accounts for when determining the crimping application. For example, in FIG. 13, a crimp 1300 includes a protrusion 1305. The illustrated protrusion 1305 is a crush rib, or a narrow revolute ring. However, the protrusion 1305 may instead be of a different shape, such as spike, a knurl, a knurl -like region, a partial ring, a second sleeve (e.g., of another material), a bubble or compressible pocket, multiple sets of rings, multiple lines of protrusions, a wavy ring, and the like. The different protrusions 1305 may align with different brands or manufacturers of the crimp 1300, a type or size of the crimp 1300, an operating target for the crimp 1300, and the like.

[0092] Returning to FIG. 9, at step 925, the controller 400 and/or the machine learning controller 630 generates a report for the crimping application. For example, FIG. 12 provides a report 1200. The report 1200 includes, among other things, a service provider 1205, a location 1210, a usage history 1215, a tool identifier 1220, and a usage graph 1225. The service provider 1205 provides an indication of the company and the worker that performed the crimping application. For example, the company name, address, phone number, fax number, and website may be provided. The worker’s name, email, and phone number may be provided, among other contact information. The location 1210 provides an indication as to where the crimping application was performed, such as the customer name, a job name (or other job identifier), a specific location the crimping application was performed, a location based on GPS signals associated with the tool 10 or external device 605, and the like.

[0093] The usage history 1215 may provide an overall usage of the power tool 10 over a predetermined period of time. In the example illustrated in FIG. 12, the usage history 1215 provides a history of the power tool 10 from December 1 to December 31, 2017. However, other time ranges may also be provided. The usage history 1215 may include the tool identifier 1220, which may include a model number, a serial number, a barcode, a tool number, or some other alphanumeric identifier used to identifier the power tool 10. Additionally, a usage graph 1225 may provide a graph illustrating usage of the power tool 10 over the predetermined period of time. In some embodiments, the report 1200 includes some or all statistics used in determining the crimping application. Additionally, the report 1200 may include raw or encoded runtime sensor data used in determining the crimping application.

[0094] The report 1200 may also include a table 1230 providing further usage history of the power tool 10. The table 1230 may include, among other things, a cycle number column 1235, a date and time column 1240, a pressure value column 1245, an application column 1250, and additional notes column 1255. The table 1230 may also include more or fewer columns. The cycle column 1235 provides a cycle number that may be used to identify a number of uses of the power tool 10 or identify a specific operation cycle of the power tool 10. The date and time column 1240 provides the date and time at which the corresponding cycle number was performed. The pressure value column 1245 may provide a maximum pressure value reached during the corresponding cycle number, an average pressure value reached during the corresponding cycle number, or the like. The application column 1250 provides the crimping application performed during the corresponding cycle number, and may be the crimping application determined in step 920 of the method 900. The additional notes column 1255 may include additional information regarding the corresponding cycle number, such as whether or not the performed application was a success (e.g., a grade of the crimping application). The table 1230 is not limited to these columns, and may include, among other things, the temperature of the power tool 10 (e.g., the motor temperature, the battery pack temperature, etc.) for a corresponding cycle number, the hydraulic work performed by the power tool 10 for a corresponding cycle number, an average battery voltage of the battery pack 480 for a corresponding cycle number, an average battery impedance of the battery pack 480 for a corresponding cycle number, and the like.

[0095] In some embodiments, the report 1200 may prompt a user to verify or fill in a performed crimping application. Additionally, a user may override, confirm, or classify crimping applications in the report 1200. For example, should every crimping application on the report 1200 is a first type except for one (which is a second type). A user or viewer of the report 1200 may be prompted to label each crimping application as the first type, overriding the determination of the second type. In some embodiments, the prompt is provided via the external device 605. Additionally, the report 1200 may rank, prioritize, and/or filter crimping applications that have similar operating characteristics.

[0096] In some embodiments, the power tool 10 includes a display, such as, for example, a liquid-crystal display (LCD), a light-emitting diode (LED) screen, an organic LED (OLED) screen, a digit display, and the like. The display may be integrated into the housing of the power tool 10, may be detachable from the power tool 10, or completely separate (e.g., unattachable) from the power tool 10. The display may directly provide the report 1200 on the power tool 10.

[0097] The report 1200 provides a way to confirm that the correct crimping applications were performed at a given location. For example, should 60500 MCM Cu crimps need to be performed at a first location, and 40 600 MCM A1 crimps need to be performed at an adjacent location, the report 1200 can confirm the correct crimping applications were performed at each location, reducing or eliminating any need for an inspector or other third party to check that wiring was correctly performed. [0098] In some embodiments, the controller 400 and/or the machine learning controller 630 adjusts operation of the power tool 10 based on the determined crimping application. For example, the controller 400 and/or the machine learning controller 630 may determine the crimping application while operation of the motor 12 is still occurring. The controller 400 and/or the machine learning controller 630 may change a target pressure (for example, from 12,000 psi to 6,000 psi) during operation of the motor 12. Other aspects of operation of the power tool 10 may also be adjusted, such as the stroke, displacement, and the like. When a cutting operation is performed (see below), the controller 400 and/or the machine learning controller 630 may detect the end of the cut based on the determined cutting application. Accordingly, the motor 12 can then be controlled to stop without smashing hardstops of the power tool 10, minimizing the tool wear on internal components.

[0099] In some embodiments, the power tool 10 changes gearing based on the determined crimping application (either while the operation is performed or after operation is complete in preparation for a subsequent operation). The controller 400 and/or the machine learning controller 630 may use the determined crimping application to identify whether the battery pack 480 has enough stored energy to complete the crimping application. In some embodiments, the controller 400 and/or the machine learning controller 630 uses the determined crimping application to determine whether a second crimp is needed (e.g., determine a two-step crimping application).

[00100] In some embodiments, the controller 400 and/or the machine learning controller 630 maintains an inventory of a number of crimps in the memory 425. As crimping applications are determined, the controller 400 and/or the machine learning controller 630 monitors how many crimps are remaining. When the number of crimps decreases below a threshold, the controller 400 and/or the machine learning controller 630 automatically orders an additional number of crimps. Additionally, the controller 400 and/or the machine learning controller 630 may keep a counter of use or another estimation of wear of used dies. When the counter of use exceeds a usage threshold, the controller 400 and/or the machine learning controller 630 orders additional dies.

[00101] While the disclosure has primarily referred to a crimper embodiment, the power tool 10 may be capable of receiving other type of accessories beyond the jaws 32 for crimping. For example, rather than crimping, the power tool 10 may be used for cutting, sheering, or punching. Accordingly, controller 400 and/or the machine learning controller 630 may determine a type of cutting, sheering, or punching application. In some embodiments, the controller 400 and/or the machine learning controller 630 may determine that no application was performed by the power tool 10. In this instance, the power tool 10 may be run in the air without applying a force to a workpiece.

[00102] The classification could be broad (distinguishing between crimpers vs. cuts), more specifically distinguishing between large or small crimps, or specifically distinguishing which crimp). The classification could focus on which crimp was used or a characteristic of the crimp (e.g., wire type/material/stranded vs. concentric, vs. solid, manufacturer of crimp, etc.). The classifications could also include an unknown, other, or not-sure category.

[00103] Furthermore, while the method 900 of FIG. 9 is described with respect to a crimper, in some embodiments, the method 900 is implemented by other examples of the power tool 10, such as circular saws, jigsaws, bandsaws, drills-drivers, impact drivers, hammer drills-drivers, and the like. In other words, the operational data of other tool types may be processed by the machine learning controller 630 to generate outputs for and control operation of these other power tool types. In Table 2, below, a list of example power tools that implement the method 900 and associated examples of output indications (e.g., tool application types, tool application statuses, and tool statuses) that are provided by the output (in step 920) through implementing the method 900 are provided.

[00104] As discussed above with respect to FIGS. 1-13, the machine learning controller 630 has various applications and can provide the power tool 10 with an ability to analyze various types of sensor data and received feedback. Generally, the machine learning controller 630 may provide various levels of information and usability to the user of the power tool 10. For example, in some embodiments, the machine learning controller 630 analyzes usage data from the power tool 10 and provides analytics that help the user make more educated decisions. Table 3 below lists a plurality of different implementations or applications of the machine learning controller 630. For each application, Table 3 lists potential inputs to the machine learning controller 630 that would provide sufficient insight for the machine learning controller 630 to provide the listed potential output(s). The inputs are provided by various sources, such as the sensors 450, as described above.

[00105] When determining the application of the power tool 10 (at step 920), the controller 400 and/or the machine learning controller 630 may distinguish between actions (for example, a crimping action versus a cutting action). In some embodiments, rather than determining the specific application performed by the power tool 10, the controller 400 and/or the machine learning controller 630 may more broadly characterize the application, such as distinguishing between a “large” crimp and a “small” crimp. Additionally, the controller 400 and/or the machine learning controller 630 may determine a characteristic of the crimp itself, such as a type of wire crimped, a shape of the crimp, a manufacturer of the crimp, and the like. The determination of the application may also include a certainty (e.g., a confidence level) of the controller 400 and/or the machine learning controller 630. Each of these may be included in the report 1200.

[00106] The controller 400 is also configured to, for example, determine whether an operation of the power tool 10 was a successful operation or a likelihood that the operation was a successful operation. Specifically, the machine learning techniques described above can also be used to determine if an operation was successful or the likelihood that the operation was a successful operation as set forth below.

[00107] Most crimping tools work by either monitoring the pressure applied by the tool or the current draw coming from the tool’s battery pack. Once the pressure or current reaches certain levels, the tool will provide an indication to the user letting them know a good crimp has been made. Throughout the years, improvements have been made to the original pressure monitoring technology by using predictive force monitoring, which ensures optimal pressure is reached. Additionally, with the advent of the dieless crimper, a new method for grading crimps was created using a combination of auto distance control and pressure measured over the connection. Further technologies such as the use of the first and second derivatives on a current curve over time during an application to ensure a good crimp have also been considered. This works by checking if the first derivative is above a predetermined threshold and the second derivative is greater than zero. [00108] Current literature on Machine Learning (“ML”) within the Internet of Things (“IoT”) is generally focused on the collection of data through embedded system nodes where the ML models run in a cloud environment. Additional literature focuses on the application of ML models within IoT devices. One such area of expansion is the spotlight on diagnostics for machinery within industrial processes — known as Industry 4.0. Industry 4.0 focuses on learning a system’s behavior so abnormalities can be predicted and acted upon to prevent downtime or reactionary maintenance.

[00109] Additionally, machine learning is implemented on embedded systems capable of hosting an operating system. However, there has been little or no progress in adapting ML models to ultra-low powered microprocessors through the use of technologies, such as TensorFlow Lite.

[00110] Embodiments described herein expand upon current state-of-the-art methods for detecting good crimps by using an ML classifier running on an ultra-low powered microprocessor (e.g., processing unit 405). The processing unit 405 may further be assisted by software designed to enable on-device machine learning, such as TensorFlow Lite. The task of grading a crimp as either a pass or fail is one of classification so both Decision Trees (“DTs”) and Artificial Neural Networks (“ANNs”) may be used. While DTs, such as the Random Forest DT, are well suited for this type of application, there is value in providing the tool’s control algorithms with a confidence level in the grading outputted by the ML learner. Accordingly, an ANN built as a probabilistic classifier may also be implemented.

[00111] FIG. 15 provides a method 1500 for evaluating crimping applications with the assistance of machine learning applications. The steps of the method 1500 are shown for illustrative purposes. The controller 400 can perform one or more of the steps in an order different than that shown in FIG. 15, or one or more steps of the method 1500 can be removed from the method 1500. Additionally, the method 1500 may be performed by the controller 400 in conjunction with the machine learning controller 630.

[00112] At step 1505, the controller 400 monitors a pressure applied by the power tool 10. For example, the pressure sensor 68 provides signals indicative of the pressure of the piston cylinder 26 to the controller 400. During an application, the power tool 10 gathers and stores the current pressure at a predetermined time interval, such as every 64 milliseconds, 32 milliseconds, or the like. Additionally, the power tool 10 may determine the beginning and end of each crimping application based on feedback from the sensors 450. [00113] At step 1510, the controller 400 constructs a pressure curve for the crimping application. For example, the controller 400 plots the pressure valves indicated by the pressure sensor 68 over the duration of the crimping application. At step 1515, the controller 400 processes the pressure curve. For example, the controller 400 determines a plurality of features as a function of the pressure curve or another tool property. These features may be implemented as inputs to the ANN, which is implemented by the controller 400 of the power tool 10. Examples of the plurality of features include:

1. Cumulative time in milliseconds spent below a first pressure threshold (e.g., 500PSI)

2. Cumulative time in milliseconds spent above a second pressure threshold (e.g.,

8500PSI)

3. Total application time in milliseconds

4. Hydraulic Work shown in EQN. 1 and estimated by EQN. 2: 2

5. Average derivatives of curve broken into several intervals, for example, EQN. 3 demonstrates this for the first interval. Examples below provide average derivative of the curve broken into four intervals.

6. Whether the crimping application was a success (“PASS”) or a failure (“FAIL”).

[00114] Similar to the implementation of diagnostic sensing, the processing unit 405 may run a classifier to classify the crimping application. For example, the crimping application may be classified according to whether it was a success (e.g., a pass or a fail), may be classified according to a type of crimping application performed, or the like. Hence, a similar architecture including a sensing component, user, and microprocessor is implemented. Flexibility in pin package, storage space - flash and RAM, clock speed, and floating point unit (FPU) make the processing unit 405 suitable for the real time requirements of commutating a brushless motor, monitoring various sensors 450, and processing data for input into the neural network. The ANN is trained prior to being compiled into a single constant array stored in flash memory and loaded into RAM during runtime. This array represents the weights and biases associated with the neural network’s construction and the layers are built through a stack of function calls.

[00115] To train the ANN, data was gathered through the extraction of pressure curves from several high tonnage electrical crimpers with thousands of cycles across a variety of sizes and materials. Additionally, the data gathered contained a 7:3 ration of pass to fail cycles. Where more failed cycles were needed, crimps were made utilizing the most common mistakes reported by users in the field.

[00116] After the pressure curves have been gathered, the pressure curves are processed into vectors containing the features outlined above. An example of one such vector is [10624, 128, 11776, 5754304, 0.00001061, 0.00001061, 0.00001061, 0.05112092, Fail] In some instances, the large magnitude differences between various parameters extracted from the pressure curves cause one part of the neural network to dominate. Accordingly, in some embodiments, the controller 400 is configured to normalize the data of the vector. For example, Min-Max and Z-transform normalization techniques may be used. After normalization, the above vector is [0.46563, -0.86700, 0.06390, -1.17607, -0.05341, - 0.05178, -0.05831, -0.06898, 0] Equation 4 provides an example of the Z-transform:

[00117] The number of hidden layers of the model may be minimized to keep processing power low. Only a single hidden layer is needed if, for example, the first layer contains triple the number of nodes as inputs to the network. Table 4 depicts an example of the neural network architecture.

TABLE 4: NEURAL NETWORK ARCHITECTURE [00118] Once the model is trained and saved, it is run through an on-device converter application (such as TensorFlow Lite) to prepare it for the processing unit 405. In embodiments where the system includes a floating point unit (“FPU”), the model may be converted without quantization. Alternatively, when an FPU is not present, the model may be quantized. In instances where the speed requirements for processing are not met, a quantized model conversion may be implemented. For training, validation, and testing, the data is divided 8:1:1, respectively. Additional data gathered from tools outside the aforementioned dataset may be used to further test the accuracy of the model.

[00119] After training, the model is converted using the converter application to a data array (e.g., a C data array) containing all the information needed to execute the model on the processing unit 405. This array is added to the firmware project for the processing unit 405 and is used with the converter application library files. In some embodiments, the controller 400 also calculates the required inputs to the ANN during the crimping application. Once the controller 400 determines that the application has ended, at step 1520, the controller 400 evaluates the crimping application using the model. For example, the controller 400 classifies the crimping application. In some embodiments, when the model grades the crimping application as pass or fail with less than 85% confidence, the result returned from the model is evaluated by additional processing and tool sensor data.

[00120] At step 1525, the controller 400 provides an output indicative of the evaluation. For example, the controller 400 produces a final grade and displays the grade to the user (e.g., via indicators 445). In another example, the controller 400 includes the crimping grade on the report 1200. Once the model architecture described above is trained, the model performs well against the validation and test dataset. The validation losses versus the training losses are shown in FIG. 14.

[00121] Once training is complete, the last 10% of tool data is run through the model to predict its class. A total of 3034 cycles from the original dataset are classified with the ANN and the accuracy achieved was 99.7%. Additionally, 9781 cycles from two tools that are not part of the training or validation dataset are classified by the model and achieved an accuracy of 99.6%. Further, the sensitivity is 99.865% and the specificity is 98.537%. Both of these results demonstrate the ability of the model to grade crimps with high accuracy while maintaining an excellent sensitivity and specificity. Overall, these results confirm the successful implementation of machine learning on embedded systems for grading crimps made with a hydraulic crimping tool.

[00122] Thus, embodiments provided herein describe, among other things, systems and methods for evaluating a crimping application performed by a power tool.