Patent ID: 12226881

DETAILED DESCRIPTION

Before any embodiments of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limited. The use of “including,” “comprising” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. The terms “mounted,” “connected” and “coupled” are used broadly and encompass both direct and indirect mounting, connecting and coupling. Further, “connected” and “coupled” are not restricted to physical or mechanical connections or couplings, and can include electrical connections or couplings, whether direct or indirect.

It should be noted that a plurality of hardware and software based devices, as well as a plurality of different structural components may be utilized to implement the invention. Furthermore, and as described in subsequent paragraphs, the specific configurations illustrated in the drawings are intended to exemplify embodiments of the invention and that other alternative configurations are possible. The terms “processor” “central processing unit” and “CPU” are interchangeable unless otherwise stated. Where the terms “processor” or “central processing unit” or “CPU” are used as identifying a unit performing specific functions, it should be understood that, unless otherwise stated, those functions can be carried out by a single processor, or multiple processors arranged in any form, including parallel processors, serial processors, tandem processors or cloud processing/cloud computing configurations.

FIG.1illustrates a communication system100. The communication system100includes power tool devices102and an external device108. Each power tool device102(e.g., battery powered impact driver102aand power tool battery pack102b) and the external device108can communicate wirelessly while they are within a communication range of each other. Each power tool device102may communicate power tool status, power tool operation statistics, power tool identification, stored power tool usage information, power tool maintenance data, and the like. Therefore, using the external device108, a user can access stored power tool usage or power tool maintenance data. With this tool data, a user can determine how the power tool device102has been used, whether maintenance is recommended or has been performed in the past, and identify malfunctioning components or other reasons for certain performance issues. The external device108can also transmit data to the power tool device102for power tool configuration, firmware updates, or to send commands (e.g., turn on a work light). The external device108also allows a user to set operational parameters, safety parameters, select tool modes, and the like for the power tool device102.

The external device108may be, for example, a smart phone (as illustrated), a laptop computer, a tablet computer, a personal digital assistant (PDA), or another electronic device capable of communicating wirelessly with the power tool device102and providing a user interface. The external device108provides the user interface and allows a user to access and interact with tool information. The external device108can receive user inputs to determine operational parameters, enable or disable features, and the like. The user interface of the external device108provides an easy-to-use interface for the user to control and customize operation of the power tool.

The external device108includes a communication interface that is compatible with a wireless communication interface or module of the power tool device102. The communication interface of the external device108may include a wireless communication controller (e.g., a Bluetooth® module), or a similar component. The external device108, therefore, grants the user access to data related to the power tool device102, and provides a user interface such that the user can interact with the controller of the power tool device102.

In addition, as shown inFIG.1, the external device108can also share the information obtained from the power tool device102with a remote server112connected by a network114. The remote server112may be used to store the data obtained from the external device108, provide additional functionality and services to the user, or a combination thereof. In one embodiment, storing the information on the remote server112allows a user to access the information from a plurality of different locations. In another embodiment, the remote server112may collect information from various users regarding their power tool devices and provide statistics or statistical measures to the user based on information obtained from the different power tools. For example, the remote server112may provide statistics regarding the experienced efficiency of the power tool device102, typical usage of the power tool device102, and other relevant characteristics and/or measures of the power tool device102. The network114may include various networking elements (routers, hubs, switches, cellular towers, wired connections, wireless connections, etc.) for connecting to, for example, the Internet, a cellular data network, a local network, or a combination thereof. In some embodiments, the power tool device102may be configured to communicate directly with the server112through an additional wireless interface or with the same wireless interface that the power tool device102uses to communicate with the external device108.

The power tool device102is configured to perform one or more specific tasks (e.g., drilling, cutting, fastening, pressing, lubricant application, sanding, heating, grinding, bending, forming, impacting, polishing, lighting, etc.). For example, an impact wrench is associated with the task of generating a rotational output (e.g., to drive a bit).

FIG.2illustrates an example of the power tool device102, an impact driver104. The impact driver104is representative of various types of power tools that operate within the system100. Accordingly, the description with respect to the impact driver104in the system100is similarly applicable to other types of power tools, such as other power tools with impact mechanisms (e.g., impact wrenches and impacting angle drivers). As shown inFIG.2, the impact driver104includes an upper main body202, a handle204, a battery pack receiving portion206, mode pad208, an output drive device210, a trigger212, a work light217, and forward/reverse selector219. The housing of the impact driver104(e.g., the main body202and the handle204) are composed of a durable and light-weight plastic material. The drive device210is composed of a metal (e.g., steel). The drive device210on the impact driver104is a socket. However, other power tools may have a different drive device210specifically designed for the task associated with the other power tool. The battery pack receiving portion206is configured to receive and couple to the battery pack (e.g.,102bofFIG.1) that provides power to the impact driver104. The battery pack receiving portion206includes a connecting structure to engage a mechanism that secures the battery pack and a terminal block to electrically connect the battery pack to the impact driver104. The mode pad208allows a user to select a mode of the impact driver104and indicates to the user the currently selected mode of the impact driver104, which are described in greater detail below.

As shown inFIG.3A, the impact driver104also includes a motor214. The motor214actuates the drive device210and allows the drive device210to perform the particular task. A primary power source (e.g., a battery pack)215couples to the impact driver104and provides electrical power to energize the motor214. The motor214is energized based on the position of the trigger212. When the trigger212is depressed the motor214is energized, and when the trigger212is released, the motor214is de-energized. In the illustrated embodiment, the trigger212extends partially down a length of the handle204; however, in other embodiments the trigger212extends down the entire length of the handle204or may be positioned elsewhere on the impact driver104. The trigger212is moveably coupled to the handle204such that the trigger212moves with respect to the tool housing. The trigger212is coupled to a push rod, which is engageable with a trigger switch213(seeFIG.3A). The trigger212moves in a first direction towards the handle204when the trigger212is depressed by the user. The trigger212is biased (e.g., with a spring) such that it moves in a second direction away from the handle204, when the trigger212is released by the user. When the trigger212is depressed by the user, the push rod activates the trigger switch213, and when the trigger212is released by the user, the trigger switch213is deactivated. In other embodiments, the trigger212is coupled to an electrical trigger switch213. In such embodiments, the trigger switch213may include, for example, a transistor. Additionally, for such electronic embodiments, the trigger212may not include a push rod to activate the mechanical switch. Rather, the electrical trigger switch213may be activated by, for example, a position sensor (e.g., a Hall-Effect sensor) that relays information about the relative position of the trigger212to the tool housing or electrical trigger switch213. The trigger switch213outputs a signal indicative of the position of the trigger212. In some instances, the signal is binary and indicates either that the trigger212is depressed or released. In other instances, the signal indicates the position of the trigger212with more precision. For example, the trigger switch213may output an analog signal that various from 0 to 5 volts depending on the extent that the trigger212is depressed. For example, 0 V output indicates that the trigger212is released, 1 V output indicates that the trigger212is 20% depressed, 2 V output indicates that the trigger212is 40% depressed, 3 V output indicates that the trigger212is 60% depressed 4 V output indicates that the trigger212is 80% depressed, and 5 V indicates that the trigger212is 100% depressed. The signal output by the trigger switch213may be analog or digital.

