Grinder with out-of-control detection

By integrating sensing circuits and controllers into the grinder, real-time monitoring of motor acceleration, current, and rotation speed and other parameters is achieved. By utilizing threshold and accumulator mechanisms, the problem of grinder out-of-control detection is solved, achieving safe and reliable operation control.

CN120606322APending Publication Date: 2025-09-09MILWAUKEE ELECTRIC TOOL CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510269594.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-08
Filing Date
2025-03-07
Publication Date
2025-09-09

AI Technical Summary

Technical Problem

During grinder operation, the user may lose control of the device, resulting in movement in an unintended direction or plane. Accurately detecting a loss of control event can be difficult and may result in wasted battery power or damage to the work surface.

Method used

The grinder is equipped with sensing circuits and controllers that detect parameters such as motor acceleration, battery current, rotational speed, and linear acceleration, and use predetermined thresholds and accumulator mechanisms to monitor and trigger the runaway function in real time to stop motor operation.

Benefits of technology

Effectively detects and responds to out-of-control conditions on the grinding machine, preventing battery waste and work surface damage, and improving operational safety and control accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120606322A_ABST
    Figure CN120606322A_ABST
Patent Text Reader

Abstract

A power tool includes: a housing; a motor positioned within the housing; an output shaft driven by the motor, the output shaft configured to be coupled to an accessory for operating the accessory; a sensing circuit configured to detect an operational characteristic of the motor during operation of the power tool; and a controller. The controller is configured to: receive a signal representative of an operational characteristic of the motor from the sensing circuit; comparing an operating characteristic of the motor with a first predetermined threshold; and performing an out-of-control check on the power tool in response to the operating characteristic exceeding the predetermined threshold. Performing the runaway check includes: comparing the detected motion of the power tool to a second predetermined threshold; and triggering an out-of-control function based on whether the detected movement of the power tool exceeds a second predetermined threshold.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 562,859, filed on March 8, 2024, the entire contents of which are incorporated herein by reference. Technical Field

[0003] Embodiments described herein provide power tools, including, for example, grinders, powered by a battery pack. Summary of the Invention

[0004] Embodiments described herein provide various systems and methods for operating a device (e.g., a grinder). In some embodiments, the grinder is configured for one-handed operation, wherein the grinder includes only a single grip (e.g., aligned with a body component of the grinder, as described and illustrated herein) and does not include a handle extending radially from the body of the grinder. In other embodiments, the grinder is configured for two-handed operation, wherein the grinder includes two grips. During operation of such a device, a user may lose control of the device, wherein the device moves in one or more unintended directions or in one or more unintended planes. Modifying the operation of the device (e.g., stopping the motor that drives the grinding attachment (e.g., a grinding disc)) can allow the user to regain control of the device without wasting battery power or damaging the work surface or environment. However, because the grinder moves in multiple directions during normal operation, determining when a loss of control has occurred is difficult. As a result, the controller may incorrectly detect that a loss of control event has occurred.

[0005] In some aspects, the technology described herein relates to a power tool comprising: a housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to connect to an accessory for operating the accessory; a sensing circuit configured to detect an operating characteristic of the motor during operation of the power tool, the operating characteristic being at least one of motor acceleration and battery current of the battery pack; and a controller configured to: receive a signal representing the operating characteristic of the motor from the sensing circuit; compare the operating characteristic of the motor with a first predetermined threshold; and in response to the operating characteristic exceeding the predetermined threshold, perform an out-of-control check on the power tool, wherein performing the out-of-control check comprises: comparing detected movement of the power tool with a second predetermined threshold; and triggering an out-of-control function based on whether the detected movement of the power tool exceeds the second predetermined threshold.

[0006] In some aspects, the technology described herein relates to a power tool comprising: a housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to couple to an accessory for operating the accessory; sensing circuitry configured to detect, during operation of the power tool, a first rotational speed of the power tool about a first axis, a second rotational speed of the power tool about a second axis, and a third rotational speed of the power tool about a third axis; and a controller configured to: Receiving one or more signals representing a first rotational speed, a second rotational speed, and a third rotational speed from a sensing circuit; applying a first sensitivity value to the first rotational speed, a second sensitivity value to the second rotational speed, and a third sensitivity value to the third rotational speed to obtain a first adjusted rotational speed, a second adjusted rotational speed, and a third adjusted rotational speed; summing the square of the first adjusted rotational speed, the square of the second adjusted rotational speed, and the square of the third adjusted rotational speed; comparing the sum to a predetermined threshold; and triggering an out-of-control function based on whether the sum exceeds the predetermined threshold.

[0007] In some aspects, the technology described herein relates to a power tool comprising: a housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to couple to an accessory for operating the accessory; a sensing circuit configured to detect linear acceleration of the power tool along an axis during operation of the power tool; and a controller configured to: (a) receive a signal from the sensing circuit representing the linear acceleration of the power tool along the axis; (b) compare the linear acceleration to a predetermined threshold; and (c) stop the motor in response to the linear acceleration satisfying the predetermined threshold.

[0008] Before any embodiments are explained in detail, it will be understood that the embodiments are not limited in their application to the details of construction and arrangement of components set forth in the following description or illustrated in the accompanying drawings. The embodiments can be practiced or implemented in various ways. Moreover, it will be understood that the words and terms used herein are for descriptive purposes and are not to be construed as limiting. The use of "including," "comprising," or "having" and variations thereof is intended to encompass the items listed thereafter and their equivalents as well as additional items. Unless otherwise specified or limited, the terms "mounted," "connected," "supported," and "coupled," and variations thereof, are used broadly and encompass both direct mountings, connections, supports, and couplings as well as indirect mountings, connections, supports, and couplings.

[0009] In addition, it should be understood that embodiments may include hardware, software, and electronic components or modules, which, for the purposes of discussion, may be illustrated and described as if most components are implemented only in hardware. However, those of ordinary skill in the art will recognize, based on a reading of this detailed description, that in at least one embodiment, electronic-based aspects may be implemented in software (e.g., stored on a non-transitory computer-readable medium) that may be executed by one or more processing units (e.g., microprocessors and / or application-specific integrated circuits ("ASICs")). Thus, it should be noted that embodiments may be implemented using a plurality of hardware- and software-based devices and a plurality of different structural components. For example, the "server," "computing device," "controller," "processor," etc. described in the specification may include one or more processing units, one or more computer-readable media modules, one or more input / output interfaces, and various connectors (e.g., a system bus) connecting these components.

[0010] Relative terms used in conjunction with quantities or conditions (e.g., "about," "approximately," "substantially," etc.) will be understood by those of ordinary skill in the art to include the stated value and have the meaning dictated by the context (e.g., the terms include at least the degree of error associated with measurement accuracy, the tolerance associated with a particular value [e.g., manufacturing, assembly, use, etc.], etc.). Such terms should also be considered to disclose a range defined by the absolute values ​​of the two endpoints. For example, the expression "from about 2 to about 4" also discloses a range "from 2 to 4." Relative terms can refer to positive and negative percentages of the indicated value (e.g., 1%, 5%, 10%, or more).

[0011] It should be understood that although some of the accompanying drawings illustrate the hardware and software within a particular device, these depictions are for illustrative purposes only. Unless explicitly described to the contrary, the functions described herein as being performed by a component can be performed in a distributed manner by multiple components. Similarly, the functions performed by multiple components can be merged and performed by a single component. In some embodiments, the illustrated components can be combined or divided into separate software, firmware and / or hardware. For example, logic and processing can be distributed among multiple electronic processors, rather than being located in and performed by a single electronic processor. Similarly, even if the embodiments described or illustrated herein have a single such device or element, one or more memory modules and communication channels or networks can also be used. Moreover, no matter how they are combined or divided, the hardware and software components can be located on the same computing device, or can be distributed among multiple different devices. Thus, in a claim, if a device, method, or system is claimed, for example, as including a controller, control unit, electronic processor, computing device, logic element, module, memory module, communication channel or network, or other element that is configured in some manner to, for example, perform multiple functions, then the claim or claim element should be interpreted to mean one or more of such elements, where any one of the one or more elements is configured as claimed to, for example, implement any one or more of the recited multiple functions, such that the one or more elements as a set collectively perform the multiple functions.

[0012] Similarly, components described as performing a particular function may also perform additional functions not described herein.For example, a device or structure that is "configured" in a certain way is configured in at least that way, but may also be configured in ways that are not explicitly listed.

[0013] Other aspects of the embodiments will become apparent by consideration of the detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 is a perspective view of a power tool according to some embodiments.

[0015] Figure 2 is a side view of a power tool according to some embodiments.

[0016] Figure 3 Illustrated is a diagram for use according to some embodiments Figure 1 Controllers for power tools.

[0017] Figure 4A 、 Figure 4B ,as well as Figure 5 The diagram illustrates a method according to some embodiments Figure 1 Various movements of power tools.

[0018] Figure 6 is a flow chart illustrating a method of detecting a loss of control event of a power tool according to some embodiments.

[0019] Figure 7 is a flow chart illustrating a method of detecting a loss of control event of a power tool using signed direction, according to some embodiments.

[0020] Figure 8 is a flow chart illustrating a method of detecting a runaway event of a power tool using motor acceleration and / or battery current, according to some embodiments.

[0021] Figure 9 is a flow chart illustrating a method of detecting a loss of control event of a power tool using vector magnitude according to some embodiments.

[0022] Figure 10 is a flow chart illustrating a method of detecting a loss of control event of a power tool using drop detection, according to some embodiments.

[0023] Figure 11 is a flow chart illustrating a method of detecting a loss of control event of a power tool using linear acceleration, according to some embodiments.

[0024] Figure 12 Schematically illustrates an inertial measurement unit (IMU) configured to provide Figure 1 The power tool controller provides a wake-up interrupt.

[0025] Figure 13A is a side view of a power tool according to some embodiments.

[0026] Figure 13B According to some embodiments Figure 1 Bottom view of the power tool.

[0027] Figure 14 is a side view of a power tool according to some embodiments.

[0028] Figure 15 Illustrated is a diagram for use according to some embodiments Figure 13A and Figure 13B or Figure 14 Controllers for power tools.

[0029] Figure 16 The diagram illustrates a method according to some embodiments Figure 13A and Figure 13B A power tool comprising a loss-of-control module.

[0030] Figure 17 The diagram illustrates a method according to some embodiments Figure 16 power tools.

[0031] Figure 18 The diagram illustrates a method according to some embodiments Figure 16 power tools.

[0032] Figure 19 The diagram illustrates a method according to some embodiments Figure 16 power tools.

[0033] Figure 20 The diagram illustrates a method according to some embodiments Figure 16 power tools.

[0034] Figure 21 is a flow chart illustrating a method of controlling a power tool according to some embodiments.

[0035] Figure 22 is a flow chart illustrating a method of controlling a power tool according to some embodiments. DETAILED DESCRIPTION

[0036] Figure 1 A power tool (e.g., a portable rotary power tool) is illustrated that implements several different methods and systems for controlling the tool and the tool's motor. In some embodiments, the portable power tool is a grinder 100. The grinder 100 may include: a tool main housing 120; a first handle 140 that extends along the tool main housing 120; and a second handle 105 that extends laterally outward from the tool main housing 120 and can be connected to the main housing via a connector 115. The motor 210 (at Figure 2 ) is located within the tool main housing 120. The output shaft 125 driven by the motor 210 can be coupled to a tool holder, which can be configured to receive accessories 150 (e.g., cutting tools, grinding discs, rotating burrs, sanding discs, etc.). Various types of accessories can be interchangeably attached to the tool holder and can be designed with different characteristics to perform different types of operations. For example, the accessory 150 can be made of a certain material and have a size suitable for performing a specific type of task. The characteristics of the accessory may affect the performance of the grinder 100 or may impose constraints on the operation of the tool. For example, different accessory types can be configured to operate at different rotational speeds or applied torques depending on the characteristics of the accessory and the task to be performed. During operation of the grinder 100, the motor 210 and the output shaft 125 can be controlled to rotate at a wide range of speeds.

[0037] Due to the wide range of speeds, in some embodiments, the grinder 100 can include a guard 130 to protect the user or another object in the surrounding environment from the different types of accessories that can be attached to the tool holder. In some embodiments, the guard 130 prevents the user from contacting the accessory 150. In some embodiments, the guard 130 provides, for example, spark protection.

[0038] In some embodiments, the first handle 140 can define a battery receptacle 145 positioned on an end of the first handle 140 opposite the main tool housing 120. The battery receptacle 145 is configured to selectively mechanically and electrically connect to a rechargeable battery pack (i.e., a power source) for powering the motor 210. The battery pack can be inserted into or attached to the battery receptacle 145. The battery pack can include any of several different nominal voltages (e.g., 12V, 18V, 24V, 36V, 40V, 48V, etc.) and can be configured with any of several different chemistries (e.g., lithium-ion, nickel-cadmium, etc.). In some embodiments, the motor 210 can be powered by a remote power source (e.g., an AC outlet) via the power cord and power interface of the grinder 100. The first handle 140 further contains control electronics for the grinder 100.

[0039] The second handle 105 can allow the user to better control the operation of the grinding machine 100. In some embodiments, the first handle 140 and / or the second handle 105 include various sensors for detecting different operating characteristics and / or user characteristics (e.g., operator presence, grip pressure, etc.). For example, the first handle 140 includes a first sensor 160 for detecting the presence of a user's hand on the first handle 140, and the second handle 105 includes a second sensor 165 for detecting the presence of a user's second hand on the second handle 105. In some embodiments, the sensors 160, 165 are pressure sensors that detect the presence of minimum grip pressure on the handles 140, 105. Various signals from the sensors located in the second handle 105 can be sent to the main control system of the grinding machine 100, and the operation of the motor 210 can be controlled based on these signals (e.g., enabling or disabling the motor 210, modifying the torque limit, etc.).

[0040] Figure 2The diagram shows a side cross-sectional view of the grinder 100. In some embodiments, a controller 200 (e.g., located on a printed circuit board) is located within the first handle 140. In some embodiments, various sensors 205 may also be located within the first handle 140. An output shaft 125 projects downwardly toward a potential workpiece. In some embodiments, an accessory 150 (e.g., a grinder blade) may be attached to the output shaft 125. Because accessories 150 (e.g., grinder blades) are potentially hazardous to the user and the area surrounding the grinder, a protective shield 130 is also attached to the output shaft 125 and projects downwardly toward the workpiece and extends around the blade 150. This provides protection from the blade 150 and any potential debris generated during operation.

[0041] In some embodiments, the motor 210 is located between the output shaft 125 and the battery receptacle 145 and below the trigger 155 within the tool main housing 120. The trigger 155 is used to control the motor 210, which receives control signals from the controller 200 to control the output shaft 125 and other aspects of the grinder 100.

[0042] In some embodiments, the grinder 100 includes a guard presence sensor 215 for detecting the presence of the guard 130. In some embodiments, when the guard presence sensor 215 does not detect the guard 130, the grinder 100 is prevented from operating (e.g., the motor 210 is prevented from operating). The grinder 100 also includes a component type indicator 220. The component type indicator 220 is configured to provide the grinder 100 with an indication of the type of component (e.g., the guard 130) connected to the grinder. For example, guards of different sizes may cause the grinder 100 to operate differently. Although the component type indicator 220 is illustrated with respect to the guard 130, the component type indicator may additionally or alternatively be associated with another component of the grinder 100, such as the second handle 105, the dust hood, the accessory 150, etc.

[0043] The first handle 140 includes a switch or trigger 155 operable to electrically connect a power source (e.g., a battery pack) to the motor 210. In some embodiments, the trigger 155 can be a "lock-off" trigger having a paddle member and a locking member supported by the paddle member. The paddle member is operable to actuate a switch electrically connected to the controller 200. The switch is configured to control the selective activation and deactivation of the motor 210 during operation of the grinder 100. The locking member is configured to selectively block operation of the paddle member (e.g., block activation of the switch). In some embodiments, the paddle member serves as a detector of the user's first hand on the first handle 140. In other embodiments, other sensors (e.g., a grip sensor, a pressure sensor, a touch sensor, an electromechanical sensor, etc.) are used to detect the user's hand. The first handle 140 further includes a second trigger 170 that activates the grinder 100 to rotate the accessory 150.

[0044] Figure 3 The control system for the grinding machine 100 is illustrated. The control system includes a controller 300. The controller 300 is electrically and / or communicatively connected to one or more modules or components of the grinding machine 100. For example, the illustrated controller 300 is electrically connected to a motor 305 (e.g., motor 210), a battery pack interface 310, a trigger switch 315 (connected to a trigger 320), one or more sensors or sensing circuits 325, one or more indicators 330, a user input module 335, a power input module 340, and a FET switch module 350 (e.g., including a plurality of switching FETs). The controller 300 includes a combination of hardware and software operable to, among other things, control the operation of the grinding machine 100, monitor the operation of the grinding machine 100, activate the one or more indicators 330 (e.g., LEDs), and the like.