As also shown inFIG.3A, the impact driver104also includes a switching network216, sensors218, indicators220, the battery pack interface222, a power input unit224, a controller226, a wireless communication controller250, and a back-up power source252. The back-up power source252includes, in some embodiments, a coin cell battery (FIG.4) or another similar small replaceable power source. The battery pack interface222is coupled to the controller226and couples to the battery pack215. The battery pack interface222includes a combination of mechanical (e.g., the battery pack receiving portion206) and electrical components configured to and operable for interfacing (e.g., mechanically, electrically, and communicatively connecting) the impact driver104with the battery pack215. The battery pack interface222is coupled to the power input unit224. The battery pack interface222transmits the power received from the battery pack215to the power input unit224. The power input unit224includes active and/or passive components (e.g., voltage step-down controllers, voltage converters, rectifiers, filters, etc.) to regulate or control the power received through the battery pack interface222and to the wireless communication controller250and controller226.

The switching network216enables the controller226to control the operation of the motor214. Generally, when the trigger212is depressed as indicated by an output of the trigger switch213, electrical current is supplied from the battery pack interface222to the motor214, via the switching network216. When the trigger212is not depressed, electrical current is not supplied from the battery pack interface222to the motor214.

In response to the controller226receiving the activation signal from the trigger switch213, the controller226activates the switching network216to provide power to the motor214. The switching network216controls the amount of current available to the motor214and thereby controls the speed and torque output of the motor214. The switching network216may include numerous FETs, bipolar transistors, or other types of electrical switches. For instance, the switching network216may include a six-FET bridge that receives pulse-width modulated (PWM) signals from the controller226to drive the motor214.

The sensors218are coupled to the controller226and communicate to the controller226various signals indicative of different parameters of the impact driver104or the motor214. The sensors218include Hall sensors218a, current sensors218b, among other sensors, such as, for example, one or more voltage sensors, one or more temperature sensors, and one or more torque sensors. Each Hall sensor218aoutputs motor feedback information to the controller226, such as an indication (e.g., a pulse) when a magnet of the motor's rotor rotates across the face of that Hall sensor. Based on the motor feedback information from the Hall sensors218a, the controller226can determine the position, velocity, and acceleration of the rotor. In response to the motor feedback information and the signals from the trigger switch213, the controller226transmits control signals to control the switching network216to drive the motor214. For instance, by selectively enabling and disabling the FETs of the switching network216, power received via the battery pack interface222is selectively applied to stator coils of the motor214to cause rotation of its rotor. The motor feedback information is used by the controller226to ensure proper timing of control signals to the switching network216and, in some instances, to provide closed-loop feedback to control the speed of the motor214to be at a desired level.

The indicators220are also coupled to the controller226and receive control signals from the controller226to turn on and off or otherwise convey information based on different states of the impact driver104. The indicators220include, for example, one or more light-emitting diodes (“LED”), or a display screen. The indicators220can be configured to display conditions of, or information associated with, the impact driver104. For example, the indicators220are configured to indicate measured electrical characteristics of the impact driver104, the status of the impact driver104, the mode of the power tool (discussed below), etc. The indicators220may also include elements to convey information to a user through audible or tactile outputs.

As described above, the controller226is electrically and/or communicatively connected to a variety of modules or components of the impact driver104. In some embodiments, the controller226includes a plurality of electrical and electronic components that provide power, operational control, and protection to the components and modules within the controller226and/or impact driver104. For example, the controller226includes, among other things, a processing unit230(e.g., a microprocessor, a microcontroller, or another suitable programmable device), a memory232, input units234, and output units236. The processing unit230(herein, electronic processor230) includes, among other things, a control unit240, an arithmetic logic unit (“ALU”)242, and a plurality of registers244(shown as a group of registers inFIG.3A). In some embodiments, the controller226is implemented partially or entirely on a semiconductor (e.g., a field-programmable gate array [“FPGA”] semiconductor) chip, such as a chip developed through a register transfer level (“RTL”) design process.

The memory232includes, for example, a program storage area233aand a data storage area233b. The program storage area233aand the data storage area233bcan include combinations of different types of memory, such as read-only memory (“ROM”), random access memory (“RAM”) (e.g., dynamic RAM [“DRAM”], synchronous DRAM [“SDRAM”], etc.), electrically erasable programmable read-only memory (“EEPROM”), flash memory, a hard disk, an SD card, or other suitable magnetic, optical, physical, or electronic memory devices. The electronic processor230is connected to the memory232and executes software instructions that are capable of being stored in a RAM of the memory232(e.g., during execution), a ROM of the memory232(e.g., on a generally permanent basis), or another non-transitory computer readable medium such as another memory or a disc. Software included in the implementation of the impact driver104can be stored in the memory232of the controller226. The software includes, for example, firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions. The controller226is configured to retrieve from memory and execute, among other things, instructions related to the control processes and methods described herein. The controller226is also configured to store power tool information on the memory232including operational data, information identifying the type of tool, a unique identifier for the particular tool, and other information relevant to operating or maintaining the impact driver104. The tool usage information, such as current levels, motor speed, motor acceleration, motor direction, number of impacts, may be captured or inferred from data output by the sensors218. Such power tool information may then be accessed by a user with the external device108. In other constructions, the controller226includes additional, fewer, or different components.

The wireless communication controller250is coupled to the controller226. In the illustrated embodiment, the wireless communication controller250is located near the foot of the impact driver104(seeFIG.2) to save space and ensure that the magnetic activity of the motor214does not affect the wireless communication between the impact driver104and the external device108. As a particular example, in some embodiments, the wireless communication controller250is positioned under the mode pad208.

As shown inFIG.3B, the wireless communication controller250includes a radio transceiver and antenna254, a memory256, an electronic processor258, and a real-time clock260. The radio transceiver and antenna254operate together to send and receive wireless messages to and from the external device108and the electronic processor258. The memory256can store instructions to be implemented by the electronic processor258and/or may store data related to communications between the impact driver104and the external device108or the like. The electronic processor258for the wireless communication controller250controls wireless communications between the impact driver104and the external device108. For example, the electronic processor258associated with the wireless communication controller250buffers incoming and/or outgoing data, communicates with the controller226, and determines the communication protocol and/or settings to use in wireless communications.

In the illustrated embodiment, the wireless communication controller250is a Bluetooth® controller. The Bluetooth® controller communicates with the external device108employing the Bluetooth® protocol. Therefore, in the illustrated embodiment, the external device108and the impact driver104are within a communication range (i.e., in proximity) of each other while they exchange data. In other embodiments, the wireless communication controller250communicates using other protocols (e.g., Wi-Fi, cellular protocols, a proprietary protocol, etc.) over a different type of wireless network. For example, the wireless communication controller250may be configured to communicate via Wi-Fi through a wide area network such as the Internet or a local area network, or to communicate through a piconet (e.g., using infrared or NFC communications). The communication via the wireless communication controller250may be encrypted to protect the data exchanged between the impact driver104and the external device/network108from third parties.

The wireless communication controller250is configured to receive data from the power tool controller226and relay the information to the external device108via the transceiver and antenna254. In a similar manner, the wireless communication controller250is configured to receive information (e.g., configuration and programming information) from the external device108via the transceiver and antenna254and relay the information to the power tool controller226.

The RTC260increments and keeps time independently of the other power tool components. The RTC260receives power from the battery pack215when the battery pack215is connected to the impact driver104and receives power from the back-up power source252when the battery pack215is not connected to the impact driver104. Having the RTC260as an independently powered clock enables time stamping of operational data (stored in memory232for later export) and a security feature whereby a lockout time is set by a user and the tool is locked-out when the time of the RTC260exceeds the set lockout time.

The memory232stores various identifying information of the impact driver104including a unique binary identifier (UBID), an ASCII serial number, an ASCII nickname, and a decimal catalog number. The UBID both uniquely identifies the type of tool and provides a unique serial number for each impact driver104. Additional or alternative techniques for uniquely identifying the impact driver104are used in some embodiments.

FIG.4illustrates a more detailed view of the mode pad208. The mode pad208is a user interface on the foot of the impact driver104that allows the impact driver104to switch between different operating modes. The mode pad208includes the mode selection switch290and mode indicator LEDs block292having mode indicators294a-e, each mode indicator294a-eincluding one of LEDs296a-e(seeFIG.3A) and an associated one of indicating symbols298a-e(e.g., “1”, “2”, “3”, “4”, and a radio wave symbol). When an LED296is enabled, the associated indicating symbol298is illuminated. For instance, when LED296ais enabled, the “1” (indicating symbol298a) is illuminated.

The impact driver104has five selectable modes (one, two, three, four, and adaptive), each associated with a different one of the mode indicators294a-e. The mode selection switch290is a pushbutton that cycles through the five selectable modes upon each press (e.g., mode 1, 2, 3, 4, adaptive, 1, 2, and so on). The adaptive mode is represented by the indicating symbol298e(the radio wave symbol). In the adaptive mode, the user is able to configure the impact driver104via the external device108, as is described in further detail below. In other embodiments, the impact driver104has more or fewer modes, and the mode selection switch290may be a different type of switch such as, for example, a slide switch, a rotary switch, or the like.

With reference toFIG.5, modes one, two, three, and four are each associated with a mode profile configuration data block (a “mode profile”)300a-d, respectively, saved in the memory232in a (mode) profile bank302. Each mode profile300includes configuration data that defines the operation of the tool104when activated by the user (e.g., upon depressing the trigger212). For instance, a particular mode profile300may specify the motor speed, when to stop the motor, the duration and intensity of the work light217, among other operational characteristics. The adaptive mode is associated with a temporary mode profile300esaved in the memory232. Also stored in the memory232is tool operational data304, which includes, for example, information regarding the usage of the impact driver104(e.g., obtained via the sensors218), information regarding the maintenance of the impact driver104, power tool trigger event information (e.g., whether and when the trigger is depressed and the amount of depression).

The external device108includes a memory310storing core application software312, tool mode profiles314, temporary configuration data316, tool interfaces318, tool data320including received tool identifiers322and received tool usage data324(e.g., tool operational data). The external device108further includes an electronic processor330, a touch screen display332, and an external wireless communication controller334. The electronic processor330and memory310may be part of a controller having similar components as the controller226of the impact driver104. The touch screen display332allows the external device108to output visual data to a user and receive user inputs. Although not illustrated, the external device108may include further user input devices (e.g., buttons, dials, toggle switches, and a microphone for voice control) and further user outputs (e.g., speakers and tactile feedback elements). Additionally, in some instances, the external device108has a display without touch screen input capability and receives user input via other input devices, such as buttons, dials, and toggle switches. The external device108communicates wirelessly with the wireless communication controller250via the external wireless communication controller334, e.g., using a Bluetooth® or Wi-Fi® protocol. The external wireless communication controller334further communicates with the server112over the network114. The external wireless communication controller334includes at least one transceiver to enable wireless communications between the external device108and the wireless communication controller250of the power tool104or the server112through the network114. In some instances, the external wireless communication controller334includes two separate wireless communication controllers, one for communicating with the wireless communication controller250(e.g., using Bluetooth® or Wi-Fi® communications) and one for communicating through the network114(e.g., using Wi-Fi or cellular communications).

The server112includes an electronic processor340that communicates with the external device108over the network114using a network interface342. The communication link between the network interface342, the network114, and the external wireless communication controller334may include various wired and wireless communication pathways, various network components, and various communication protocols. The server112further includes a memory344including a tool profile bank346and tool data348.

Returning to the external device108, the core application software312is executed by the electronic processor330to generate a graphical user interface (GUI) on the touch screen display332enabling the user to interact with the impact driver104and server112. In some embodiments, a user may access a repository of software applications (e.g., an “app store” or “app marketplace”) using the external device108to locate and download the core application software312, which may be referred to as an “app.” In some embodiments, the tool mode profiles314, tool interfaces318, or both may be bundled with the core application software312such that, for instance, downloading the “app” includes downloading the core application software312, tool mode profiles314, and tool interfaces318. In some embodiments, the app is obtained using other techniques, such as downloading from a website using a web browser on the external device108. As will become apparent from the description below, at least in some embodiments, the app on the external device108provides a user with a single entry point for controlling, accessing, and/or interacting with a multitude of different types of tools. This approach contrasts with, for instance, having a unique app for each type of tool or for small groupings of related types of tools.