[0045] The controller 300 includes a plurality of electrical and electronic components that provide power, operational control, and protection to the controller 300 and / or components and modules within the grinding mill 100. For example, the controller 300 includes, among other things, a processing unit 355 (e.g., a microprocessor, a microcontroller, an electronic processor, an electronic controller, or another suitable programmable device), a memory 360, one or more input units 365, and one or more output units 370. The processing unit 355 includes, among other things, a control unit 375, an arithmetic logic unit ("ALU") 380, and a plurality of registers 385, and is implemented using known computer architectures (e.g., a modified Harvard architecture, a von Neumann architecture, etc.). The processing unit 355, the memory 360, the input unit 365, and the output unit 370, as well as the various modules or circuits connected to the controller 300, are connected, for example, via one or more control buses and / or data buses (e.g., a common bus 390). In view of the embodiments described herein, the use of one or more control buses and / or data buses to interconnect and communicate among the various modules, circuits, and components will be known to those skilled in the art.

[0046] The memory 360 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 a combination of different types of memory, such as ROM, RAM (e.g., DRAM, SDRAM, etc.), EEPROM, flash memory, a hard drive, an SD card, or other suitable magnetic, optical, physical, or electronic memory devices. The processing unit 355 is connected to the memory 360 and executes software instructions, which can be stored in the RAM of the memory 360 (e.g., during execution), in the ROM of the memory 360 (e.g., on a generally permanent basis), or in another non-transitory computer-readable medium (e.g., another memory or an optical disk). The software included in the embodiment of the grinding machine 100 can be stored in the memory 360 of the controller 300. The software includes, for example, firmware, one or more application programs, program data, filters, rules, one or more program modules, and other executable instructions. The controller 300 is configured to retrieve and execute instructions from the memory 360, particularly those related to the control processes and methods described herein. In other configurations, the controller 300 includes additional, fewer, or different components.

[0047] The motor 305 includes a rotor and a stator surrounding the rotor. In some embodiments, the motor 305 is a brushless direct current ("BLDC") motor, in which the rotor is a permanent magnet rotor and the stator includes coil windings that are selectively energized to drive the rotor. In other embodiments, the motor 305 is a brushed motor. The stator is supported within the tool main housing 120 and remains stationary relative to the tool main housing 120 during operation of the grinder 100. The rotor is rotatably fixed to a rotor shaft and is configured to rotate with the rotor shaft relative to the stator about the motor axis. A portion of the rotor shaft is associated with or corresponds to an output shaft 125 or 225 extending from the tool main housing 120. In some embodiments, the motor 305 is an outrunner motor.

[0048] The battery pack interface 310 includes a combination of mechanical components (e.g., tracks, grooves, latches, etc.) and electrical components (e.g., one or more terminals) that are configured and operable to interface (e.g., mechanically, electrically, and communicatively connect) the grinding machine 100 with the battery pack. For example, power provided by the battery pack to the grinding machine 100 is provided to the power input module 340 via the battery pack interface 310. The power input module 340 includes a combination of active and passive components to regulate or control the power received from the battery pack, which is then provided to the controller 300. The battery pack interface 310 also supplies power to the FET switch module 350 to provide power to the motor 305. The battery pack interface 310 also includes, for example, a communication line 395 for providing a communication line or link between the controller 300 and the battery pack.

[0049] The indicator 330 includes, for example, one or more light emitting diodes ("LEDs"). The indicator 330 can be configured to display a condition of the grinding machine 100 or information associated with the grinding machine. For example, the indicator 330 is configured to indicate a measured electrical characteristic of the grinding machine 100, the status of the grinding machine 100, etc. A user input module 335 is operably coupled to the controller 300 to, for example, select a forward or reverse operating mode, a torque and / or speed setting for the grinding machine 100 (e.g., using a torque and / or speed switch), etc. In some embodiments, the user input module 335 includes a combination of digital and analog input or output devices required to achieve the desired level of operation of the grinding machine 100, such as one or more knobs, one or more dials, one or more switches, one or more buttons, etc.

[0050] The controller 300 is configured to determine whether a fault condition exists with the grinding machine 100 and generate one or more control signals related to the fault condition. The controller 300 may use input provided via the sensing circuit 325 to determine whether a fault condition exists. In some embodiments, the sensing circuit 325 includes one or more current sensors, one or more velocity sensors, one or more Hall effect sensors, one or more temperature sensors, an accelerometer, a gyroscope, an inertial measurement unit ("IMU"), one or more pressure sensors, one or more object presence sensors, the like, or a combination thereof. The IMU can determine the acceleration and velocity of the grinding machine 100 along multiple axes. The controller 300 calculates or stores in memory 360 predetermined operational thresholds and limits for the operation of the grinding machine 100. In response to detecting one or more such fault conditions with the grinding machine 100 or detecting that a previously detected fault condition with the grinding machine 100 no longer exists, the controller 300 may be configured to provide information and / or control signals to another component of the grinding machine 100 (e.g., the battery pack interface 310, the indicator 330, etc.).

[0051] In some cases, the controller 300 (or the sensing circuit 325, or a printed circuit board included in the controller 300 containing the sensing circuit 325) is configured to detect a fault condition based on the movement of the grinding machine 100. More specifically, the sensing circuit 325 is operable to generate an output signal including an X component, a Y component, and a Z component. These features are Figure 4A 、 Figure 4B ,as well as Figure 5 , and described below. In some examples, multiple sensors 405 are used to obtain X-component, Y-component, and Z-component information. In some embodiments, when the operator of the grinding machine 100 moves the grinding machine 100 across the workpiece, the controller 300 uses the sensing circuit 325 to detect the linear motion of the grinding machine 100, such as linear acceleration. The linear motion of the grinding machine 100 can be described as forward motion, reverse motion, and lateral motion relative to the workpiece. This lateral motion can be used to detect fault conditions, such as runaway events. The rotational motion of the grinding machine 100 can also be detected, and as described below, the rotational speed can be used to detect fault conditions, such as runaway events. Further, in some embodiments, both speed and acceleration (in one or more directions) can be used to detect fault conditions, such as runaway events.