FIG.6illustrates a nearby devices screen350of the GUI on the touch screen display332. The nearby devices screen350is used to identify and communicatively pair with power tools104within wireless communication range of the external device108(e.g., local power tools). For instance, in response to a user selecting the “scan” input352, the external wireless communication controller334scans a radio wave communication spectrum used by the power tools104and identifies any power tools104within range that are advertising (e.g., broadcasting their UBID and other limited information). The identified power tools104that are advertising are then listed on the nearby devices screen350. As shown inFIG.6, in response to a scan, three power tools104that are advertising (advertising tools354a-c) are listed in the identified tool list356. In some embodiments, if a power tool104is already communicatively paired with a different external device, the power tool104is not advertising and, as such, is not listed in the identified tool list356even though the power tool104may be nearby (within wireless communication range of) the external device108. The external device108is operable to pair with tools354that are in a connectable state. The external device108provides a visual state indication358in the identified tool list356of whether an advertising tool354is in the connectable state or the advertising state. For instance, the visual state indication358of a tool may be displayed in one color when the tool is in a connectable state and may be displayed in another color when the tool is not in the connectable state. The UBID received from the tools354is used by the external device108to identify the tool type of each tool354.

From the nearby devices screen350, a user can select one of the tools354from the identified tool list356to communicatively pair with the selected tool354. Each type of power tool354with which the external device108can communicate includes an associated tool graphical user interface (tool interface) stored in the tool interfaces318. Once a communicative pairing occurs, the core application software312accesses the tool interfaces318(e.g., using the UBID) to obtain the applicable tool interface for the type of tool that is paired. The touch screen332then shows the applicable tool interface. A tool interface includes a series of screens enabling a user to obtain tool operational data, configure the tool, or both. While some screens and options of a tool interface are common to multiple tool interfaces of different tool types, generally, each tool interface includes screens and options particular to the associated type of tool. The impact driver104has limited space for user input buttons, triggers, switches, and dials. However, the external device108and touch screen332provide a user the ability to map additional functionality and configurations to the impact driver104to change the operation of the tool104. Thus, in effect, the external device108provides an extended user interface for the impact driver104, providing further customization and configuration of the impact driver104than otherwise possible or desirable through physical user interface components on the tool. Examples further explaining aspects and benefits of the extended user interface are found below.

FIG.7illustrates a home screen370of the tool interface when the power tool104is an impact driver. The home screen370includes an icon371for the particular paired powered tool104, which may be the same as the icon shown in the list356. The home screen370also includes a disconnect input372enabling the user to break the communicative pairing between the external device108and the paired impact driver104. The home screen370further includes four selectable options: tool controls374, manage profiles376, identify tool378, and factory reset379. Selecting identify tool378sends a command to the paired impact driver104requesting that the paired impact driver104provide a user-perceptible indication, such as flashing a work light217, a light of the indicator220, flashing LEDs296, making an audible beep using a speaker of the indicators220, and/or using the motor214to vibrate the tool. The user can then identify the particular tool communicating with the external device108.

Selecting tool controls374causes a control screen of the tool interface to be shown, such as the control screen380ofFIGS.8A-B, which includes a top portion380aand a bottom portion380b. Generally, the control screen shown depends on the particular type of profile. In other words, generally, each type of mode profile has a specific control screen. Each control screen has certain customizable parameters that, taken together, form a mode profile. The particular control screen shown on the external device108upon selecting the tool controls374is the currently selected mode profile of the impact driver104(e.g., one of the mode profiles300a-e). To this end, upon selection of the tool controls374, the external device108requests and receives the currently selected one of the mode profiles300a-efrom the impact driver104. The external device108recognizes the mode profile type of the selected one of the mode profiles300a-e, generates the appropriate control screen for the mode profile type, and populates the various parameter settings according to settings from the received mode profile300.

When in the adaptive mode, the currently selected mode profile that is shown on the control screen is the temporary mode profile300e. Additionally, when the impact driver104is in the adaptive mode, the impact driver104is operated according to the temporary mode profile300e. The source of profile data in the temporarily mode profile300e(and what is being displayed on the control screen380) varies. Initially, upon entering the adaptive mode via the mode selection switch290, the mode profile300a(associated with mode 1) is copied into the temporary mode profile300eof the impact driver104. Thus, after a user causes the impact driver104to enter the adaptive mode using the mode selection switch290, the impact driver104initially operates upon a trigger pull as if mode 1 (mode profile300a) was currently selected. Additionally, as the control screen displays the mode profile saved as the temporarily mode profile300e, the mode profile300athat was just copied to the temporary mode profile300eis shown on the control screen.

In some embodiments, another mode profile300(e.g.,300b-d) is copied into the temporary mode profile300eupon first entering the adaptive mode and is provided (as the temporary mode profile300e) to the external device108for populating the control screen380. In still other embodiments, the control screen shown upon selecting the tool controls374is a default control screen with default profile data for the particular type of tool, and the external device108does not first obtain profile data from the impact driver104. In these instances, the default mode profile is sent to the impact driver104and saved as the temporary mode profile300e.

Further, assuming that the impact driver104is in the adaptive mode, after the external device108initially loads the control screen (e.g., control screen380) upon selecting the tool controls374, the user may select a new source of profile data for the temporary file. For instance, upon selecting one of the mode profile buttons400(e.g., mode 1, mode 2, mode 3, or mode 4) the associated mode profile300a-dis saved as the temporary mode profile300eand sent to the external device108and populates the control screen (according to the mode profile type and mode profile parameters). Additionally, assuming the impact driver104is in the adaptive mode, a user may select a mode profile type using the setup selector401. Upon selecting the setup selector401, a list of available profiles (profile list)402for the particular type of paired impact driver104is shown (see, e.g.,FIG.9). The profile list402includes profiles404obtained from tool profiles314and/or from the tool profile bank346over the network114. These listed profiles404include default profiles (custom drive control profile404aand concrete anchor profile404b) and custom profiles previously generated and saved by a user (e.g., drywall screws profile404cand deck mode404d), as is described in more detail below. Upon selecting one of the tool profiles404, the selected profile404and its default parameters are illustrated on the control screen380of the external device108and the profile404as currently configured is sent to the impact driver104and saved as the temporary mode profile300e. Accordingly, upon a further trigger pull, the impact driver104will operate according to the selected one of the tool profiles404.

When the adaptive mode is currently selected on the impact driver104, as indicated by the indicating symbol298e(FIG.4), the user is able to configure (e.g. change some of the parameters of the temporary mode profile300e) the impact driver104using the control screen380. When the impact driver104is in one of the other four tool modes, as indicated by one of the indicating symbols298a-d, the impact driver104is not currently configurable via the control screen380. For instance, inFIG.10, a control screen381is illustrated when the power tool is not currently in the adaptive mode. Here, the control screen381is similar to the control screen380, but includes a message382indicating that the tool is not in the adaptive mode and a wireless symbol384is shown greyed-out as a further indication that the power tool is not in the adaptive mode. Accordingly, when the impact driver104is not in the adaptive mode and a user selects one of the mode profile buttons400, the impact driver104provides the mode profile300of the associated mode selected by the user, but does not overwrite the temporary mode profile300ewith the mode profile. Thus, the mode profiles300of the impact driver104are not updated when the impact driver104is not in the adaptive mode.

Referring back toFIGS.8A-B, when the impact driver104is in the adaptive mode and the user selects the tool controls374on the home screen, the user is able to configure profile data of the impact driver104using a control screen of the tool interface. For instance, via the control screen380, the user is able to configure the current profile data of the temporary mode profile300eof the impact driver104. As illustrated, the user is able to adjust the starting speed via the speed text box390or the speed slider391; adjust the finishing speed via the speed text box392or the speed slider393; alter the impacts required to reduce speed via slider394; adjust the work light duration with slider395a, work light text box395b, and “always on” toggle395c; and adjust the work light intensity via the work light brightness options396.

In some embodiments, the external device108and impact driver104enable live updating of the temporary mode profile300e. When live updating, the temporary mode profile300eof the impact driver104is updated as changes to the parameters are made on the control screen380without requiring a subsequent saving step or actuation being taken by the user on the GUI of the external device108or on the power tool. In other words, when live updating, the external device108updates the temporary mode profile300eon the impact driver104in response to receiving a user input changing one of the parameters, rather than in response to a user input saving the temporary mode profile300e. For instance, with respect toFIG.8A, the starting speed of the impact driver104is set to 2900 revolutions per minute (RPM). When live updating, if a user slides the speed slider391to the left by dragging his/her finger across the speed slider391and then removing his/her finger from the touch screen332of the external device108upon reaching a new speed, the external device108will send the newly selected starting speed to the impact driver104to update the temporary mode profile300ewhen the user's finger is removed from the screen, without requiring a further depression of a button or other actuation by the user. Live updating is applicable to the other parameters on the control screen380as well, such as the impacts required to reduce speed and work light parameters. Live updating enables rapid customization of the impact driver104so that a user may test and adjust various profile parameters quickly with fewer key presses. In contrast to live updating, in some embodiments, after sliding the speed slider391to the new speed, the user must press a save button (e.g., save button408) to effect the update of the starting speed parameter on the temporary mode profile300e.

A user is also able to save a mode profile set via a control screen (e.g., the control screen380) to the impact driver104. More particularly, the user is able to overwrite one of the mode profiles300a-din the profile bank302with the mode profile as specified on a control screen. To save the mode profile generated by the user via the control screen308, the user selects the save button408. As shown inFIG.11, pressing the save button causes the core application software to generate a save prompt410requesting the user to name the created mode profile and specify which of the mode profiles300a-dto overwrite with the created mode profile. In response to the user input, the external device108sends the generated mode profile to the impact driver104. The electronic processor230receives the generated mode profile and overwrites the mode profiles300in the profile bank302specified for overwriting by the user with the generated mode profile. For example, inFIG.11, the user has named the generated mode profile “Deck Mode” and specified that the electronic processor230overwrite mode profile300a(associated with mode “1”) with the generated “Deck Mode” mode profile. In some embodiments, the user can elect to overwrite more than one mode profile300a-ewith the generated mode profile by selecting multiple of the mode labels414before selecting the save button412. In some embodiments, the user can elect to not overwrite any of the mode profiles300a-ewith the generated mode profile by not selecting any of the mode labels414before selecting the save button412. In such embodiments, the generated mode profile is saved in the profile bank346on the server112, but not on the impact driver104. Overwriting a profile (old profile) with another profile (new profile) may include, for example, storing the new profile at the location in memory that was storing the old profile, thereby erasing the old profile and replacing it in memory with the new profile, or may include storing the new profile at another location in memory and updating a profile pointer to point to the address in memory having the new profile instead of the address in memory having the old profile.

As noted above, in some embodiments, the external device108cannot overwrite data of the profiles300unless the impact driver104is in the adaptive mode (seeFIG.10). This aspect prevents a potentially malicious individual, separate from the user currently operating the impact driver104, from adjusting tool parameters of the impact driver104unless the user places the impact driver104in the adaptive mode. Thus, a user of the impact driver104can prevent others from adjusting parameters by operating the impact driver104in one of the other four modes. In some embodiments, to implement this aspect, a hardware or firmware based interlock prevents the electronic processor230from writing to the profile bank302unless the impact driver104is in the adaptive mode. Furthermore, when the impact driver104is in operation, a hardware or firmware based interlock prevents the electronic processor230from writing to the profile bank302. The electronic processor230may detect that the impact driver104is in operation based on depression of the trigger212or outputs from Hall sensors indicating motor spinning. Thus, even when the impact driver104is in the adaptive mode, if the impact driver104is currently operating, the electronic processor230will not update or write to the profile bank302even when the impact driver104is in the adaptive mode and the external device108communicates to the impact driver104a generated profile (e.g., in response to a user selecting the save button408).

Furthermore, in some embodiments, the electronic processor230outputs to the external device108, via the wireless communication controller250, a signal indicative of whether the impact driver104is currently operating. In turn, the external device108provides an indication to the user, such as through the wireless symbol384changing color (e.g., to red) or flashing and a message when the impact driver104is currently operating. Moreover, the ability to update parameters via a control screen is prevented, similar to the control screen381of FIG.10, when the external device108receives an indication that the impact driver104is currently operating.

Returning toFIG.7, selecting the factory reset379on the home screen370causes the external device108to obtain default mode profiles from the tool mode profiles314or from the tool profile bank346on the server112, and provide the default profiles to the impact driver104, which then overwrites the profile bank302with the default mode profiles.