[0052] Figure 4A 、 Figure 4B ,as well as Figure 5 Various motions of the grinding machine 100 are illustrated. It should be understood that the grinding machine 100 can engage any number of workpieces in any number of orientations, dimensions, or planes. Figure 4A(provides a top-down view of the grinding machine 100) and Figure 4B As illustrated in FIG. 1 (providing a side view of the grinding machine 100), the sensing circuit 325 can detect linear motion along a first linear direction 415 and a second linear direction 420, which can be understood as an X component and can represent forward and backward movement (e.g., longitudinal movement) of the grinding machine 100. The sensing circuit 325 can also detect linear motion along a third linear direction 425 and a fourth linear direction 430, which can be understood as a Y component and can represent lateral movement of the grinding machine 100. Figure 4B As illustrated in FIG, the sensing circuit 325 can further detect a fifth linear direction 440 and a sixth linear direction 445, which can be understood as a Z component, which can represent the linear movement of the grinding machine 100 into or away from the workpiece 450 (see, e.g., Figure 4A , which illustrates the result of moving the grinding machine 100 into a workpiece 450 that is positioned below the grinding machine 100 (i.e., in a top-down view of the grinding machine 100). The first linear direction 415, the second linear direction 420, the third linear direction 425, the fourth linear direction 430, the fifth linear direction 440, and the sixth linear direction 445 should all be understood as six possible linear motion directions in a Cartesian coordinate (e.g., XYZ components) system.

[0053] The grinder 100 may also move rotationally, and the sensing circuit 325 (e.g., a gyroscope of an IMU) may be configured to detect such rotational movement. Figure 5 As illustrated in FIG, the grinding machine 100 can rotate in the +X direction 500 or the −X direction 505, which represents rotation about the axis X (forward-backward rotation axis) defined by the first linear direction 415 and the second linear direction 420 (i.e., as shown in FIG. Figure 4A and Figure 4B X component as described and illustrated in ). Figure 5 As also illustrated in FIG. 1 , the grinding machine 100 can rotate in a +Y direction 510 or a −Y direction 515, which represents rotation about an axis Y (side-to-side rotation axis) defined by the third linear direction 425 and the fourth linear direction 430 (i.e., as shown in FIG. Figure 4A Similarly, the grinding machine 100 can be rotated in the +Z direction 520 or the -Z direction 525, which represents the rotation around the axis Z defined by the fifth linear direction 440 and the sixth linear direction 445 (see FIG. Figure 4B )(vertical axis of rotation) (i.e., as Figure 4B In other words, when the workpiece is positioned below the grinding machine 100 (e.g., Figure 5), rotation in the +X direction 500 or the −X direction 505 can represent the roll of the grinding machine 100 toward the workpiece. In this same example, rotation in the +Y direction 510 or the −Y direction 515 can represent the pitch of the grinding machine 100 toward the workpiece, and rotation in the +Z direction 520 or the −Z direction 525 can represent the yaw of the grinding machine 100 (e.g., in a plane parallel to the workpiece).

[0054] It should be understood that the sensing circuit 325 can generate and output signals representing one or more of the motions described above with respect to the grinder 100. The sensing circuit 325 can be configured to output such signals (e.g., to the controller 300) as individual signals, motion vectors, or in other formats that can represent a direction of movement, an amount of movement, a speed, an acceleration, or a combination thereof. Alternatively, the controller 300 can be configured to calculate one or more motions (e.g., a speed or an acceleration) of the grinder 100 based on the signals output by the sensing circuit 325. For example, in an embodiment where the sensing circuit 325 includes an IMU, the sensing circuit 325 can output signals representing the motion along the axis described above with respect to the grinder 100. Figure 4A 、 Figure 4B ,as well as Figure 5 A signal of velocity and / or acceleration in one or more of the described directions.

[0055] Out-of-control event detection

[0056] For example, Figure 6 A method 600 is illustrated for detecting a runaway event in a grinding machine 100. The method 600 can be implemented on a grinding machine 100 that includes a sensing circuit 325 that monitors movement of the grinding machine 100 and a controller 300, wherein the controller 300 (or the sensing circuit 325, or a printed circuit board included in a module 400 containing the sensing circuit 325) is configured to detect a runaway event in accordance with the method 600 via one or more output signals from the sensing circuit 325.

[0057] In some embodiments, the sensing circuit 325 detects a first value for a first axis, which is provided to or received by the controller 300 (block 605). In some embodiments, the first value is a rotational velocity value about the first axis (e.g., measured using an IMU). In some embodiments, the first axis is the Z component. The controller 300 takes the absolute value of the first value, which allows for simultaneous examination of both directions of movement (block 610), and compares the absolute value to a first threshold (block 615). In response to the first value exceeding the first threshold, the controller 300 adds an increment value associated with the first threshold to an accumulator (counter) (block 620). In response to the first value being at or below the first threshold, the controller 300 does not add the increment value to the accumulator, but in some embodiments may add a decrement value to the accumulator (e.g., if the accumulator has a non-zero value). The controller 300 checks the accumulator to determine whether the count on the accumulator has reached or exceeded a predetermined value (block 625). In response to the accumulator reaching the predetermined value, the controller 300 determines that a loss of control event has occurred (block 630). In response to a detected runaway event, controller 300 reduces power to motor 210 by stopping (ie, braking) motor 210 .

[0058] In response to the accumulator being at or below the predetermined value, the controller 300 switches to detecting movement in a different axis (a second value on a second axis) (block 635), which can be detected via the sensing circuit 325. In some embodiments, a state variable can be used to store a value indicating which axis should be checked next, which value can be updated each time the loop is run. The controller 300 can also use this variable to determine what threshold, accumulator value, etc. should be applied to the motion detected for a particular axis.

[0059] In some embodiments, the second value is a rotational velocity value about a second axis (e.g., measured using an IMU). In some embodiments, the second axis is the X component. The controller 300 may perform a check on the second value similar to the check performed on the first value. For example, the controller 300 may take the absolute value of the second value and compare it to a second threshold value, which may be the same as or different from the first threshold value. In response to the second value exceeding the second threshold value, the controller 300 adds an incremental value associated with the second threshold value to an accumulator (counter), which may be a dedicated accumulator for the second axis rather than the accumulator for the first axis. In response to the second value not exceeding the second threshold value, the controller 300 does not add the value to the accumulator. The controller 300 checks the accumulator to determine whether the accumulator has reached a predetermined value. In response to the accumulator reaching the predetermined value, the controller 300 determines that a runaway event has occurred. In response to the detected runaway event, the controller 300 reduces the power to the motor 210 by stopping (i.e., braking) the motor 210.

[0060] In response to the accumulator not reaching the predetermined value, the controller 300 switches to detecting movement in a different axis (a third value for a third axis) (block 635), which can be detected via the sensing circuit 325. In some embodiments, the third value is a rotational velocity value about the third axis (e.g., measured using an IMU). In some embodiments, the third axis is the Y component. The controller 300 can perform a check on the third value similar to the checks performed on the first and second values. For example, the controller 300 can take the absolute value of the third value and compare it to a third threshold, which can be the same as or different from the first or second thresholds. In response to the third value exceeding the third threshold, the controller 300 adds an incremental value associated with the third threshold to an accumulator (counter), which can be a dedicated accumulator for the third axis rather than the accumulators for the first and second axes. In response to the third value not exceeding the third threshold, the controller 300 does not add the value to the accumulator. The controller 300 checks the accumulator to determine whether the accumulator has reached the predetermined value. In response to the accumulator reaching a predetermined value, the controller 300 determines that a runaway event has occurred. In response to the detected runaway event, the controller 300 reduces power to the motor 210 by stopping (i.e., braking) the motor 210. In response to the accumulator not reaching the predetermined value, the controller 300 switches axes. Specifically, the controller 300 may cycle through the first axis, the second axis, the third axis, or a combination thereof, and the controller may continuously perform such rechecking until a runaway event is detected, the grinding machine 100 is stopped or shut down (powered off), a fault is detected, or a combination thereof. It should be understood that the controller 300 may sequentially check the first axis, the second axis, and the third axis, or may check two or more of the axes in parallel. It should also be understood that the controller 300 may be configured to check the three axes in various orders, not limited to the order described above. In addition, the controller 300 may be configured to check each axis and add any applicable incremental value to the associated accumulator and then check the values ​​of all accumulators to determine whether a runaway event has been detected.

[0061] Furthermore, in some embodiments, multiple thresholds may be used. For example, a velocity value detected along a particular direction (around a particular axis) may be compared to three or four different thresholds. Each threshold may be associated with a different accumulator value, such that a velocity value exceeding a larger threshold may be associated with a larger accumulator value than when the velocity value exceeds a smaller threshold. Thus, one or more control loops may be implemented to cycle not only across different axes, but also across different thresholds. For example, in some embodiments, a maximum threshold may increase the accumulator such that it requires 1-4 accumulations to trigger the fail-safe function, and a minimum threshold may require 90-100 accumulations to trigger the fail-safe function. In some embodiments, the one or more thresholds may also differ between different axes. For example, along the Z and Y directions, the thresholds may range from 4500 to 6500, while along the X direction, the thresholds may range from 10,000 to 11,500. In some embodiments, when one or more thresholds are used for a particular axis, in response to the detected speed value for that axis not satisfying any of the applicable thresholds, the controller 300 can be configured to decrement the associated accumulator as a way to recover or reset from a previous high rotation that may no longer occur.

[0062] Furthermore, in some embodiments, the signals received from the sensing circuit 325 and used in the method 600 (or other methods described herein) can be filtered. For example, in some embodiments, the rotational speed of the grinding machine 100 obtained for one axis (e.g., as read from a gyroscope associated with that axis) is filtered by calculating the average of the last nine or other predetermined number of readings of such data. Other types of filtering are also contemplated and can be used in various embodiments to establish delays, remove irrelevant or potentially erroneous data values, and so on.

[0063] While further features and functionality associated with detecting a runaway event are described below as being implemented within method 600 (or portions thereof) (including, for example, the use of an accumulator), it should be understood that the features and functionality described herein can be used alone or in conjunction with other basic methods, including methods in which an accumulator value may not be used (e.g., a separate value exceeding a threshold value can trigger a runaway function to address a detected runaway event). It should also be understood that the features and functionality described below can be implemented independently or in various combinations, and that in some embodiments, the set of such features implemented by the power tool can be configurable (e.g., by the manufacturer, end user, etc.).

[0064] As described in more detail below, because there are many ways to operate the grinding machine 100 (e.g., many different motions that can be used), there are many ways to lose control during operation of the grinding machine 100. Therefore, the method 600 can be combined with or modified to include one or more additional features for detecting a loss of control on the grinding machine 100.

[0065] Symbol Detection

[0066] In some cases, the controller 300 (or the sensing circuit 325, or a printed circuit board included in the module 400 containing the sensing circuit 325, or a combination thereof) implements a symbol detection feature. For example, some directions in which the grinder 100 rotates have higher sensitivity than other directions. The directions of rotation with higher sensitivity are the directions that are most likely to encounter high speeds during a runaway event. Therefore, those directions are more likely to trigger the runaway function. In some embodiments, the more sensitive directions (i.e., the critical directions) are the -X, +Y, and -Z directions. For example, considering the direction in which the blade is rotating, when the blade is stuck, the grinder 100 may rotate in the -Z direction 525 (see FIG. Figure 5 ) rotation. Similarly, when the user applies pressure to the flat side of the blade and the grinder 100 slides off the workpiece, the grinder 100 may rotate toward the +Y direction 510. Moreover, while rotation in both the -X direction 505 and the +X direction 500 may be less likely than rotation in other directions during a runaway event, rotation in the -X direction 505 may (e.g., based on empirical evidence) be more likely to occur in such situations.

[0067] Figure 7 A method 700 for detecting a loss of control event of a grinding machine 100 based on directional sensitivity is illustrated. The method 700 can be implemented via a grinding machine 100 that includes a sensing circuit 325 that monitors movement of the grinding machine 100 and a controller 300, wherein the controller 300 (or the sensing circuit 325, or a printed circuit board included in a module 400 containing the sensing circuit 325, or a combination thereof) is configured to execute the method 700 to detect a loss of control via an output signal from the sensing circuit 325.

[0068] like Figure 7 As shown in FIG, in method 700, the sensing circuit 325 detects a first value of a first axis (block 705). In some embodiments, the first value is a rotational velocity value about the first axis (e.g., measured using an IMU). In some embodiments, the first axis is a Z component. Figure 7As illustrated in , compared to method 600 , the absolute value of the first value is not taken, which means that the first value can be positive or negative (representing a rotational speed in the +Z or -Z direction). Therefore, in method 700, the first value is compared to: a first threshold associated with a first rotational direction about the first axis (e.g., a positive threshold associated with positive rotation about the first axis), and a second threshold associated with a second rotational direction about the first axis (e.g., a negative threshold associated with negative rotation about the first axis), where the second rotational direction is opposite to the first direction. The first threshold and the second threshold have different signs, and their values ​​(absolute values) can be different. For example, the threshold associated with a non-critical direction can be set to a higher value than the threshold associated with a critical direction, and in some embodiments, a multiplier can be used to distinguish between these values. Using a multiplier allows the threshold and accumulator values ​​to remain unchanged, while only the multiplier is applied to the non-critical direction. As described herein, the fail-safe function can be triggered based on two types of whether the rotational speed exceeds the threshold, and in some embodiments, an accumulator can be used to detect when the fail-safe function is triggered. However, in other embodiments, the rotational speed compared to two versions of the threshold value may be used to trigger the override function without using an accumulator.

[0069] For example, Figure 7As illustrated in FIG. 7 , which provides an example of processing Z component values, the -Z direction is set as a critical direction, and the +Z direction is set as a non-critical direction. Thus, to check for velocity in the -Z direction (the critical direction), the first value is compared to a negative version of the first threshold (because the direction is negative and does not take an absolute value) (at block 710). For example, in response to the first value being less than the negative version of the first threshold, the controller 300 may add an incremental value associated with the first threshold to the associated accumulator (block 715). Similarly, to check for velocity in the +Z direction (the non-critical direction), the first value is compared to a positive version of the first threshold multiplied by a multiplier (block 720), and in response to the first value being greater than the positive version of the first threshold multiplied by the multiplier, the controller 300 adds an incremental value associated with the first threshold to the accumulator (block 725). As described above, a non-critical direction is one that is less likely to encounter high velocity during a runaway event. Thus, the multiplier increases the first threshold, making the non-critical direction less likely to trigger the runaway function (i.e., less likely to have a value added to the accumulator). More specifically, because the non-critical direction is less likely to indicate a runaway event, the multiplier increases the threshold along the non-critical direction, which makes it more difficult for the first value to meet the first threshold and more difficult to add the value to the accumulator. Thus, as described above, the use of a multiplier allows the threshold for the critical direction (e.g., and the accumulator value (if necessary)) to remain unchanged and the threshold for the non-critical direction is adjusted simply by applying the multiplier to the existing threshold. In some embodiments, the value of the multiplier is between 2 and 4; however, other values ​​may be used depending on the threshold. It should also be understood that the multiplier can be applied in the opposite manner, wherein the threshold associated with the critical direction can be reduced or expressed as a fraction of the threshold for the non-critical direction.

[0070] like Figure 7 As illustrated in FIG, after comparing the first value to the first threshold value in both the positive and negative directions, the controller 300 checks the accumulator to determine whether the accumulator has reached a predetermined value (block 730). In response to the accumulator reaching the predetermined value, the controller 300 determines that a runaway event has occurred (block 735). In response to the accumulator not reaching the predetermined value, the controller 300 switches the axis (block 740). The controller 300 can execute the same blocks for both the X and Y components. In some embodiments, for the X component, the -X direction 505 is the critical direction and the +X direction 500 is the non-critical direction. This is because, during a runaway event, the -X direction 505 is more likely to encounter high speeds than the +X direction 500. In some embodiments, for the Y component, the +Y direction 510 is the critical direction and the -Y direction 515 is the non-critical direction. This is because, during a runaway event, the +Y direction 510 is more likely to encounter high speeds than the -Y direction 515.

[0071] Again, as mentioned above about Figure 6As described, it will be appreciated that multiple thresholds may be compared to the detected velocity value, and that different accumulated values ​​may be associated with different thresholds. Thus, the process may be repeated for additional thresholds. Figure 7 , and the method 700 may be implemented via one or more control loops that cover not only different thresholds but also different axes.

[0072] Motor speed and current sensing

[0073] In some cases, the controller 300 (or the sensing circuit 325, or a printed circuit board included in the module 400 containing the sensing circuit 325, or a combination thereof) is configured to detect a fault condition based on an operating characteristic of the motor 210. The operating characteristic of the motor 210 may be motor acceleration, battery current (indicating the power drawn by the motor 210 from the battery), or a combination thereof. When the grinder 100 experiences a runaway condition, the load may be removed from the grinder 100. Removing the load increases the rotational speed of the grinder 100. Therefore, when the load is removed and the rotational speed increases, the motor acceleration and battery current also increase. Thus, an increase in motor acceleration, an increase in battery current, or both, may indicate that the load has been removed from the grinder 100 (which is associated with a runaway condition).

[0074] For example, the controller 300 can be configured to receive a motor speed value from the sensing circuit 325, which the controller 300 uses to determine motor acceleration. Specifically, the controller 300 can be configured to use a predetermined number of previous motor speeds (e.g., stored in a cache having a variable size to account for a varying number of previous speeds) in combination with the current motor speed to determine the acceleration of the motor over a certain amount of time. In some embodiments, the predetermined number of previous motor speeds can be between two and five, and in some embodiments, the new (current) motor speed can be compared to the oldest previous speed (stored in the cache) to determine the motor acceleration to be compared to a threshold value, which can be, for example, between 300 and 700. In other embodiments, the predetermined number of previous motor speeds can be configurable (e.g., by a manufacturer, end user, etc.).

[0075] Alternatively or in addition, the controller 300 receives a battery current value (e.g., from the sensing circuit 325 or other battery management system or device). The controller 300 checks the battery current value against a predetermined battery threshold, which may be, for example, 10 amps, but may be a different value depending on the power tool and / or battery pack characteristics. In some embodiments, the controller 300 uses motor acceleration and / or battery current to detect a runaway event and may trigger a runaway function (to handle the detected runaway event) in response to one or both of these values ​​exceeding associated thresholds. Alternatively, in response to motor acceleration and / or battery current exceeding associated thresholds, the controller 300 may add a value to an accumulator (as described herein) and may use the accumulator to detect whether a runaway event has occurred. The value added to the accumulator may vary based on whether the motor acceleration threshold, the battery current threshold, or both thresholds are met, and in some embodiments, one or both of the motor acceleration and battery current may be compared to multiple thresholds, each having a different threshold. In yet other embodiments, the controller 300 may use the motor acceleration and / or battery current check as a preliminary check before performing one or more out-of-control checks on the power tool, such as one of the methods 600, 700, 900, or 1100 described above. For example, in some embodiments, the motor's operating characteristics (acceleration and / or battery current) may be compared to a threshold value, and whether the operating characteristics exceed the threshold value may be used to determine whether to perform an out-of-control check on the grinder 100 or skip performing the out-of-control check (e.g., wait for a subsequent cycle). Still further, in some embodiments, the controller 300 may use the motor acceleration and / or battery current check to set one or more threshold values ​​for one or more out-of-control detection checks or methods as described herein.

[0076] Figure 8 A method 800 is illustrated for detecting a runaway event of a grinding machine 100 based on battery current and motor acceleration. The method 800 can be implemented via a grinding machine 100 that includes a sensing circuit 325 that monitors movement of the grinding machine 100 and a controller 300, wherein the controller 300 (or the sensing circuit 325, or a printed circuit board included in a module 400 containing the sensing circuit 325, or a combination thereof) is configured to execute the method 800 to detect a runaway event via an output signal from the sensing circuit 325.

[0077] like Figure 8As illustrated in FIG, method 800 includes determining the motor acceleration of motor 210 (block 805). As described above, controller 300 may determine the motor acceleration of motor 210 based on a plurality of motor speed values ​​detected via sensing circuit 325 (or a separate motor control or sensor). Controller 300 compares the motor acceleration to a predetermined acceleration threshold (threshold M ) are compared (block 815).

[0078] The sensing circuit 325 also detects the battery current value of the battery (eg, via the sensing circuit 325, a battery management system, or other sensing device) (block 810). The controller 300 compares the battery current value with a predetermined battery current threshold (threshold B ) are compared (block 815).

[0079] In response to both the motor acceleration exceeding the predetermined threshold and the battery current value exceeding the predetermined threshold, the controller 300 adds the increment value to the accumulator (at block 820) and checks the accumulator to determine whether the accumulator has reached a predetermined value (block 825). In response to the accumulator reaching the predetermined value, the controller 300 determines that a runaway event has occurred (block 830).

[0080] As described above, in other embodiments, motor acceleration and / or battery current values ​​can be used as a preliminary check (either independently or by using an accumulator) before performing a runaway check, such as using one of methods 600, 700, 900, or 1100 as described above. For example, changes in motor speed and / or battery current can be used in conjunction with rotational speed checks as described herein (see, for example, methods 600, 700, and 900), and in some embodiments can be used to reduce false triggering when positioning the grinder 100 and continuously operating on a workpiece. Alternatively, changes in motor speed and / or battery current can be used in conjunction with linear acceleration checks, also as described herein (see, for example, method 1100).

[0081] In some embodiments, when motor acceleration and / or battery current checks are performed as part of an additional fail-safe function (e.g., method 600 or 700), motor acceleration and battery current are checked only as part of checking the rotational speed along one axis (e.g., the Z component). Specifically, the motor acceleration and / or battery current check can be performed as a preliminary check before checking the rotational speed along the first axis, or the check can be performed and used to add a value to an accumulator for the first axis (wherein the speed along the first axis can also increment this same accumulator). In other embodiments, motor acceleration and battery current are also checked as part of checking the speed of additional and / or alternative axes. In embodiments where motor acceleration and battery current are used along multiple axes, the calculation of motor acceleration and battery current can be performed once for each of these axes, and in some embodiments, the number of previous motor speeds (and associated buffer size) used to determine motor acceleration can be modified. Specifically, the number of previous motor speeds affects the response time of controller 300. For example, when a greater number of motor speeds are used to determine motor acceleration, the controller 300 is less sensitive to changes in motor speed, and therefore the response time of the controller 300 increases. The number of prior motor speeds used to determine motor acceleration can be modified for each tool with which the controller 300 is used to obtain the desired sensitivity and associated response time.

[0082] Vector magnitude of the rotational velocity

[0083] In some cases, the controller 300 (or the sensing circuit 325, or a printed circuit board included in the module 400 containing the sensing circuit 325, or a combination thereof) implements a vector magnitude feature. In this feature, the controller 300 is configured to apply (e.g., multiply) a sensitivity value to the rotational speed about each axis (wherein the sensitivity value may vary for one or more of the axes) and square the result, where the squares are summed for the axes and the sum is compared to a single set of one or more squared thresholds (e.g., as described above with respect to Figure 6 and Figure 7In some embodiments, a bit shifting operation can be used instead of a multiplication operation to apply the sensitivity value and reduce the influence of the axis, which allows the threshold value to remain constant and not scale with the sensitivity. When using bit shifting, the bit shifting can vary between 0 and 3, where a larger shifting number reduces the sensitivity of a particular axis more than a smaller shifting number, and where each axis can be associated with a different sensitivity (e.g., to reduce the influence of one or more axes). For example, using different sensitivity values ​​can create a runaway process where a greater speed is required to trigger the runaway function when the X axis is the primary contributor than when another axis is the primary contributor.

[0084] As described, using bit shifting to reduce the effect of the axis (compared to multiplication) can allow the threshold to remain unchanged (i.e., the threshold does not have to be scaled with sensitivity adjustments). Moreover, using bit shifting limits the amount of multiplication required, for example limiting the added multiplication statements to squares (i.e., reducing the size and complexity of the control code).

[0085] Using such sensitivity multipliers (values), axes that are more likely to experience high rotational speeds during a loss of control event receive higher sensitivity values ​​than axes that are less likely to experience high rotational speeds. Consequently, some axes may be more likely to trigger the loss of control function than others. Additionally, as described above, in some embodiments, the axis speeds are summed. In such embodiments, the loss of control function may be triggered despite unexpected motion occurring on multiple axes that individually might not trigger the loss of control function.

[0086] Figure 9 A method 900 is illustrated for detecting a runaway event of a grinding machine 100 based on axis sensitivity. The method 900 can be implemented via a grinding machine 100 that includes a sensing circuit 325 that monitors movement of the grinding machine 100 and a controller 300, wherein the controller 300 (or the sensing circuit 325, or a printed circuit board included in a module 400 containing the sensing circuit 325, or a combination thereof) is configured to execute the method 900 to detect a runaway event via an output signal from the sensing circuit 325.

[0087] like Figure 9 As shown in FIG, method 900 includes: sensing circuit 325 detecting a first value of a first axis (block 905). In some embodiments, the first value is a rotational velocity value about the first axis (e.g., measured using an IMU). In some embodiments, the first axis is a Z component. A first sensitivity value is applied to the first rotational velocity value (e.g., via controller 300) to obtain a first adjusted rotational velocity, and the first adjusted rotational velocity is squared (block 910).

[0088] The sensing circuit 325 also detects a second value for the second axis (block 915). In some embodiments, the second value is a rotational velocity value about the second axis (e.g., measured using an IMU). In some embodiments, the second axis is the X component. The controller 300 applies the second sensitivity value to the second rotational velocity value to obtain a second adjusted rotational velocity, which has been squared (block 920). The second sensitivity value can be the same as or different from the first sensitivity value.

[0089] The sensing circuit 325 also detects a third value for the third axis (block 925). In some embodiments, the third value is a rotational velocity value about the third axis (e.g., measured using an IMU). In some embodiments, the third axis is a Y component. The controller 300 applies the third sensitivity value to the third rotational velocity to obtain a third adjusted rotational velocity, which has been squared (block 930). The first sensitivity value, the second sensitivity value, and the third sensitivity value may have the same or different values. For example, in some embodiments, at least two of the first sensitivity value, the second sensitivity value, and the third sensitivity value are different. Additionally, in other embodiments, at least two of the first sensitivity value, the second sensitivity value, and the third sensitivity value may be the same. The controller 300 sums the first squared value, the second squared value, and the third squared value (block 935). The controller 300 compares the sum to a threshold value (block 940). In response to the sum exceeding the threshold value, the controller 300 adds the increment value to the accumulator (block 945). In response to the sum not exceeding the threshold value, the controller 300 does not add the increment value to the accumulator.

[0090] It should be understood that, as described above with respect to methods 600 and 700, in some embodiments, the summation can be compared to multiple thresholds, which can be associated with different accumulator values. Furthermore, in some embodiments, the thresholds used in method 900 can be adjusted (compared to methods 600 and 700) to account for the fact that the accumulator may be incremented three times faster than in methods 600 and 700 as described above. For example, in some embodiments, the thresholds used in method 900 can be between 4500 and 6500. Additionally or alternatively, the accumulator values ​​associated with the thresholds used in method 900 can be adjusted (e.g., reduced) to account for the fact that the accumulator may be incremented faster (e.g., three times faster) than in other methods (e.g., methods 600 and 700). It should also be understood that the detection, application of the sensitivity value, and squaring of the respective velocity values ​​for each axis can be performed serially (in various orders) or in parallel.

[0091] like Figure 9As illustrated in FIG, the controller 300 checks the accumulator to determine whether the accumulator has reached a predetermined value (block 950), and may trigger a runaway function based on the accumulator value (i.e., triggering the runaway function based on whether the sum exceeds a threshold value). In response to the accumulator reaching the predetermined value, the controller 300 determines that a runaway event has occurred and triggers the runaway function (block 955). In response to the accumulator not reaching the predetermined value, the controller 300 continues to check the first axis, the second axis, and the third axis while the grinding machine 100 is powered on. As described above, in some embodiments, the predetermined value checked for the accumulator may be adjusted (e.g., increased) compared to methods 600 and 700 to account for the fact that the accumulator may be incremented more frequently than in methods 600 and 700.

[0092] Thus, method 900 considers all three components of rotational speed to determine whether to trigger the loss-of-control function, while continuing to allow for tunable sensitivity for each axis. For example, by squaring the detected speed and checking the result against the square of the threshold (vector magnitude without the square root), the threshold check is moved out of the individual axis readings (which reduces individual axis functions compared to, for example, methods 600 and 700) and allows for a single set of thresholds to be used for the vector sum. Using the vector sum and associated thresholds reduces the influence of one or more axes and can help control false triggering of the loss-of-control function.

[0093] Drop detection

[0094] In some cases, the controller 300 (or the sensing circuit 325 , or a printed circuit board included in the module 400 containing the sensing circuit 325 , or a combination thereof) can be configured to detect when the grinding machine 100 is dropped (as a particular type of runaway event).

[0095] To determine if the grinder 100 has been dropped, the controller 300 can be configured to use one or more acceleration readings to determine if the grinder 100 is in free fall and whether the fail-safe function has been triggered. Specifically, the sensing circuit 325 can be configured to measure acceleration along the X, Y, and Z components. When in free fall, the acceleration of the grinder 100 sums to zero due to the grinder 100 accelerating with gravity. Therefore, the controller 300 determines whether the acceleration is zero when summed across all axes. In response to the controller 300 determining that the acceleration is zero, a fault condition (a drop event) may have occurred.

[0096] Figure 10A method 1000 is illustrated for detecting a loss of control event, and in particular, a drop event, of a grinding machine 100. The method 1000 can be implemented via a grinding machine 100 that includes a sensing circuit 325 that monitors movement of the grinding machine 100 and a controller 300, wherein the controller 300 (or the sensing circuit 325, or a printed circuit board included in a module 400 containing the sensing circuit 325, or a combination thereof) is configured to execute the method 1000 to detect a loss of control via an output signal from the sensing circuit 325.

[0097] like Figure 10 As illustrated in FIG, method 1000 includes detecting (e.g., using sensing circuit 325) a first value of a first axis (block 1005). In some embodiments, the first value is a linear acceleration value along the first axis (e.g., measured using an IMU, such as via a gyroscope associated with the first axis). In some embodiments, the first axis is a Z component. Sensing circuit 325 further detects a second value of a second axis (block 1010). In some embodiments, the second value is a linear acceleration value along the second axis (e.g., measured using an IMU, such as via a gyroscope associated with the second axis). In some embodiments, the second axis is an X component. Sensing circuit 325 further detects a third value of a third axis (block 1015). In some embodiments, the third value is a linear acceleration value along the third axis (e.g., measured using an IMU, such as via a gyroscope associated with the third axis). In some embodiments, the third axis is a Y component.

[0098] Method 1000 may check each acceleration value against a drop threshold (block 1025). In some embodiments, the drop threshold may range from 0.05G to 0.5G. In other embodiments, the drop threshold may be less than 0.05G. In other embodiments, the drop threshold may be greater than 0.5G. Furthermore, in some embodiments, each acceleration value may be positive or negative (i.e., not taken as an absolute value), and therefore, each acceleration reading may be compared to a positive acceleration threshold and a negative acceleration threshold (establishing a drop acceleration range). In response to all acceleration values ​​falling within the drop acceleration range, a drop detection counter may be incremented (e.g., by 1; block 1030). In response to fewer than all acceleration values ​​falling within the drop acceleration range and the drop detection count exceeding 0 (e.g., indicating that a previous drop event has been detected), the drop detection counter may be decremented (e.g., by 1) to avoid accumulating drop detections that may not be associated with an actual drop event over an extended period of time. It should be understood that the increment and decrement values ​​used with method 1000 may vary and be configured or tuned for a particular power tool, just as the predetermined value compared to the drop detection counter used to detect whether to trigger the fail-safe function may be configured and tuned. Thus, method 1000 is similarly tunable to the other methods described herein.

[0099] The controller 300 checks the drop detection counter to determine if the drop detection counter has reached a predetermined value (block 1035). In response to the counter reaching the predetermined value (e.g., indicating that a drop condition has been detected for a certain number of cycles (which may occur approximately once per millisecond), such as 10 times), the controller 300 determines that a drop event has occurred and triggers the fail-safe function (block 1040), such as by stopping the motor 210. In some embodiments, the controller 300 continues to check the first axis, the second axis, and the third axis while the grinding machine 100 is powered on.

[0100] It should be understood that the drop detection method 1000 can be used in combination with another loss of control method (e.g., method 600, 700, 900, or 1100). For example, in each axis-specific loop, acceleration values ​​can be obtained (e.g., from an IMU as gyroscope readings) and optionally filtered, and the method 1000 can be executed using the obtained acceleration data after each axis-specific loop is executed, and then the control loop is cycled and restarted. Therefore, the drop detection counter used in the method 1000 can be checked like other axis-specific accumulators or combined axis accumulators as described herein.

[0101] Furthermore, in some embodiments, method 1000 may implement one or more checks to ensure that a fail-safe function using linear acceleration is not erroneously triggered upon startup (e.g., when a switch or trigger is pressed). For example, a data structure may be used to track the acceleration values ​​read. As a non-limiting example, a data structure may be created that includes a bit for each axis, with each bit initially set to 0. When a new non-zero reading is obtained, this bit may be cleared, and thus, when all bits have a value of 0, method 1000 knows that startup is occurring and may need to ignore the acceleration value. For example, before comparing individual acceleration values ​​(or the sum of such values), method 1000 may check whether all readings have been updated after restarting by checking whether a bit in the data structure is still set to 0. In such a case, the drop detection counter may not be incremented (regardless of the actual acceleration value). A similar data structure may be used for linear acceleration detection as described below, for example, to ensure that all three axes are read before performing a calibration on the power switch cycle.

[0102] As described above, in some embodiments, the obtained acceleration values ​​are filtered. This filtering can include creating a filtered buffer to hold the values ​​and creating a sliding average. For example, the sum of the values ​​in the buffer can be divided by the number of values ​​in the buffer to obtain a sliding average of the acceleration values. At reset, the filtered value may be lower than expected because zeros may be filtered out of the buffer. To address this issue, a count of non-zero values ​​can be determined, and the cached sum can be divided by this count (compared to the size of the buffer). This allows the buffer to be initialized to the first reading, rather than ramping down to the actual reading as the buffer fills.

[0103] Linear acceleration

[0104] Loss of control of the grinding machine 100 may not always involve rotational movement. Thus, linear acceleration detection can be used to detect a loss of control event, which can be separate from drop detection, which is configured to detect a specific type of loss of control.

[0105] In some cases (either in combination with or separate from drop detection), the controller 300 (or the sensing circuit 325, or a printed circuit board included in the module 400 containing the sensing circuit 325, or a combination thereof) can determine that a runaway event has occurred based on the linear acceleration of the grinder 100. In some embodiments, the obtained acceleration values ​​can be adjusted for gravity by applying a calibration offset to the obtained values ​​(e.g., by subtracting the calibration offset from the absolute value of the obtained acceleration values). For example, depending on the position of the grinder 100, the gravity vector will be located in different positions and will affect the detected linear acceleration values ​​in different ways. Using the stored calibration offset allows for the generation of calibrated linear acceleration values, and such calibration offset can be recalibrated in response to the grinder 100 rotating beyond a predetermined distance.

[0106] The calibrated acceleration value can be compared to one or more thresholds, and in response to the calibrated acceleration value exceeding the threshold, a value can be added to an accumulator that can be used to detect a loss of control event, as described herein with respect to other methods. Thus, in some embodiments, the controller 300 stores a "calibration offset" that is subtracted from the detected acceleration value (e.g., obtained from the IMU), rather than performing complex vector math to track the position of the grinder 100 relative to the ground. The calibration offset can be determined when the grinder 100 is started. However, the controller 300 can also be configured to track how much rotational movement has occurred since the calibration offset was determined, and in response to the rotational movement exceeding a threshold amount, the controller can perform a recalibration to obtain a new calibration offset.

[0107] For example, in some embodiments, to generate the calibration offset, a calibration offset is acquired (e.g., determined by the controller 300 and stored for subsequent use) upon startup of the grinding machine 100. The calibration offset can be based on data received from the sensing circuit 325 regarding acceleration along the first linear direction 415, the second linear direction 420, the third linear direction 425, the fourth linear direction 430, the fifth linear direction 440, the sixth linear direction 445, or a combination thereof. In other words, acceleration along the X component, the Y component, and the Z component can be initially measured upon startup of the grinding machine 100 and used to establish the calibration offset. For example, the controller 300 can determine the calibration offset in a steady state, such that the grinding machine 100 is not moving when the calibration offset is determined. In particular, the controller 300 can be configured to recalibrate the calibration offset by setting the calibration offset to the currently detected linear acceleration of the power tool in response to the magnitude of the current acceleration vector of the power tool being within a predetermined range of gravity values.

[0108] For example, to determine whether the grinder 100 is in a steady state, the sensing circuit 325 can measure the current acceleration of the grinder 100 along the X, Y, and Z components, and the controller 300 can compare each measured acceleration to the acceleration due to gravity for that particular axis. In some embodiments, the current acceleration of the grinder 100 can be measured at a frequency within a range of 10 Hz to 7000 Hz. In other embodiments, the current acceleration of the grinder 100 can be measured at a frequency less than 10 Hz. In other embodiments, the current acceleration of the grinder 100 can be measured at a frequency greater than 7000 Hz. In response to the acceleration in each axis being equal to the acceleration due to gravity (or within a range of such gravity values), the controller 300 stores the detected acceleration as a calibration offset. In response to the current acceleration being different from the acceleration due to gravity (e.g., for one or more axes), the controller 300 waits to store a new calibration offset (i.e., waits until the current acceleration value is within a predetermined range of gravity values). In some embodiments, the controller 300 does not store any new calibration offsets until the acceleration on each axis is equal to the acceleration due to gravity. For example, in some embodiments, the controller 300 is configured to square the magnitude of each of the three acceleration vectors and sum these squares, rather than comparing the individual accelerations with the associated gravity values. The sum can then be compared to the squared gravity value to determine whether the acceleration encountered is close to gravity. In some embodiments, the controller 300 is also configured to wait until the rotational speed is in a specific state (e.g., low speed) before storing a new calibration offset (e.g., regardless of the acceleration value obtained). In addition, as described above, in some embodiments, the controller 300 is configured to wait until a new value has been read on each axis, and a data structure with separate bit values ​​as described above can be used to track this condition.

[0109] Therefore, the controller 300 ensures that the grinding machine 100 is not accelerating when determining new calibration measurements, so that the new calibration offset only accounts for gravity, and therefore the acceleration measured in the X-component, Y-component, and Z-component is due to gravity and not movement of the grinding machine 100. As described in further detail below, the calibration offset can be subtracted from subsequent linear acceleration measurements, thereby mitigating the effects of gravity on the acceleration measurements and thereby improving the accuracy of the linear acceleration measurements.

[0110] In some embodiments, when the grinder 100 has rotated beyond a predetermined threshold in the X, Y, or Z components, a new calibration offset is determined for that particular axis. Thus, during operation of the grinder 100, a new calibration offset may be required for one or more of the X, Y, or Z components. The angular distance traveled by the grinder 100 can be measured by the gyroscope and added to a distance accumulator to track the amount of rotational travel that has occurred since the last calibration. Each axis can have a different accumulator. Thus, each of the accumulators measures the angular distance traveled in a particular axis, and when any of the accumulators reaches a predetermined value, recalibration can be performed. Furthermore, in some embodiments, signed (e.g., pre-absolute) value measurements can be tracked (i.e., added to a distance or motion accumulator) to cancel out opposing directions of travel.

[0111] In response to the angular distance traveled by the grinder 100 exceeding a predetermined threshold, the controller 300 determines a new calibration offset. Each time a new calibration is performed, the controller 300 can verify that the acceleration of the grinder 100 is at zero. In other words, the controller 300 verifies that the only acceleration of the grinder 100 is due to gravity. Thus, the controller 300 ensures that the grinder 100 is not accelerating when determining the new calibration offset, so that the new calibration offset only accounts for gravity. Each time the grinder 100 rotates beyond a predetermined threshold, a new calibration offset can be determined as described above. In other embodiments, a new calibration offset can be determined at different or additional times, such as upon a power reset, a trigger cycle, or the like. Determining a new calibration offset during operation of the grinder 100 helps mitigate the negative effects of the grinder 100's rotation during runaway detection.

[0112] During operation of the grinding machine 100, the sensing circuit 325 measures acceleration along the X, Y, and Z components and provides those measurements to the controller 300. The controller 300 also receives rotational movement measurements (e.g., from the sensing circuit 325), which the controller 300 uses to determine whether the grinding machine 100 has rotated beyond a predetermined threshold along the X, Y, or Z components. In response to rotation exceeding the predetermined threshold, the controller 300 determines a new calibration offset, as explained above. Alternatively, in response to rotation not exceeding the predetermined threshold, the previous calibration offset is used, and in particular, the controller 300 subtracts the calibration offset from the acceleration measurements to remove the effects of gravity. After subtracting the calibration offset, the controller 300 compares the calibrated acceleration values ​​to one or more thresholds to determine whether a loss of control has occurred, similar to how the velocity measurements are compared to one or more thresholds (as described above with respect to methods 600 and 700). As described above, in response to detecting such a loss of control, the motor 210 may be shut down, such that operation of the grinding machine 100 ceases.

[0113] Figure 11 A method 1100 is illustrated for detecting a runaway event of a grinding machine 100 using the calibration offset described above. The method 1100 can be implemented via a grinding machine 100 that includes a sensing circuit 325 that monitors movement of the grinding machine 100 and a controller 300, wherein the controller 300 (or the sensing circuit 325, or a printed circuit board included in a module 400 containing the sensing circuit 325, or a combination thereof) is configured to execute the method 1100 to detect a runaway event via an output signal from the sensing circuit 325.

[0114] like Figure 11 As illustrated in FIG, method 1110 includes detecting (e.g., using sensing circuit 325) a first rotational velocity value of a first axis via a gyroscope (block 1105). In some embodiments, the first axis is a Z component, and the first rotational velocity value represents a rotational velocity about the Z component (Z axis). Sensing circuit 325 may also detect a first linear acceleration value of the first axis (block 1105). The controller 300 determines a first angle traveled relative to the first axis based on the first rotational velocity value (block 1107). The first angle traveled is added to a first motion accumulator (accumulator). M )(Block 1115). In some embodiments, the first angle traveled is added to the first motion accumulator by bit-shifting down along the received first velocity value (e.g., as read from the gyroscope for the Z component) and adding the resulting value to the first motion accumulator.

[0115] The controller 300 checks the first movement accumulator to determine whether the first movement accumulator has reached a predetermined value (threshold M Indicating a rotation threshold value) (block 1120). In response to the first motion accumulator reaching a predetermined value, the controller 300 determines that a new calibration offset is needed (block 1125, indicating a recalibration process). As described above, the controller 300 obtains the new calibration offset by determining whether only the acceleration due to gravity is acting on the grinder 100. In response to only the acceleration due to gravity acting on the grinder 100, the controller 300 saves the current acceleration value as the new calibration offset, resets the angle measurement value (e.g., to zero), and resets a flag that tracks whether calibration is complete (this flag can be used to control whether runaway detection via linear acceleration is enabled).

[0116] After obtaining a new calibration offset or when a previous calibration offset is still valid based on the tracked rotational movement of the grinding machine 100, the controller 300 takes the absolute value of the first acceleration value and subtracts the calibration offset from the absolute value of the first acceleration value (to obtain a first calibrated acceleration value) (block 1130), and compares the first calibrated acceleration value to a first acceleration threshold value (threshold value). A ) for comparison (block 1140). In response to the first calibrated acceleration value exceeding the first acceleration threshold, the controller 300 adds a value to the accumulator (accumulator A ) (Block 1145). The controller 300 checks the accumulator to determine if the accumulator has reached a predetermined value (Block 1150). In response to the accumulator reaching the predetermined value, the controller 300 determines that a runaway event has occurred (Block 1155). In response to the accumulator not reaching the predetermined value, the controller 300 may decrement the accumulator (e.g., if the accumulator A has a non-zero value) and switches the axis (block 1160), and repeats blocks 705-750 for the second and third axes. The controller 300 can continue to check the first, second, and third axes while the grinding machine 100 is powered on.

[0117] It should be understood that the acceleration thresholds used in method 1100 may vary for different axes and may be associated with different accumulator values. Moreover, in some embodiments, as described above with respect to methods 600 and 700, multiple thresholds may be used with calibrated acceleration values. Thus, similar to the velocity check methods described herein, the linear acceleration method 1100 may be tunable, and different axes may have different sensitivities. Moreover, it should be understood that the linear acceleration check may be performed separately or in combination with other out-of-control detection methods described herein. For example, in some embodiments, since rotational speed is obtained as part of method 1100, rotational speed may also be checked (e.g., as described above with respect to methods 600 or 700), and an accumulator may be used separately or shared with the accumulator used with the acceleration value.

[0118] IMU wake-up feature

[0119] In some embodiments, when the grinder 100 enters sleep mode, each general-purpose input / output (GPIO) pin is disabled. The wakeup source is then re-enabled as an interrupt trigger. Consequently, the controller 300 enters low-power mode and enters a wait-for-interrupt (WFI) loop. When one of the interrupt sources is triggered, the MCU resets the code, and execution of the main program begins again from the beginning (including initialization). In some embodiments, the sensing circuit 325 (e.g., an IMU) is used as a wakeup source, where an interrupt is generated from the IMU to be detected by the controller 300. The IMU may have configurable interrupt pins, and routing at least one of these pins to the controller 300 can be used to wake up the controller 300.

[0120] For example, Figure 12 As shown in FIG, in order to keep the IMU 1200 on (i.e., powered on) after the controller 300 enters sleep mode, the IMU 1200 can be powered by a power supply 1215 (e.g., a 3.3V low dropout (LDO) power supply) that remains on during sleep mode. This power supply remains on when the controller 300 enters sleep mode (referred to herein as a persistent power supply). Furthermore, in order to register interrupts in the controller 300, one of the interrupt pins 1205 of the IMU 1200 is routed to a pin 1210 (e.g., a GPIO pin) on the controller 300. The interrupt generated from the IMU 1200 can be a push-pull configuration, meaning that a pull-up or pull-down resistor may not be required. After the interrupt pin is routed, the GPIO pin 1210 on the controller 300 associated with the interrupt is defined as a wakeup source, where the trigger can be set to a rising edge or a falling edge.

[0121] In some embodiments, when the IMU 1200 is configured as a wakeup source, an interrupt may be generated by the IMU 1200 even when the controller 300 is not in sleep mode, where the controller 300 may be limited to looking for the interrupt while in sleep mode. Therefore, to improve the efficiency of the IMU interrupt (e.g., in terms of power consumption), the IMU 1200 may be placed in low-power mode just before the controller 300 enters sleep. In low-power mode, motion readings (e.g., acceleration readings) may be determined at a low-power mode frequency (e.g., 52 Hz or less). Alternatively or in addition, the wakeup interrupt generated by the IMU 1200 may be disabled during normal operation of the controller 300 and enabled just before the controller 300 enters sleep (e.g., where the interrupt may be disabled again when the controller 300 wakes from sleep mode). The sensitivity of the IMU wakeup may be configurable, such that the threshold or samples required to generate the interrupt may be configurable as part of the configuration of the IMU 1200.

[0122] Therefore, the grinder 100 may include an IMU wake-up feature. When the grinder 100 is not used for a predetermined period of time, the grinder 100 enters a sleep mode. In sleep mode, the controller 300 waits for an interrupt trigger, and the sensing circuit 325 may include an IMU 1200 that acts as such a trigger. To enable the IMU 1200 to act as an interrupt trigger, the IMU 1200 remains powered after the controller 300 enters sleep mode. Thus, despite the controller 300 entering sleep mode, the IMU 1200 is still configured to detect movement of the grinder 100. The IMU receives power from a power source 1215 (e.g., a dedicated or shared battery or other power source for the grinder 100), which remains on despite the controller 300 entering sleep mode. Before the controller 300 enters sleep mode, the controller 300 may set the IMU 1200 to a low-power mode so that the IMU 1200 receives less power while the controller 300 is in sleep mode. In operation, when the grinder 100 has not been moved for a predetermined amount of time, the grinder 100, and therefore the controller 300, enters a sleep mode. When the user picks up the grinder 100, the IMU 1200 detects the movement of the grinder 100 and subsequently interrupts the sleep mode of the controller 300. Thereafter, the grinder 100 is usable and one or more loss of control detection methods can be initialized so that they are ready to be implemented during operation of the grinder.

[0123] One-handed grinder

[0124] Figure 13A An alternative design of a portable rotary power tool is illustrated, such as a grinder 1300 configured for single-handed operation. The grinder 1300 may include a main tool housing 1305 and a handle or grip 1310 extending along the main tool housing 1305 between a first end and a second end of the grinder 1300, thereby defining a body axis 1307 of the grinder 1300. In some cases, the grinder 1300 is configured to be operated by a single hand of an operator (i.e., configured for single-handed operation). For example, the handle 1310 may have a grip length of approximately 100 mm and may be configured to be operated by only one hand of the operator. In other words, in contrast to other grinders, the grinder 1300 does not include a handle that extends radially from the main tool housing 1305 (i.e., radially from the body axis 1307). It should be understood that although some methods of controlling a power tool are described herein with respect to a grinder 1300 configured for one-handed operation, the methods described herein may be used with other types of portable rotary power tools, including, for example, grinders having multiple handles.

[0125] The motor 1315 is located within the motor housing 1320 of the main tool housing 1305. An output shaft 1325 can be coupled to a tool holder 1330, which is configured to receive accessories 1335 (e.g., cutting tools, grinding discs, rotary burrs, sanding discs, etc.). Various types of accessories can be interchangeably attached to the tool holder 1330 and can be designed with different characteristics to perform different types of operations. For example, the accessories 1335 can be made of a certain material and have dimensions suitable for performing a specific type of task. For example, an accessory (e.g., a grinder disc) can have a diameter of 100 mm (or 4 inches) or less. In some cases, the output shaft 1325, the tool holder 1330, or both may limit the size or shape of the accessories 1335 that can be attached and used with the grinder 1300. The characteristics of the accessories 1335 coupled to the tool holder 1330 may affect the performance of the grinder 1300 or impose constraints on the operation of the tool. For example, different accessory types can be configured to operate at different rotational speeds or applied torques depending on the characteristics of the accessory and the task to be performed. During operation of the grinder 1300, the motor 1315 and the output shaft 1325 can be controlled to rotate at a range of speeds, and as described above, the speed can vary based on the type of accessory 1335 coupled to the tool holder 1330, one or more user inputs, the type of work surface or material being interfaced with the tool 1300, or other parameters.

[0126] In some embodiments, the grinder 1300 can include a protective cover 1340 that at least partially covers an accessory 1335 attached to the tool holder 1330. In some embodiments, the protective cover 1340 prevents a user from contacting the accessory 1335. In some embodiments, the protective cover 1340 also blocks, for example, sparks, ejected debris, or inadvertent contact between the accessory 1335 and a workpiece. In some examples, the protective cover 1340 is configured to limit the size of the accessory 1335. In other examples, the protective cover 1340 is sized to receive a specific accessory, such as a grinder disc. In some cases, such as when the grinder 1300 is configured for one-handed operation, the protective cover 1340 defines the widest radial dimension of the grinder 1300 relative to the body axis 1307 of the main tool housing 1305.

[0127] In some embodiments, the handle 1310 can define a battery receptacle 1345 positioned on an end of the handle 1310 opposite the motor housing 1320. The battery receptacle 1345 is configured to selectively mechanically and electrically connect to a rechargeable battery pack (i.e., a power source) for powering the motor 1315. The battery pack can be inserted into or attached to the battery receptacle 1345. The battery pack can include any of several different nominal voltages (e.g., 12V, 18V, 24V, 36V, 40V, 48V, etc.) and can be configured with any of several different chemistries (e.g., lithium-ion, nickel-cadmium, etc.). In some embodiments, the battery pack (e.g., when operating as a 12V power source) has a current draw of at least 60 amps. In other embodiments, the battery pack (e.g., when operating as a 12V power source) has a current draw of 60 to 90 amps. In yet other embodiments, the battery pack can be configured to operate at between 35 amps and 40 amps. In some embodiments, the grinder 1300 operates at a power level of at least 500 watts. In other embodiments, the grinder 1300 operates at a power level of at least 600 watts. In still other embodiments, the grinder 1300 operates at a power level of 600 watts to 800 watts. In yet other embodiments, the grinder 1300 operates at a power level between 375 watts and 475 watts. In some embodiments, the motor 1315 can be powered by a remote power source (e.g., an AC power outlet) via the power cord and power interface of the grinder 1300 to supplement or as an alternative to receiving power from the attached battery pack.

[0128] The handle 1310 may contain control electronics for the grinder 1300, and in some embodiments, a trigger 1350 is attached to the handle 1310 (see, e.g., Figure 13B ). Trigger 1350 is used to control motor 1315, which is from controller 300 (described below and in Figure 15 ) receives control signals to control the output shaft 1325 and other aspects of the grinder 1300. The trigger 1350 can be located on the bottom of the handle 1310 (defined to face the potential workpiece), or as Figure 13B , can be located on one side of the handle 1310. The controller 300 (e.g., located on a printed circuit board) can be located within the handle 1310. In some embodiments, one or more sensors can also be located within the handle 1310 or elsewhere on the grinder 1300. In some embodiments, the motor 1315 is located within the tool main housing 1305 between the output shaft 1325 and the battery receptacle 1345.

[0129] Figure 13B1300 is a bottom view of the grinding machine. Figure 13B , the output shaft 1325 projects downwardly toward a potential workpiece. In some embodiments, an accessory 1335 (e.g., a grinder blade) can be attached to the output shaft 1325 (directly or indirectly via the tool holder 1330). In some embodiments, a protective cover 1340 is also attached to the output shaft 1325 and extends around at least a portion of the circumference of the accessory 1335. The protective cover 1340 can be coupled to the output shaft 1325 such that the protective cover 1340 does not rotate with the output shaft 1325. However, in some embodiments, the protective cover 1340 is movable (e.g., about the output shaft 1325) to allow an operator to position the protective cover 1340 in a desired orientation.

[0130] Figure 14 An alternative design for a portable rotary power tool, such as a grinder 2000 configured for one-handed operation, is illustrated. Similar to grinder 1300, grinder 2000 includes a main tool housing 2005 and a handle 2010 extending along the main tool housing 1305 between a first end 2011 (also referred to as the front or working end of grinder 2000) and a second end 2012 (also referred to as the rear or battery end) of grinder 2000. In some cases, first end 2011 may include a scaled-down flat head form factor. As with grinder 1300, handle 2010 may have a grip length of approximately 100 mm and may include only a single grip (i.e., no grip extending radially from main tool housing 1305). A motor 2015 is located within a motor housing 2020 of the main tool housing 2005. The output shaft 225 can be coupled to a tool holder 2030 that is configured to receive an accessory 2035 (similar to the accessory 1335 as previously described). In some embodiments, the grinding machine 2000 includes a guard 2040 similar to the guard 1340 described above.

[0131] The handle 2010 of the grinder 2000 can define a battery receptacle 2045 positioned on an end of the handle 2010 opposite the motor housing 2020. The battery receptacle 2045 is configured to selectively, mechanically, and electrically connect to a rechargeable battery pack (i.e., a power source) for powering the motor 2015. The battery pack can be inserted into or attached to the battery receptacle 2045. The battery pack can include any of several different nominal voltages (e.g., 12V, 18V, 24V, 36V, 40V, 48V, etc.) and can be configured to have any of several different chemistries (e.g., lithium-ion, nickel-cadmium, etc.). In some cases, the battery pack can be configured to operate between 60 amps and 90 amps. In other cases, the battery pack can be configured to operate between 35 amps and 40 amps. In some cases, the grinder 2000 operates at a power level between 600 watts and 800 watts. In other cases, the grinder operates at a power level between 375 watts and 475 watts. In some embodiments, the motor 2015 can be powered by a remote power source (e.g., an AC power outlet) through the power cord and power interface of the grinder 2000 to supplement or as an alternative to receiving power from an attached battery pack.

[0132] The handle 2010 may contain the control electronics for the grinder 2000, and in some embodiments, a trigger 2050 is attached to the handle 1310. In some examples, the trigger 25 is a dual-actuation paddle-type trigger. Similar to the trigger 1350 described previously, the trigger 2050 is used to control the motor 2015. The trigger receives control signals from the controller 300 to control the output shaft 225 and other aspects of the grinder 2000. The controller 300 (e.g., located on a printed circuit board) may be located within the handle 2010. In some embodiments, one or more sensors may also be located within the handle 2010 or elsewhere on the grinder 2000. In some embodiments, the motor 1315 is located between the output shaft 225 and the battery receptacle 2045 and below the trigger 2050 within the main tool housing 2005. As described for the grinder 1300, the trigger 2050 may be located on the bottom of the main tool housing 2005 or on a side of the main tool housing 2005.

[0133] Figure 15The control system for the grinding machine 1300 or 2000 is illustrated. The control system includes a controller 3000. The controller 3000 is electrically and / or communicatively connected to one or more modules or components of the grinding machine 1300 or 2000. For example, the illustrated controller 3000 is electrically connected to a motor 3005 (e.g., motor 1315 or 2015), a battery pack interface 3010, a trigger switch 3015 (connected to a trigger 3020), one or more sensors or sensing circuits 3025, one or more indicators 3030, a user input module 3035, a power input module 3040, and a FET switch module 3050 (e.g., including a plurality of switching FETs). The controller 3000 includes a combination of hardware and software operable to, among other things, control the operation of the grinding machine 1300 or 2000, monitor the operation of the grinding machine 1300 or 2000, activate the one or more indicators 3030 (e.g., LEDs), and the like.

[0134] The controller 3000 includes a plurality of electrical and electronic components that provide power, operational control, and protection to the controller 3000 and / or components and modules within the grinding machine 1300 or 2000. For example, the controller 3000 includes, among other things, a processing unit 3055 (e.g., a microprocessor, a microcontroller, an electronic processor, an electronic controller, or another suitable programmable device), a memory 3060, one or more input units 3065, and one or more output units 3070. The processing unit 3055 includes, among other things, a control unit 3075, an arithmetic logic unit ("ALU") 3080, and a plurality of registers 3085, and is implemented using known computer architectures (e.g., a modified Harvard architecture, a von Neumann architecture, etc.). The processing unit 3055, the memory 3060, the input unit 3065, and the output unit 3070, as well as the various modules or circuits connected to the controller 3000, are connected, for example, via one or more control buses and / or data buses (e.g., a common bus 3090). In view of the embodiments described herein, the use of one or more control buses and / or data buses to interconnect and communicate among the various modules, circuits, and components will be known to those skilled in the art.

[0135] Memory 3060 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 may include a combination of different types of memory, such as ROM, RAM (e.g., DRAM, SDRAM, etc.), EEPROM, flash memory, a hard drive, an SD card, or other suitable magnetic, optical, physical, or electronic memory devices. The processing unit 3055 is connected to the memory 3060 and executes software instructions, which can be stored in the RAM of the memory 3060 (e.g., during execution), in the ROM of the memory 3060 (e.g., on a generally permanent basis), or in another non-transitory computer-readable medium (e.g., another memory or an optical disk). The software included in the embodiment of the grinding machine 1300 may be stored in the memory 3060 of the controller 3000. The software includes, for example, firmware, one or more application programs, program data, filters, rules, one or more program modules, and other executable instructions. The controller 3000 is configured to retrieve and execute instructions from the memory 3060, particularly those related to the control processes and methods described herein. In other constructions, the controller 3000 includes additional, fewer, or different components.

[0136] The motor 3005 includes a rotor and a stator surrounding the rotor. In some embodiments, the motor 3005 is a brushless direct current ("BLDC") motor, in which the rotor is a permanent magnet rotor and the stator includes coil windings that are selectively energized to drive the rotor. In other embodiments, the motor is a brushed motor. The stator is supported within the tool main housing 1305 or 2005 and remains stationary relative to the tool main housing 1305 or 2005 during operation of the grinder 1300 or 2000. The rotor is rotatably fixed to a rotor shaft and is configured to rotate with the rotor shaft relative to the stator about the motor axis. A portion of the rotor shaft is associated with or corresponds to an output shaft 1325 or 225 extending from the tool main housing 1305 or 2005. In some embodiments, the motor 3005 is an outer rotor motor.

[0137] The battery pack interface 3010 includes a combination of mechanical components (e.g., tracks, grooves, latches, etc.) and electrical components (e.g., one or more terminals) that are configured and operable to interface (e.g., mechanically, electrically, and communicatively connect) the grinder 1300 or 2000 with the battery pack. For example, power provided by the battery pack to the grinder 1300 or 2000 is provided to the power input module 3040 via the battery pack interface 3010. The power input module 3040 includes a combination of active and passive components to regulate or control the power received from the battery pack, which is then provided to the controller 3000. The battery pack interface 3010 also supplies power to the FET switch module 3050 to provide power to the motor 3005. The battery pack interface 3010 also includes, for example, a communication line 395 for providing a communication line or link between the controller 3000 and the battery pack.

[0138] The indicator 3030 includes, for example, one or more light emitting diodes ("LEDs"). The indicator 3030 can be configured to display a condition of the grinder 1300 or 2000 or information associated with the grinder. For example, the indicator 3030 is configured to indicate a measured electrical characteristic of the grinder 1300 or 2000, the status of the grinder 1300 or 2000, etc. The user input module 3035 is operably coupled to the controller 3000 to, for example, select a forward or reverse operating mode, torque and / or speed settings for the grinder 1300 or 2000 (e.g., using a torque and / or speed switch), etc. In some embodiments, the user input module 3035 includes a combination of digital and analog input or output devices required to achieve the desired level of operation of the grinder 1300 or 2000, such as one or more knobs, one or more dials, one or more switches, one or more buttons, etc.

[0139] The controller 3000 is configured to determine whether a fault condition exists with the grinder 1300 or 2000 and generate one or more control signals related to the fault condition. The controller 3000 may use input provided via the sensing circuit 3025 to determine whether a fault condition exists. In some embodiments, the sensing circuit 3025 includes one or more current sensors, one or more velocity sensors, one or more Hall effect sensors, one or more temperature sensors, an accelerometer, a gyroscope, an inertial measurement unit ("IMU"), one or more pressure sensors, one or more object presence sensors, the like, or a combination thereof. The controller 3000 calculates or includes in memory 3060 predetermined operating thresholds and limits for the operation of the grinder 1300 or 2000. For example, in response to detecting or predicting a potential thermal failure (e.g., thermal failure of a FET, motor 3005, etc.), the controller 3000 may limit or interrupt power to the motor 3005 until the potential for thermal failure decreases. In response to detecting one or more such fault conditions of the grinder 1300 or 2000 or detecting that a previously detected fault condition of the grinder 1300 or 2000 no longer exists, the controller 3000 can be configured to provide information and / or control signals to another component of the grinder 1300 or 2000 (e.g., the battery pack interface 3010, the indicator 3030, etc.).

[0140] In some embodiments, the controller 3000 or a separate controller included in the grinder 1300 or 2000 detects a loss of control of the grinder 1300 or 2000 (e.g., based on input provided via one or more of the sensing circuits 3025). Figure 16 A grinder 1300 is shown including an out-of-control module 4000 according to some aspects. It should be understood that the grinder 2000 may include a similar out-of-control module 4000, and while some methods described herein may be described with respect to the grinder 1300, these methods may similarly be performed via the grinder 2000 or other types of power tools. The out-of-control module 4000 includes a sensor 4005 (e.g., an accelerometer, a gyroscope, an inertial measurement unit [“IMU”]) and is configured to detect linear and / or rotational motion of the grinder 1300. In some examples, the out-of-control module 4000 is located within the handle 1310 of the grinder 1300 and includes an electronic processor 4010, a memory 4015, and an input / output interface 4020 (similar to the electronic processor, memory, and input / output interface described previously). In this example, the out-of-control module 4000 is configured to communicate with the controller 3000. In other examples, the out-of-control module 4000 is integrated with the controller 3000 and uses some of the components of the controller 3000 described above.

[0141] In some cases, the out-of-control module 4000 (or the sensor 4005, or a printed circuit board included in the module 4000 containing the sensor 4005) is angled relative to the normal operating plane of the grinder 1300. In this configuration, the sensor 4005 is operable to generate an output signal that includes both an X component and a Y component. These features are Figure 5-8 In some examples, multiple sensors are used to obtain X-component and Y-component information. For illustrative purposes, Figure 16 The grinder 1300 includes a front portion 4025 and a rear portion 4030, with the motor 1315 and accessories 1335 located at the front portion 4025 of the grinder 1300. As the operator of the grinder 1300 moves the grinder across a workpiece, the out-of-control module 4000 uses the sensor 4005 to detect linear motion of the grinder 1300. Linear motion can be described as forward or reverse motion relative to the workpiece. In other examples, linear motion can be described as lateral to the workpiece. If the linear motion detected by the sensor 4005 exceeds a predetermined linear threshold, an out-of-control event is determined. In some embodiments, when an out-of-control event is determined, the grinder 1300 is configured to control the motor 1315, for example, to stop the motor 1315.

[0142] The sensor 4005 can additionally be configured to generate output signals that include a rotational component associated with the rotational motion of the grinder 1300. The rotational motion of the grinder 1300 can be described as the rotation of the grinder 1300 about a central axis that extends from the front 4025 to the rear 4030 of the grinder 1300. Alternatively or additionally, the rotational motion of the grinder 1300 can be described as the rotation of the grinder 1300 about a fixed reference point. For example, the fixed reference point can be located at the front 4025 of the grinder 1300 near the attachment 1335. In another case, the fixed reference point can be located at the rear 4030 of the grinder 1300 near the battery receptacle 1345 (also known as the battery foot). These features are Figure 5-8 , and described below. If the rotational motion as detected by sensor 4005 exceeds a predetermined rotational threshold, a runaway event is determined. As previously described, when a runaway event is determined, grinder 1300 is configured to control motor 1315. In some cases, the predetermined linear threshold and the predetermined rotational threshold are the same threshold. In other cases, the predetermined linear threshold and the predetermined rotational threshold are different thresholds. In some examples, there may be multiple linear thresholds and / or multiple rotational thresholds. The method by which the runaway module 4000 controls motor 1315 is described in Figure 9-10 are illustrated in and described below.

[0143] In some cases, the out-of-control module 4000 periodically samples the sensor 4005 to obtain linear and / or rotational motion data. For example, rather than continuously monitoring the linear motion of the grinder 1300, the out-of-control module 4000 may receive data from the sensor 4005 at a predetermined sampling rate only when the motor 1315 is operating. In some cases, the out-of-control module 4000 may receive data from the sensor 4005 only when the motor 1315 is engaged with a workpiece. For example, the sensing circuit 3025 may be a current sensor connected to the motor 1315 and configured to monitor motor current. When the motor current detected by the sensing circuit 3025 exceeds a current threshold, the controller may determine that the motor 1315 is engaged with the workpiece. In some examples, the out-of-control module 4000 is configured to use the detected linear motion of the grinder 1300 to determine the angular acceleration of the grinder 1300.

[0144] The one or more out-of-control functions implemented via the out-of-control module 4000 (hereinafter referred to as Figure 21-22 4005 ) can monitor (eg, via sensor 4005 ) the movement of the grinder 1300 or 2000 in one or more directions. Figure 5-8 The movement of the grinder 1300 is illustrated. Again, it should be understood that the grinder 2000 can move in a similar direction as the grinder 1300, but for the sake of brevity, a separate illustration of the grinder 2000 is not included herein. For example, Figure 17The grinder 1300 is shown in close proximity to a workpiece 5000, which defines an operating plane 510 of the grinder 1300 (e.g., the plane of the grinding operation or application). It should be understood that the grinder 1300 can engage any number of workpieces in any number of orientations, dimensions, or planes. An attachment 1335 of the grinder 1300 actively engages the workpiece 5000 (e.g., in a clockwise direction 505) and can move in two directions along the plane 5010 of the workpiece 5000 while engaged with the workpiece 500. As the grinder 1300 moves along the plane 5010, the sensor 4005 detects linear motion along a first linear direction 5015 and a second linear direction 5020, which can be understood as an X component and can represent forward and rearward movement of the grinder 1300. The sensor 4005 also detects linear motion along a third linear direction 5025 and a fourth linear direction 5030, which can be understood as a Y component and can represent lateral movement of the grinder 1300. The sensor 4005 can generate and output a single signal representing the detected X component and the detected Y component (e.g., the motion vector of the grinder 1300). As described below, in some embodiments, in response to the magnitude of the motion vector exceeding a predetermined linear threshold, the loss of control module 4000 can determine that the operator has experienced a loss of control of the grinder 1300. In other embodiments, the sensor 4005 can generate and output separate signals representing the detected X component and the detected Y component. As described above, in some embodiments, the sensor 4005 includes an accelerometer.

[0145] Figure 18 The grinder 1300 is shown moving along a fifth linear direction 6000 and a sixth linear direction 6005, which can be understood as a Z component and can represent linear movement of the grinder 1300 into or away from the workpiece 5000 (i.e., out of or into the plane 510). For example, if the operator of the grinder 1300 lifts the grinder off the workpiece 500, the sensor 4005 detects movement along the fifth linear direction 6000. Similarly, if the operator of the grinder 1300 pushes through the workpiece 5000, the sensor 4005 detects movement along the sixth linear direction 6005. The first linear direction 5015, the second linear direction 5020, the third linear direction 5025, the fourth linear direction 5030, the fifth linear direction 6000, and the sixth linear direction 6005 should all be understood as six possible directions of motion in a Cartesian coordinate system (e.g., XYZ components).

[0146] In addition to moving linearly away from or into plane 5010 (i.e., upward or downward from plane 5010), grinder 1300 can also rotate toward or away from plane 5010 (i.e., grinder 1300 rotates angularly about a reference point). For example, Figure 19The grinder 1300 is shown positioned in close proximity to a workpiece 5000, with an attachment 1335 engaged with the workpiece 5000 and configured to move along a flat surface 7000 of the workpiece 5000. As an operator of the grinder 1300 engages the workpiece 5000, the grinder 1300 can pivot (e.g., angularly rotate) in a first rotational direction 7015 away from the workpiece 5000 about a reference point 7005 located at a rear portion 4030 of the grinder 1300 (which can be located along a central axis 7010 of the grinder 1300 and defined by a battery foot). This motion is detected by the sensor 4005 and measured as a rotational angle, such as a first rotational angle 7020. For example, as described above, the sensor 4005 can include a gyroscope configured to detect angular rotation.

[0147] While only one rotation angle is illustrated, it should be understood that there are many possible rotation angles about the reference point 7005. For example, similar to the linear motion of the grinder 1300, the grinder 1300 can "pitch" about the reference point 7005, which can be understood as the X component of the rotational motion. The grinder 1300 can also "yaw" about the reference point 7005, which can be understood as the Y component of the rotational motion. The grinder 1300 can also "roll" about the reference point 7005, which can be understood as the Z component of the rotational motion. The reference point can be located on the grinder 1300, within the grinder 1300, or at a distance from the main tool housing of the grinder 1300.

[0148] For example, Figure 20 13. The present invention illustrates additional rotational angles and reference points of the grinder 1300 according to some embodiments. As previously described, the grinder 1300 includes a reference point 7005 about which the grinder 1300 can rotate in a first rotational direction 7015. The grinder 1300 can also rotate in a second direction 8000 opposite the first rotational direction 7015, which is detected by the sensor 4005 and measured as a second rotational angle 8005. The first rotational direction 7015 and the second rotational angle 8005 are generally understood to be the "roll" or Z component of the rotational motion of the grinder 1300.

[0149] In another embodiment, the second fixed reference point 8010 is located at the front 4025 of the grinder 1300. The grinder 1300 can similarly pivot and roll about the second fixed reference point 8010. The sensor 4005 detects different rotational motions based on the position of the reference point relative to the grinder 1300. For example, as the grinder 1300 rolls about the second fixed reference point 8010, the sensor 4005 detects the third rotation angle 815 and / or the fourth rotation angle 8020. The sensor 4005 then generates a signal including a motion vector (including angular acceleration) of the grinder 1300. If the magnitude of the motion vector exceeds a predetermined rotational threshold, the loss of control module can determine that the operator has experienced a loss of control of the grinder 1300. In some cases, both linear and rotational motion are detected and monitored simultaneously for a loss of control condition. In some cases, rotational motion is monitored before linear motion of the grinder 1300.

[0150] As described above, the out-of-control module 4000 can use the detected movement of the grinder 1300 or 2000 to detect an out-of-control event. For example, Figure 21 is a flow chart illustrating a method 9000 for detecting an out-of-control condition in a grinding machine 1300. Method 9000 may be executed by the out-of-control module 4000 (e.g., the electronic processor 4010). However, it should be understood that the functionality described herein may be distributed among multiple modules or control units. For example, the functionality described herein with respect to method 9000 may be performed by the out-of-control module 4000 and the controller 3000. Furthermore, while method 9000 is described herein with respect to the grinding machine 1300, a similar method may be implemented with respect to the grinding machine 2000.

[0151] like Figure 21As illustrated in FIG, in response to detecting operation of a trigger (activated by a user to initiate or start use of the grinder 1300) (at block 9005), a motor 1315 included in the grinder 1300 is activated to allow the grinder 1300 to be used on a workpiece. During operation of the motor, the method 9000 includes detecting a linear acceleration of the grinder 1300 (e.g., a housing) via a sensor 4005 (e.g., an accelerometer) (at block 9010). The linear acceleration may be detected in a work plane parallel to the work surface. The out-of-control module 4000 receives a signal representing the detected linear acceleration from the sensor 4005 and compares the linear acceleration to a predetermined linear threshold (at block 9015). In response to the detected linear acceleration exceeding the predetermined linear threshold (at block 9015), the out-of-control module 4000 detects an out-of-control event and reduces power to the motor 1315 (at block 9020). In some embodiments, the override module 4000 reduces power to the motor 1315 by stopping (ie, braking) the motor 1315. However, in other embodiments, power to the motor 1315 is reduced without stopping the motor 1315.

[0152] Blocks 9010 to 9020 of method 9000 represent one out-of-control detection method. In some embodiments, the grinder 1300 may implement this out-of-control detection method as the only out-of-control detection method. However, in other embodiments, the grinder 1300 may implement multiple out-of-control detection methods. For example, Figure 21 As shown in FIG, in some embodiments, the method 9000 combines multiple out-of-control detection functions. When multiple out-of-control detection functions are implemented, the out-of-control module 4000 can implement these functions in parallel or in series. For example, Figure 21The two detection functions are illustrated as being implemented in series, where linear acceleration is used to check for runaway before angular rotation is used to check for runaway. However, it should be understood that different operations of the series implementation may be used in various embodiments. Furthermore, in some embodiments, the grinder 1300 may be configured to implement multiple runaway functions, and one or more functions may be selected for activation or use based on operating parameters or conditions of the grinder 1300. For example, in some embodiments, when initially starting operation of the grinder 1300 (e.g., within a predetermined time after starting the motor or actuating the trigger), the grinder 1300 may use one of the detection functions (e.g., the linear acceleration function described with respect to blocks 9010 to 9020), and may use a different detection function (e.g., the angular acceleration function described below) after the initial startup period. The grinder 1300 may also use one or more battery characteristics to select which runaway function to activate. For example, the grinder 1300 may select (activate) a more sensitive runaway function in response to the battery pack having a low state of charge (e.g., a charge below a predetermined charge level). Furthermore, in some embodiments, the grinder 1300 can select one or more override functions to implement based on one or more user inputs. For example, a user may be able to activate one or more desired override functions (and deactivate one or more override functions). Similar to selecting a specific override function to activate, the grinder 1300 can select one or more parameters (e.g., thresholds, accumulator values, etc.) for a specific override function, e.g., based on operating parameters or conditions, user input (including battery characteristics), etc.

[0153] like Figure 21 As illustrated in FIG, in an embodiment where two loss of control functions are implemented serially, angular rotation of the grinder 1300 is detected (at block 9025) in response to the linear acceleration not exceeding a predetermined linear first threshold. As described above, the angular rotation of the grinder 1300 can be detected via a gyroscope included in the grinder 1300 and can be measured relative to a reference point, which can be defined based on the battery pins of the grinder 1300. The loss of control module 4000 receives a signal representing the detected angular rotation from the sensor 4005 and compares the angular rotation to a predetermined rotation threshold (at block 9030). In response to the detected angular rotation exceeding the predetermined rotation threshold (at block 930), the loss of control module 4000 detects a loss of control event and reduces power to the motor 1315 (at block 9035). In some embodiments, the loss of control module 4000 reduces power to the motor 1315 by stopping (i.e., braking) the motor 1315. However, in other embodiments, power to the motor 1315 is reduced without stopping the motor 1315. Figure 21As illustrated in FIG, in response to the angular rotation of the grinder 1300 not exceeding the predetermined rotation threshold (at block 9030), the method 9000 restarts to continue checking for a loss of control event.

[0154] As described above, in some cases, both linear acceleration and angular rotational motion are detected and monitored to detect a runaway event, and these conditions may be checked in parallel or serially (in various orders). However, as also described above, in other cases, the grinder 1300 may only implement a single runaway function.

[0155] In some embodiments, as described above with respect to Figure 21 As described, an out-of-control event can be detected by comparing the detected motion of the grinder 1300 (e.g., linear acceleration, angular rotation, or both) to predetermined thresholds. In some cases, the out-of-control module 4000 can use multiple predetermined thresholds. For example, the out-of-control module 4000 can control the motor 1315 to reduce motor speed based on satisfying a first predetermined threshold, and can control the motor 1315 to stop the motor based on satisfying a second predetermined threshold. The out-of-control module 4000 can also be configured to generate a warning signal output by one or more indicators 3030 when an out-of-control event is detected (or based on satisfying one or more thresholds). Similarly, in some embodiments, the out-of-control module 4000 can be configured to store, for example, in a memory, the number of times the motion of the grinder 1300 exceeds one or more thresholds, wherein the out-of-control module 4000 can use the tracked number of times to control the motor 1315 (e.g., slowing down or braking the motor 1315 in response to the number of times exceeding a predetermined number). In some cases, after the motor 1315 is stopped (at block 9020 or block 9035 ), the motor 1315 will remain stopped until the trigger switch 3015 is cycled by the operator releasing and re-actuating the trigger 3020 .

[0156] Furthermore, in some embodiments, the detected motion of the grinder can be compared to a threshold value, and in response to the motion exceeding or meeting the threshold value, a value can be added to an accumulator, wherein the accumulator is compared to a set point to determine whether a runaway event has been detected. Furthermore, in some embodiments, different threshold values ​​can be associated with different values ​​added to the accumulator to provide more precise control (e.g., a larger amount of detected motion may cause a larger value to be added to the accumulator than a smaller amount of detected motion). For example, Figure 221 is a flow chart illustrating a method 10000 for detecting an out-of-control condition in a grinding machine 1300 using an accumulator and multiple thresholds. The method 10000 can be executed by the out-of-control module 4000 (e.g., the electronic processor 4010). However, it should be understood that the functionality described herein can be distributed among multiple modules or control units. For example, the functionality described herein with respect to the method 10000 can be performed by the out-of-control module 4000 and the controller 3000. Furthermore, while the method 10000 is described herein with respect to the grinding machine 1300, a similar method can be implemented with respect to the grinding machine 2000. Furthermore, while the method 10000 is described herein with respect to two out-of-control functions sharing a single accumulator, separate accumulators can be used (e.g., one accumulator for each out-of-control function).

[0157] like Figure 22 As illustrated in FIG, in response to detecting operation of a trigger (a user activating the trigger to initiate or start use of the grinder 1300) (at block 10005), a motor 1315 included in the grinder 1300 is activated to allow the grinder 1300 to be used on a workpiece. During operation of the motor, the method 10000 includes detecting a linear acceleration of the grinder 1300 (e.g., a housing) via a sensor 4005 (e.g., an accelerometer) (at block 10010). The linear acceleration can be detected in a work plane parallel to the work surface. The out-of-control module 4000 receives a signal representing the detected linear acceleration from the sensor 4005 (e.g., an accelerometer).

[0158] Because method 10000 represents the implementation of two loss of control functions (i.e., linear acceleration and angular rotation), the loss of control module 4000 also receives a signal from sensor 4005 (e.g., a gyroscope) representing the angular rotation of the grinder 1300 measured relative to a reference point, which can be defined based on the battery pins of the grinder 1300 (at block 10015). The loss of control module 4000 uses both the detected linear acceleration and the detected angular rotation to increment an accumulator (at block 10020). For example, in response to the linear acceleration exceeding a first threshold, the loss of control module 4000 can add a first value to the accumulator. Similarly, in response to the angular rotation exceeding a second threshold, the loss of control module 4000 can add a second value to the accumulator. The first value and the second value can be the same or different.

[0159] In some cases, the value added to the accumulator may differ based on the detected motion of the grinder 1300. For example, the increment may be larger for higher sensor outputs (e.g., sensor outputs associated with greater amounts of motion), while the increment may be smaller for lower sensor outputs (e.g., sensor outputs associated with lesser amounts of motion). Specifically, the runaway functionality may be associated with multiple thresholds, where each threshold may be associated with an assigned increment value that may vary for each threshold. For example, using the linear acceleration runaway functionality, the detected linear acceleration may be compared to one or more thresholds to determine what, if any, increment value should be added to the accumulator. Specifically, the runaway module 4000 may compare the detected linear acceleration value to a first threshold (which may represent a highest threshold associated with the highest increment value). In response to the linear acceleration meeting (e.g., exceeding) the first threshold, the runaway module 4000 adds the increment value or increment count associated with the first threshold to the accumulator. However, in response to the linear acceleration not satisfying the first threshold, the out-of-control module 4000 compares the detected linear acceleration to a second threshold, wherein the second threshold is associated with a second incremental count that is different from the first incremental count. In response to the linear acceleration satisfying the second threshold, the out-of-control module 4000 adds the second incremental count to the accumulator (counter). It should be understood that when multiple out-of-control functions are implemented, the out-of-control module 4000 may use multiple thresholds and incremental counts for each of the multiple control functions or only for a subset of the control functions. For example, in some embodiments, the out-of-control module 4000 may use multiple thresholds for the linear acceleration out-of-control function but may use a single threshold (and a single associated incremental value) for the angular rotation out-of-control function (or vice versa). Similarly, when multiple thresholds are used for multiple out-of-control functions, each out-of-control function may have different thresholds, a different number of thresholds, a different incremental value, or a combination thereof.

[0160] Return to Figure 22 , the out-of-control module 4000 (after making any required increments to the accumulator based on detected linear acceleration, detected angular rotation, or both) compares the accumulator to a predetermined set point (at block 10025). In response to the accumulator exceeding the predetermined set point (at block 10025), the out-of-control module 4000 detects an out-of-control event and reduces power to the motor 1315 (at block 10035). In some embodiments, the out-of-control module 4000 reduces power to the motor 1315 by stopping (i.e., braking) the motor 1315. However, in other embodiments, power to the motor 1315 is reduced without stopping the motor 1315. After reducing power to the motor 1315, the motor 1315 can resume normal operation after cycling the trigger.

[0161] like Figure 22 As illustrated in FIG, in response to the accumulator not exceeding the predetermined set point (at block 10025), method 10000 restarts to continue checking for out-of-control events. Furthermore, in some cases, the accumulator may be decremented in response to various conditions (e.g., detected motion failing to meet any applicable threshold for one or a predetermined number of cycles).

[0162] As described above, multiple out-of-control functions can provide input to a shared accumulator value, or can use separate accumulator values, wherein when any of the accumulator values ​​meet a corresponding threshold, an out-of-control event can be detected and the motor can be controlled accordingly. Furthermore, in some embodiments, the accumulator value can be compared to multiple set points, wherein different set points are associated with different responses (e.g., controlling an indicator, reducing motor speed, braking the motor, etc.). Furthermore, as described above, various aspects of the out-of-control function (including which function or functions to activate) and which thresholds, increments, set points, or combinations thereof can be automatically determined by the out-of-control function based on operating conditions or parameters of the grinder 1300, battery characteristics, user input, or a combination thereof.

[0163] The electronics and components used with the override functionality described above can similarly be used to detect kickback or binding conditions. For example, the grinder 1300 or 2000 (e.g., the controller 3000, the override module 4000, a separate control module, or a combination thereof) can be configured to detect a stall condition of the accessory 1335 or 2035, the output shaft 1325 or 2025, or other powered rotating component of the grinder 1300 or 2000. For example, a stall condition occurs when the accessory 1335 or 2035 becomes bound in a workpiece, causing the grinder 1300 or 2000 (e.g., the housing of the grinder 1300 or 2000) to rotate. The stall condition can be detected based on parameters of the motor 1315 or 2015 (e.g., motor current, Hall effect sensor position monitoring, sensorless monitoring, etc.), which can be sensed via the sensing circuit 3025, the sensor 4005, or a combination thereof. In other embodiments, sensor 4005 (which, as described above, may include an accelerometer) may be used to detect a stall condition. When a stall condition is detected, the grinder 1300 or 2000 may be configured to stop motor operation (e.g., brake the motor), as described above with respect to the runaway functionality. For example, sensor 4005 (e.g., an accelerometer) may be configured to detect acceleration of the grinder 1300 or 2000 (i.e., the housing of the grinder 1300 or 2000) about the output shaft 1325 or 225. An electronic processor included in the grinder 1300 or 2000 (e.g., the controller 3000, the runaway module 4000, a separate control module, or a combination thereof) may be configured to receive a signal representing the detected acceleration from sensor 4005, compare the acceleration to a threshold, and, in response to the acceleration exceeding the threshold, reduce power to the motor. This kickback detection functionality may be performed in combination with one or more of the runaway functionality described above, or separately from such functionality. Furthermore, in some embodiments, the kickback detection function may utilize an accumulator as described above, wherein when the detected acceleration exceeds a threshold, a value is added to the accumulator, and when the accumulator exceeds a predetermined set point, a kickback condition is detected and the motor is controlled accordingly. Furthermore, as also described above with respect to the runaway function, in some embodiments, different values ​​may be added to the accumulator based on the amount of detected acceleration. Furthermore, in some embodiments, a detected acceleration below a minimum threshold may cause a value to be subtracted from the accumulator. Furthermore, in some embodiments, different set points may be used to provide different control responses for different accumulator values. For example, when the accumulator value reaches a first set point, the motor speed may be reduced, and when the accumulator value reaches a second set point, the motor may be stopped or braked.

[0164] Item 1. A power tool comprising: a housing defining a body axis, the housing having a grip for a user, the grip positioned between a first end and a second end of the housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor to rotate about a rotational axis, the output shaft configured to couple to an accessory for co-rotation; a sensor configured to detect linear acceleration of the power tool in a work plane parallel to a work surface during operation of the power tool; an electronic processor configured to: receive a signal representing the detected linear acceleration from the sensor; compare the linear acceleration to a first threshold value associated with a first incremental count; in response to the linear acceleration not exceeding the first threshold value, compare the linear acceleration to a second threshold value associated with a second incremental count different from the first incremental count, and in response to the linear acceleration exceeding the second threshold value, add the second incremental count to an accumulator; and in response to the accumulator exceeding a set point, detect a runaway event and reduce power to the motor.

[0165] Clause 2. The power tool of Clause 1, wherein the power tool is configured for single-handed use, and wherein the grip has a length of 100 mm or less.

[0166] Clause 3. The power tool of Clause 1, wherein the power output of the power tool is between 600 watts and 800 watts.

[0167] Clause 4. The power tool of Clause 1, wherein the power output of the power tool is at least 600 watts.

[0168] Clause 5. The power tool of Clause 1, wherein the power output of the power tool is at least 500 watts.

[0169] Clause 6. The power tool of Clause 1, wherein the rechargeable battery pack is approximately 12 volts.

[0170] Clause 7. The power tool of Clause 1, wherein the rechargeable battery pack is configured to provide a current of at least 60 amperes.

[0171] Clause 8. The power tool of Clause 1, wherein the rechargeable battery pack is configured to provide a current between 60 amps and 90 amps.

[0172] Clause 9. The power tool of Clause 1, wherein the sensor comprises an accelerometer.

[0173] Clause 10. The power tool of Clause 1, wherein the electronic processor is configured to, in response to detecting a runaway event, reduce power to the motor by braking the motor.

[0174] Item 11. A method for controlling a power tool, the method comprising: detecting, by a sensor included in the power tool, an angular rotation of the power tool about a reference point; generating, by the sensor, a signal comprising data representing the angular rotation of the power tool; receiving, by an electronic processor, the signal comprising data representing the angular rotation of the power tool; incrementing, by the electronic processor, an accumulator value based on the signal; comparing, by the electronic processor, the accumulator value with a predetermined threshold; and, in response to the accumulator value exceeding the predetermined threshold, detecting, by the electronic processor, a runaway event and reducing power to a motor of the power tool.

[0175] Clause 12. The method of clause 11, wherein the sensor comprises a gyroscope.

[0176] Clause 13. The method of clause 11, wherein the reference point is defined by a battery foot of the power tool.

[0177] Clause 14. The method of clause 11, wherein the signal is a first signal, and the method further comprises: receiving, by the electronic processor, a second signal comprising data representing a linear acceleration of the power tool in a work plane parallel to the work surface.

[0178] Clause 15. The method of Clause 14, wherein incrementing, by the electronic processor, the accumulator value comprises incrementing the accumulator value based on the first signal and the second signal.

[0179] Clause 16. A method as described in Clause 14, wherein the accumulator value is a first accumulator value and the predetermined threshold is a first predetermined threshold, and the method further includes: incrementing a second accumulator value by the electronic processor based on the second signal; comparing the second accumulator value to a second predetermined threshold by the electronic processor; and reducing power to the motor in response to the second accumulator value exceeding the second predetermined threshold.

[0180] Clause 17. The method of Clause 11, wherein the power output of the power tool is between 600 watts and 800 watts.

[0181] Clause 18. The method of Clause 11, wherein the power tool is a grinder configured for one-handed use, and wherein the grinder comprises a handle comprising a length of 100 mm or less.

[0182] Item 19. A one-handed grinder tool comprising: a housing defining a body axis, the housing having a one-handed grip positioned between a first end and a second end of the housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor to rotate about a rotational axis, the output shaft configured to couple to a grinding attachment so as to co-rotate therewith; a sensor configured to detect acceleration of the one-handed grinder tool about the output shaft; and an electronic processor configured to: receive a signal from the sensor representing the detected acceleration; compare the acceleration to a threshold; and reduce power to the motor in response to the acceleration exceeding the threshold.

[0183] Clause 20. The one-handed grinder tool of Clause 19, wherein the one-handed grip has a length of 100 mm or less.

[0184] Clause 21. The one-handed grinder tool of Clause 19, wherein the power output of the one-handed grinder tool is between 600 watts and 800 watts.

[0185] Clause 22. The one-hand grinder tool of Clause 19, wherein the rechargeable battery pack is approximately 12 volts.

[0186] Clause 23. The one-hand grinder tool of Clause 19, wherein the rechargeable battery pack is approximately 18 volts.

[0187] Clause 24. The one-hand grinder tool of Clause 19, wherein the rechargeable battery pack is configured to provide a current between 60 amps and 90 amps.

[0188] Clause 25. The one-hand grinder tool of Clause 19, wherein the grinding attachment has a diameter of 100 mm or less.

[0189] Clause 26. The one-handed grinder tool of Clause 19, further comprising a guard at least partially covering the grinding attachment, the guard forming a widest radial dimension of the one-handed grinder tool relative to the body axis.

[0190] Use and combination of loss of control methods and characteristics

[0191] The controllers 300 and 3000 described herein can determine that a loss of control event has occurred based on any one of the features disclosed above. Additionally, the controllers 300 and 3000 can use a combination of the features described above. For example, the controllers 300 or 3000 can include drop detection, linear acceleration detection, and motor speed and current detection. However, in other cases, the power tool may only implement a single loss of control function.

[0192] Moreover, the runaway methods and features described herein can be used with or without accumulator values. For example, a detected value can be compared to a threshold value, and in response to the value exceeding or meeting the threshold value, a value can be added to an accumulator, wherein the accumulator is compared to a predetermined value (e.g., a set point) to determine whether a runaway event has been detected. Alternatively, a detected value can be compared to a threshold value, and in response to the value exceeding or meeting the threshold value, a runaway event can be detected. In either type of embodiment, different threshold values ​​can be used, and when an accumulator is used, different threshold values ​​can be associated with different values ​​added to the accumulator to provide more precise control (e.g., a larger amount of motion may cause a larger value to be added to the accumulator than a smaller amount of detected motion). As also described above, in some embodiments, a single detected value can be compared to multiple threshold values, and in some embodiments, each threshold value can be associated with a different accumulator value.

[0193] Moreover, in some embodiments, although the above features describe stopping the motor of the power tool when a runaway event has occurred, various actions may be taken in response to detecting that a runaway event has occurred. For example, the controller 300 or 3000 may slow the motor, disconnect the abrasive disc from the motor, turn on one or more indicators, etc. Moreover, in some embodiments, when a runaway event is detected, one or more responsive and / or mitigating actions may be taken (e.g., the motor may be stopped), and specific actions may be required to initiate a reset that allows the power tool to resume normal operation. For example, when a runaway function stops the motor, a complete trigger recycle may be required before restarting the motor.

[0194] Item 1. A power tool comprising: a housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to couple to an accessory for operating the accessory; a sensing circuit configured to detect a rotational speed of the power tool about an axis during operation of the power tool; and a controller configured to: (a) receive a signal from the sensing circuit representing the rotational speed of the power tool about the axis; (b) compare the rotational speed with a first threshold value associated with a first rotational direction about the axis; (c) compare the rotational speed with a second threshold value associated with a second rotational direction about the axis, the second direction being opposite to the first direction and different from the first threshold value; and (d) trigger an override function based on whether the rotational speed exceeds the first threshold value and whether the rotational speed exceeds the second threshold value.

[0195] Clause 2. The power tool of Clause 1, wherein the first direction is a critical rotational direction about the axis and the second direction is a non-critical rotational direction about the axis, and wherein the second threshold is greater than the first threshold.

[0196] Clause 3. The power tool of Clause 2, wherein the first direction is at least one of a -Z rotational direction, a -X rotational direction, and a +Y rotational direction.

[0197] Clause 4. The power tool of Clause 1, wherein the controller is further configured to perform (a)-(d) for each respective axis of the plurality of axes.

[0198] Clause 5. The power tool of Clause 1, wherein the second direction is a non-critical rotational direction, and wherein the value of the second threshold is equal to the value of the first threshold multiplied by a multiplier.

[0199] Clause 6. The power tool of Clause 1, wherein the first threshold value and the second threshold value have opposite signs.

[0200] Clause 7. A power tool as described in Clause 1, wherein the controller is configured to trigger an out-of-control condition based on whether the rotational speed exceeds the first threshold and whether the rotational speed exceeds the second threshold by the following steps: adding a first value to the accumulator in response to the rotational speed exceeding the first threshold; adding a second value to the accumulator in response to the rotational speed exceeding the second threshold; comparing the accumulator with a predetermined value; and triggering the out-of-control condition in response to the accumulator exceeding the predetermined value.

[0201] Clause 8. The power tool of Clause 7, wherein the first value and the second value are different values.

[0202] Clause 9. The power tool of Clause 1, wherein the controller is configured to trigger the override function by slowing or stopping the motor.

[0203] Item 10. A power tool comprising: a housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to connect to an accessory for operating the accessory; a sensing circuit configured to detect an operating characteristic of the motor during operation of the power tool, the operating characteristic being at least one of motor acceleration and a battery current of the battery pack; and a controller configured to: receive a signal representing the operating characteristic of the motor from the sensing circuit; compare the operating characteristic of the motor with a first predetermined threshold; and in response to the operating characteristic exceeding the predetermined threshold, perform an out-of-control check on the power tool, wherein performing the out-of-control check comprises: comparing a detected movement of the power tool with a second predetermined threshold; and triggering an out-of-control function based on whether the detected movement of the power tool exceeds the second predetermined threshold.

[0204] Clause 11. A power tool as described in Clause 10, wherein the controller is configured to compare the operating characteristics of the motor with the first predetermined threshold by comparing the motor acceleration with the acceleration threshold and comparing the battery current with the battery threshold, and wherein the controller is configured to perform the out-of-control check on the power tool in response to the motor acceleration exceeding the acceleration threshold and the battery current exceeding the battery threshold.

[0205] Clause 12. The power tool of Clause 10, wherein the controller is further configured to: in response to the operating characteristic of the motor not exceeding the predetermined threshold, skip performing the loss of control check.

[0206] Clause 13. The power tool of Clause 10, wherein the controller is configured to compare the detected motion of the power tool to the second predetermined threshold by comparing a rotational speed of the power tool about an axis to the second predetermined threshold.

[0207] Clause 14. The power tool of Clause 10, wherein the controller is configured to compare the detected motion of the power tool to the second predetermined threshold by comparing a linear acceleration of the power tool along the axis to the second predetermined threshold.

[0208] Clause 15. The power tool of Clause 10, wherein the controller is configured to trigger the override function by slowing or stopping the motor.

[0209] Clause 16. A power tool comprising: a housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to couple to an accessory for operating the accessory; a sensing circuit configured to detect a first rotational speed of the power tool about a first axis, a second rotational speed of the power tool about a second axis, and a third rotational speed of the power tool about a third axis during operation of the power tool; and a controller configured to: receive a signal from the sensing circuit indicating a rotational speed of the power tool about a first axis; One or more signals of the first rotational speed, the second rotational speed, and the third rotational speed; applying a first sensitivity value to the first rotational speed, a second sensitivity value to the second rotational speed, and a third sensitivity value to the third rotational speed to obtain a first adjusted rotational speed, a second adjusted rotational speed, and a third adjusted rotational speed; summing the square of the first adjusted rotational speed, the square of the second adjusted rotational speed, and the square of the third adjusted rotational speed; comparing the sum with a predetermined threshold; and triggering an out-of-control function based on whether the sum exceeds the predetermined threshold.

[0210] Clause 17. The power tool of Clause 16, wherein the controller is configured to apply the first sensitivity to the first rotational speed using a bit shift of the first rotational speed.

[0211] Clause 18. The power tool of Clause 16, wherein at least two of the first sensitivity value, the second sensitivity value, and the third sensitivity value are different.

[0212] Clause 19. A power tool as described in Clause 16, wherein the controller is configured to trigger the loss of control function based on whether the sum exceeds the predetermined threshold by the following steps: adding a value to an accumulator in response to the sum exceeding the predetermined threshold; comparing the accumulator with a predetermined value; and triggering the loss of control function in response to the accumulator exceeding the predetermined value.

[0213] Clause 20. A power tool as described in Clause 19, wherein the controller is configured to compare the sum with the predetermined threshold by comparing the sum with each of a plurality of thresholds, wherein each respective threshold of the plurality of thresholds is associated with a different value to be added to the accumulator in response to the sum exceeding the respective threshold.

[0214] Item 21. A power tool comprising: a housing; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered via the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to couple to an accessory for operating the accessory; a sensing circuit configured to detect linear acceleration of the power tool along an axis during operation of the power tool; and a controller configured to: (a) receive a signal from the sensing circuit representing the linear acceleration of the power tool along the axis; (b) compare the linear acceleration to a predetermined threshold; and (c) stop the motor in response to the linear acceleration satisfying the predetermined threshold.

[0215] Clause 22. The power tool of Clause 21, wherein the controller is configured to perform (a)-(c) for each respective axis of the plurality of axes.

[0216] Clause 23. The power tool of Clause 22, wherein the controller is configured to compare the linear acceleration in each respective axis of the plurality of axes to a different predetermined threshold value.

[0217] Clause 24. A power tool as described in Clause 22, wherein the controller is configured to compare the linear acceleration with the predetermined threshold by the following steps: subtracting a calibration offset from the absolute value of the linear acceleration to obtain a calibrated linear acceleration; and comparing the calibrated linear acceleration with the predetermined threshold.

[0218] Clause 25. The power tool of Clause 24, wherein the controller is further configured to: accumulate a stroke angle of the power tool; and recalibrate the calibration offset in response to the stroke angle of the power tool exceeding a second predetermined threshold.

[0219] Clause 26. The power tool of Clause 25, wherein the controller is configured to accumulate the stroke angle of the power tool based on the rotational speed of the power tool.

[0220] Clause 27. A power tool as described in Clause 25, wherein the controller is configured to: in response to the magnitude of the current acceleration vector of the power tool being within a predetermined range of gravity values, recalibrate the calibration offset by setting the calibration offset to the current detected linear acceleration of the power tool.

[0221] Clause 28. A power tool as described in Clause 21, wherein the controller is configured to compare the linear acceleration with a predetermined threshold by comparing the linear acceleration with a drop acceleration range, and wherein the controller is configured to stop the motor in response to the linear acceleration being within the drop acceleration range.

[0222] Clause 29. A power tool as described in Clause 21, wherein the linear acceleration along the axis is a first linear acceleration along the first axis, and wherein the controller is configured to compare the linear acceleration with a predetermined threshold by the following steps: calculating the sum of the first linear acceleration on the first axis, the second linear acceleration on the second axis, and the third linear acceleration on the third axis; and comparing the sum with a predetermined gravity value, wherein the controller is configured to stop the motor in response to the sum satisfying the predetermined gravity value.

[0223] Clause 30. The power tool of Clause 21, wherein the housing includes a one-hand grip, and wherein the power tool is configured for one-handed use.

[0224] It should be understood that the threshold values ​​described herein can be established based on expected or normal values ​​to detect various undesirable conditions (e.g., loss of control, kickback conditions, etc.). The threshold values ​​can vary based on the type of power tool (e.g., type of motor, size of handle, weight of tool, etc.), the battery being used with the power tool, the workpiece being operated on by the power tool, the user (e.g., height, weight, experience level), or a combination thereof.

[0225] Thus, the embodiments described herein provide, among other things, systems and methods for grinding mills having runaway mitigation aspects. Various features and advantages are set forth in the appended claims.

Claims

1. A power tool comprising: case; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered by the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to be coupled to an accessory for operating the accessory; a sensing circuit configured to detect an operating characteristic of the motor during operation of the power tool, the operating characteristic being at least one of motor acceleration and a battery current of the battery pack; as well as A controller configured to: receiving a signal from the sensing circuit indicative of an operating characteristic of the motor, comparing an operating characteristic of the motor to a first predetermined threshold, and In response to the operating characteristic exceeding the first predetermined threshold, performing a loss of control check on the power tool, wherein performing the loss of control check comprises: comparing the detected motion of the power tool to a second predetermined threshold, and The override function is triggered based on whether the detected motion of the power tool exceeds the second predetermined threshold.

2. The power tool according to claim 1, wherein: The controller is configured to compare the operating characteristics of the motor with the first predetermined threshold by comparing the motor acceleration with an acceleration threshold and comparing the battery current with a battery threshold, and wherein the controller is configured to perform the out-of-control check on the power tool in response to the motor acceleration exceeding the acceleration threshold and the battery current exceeding the battery threshold.

3. The power tool according to claim 1, wherein: The controller is configured to compare the detected motion of the power tool to the second predetermined threshold by comparing a rotational speed of the power tool about the axis to the second predetermined threshold.

4. The power tool according to claim 1, wherein: The controller is configured to compare the detected motion of the power tool to the second predetermined threshold by comparing a linear acceleration of the power tool along the axis to the second predetermined threshold.

5. The power tool according to claim 1, wherein: The housing includes a one-hand grip, and wherein the power tool is configured for one-handed use.

6. The power tool according to claim 1, wherein: The controller is configured to compare the detected motion of the power tool with the second predetermined threshold by: receiving one or more signals representing a first rotational speed, a second rotational speed, and a third rotational speed from the sensing circuit; applying a first sensitivity value to the first rotational speed, a second sensitivity value to the second rotational speed, and a third sensitivity value to the third rotational speed to obtain a first adjusted rotational speed, a second adjusted rotational speed, and a third adjusted rotational speed; summing the square of the first adjusted rotational speed, the square of the second adjusted rotational speed, and the square of the third adjusted rotational speed; as well as comparing the sum to the second predetermined threshold, and The controller is configured to trigger the fail-safe function based on whether the detected movement of the power tool exceeds the second predetermined threshold by the following steps: triggering the fail-safe function based on whether the sum exceeds the second predetermined threshold.

7. A power tool comprising: case; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered by the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to be coupled to an accessory for operating the accessory; sensing circuitry configured to detect a first rotational speed of the power tool about a first axis, a second rotational speed of the power tool about a second axis, and a third rotational speed of the power tool about a third axis during operation of the power tool; as well as A controller is configured to perform a runaway check on the power tool by: receiving one or more signals representing the first rotational speed, the second rotational speed, and the third rotational speed from the sensing circuit; applying a first sensitivity value to the first rotational speed, a second sensitivity value to the second rotational speed, and a third sensitivity value to the third rotational speed to obtain a first adjusted rotational speed, a second adjusted rotational speed, and a third adjusted rotational speed; summing the square of the first adjusted rotational speed, the square of the second adjusted rotational speed, and the square of the third adjusted rotational speed; comparing the sum to a predetermined threshold, and A fail-safe function is triggered based on whether the sum exceeds the predetermined threshold.

8. The power tool according to claim 7, wherein: The housing includes a one-hand grip, and wherein the power tool is configured for one-handed use.

9. The power tool according to claim 7, wherein: The controller is configured to trigger the fail-safe function based on whether the sum exceeds the predetermined threshold by: adding a value to the accumulator in response to the sum exceeding the predetermined threshold, comparing the accumulator to a predetermined value, and The override function is triggered in response to the accumulator exceeding the predetermined value.

10. The power tool according to claim 9, wherein: The controller is configured to compare the sum to the predetermined threshold by comparing the sum to each of a plurality of thresholds, wherein each respective threshold of the plurality of thresholds is associated with a different value to be added to the accumulator in response to the sum exceeding the respective threshold.

11. The power tool according to claim 7, wherein: The controller is further configured to: receiving a signal from the sensing circuit indicative of an operating characteristic of the motor, comparing the operating characteristic of the motor to a second predetermined threshold, and In response to the operating characteristic exceeding the second predetermined threshold, the runaway check is performed on the power tool.

12. A power tool comprising: case; a battery pack interface configured to receive a rechargeable battery pack; a motor positioned within the housing and powered by the rechargeable battery pack; an output shaft driven by the motor, the output shaft configured to be coupled to an accessory for operating the accessory; sensing circuitry configured to detect linear acceleration of the power tool along an axis during operation of the power tool; and A controller configured to: (a) receiving a signal from the sensing circuit representing the linear acceleration of the power tool along the axis, (b) comparing the linear acceleration to a predetermined threshold, and (c) in response to the linear acceleration satisfying the predetermined threshold, stopping the motor.

13. The power tool according to claim 12, wherein: The controller is configured to perform (a)-(c) for each respective axis in a plurality of axes, and wherein the controller is configured to compare the linear acceleration in each respective axis in the plurality of axes to a different predetermined threshold value.

14. The power tool according to claim 13, wherein: The controller is configured to compare the linear acceleration with the predetermined threshold by: Subtracting the calibration offset from the absolute value of the linear acceleration to obtain the calibrated linear acceleration, and The calibrated linear acceleration is compared with the predetermined threshold.

15. The power tool according to claim 14, wherein: The controller is further configured to: accumulating the stroke angle of the power tool; and In response to the angle of travel of the power tool exceeding a second predetermined threshold, the calibration offset is recalibrated.

16. The power tool according to claim 15, wherein: The controller is configured to accumulate a stroke angle of the power tool based on a rotational speed of the power tool.

17. The power tool according to claim 15, wherein: The controller is configured to recalibrate the calibration offset by setting the calibration offset to a currently detected linear acceleration of the power tool in response to a magnitude of a current acceleration vector of the power tool being within a predetermined range of gravity values.

18. The power tool according to claim 12, wherein: The controller is configured to compare the linear acceleration to a predetermined threshold by comparing the linear acceleration to a drop acceleration range, and wherein the controller is configured to stop the motor in response to the linear acceleration being within the drop acceleration range.

19. The power tool according to claim 12, wherein: The linear acceleration along the axis is a first linear acceleration along a first axis, and wherein the controller is configured to compare the linear acceleration to a predetermined threshold by: calculating a sum of the first linear acceleration on the first axis, the second linear acceleration on the second axis, and the third linear acceleration on the third axis; and This sum is compared with a predetermined gravity value, Wherein the controller is configured to stop the motor in response to the sum satisfying the predetermined gravity value.

20. The power tool according to claim 12, wherein: The housing includes a one-hand grip, and wherein the power tool is configured for one-handed use.