The home screen370may be similar in look and feel for all, many, or several of the tool interfaces318, although the icon371may be customized for the specific tool interface based on the specific power tool with which the external device108is paired. Further, the options listed below the icon may add an “obtain data” option that enables the user to select and obtain operational data from the tool for display on the external device108and/or sending to the server112for storage as part of the tool data348. Additionally, in instances where a particular tool is not intended to be configured by the external device108, the tool controls374and manage profiles376options may be not included on the home screen370.

In some embodiments, an adaptive mode switch separate from the mode selection switch290is provided on the impact driver104. For instance, LED296e(FIG.3A) may be a combined LED-pushbutton switch whereby, upon first pressing the combined LED-pushbutton switch, the impact driver104enters the adaptive mode and, upon a second pressing of the switch, the impact driver104returns to the mode that it was in before first pressing (e.g., mode 1). In this case, the mode selection switch290may cycle through modes 1-4, but not the adaptive mode. Furthermore, certain combinations of trigger pulls and/or placement of the forward/reverse selector219into a particular position (e.g., neutral) may cause the impact driver104to enter and exit the adaptive mode.

Returning to the concept of mode profiles (e.g., profiles300), a mode profile300includes one or more parameters. For instance, returning toFIGS.8A-B, the mode profile illustrated is the concrete anchor profile, which has the following parameters: starting speed, finishing speed, impacts required to reduce speed, and multiple work light parameters. The particular parameters available for customization on a control screen of the external device108varies based on mode profile type.

The control screens of the tool interfaces318place bounds on the values that a user can enter for a particular parameter. For instance, inFIG.8A, the starting speed cannot be set above 2900 RPM or below 360 RPM. The impact driver104further includes a boundary check module, e.g., in firmware stored on the memory232and executed by the electronic processor230. At the time of receiving a new profile from the external device108for saving in the profile bank302, the boundary check module confirms that each parameter of each feature is within maximum and minimum boundaries or is otherwise a valid value for the particular parameter. For instance, the boundary check module confirms that the starting speed set for the concrete anchor profile is within the range of 360 RPM to 2900 RPM. In some instances, the boundary check module confirms the parameter values of the features of the power tool's current profile are within acceptable boundaries upon each trigger pull. To carry out the boundary check, the firmware may include a list of parameters for each feature and the applicable maximum and minimum boundaries stored in, for instance, a table, and the electronic processor230is operable to perform comparisons with the table data to determine whether the parameter values are within the acceptable boundaries. The boundary check module provides an additional layer of security to protect against a maliciously generated or corrupted profiles, features, and parameter values.

Upon the boundary check module determining that a parameter value is outside of an acceptable range, the controller226is operable to output an alert message to the external device108that indicates the error (which may be displayed in text on the touch screen332), drive indicators220, LEDs296a-e, vibrate the motor, or a combination thereof.

On some control screens of tool interfaces318, a parameter assist block is provided. The parameter assist block includes work factor inputs that allow a user to specify details of the workpiece on which the power tool will operate (e.g., material type, thickness, and/or hardness), details on fasteners to be driven by the power tool (e.g., material type, screw length, screw diameter, screw type, and/or head type), and/or details on an output unit of the power tool (e.g., saw blade type, number of saw blade teeth, drill bit type, and/or drill bit length). For instance, the concrete anchor profile control screen380includes a parameter assist block805, as shown inFIGS.8A-B. The parameter assist block805includes work factor inputs that allow a user to specify an anchor type (e.g., wedge or drop-in), an anchor length, an anchor diameter, and concrete strength (e.g., in pounds per square inch (PSI)). For instance, by selecting the parameter assist block805, a parameter assist screen is generated on which the user can specify each of the work factor inputs by cycling through values using the touch screen332. Upon completing entry of the work factor inputs, the external device108adjusts parameters of the profile. For instance, inFIGS.8A and8B, the values of the starting speed parameter, finishing speed parameter, and impacts required to reduce speed parameter are adjusted by the external device108based on the work factor inputs of the parameter assist block805. If desired, the user may be able to further adjust some or all of the parameters (e.g., using a slider on the GUI as shown inFIGS.8A and8B). Different parameter assist blocks are provided for different profile types, and each parameter assist block may include work factor inputs appropriate to the particular profile type. Furthermore, one or more boundary values of the parameters on the control screen380may be adjusted by the external device108based on the work factor inputs of the parameter assist block805. For example, the maximum speed selectable by the user for the starting speed parameter may be adjusted based on the concrete strength input of the parameter assist block805.

As shown inFIG.8A, the parameters of the concrete anchor profile include two user adjustable parameters of the same parameter type (motor speed) that are applicable at different stages (or zones) of a single tool operation (fastening). More specifically, for the concrete anchor profile, the control screen380is operable to receive user selections specifying a starting motor speed during the starting stage and driving stage of a fastening operation and a finishing speed during a final/finishing stage of the fastening operation. The controller226determines when the different stages of the fastening operation occur and are transitioned between as will be explained in greater detail below. In some embodiments, in the various stages of the concrete anchor profile, the controller226drives the motor214at the user-selected speeds regardless of the amount depression of the trigger212, as long as the trigger212is at least partially depressed. In other words, the speed of the motor214does not vary based on the amount of depression of the trigger212. In other embodiments, the user-selected speeds in the concrete anchor profile are treated as maximum speed values. Accordingly, in these embodiments, the speed of the motor214varies based on the amount of depression of the trigger212, but the controller226ensures that the motor214does not exceed the user-selected speeds for the various stages.

The concrete anchor profile can be implemented on the impact driver104for use during masonry applications, such as when using the impact driver104to drive an anchor into concrete. Use of the concrete anchor profile can improve repeatability from one concrete anchor to the next, and reduce breaking of anchors caused by applying too much torque or driving with too much speed (e.g., by detecting when anchors are seated within a joint). Unlike some other driving applications, when driving into concrete, the impact driver104may begin impacting almost immediately. Accordingly, whether an anchor is seated within a joint cannot be determined by solely detecting when the impact driver104begins impacting (i.e., because the impact driver104may be impacting during the entire operation). The concrete anchor profile allows the controller226to detect when anchors are seated within a joint and, in response, reduce the motor speed to the finishing speed.

In particular, when operating in the concrete anchor profile, the controller226can initially control the motor214to operate at a starting speed set by the user. The controller226then monitors characteristics of the rotation of the motor214and determines whether impacts are occurring on the impact driver104, as will be explained in greater detail below. After a certain motor rotation characteristic is detected, the controller226controls the motor214to operate at a slower speed (i.e., a finishing speed). In some embodiments, the external device108restricts the finishing speed to be less than the starting speed. For example, if the starting speed is set to 2000 RPM on the control screen380a, the external device108may prevent the finishing speed from being set to a value of 2000 RPM or above.

The controller226adjusts the speed of the motor214based on an angle detection method that calculates an inferred position of the output drive device210. In particular, the controller226detects when impacts occur on the impact driver104based on, for example, detecting a change in acceleration, amount of instantaneous current or change in current, impact sounds using a microphone, or impact vibrations using an accelerometer. The controller226may use an impact counter (for example, implemented by execution of software on the memory232) that the controller226increments upon each detected impact. Additionally, using Hall sensors218a, the controller226also monitors the rotational position of the shaft of the motor214including the rotational position of the shaft when each impact occurs.

FIGS.12A and12Bshow an impact mechanism1200, which is an example of an impact mechanism of the impact driver104. Based on the design of the impact mechanism1200of the impact driver104, the motor214rotates at least a predetermined number of degrees between impacts (i.e., 180 degrees for the impact mechanism1200). The impact mechanism1200includes a hammer1205with outwardly extending lugs1207and an anvil1210with outwardly extending lugs1215. The anvil1210is coupled to the output drive device210. During operation, impacting occurs when the anvil1210encounters a certain amount of resistance, e.g., when driving a fastener into a workpiece. When this resistance is met, the hammer1205continues to rotate. A spring coupled to the back-side of the hammer1205causes the hammer1205to disengage the anvil1210by axially retreating. Once disengaged, the hammer1205will advance both axially and rotationally to again engage (i.e., impact) the anvil1210. When the impact mechanism1200is operated, the hammer lugs1207impact the anvil lugs1215every 180 degrees. Accordingly, when the impact driver104is impacting, the hammer1205rotates 180 degrees without the anvil1210, impacts the anvil1210, and then rotates with the anvil1210a certain amount before repeating this process. For further reference on the functionality of the impact mechanism1200, see, for instance, the impact mechanism discussed in U.S. application Ser. No. 14/210,812, filed Mar. 14, 2014, which is herein incorporated by reference.

The controller226can determine how far the hammer1205and the anvil1210rotated together by monitoring the angle of rotation of the shaft of the motor214between impacts. For example, when the impact driver104is driving an anchor into a softer joint, the hammer1205may rotate 225 degrees in between impacts. In this example of 225 degrees, 45 degrees of the rotation includes hammer1205and anvil1210engaged with each other and 180 degrees includes just the hammer1205rotating before the hammer lugs1207impact the anvil1210again.FIGS.13-16illustrate this exemplary rotation of the hammer1205and the anvil1210at different stages of operation.

FIGS.13A and13Bshow the rotational positions of the anvil1210and the hammer1205, respectively, just after the hammer1205disengages the anvil1210(i.e., after an impact and engaged rotation by both the hammer1205and the anvil1210has occurred).FIG.13Bshows the position of the hammer1205just as the hammer1205begins to axial retreat from the anvil1210. InFIGS.13A and13B, the hammer1205and anvil1210are in a first rotational position. After the hammer1205disengages the anvil1210by axially retreating, the hammer1205continues to rotate (as indicated by the arrows inFIG.13B) while the anvil1210remains in the first rotational position.FIGS.14A and14Bshow the rotational positions of the anvil1210and the hammer1205, respectively, just as the next impact is occurring. As shown inFIG.14A, the anvil1210is still located in the first rotational position. As shown inFIG.14B, the hammer1205has rotated 180 degrees to a second rotational position (as indicated by the arrows inFIG.14B).

Upon impact, the hammer1205and the anvil1210rotate together (as indicated by the arrows inFIGS.15A and15B) which generates torque that is provided to the output drive device210to drive an anchor into concrete, for example.FIGS.15A and15Bshow the rotational positions of the anvil1210and the hammer1205, respectively, after the hammer1205again disengages the anvil1210by axially retreating. InFIGS.15A and15B, the hammer1205and anvil1210are in a third rotational position that is approximately 45 degrees from the second rotational position as indicated by drive angle1505. The drive angle1505indicates the number of degrees that the anvil1210rotated which corresponds to the number of degrees that the output drive device210rotated.

As stated above, after the hammer1205disengages the anvil1210, the hammer1205continues to rotate (as indicated by the arrows inFIG.16B) while the anvil1210remains in the same rotational position.FIGS.16A and16Bshow the rotational positions of the anvil1210and the hammer1205, respectively, just as another impact is occurring. As shown inFIG.16A, the anvil1210is still located in the third rotational position. As shown inFIG.16B, the hammer1205has rotated 180 degrees from the third rotational position to a fourth rotational position. Relative toFIG.14B(i.e., since the previous impact occurred), the hammer1205has rotated 225 degrees (i.e., 45 degrees while engaged with the anvil1210after the previous impact and 180 degrees after disengaging from the anvil1210).

As mentioned previously, the controller226can monitor when impacts occur and can monitor the position of the shaft of the motor214. Using this information, the controller226can determine the drive angle1505experienced by the output drive device210(i.e., the number of degrees that the output drive device210has rotated). For example, the controller226can detect when each impact occurs and record the rotational position of shaft. The controller226can then determine the number of degrees that the shaft rotated in between impacts. The controller226can subtract 180 degrees from the number of degrees that the shaft rotated to calculate the drive angle1505experienced by the output drive device210.

The calculated drive angle1505can then be used to indicate a characteristic of the joint that the anchor is being driven into and to control the motor214. For example, the smaller the drive angle1505, the harder the joint (i.e., the anchor rotates less in harder joints than in softer joints), and vice versa. Thus, a small drive angle (i.e., less than 10 degrees) may indicate that the anchor is seated and no longer needs to be driven into the concrete. Accordingly, when the drive angle1505is below a predetermined angle threshold for more than a predetermined number of impacts, the controller226can control the motor214to run at a slower speed or can turn off the motor214.

As mentioned previously and as shown inFIGS.8A and8Bon the control screen380of the GUI, the concrete anchor profile includes a parameter assist block805for receiving, from the user, one or more of an anchor type (e.g., wedge or drop-in), an anchor length, an anchor diameter, and concrete strength (e.g., in pounds per square inch (PSI)). In response to the external device108receiving user inputs in the parameter assist block805, the external device108adjusts parameters of the concrete anchor profile (e.g., starting speed, finishing speed, number of impacts required to reduce speed to finishing speed). The external device108may adjust the parameters using a look-up table that includes parameter values corresponding to the user inputs in the parameter assist block805. If desired, the user is able to further adjust each parameter as previously explained (e.g., using a slider on the GUI as shown inFIGS.8A and8B). Additionally, the user can adjust the work light parameters on the control screen380bas previously explained.

In some embodiments, the maximum starting speed selectable by the user on the control screen380ofFIG.8A(i.e., 2900 RPM) is determined based on the ability of the controller226to detect impacts. For example, at high speeds, the controller226may not be able to detect when impacts are occurring because the change in motor acceleration caused by impacts is not large enough to be recognized. Thus, the maximum starting speed selectable by the user may be set sufficiently low such that the controller226is still able to detect impacts even if the user selects the maximum starting speed displayed on the control screen380.

Furthermore, in some embodiments, the finishing speed is not adjustable by the user. Rather, the finishing speed is set by the external device108based on the work factor inputs of the parameter assist block805. Additionally, although not shown as an adjustable parameter on the control screen380ofFIGS.8A and8B, the external device108may determine a drive angle threshold parameter based on the user inputs in the parameter assist block805. When the drive angle is below the drive angle threshold, the controller226will begin counting impacts as explained in more detail below. The impact driver104receives the concrete anchor profile including the specified parameters, for instance, in response to a user save action on the external device108as described above.

FIG.17illustrates a flowchart of a method1700of implementing the concrete anchor profile on the impact driver104. At block1702, the wireless communication controller250receives parameters of the concrete anchor profile from the external device108. For example, the parameters are received as part of a concrete anchor profile configured and provided as described previously herein, for example, with respect toFIGS.8A-B. At block1705, the controller226determines that the trigger212has been depressed and starts the motor214, as described previously herein. At block1710, the controller226sets the motor speed to the starting speed (i.e., a first speed) (or sets the motor speed according to the amount that the trigger212is depressed with the maximum speed set as the starting speed as described previously herein). At block1715, the controller226monitors motor characteristics to determine whether the impact driver104is impacting, as described previously herein. When the impact driver104is not impacting, the method1700remains at block1715and the controller226continues to monitor motor characteristics to determine whether the impact driver104is impacting. When the controller226determines that the impact driver104is impacting, at block1720, the controller226calculates the drive angle1505experienced by the output drive device210as explained previously herein (e.g., by monitoring the rotational position of the shaft each time an impact is detected). For example, the controller226may calculate the drive angle1505by determining a first rotational position of the motor shaft upon a first impact between the hammer1205and the anvil1210(see, e.g., the rotational position of hammer1205inFIG.14B), and determining a second rotational position of the motor shaft upon a second impact between the hammer1205and the anvil1210(see, e.g., the rotational position of hammer1205inFIG.16B). The controller226may then determine the drive angle experienced by the output drive device based on the first rotational position and the second rotational position. For example, the controller226may determine a difference between the second rotational position and the first rotational position, and subtract a predetermined angle. The predetermined angle may be indicative of an amount of rotation experienced by the hammer1205from disengaging the anvil1210to impacting the anvil1210. For example, with reference to the impact mechanism1200illustrated inFIGS.12A and12Band described with respect toFIGS.13A-16B, the predetermined angle is 180 degrees. However, the amount of rotation experienced by a hammer from disengaging an anvil to impacting the anvil (and, thus, the predetermined angle) varies depending on the arrangement of the impact mechanism, such as the number of and position of the lugs on the hammer and anvil of a given impact mechanism. For example, when a hammer includes four lugs each separated by 90 degrees, rather than two lugs separated by 180 degrees, and operates with the anvil1210, the hammer experiences 90 degrees of rotation from disengaging the anvil to impacting the anvil, rather than 180 degrees of rotation. In this example, the predetermined angle is 90 degrees.

At block1725, the controller226determines whether the drive angle1505is less than the drive angle threshold. When the drive angle1505is less than the drive angle threshold, at block1730, the controller226increments an impact counter (e.g., implemented by the controller226executing software stored on the memory232). At block1735, the controller226determines whether the impact counter is equal to the number of impacts (an “impact counter threshold”) set to indicate when the motor214is to reduce speed. When the impact counter is not equal to the impact counter threshold, the method1700proceeds back to block1720to continue calculating the drive angle1505between impacts. When the impact counter is equal to the impact counter threshold, the controller226sets the motor speed to the finishing speed. Referring back to block1725, when the drive angle1505is greater than or equal to the drive angle threshold, the method1700proceeds to block1745. At block1745, the controller226resets the impact counter and then proceeds back to block1720to continue calculating the drive angle1505between impacts. In alternate embodiments, the block1745may not be executed such that the impact counter is not reset when the controller226determines that the drive angle1505is not less than the drive angle threshold at block1725. In such embodiments, the method1700remains at block1725until the drive angle1505is determined to be less than the drive angle threshold.

Although the blocks of the method1700are illustrated serially and in a particular order inFIG.17, in some embodiments, one or more of the blocks are implemented in parallel, are implemented in a different order than shown, or are bypassed. In some embodiments, the impact driver104receives and stores the concrete anchor profile including the parameters (block1702) at the time of manufacture of the tool. In some embodiments, the parameters received in block1702at the time of manufacture of the tool are received via a wired connection. Additionally, blocks1725,1730,1735,1740, and1745are an example of the controller226controlling the motor214based on the drive angle determined in block1720.

While the concrete anchor mode and drive angle calculation were described with reference to fastening an anchor into concrete, the method1700can be implemented for other fastening applications. For example, the method1700can be implemented on an impact driver or wrench used to fasten a screw or other fastener into wood, drywall, or another substrate.

Some embodiments of the invention provide a method of calculating an output rotation angle of an output drive device of a motor to detect seating of a fastener and to change a driving parameter of the motor (i.e., speed) based on the calculated output rotation angle.

Some embodiments of the invention further provide a method of detecting the angular distance rotatably traveled by the shaft of a motor in between impacts on an impact driver or wrench to infer an output rotation angle of an output drive device of a motor to detect seating of a fastener and to change a driving parameter of the motor (i.e., speed) based on the calculated output rotation angle.

Some embodiments of the invention further provide a method of detecting an output rotation angle of an output drive device of a motor to change a driving parameter of the motor when a predetermined angle threshold is reached.

Thus, embodiments described herein provide, among other things, systems and methods for controlling power tools with impact mechanisms based on a drive angle from impacting. Various features and advantages of the invention are set forth in the following claims.