US20220393621A1 - Outdoor power equipment with distributed motor controllers - Google Patents
Outdoor power equipment with distributed motor controllers Download PDFInfo
- Publication number
- US20220393621A1 US20220393621A1 US17/888,813 US202217888813A US2022393621A1 US 20220393621 A1 US20220393621 A1 US 20220393621A1 US 202217888813 A US202217888813 A US 202217888813A US 2022393621 A1 US2022393621 A1 US 2022393621A1
- Authority
- US
- United States
- Prior art keywords
- motor
- controller
- power equipment
- outdoor power
- drive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000004891 communication Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 34
- 238000007726 management method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 18
- 238000009434 installation Methods 0.000 description 12
- 238000005096 rolling process Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 229910052782 aluminium Inorganic materials 0.000 description 6
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 239000003990 capacitor Substances 0.000 description 5
- 238000001816 cooling Methods 0.000 description 4
- 239000000446 fuel Substances 0.000 description 4
- 229910001416 lithium ion Inorganic materials 0.000 description 4
- 244000025254 Cannabis sativa Species 0.000 description 3
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000005355 Hall effect Effects 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000428 dust Substances 0.000 description 2
- 239000003337 fertilizer Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 150000003839 salts Chemical class 0.000 description 2
- 239000007858 starting material Substances 0.000 description 2
- 239000010959 steel Substances 0.000 description 2
- 241001494496 Leersia Species 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000005276 aerator Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- OJIJEKBXJYRIBZ-UHFFFAOYSA-N cadmium nickel Chemical compound [Ni].[Cd] OJIJEKBXJYRIBZ-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003985 ceramic capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003028 elevating effect Effects 0.000 description 1
- 239000011152 fibreglass Substances 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910052987 metal hydride Inorganic materials 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 229920000515 polycarbonate Polymers 0.000 description 1
- 239000004417 polycarbonate Substances 0.000 description 1
- 229920000728 polyester Polymers 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P5/00—Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P5/00—Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors
- H02P5/46—Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors for speed regulation of two or more dynamo-electric motors in relation to one another
- H02P5/52—Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors for speed regulation of two or more dynamo-electric motors in relation to one another additionally providing control of relative angular displacement
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4185—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P4/00—Arrangements specially adapted for regulating or controlling the speed or torque of electric motors that can be connected to two or more different electric power supplies
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P5/00—Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors
- H02P5/46—Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors for speed regulation of two or more dynamo-electric motors in relation to one another
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P6/00—Arrangements for controlling synchronous motors or other dynamo-electric motors using electronic commutation dependent on the rotor position; Electronic commutators therefor
- H02P6/14—Electronic commutators
Definitions
- the present application relates generally to outdoor power equipment.
- outdoor power equipment is powered solely via gas.
- the present application relates more particularly to electric outdoor power equipment.
- Electric outdoor power equipment may be battery powered, where a battery is configured to power a motor of the outdoor power equipment.
- the motor controllers do not have information regarding how other motors of the electric outdoor power equipment are operating.
- One embodiment of the present disclosure relates to outdoor power equipment including a drive motor configured to operate a drive wheel, a drive motor controller configured to control the drive motor, a first chore motor configured to drive a first chore device, and a first chore motor controller communicatively coupled to the drive motor controller.
- the first chore motor controller is configured to receive an operational state of the drive motor including a drive motor speed from the drive motor controller and operate the first chore motor based on the operational state of the drive motor.
- Another embodiment of the present disclosure relates to outdoor power equipment including a left drive motor configured to operate a left drive wheel on a left side of the outdoor power equipment, a right drive motor configured to operate a right drive wheel on a right side of the outdoor power equipment, a sensor configured to detect an incline of a surface over which the outdoor power equipment is travelling, and at least one drive motor controller communicatively coupled to the sensor and configured to control the left drive motor and the right drive motor, The at least one drive motor controller is configured to receive the detected incline from the sensor, determine a roll angle of the outdoor power equipment based on the detected incline, and operate the left drive motor at a left drive speed and the right drive motor at a right drive speed based on the roll angle.
- a controller module including an enclosure including an inner wall defining a volume, multiple motor controllers, each motor controller including a printed circuit board (PCB) having a first side and a second side opposite the first side, multiple transistors located on the first side, and multiple outputs located on the second side.
- the first side of the PCB is positioned adjacent to the inner wall of the enclosure to allow heat generated by the motor controller to dissipate via the enclosure.
- FIG. 1 is a diagram of a motor controller module for outdoor power equipment that includes multiple motor controllers, according to an exemplary embodiment.
- FIG. 2 is another diagram of the motor controller of FIG. 1 illustrating the dimensions of the motor controller module, according to an exemplary embodiment.
- FIG. 3 is a diagram of the motor controller module of FIG. 1 shown to include the motor controllers, according to an exemplary embodiment.
- FIG. 4 is a diagram of the motor controller module of FIG. 1 shown to include a mezzanine board connecting the motor controllers of FIG. 3 , according to an exemplary embodiment.
- FIG. 5 is a diagram of one of the motor controllers of FIG. 3 , according to an exemplary embodiment.
- FIG. 6 - 9 are diagrams illustrating side perspectives, a top perspective, a front perspective, and a bottom perspective of the motor controller of FIG. 5 , according to an exemplary embodiment.
- FIG. 10 is a diagram of a distributed motor controller system for outdoor power equipment shown to include the motor controller module of FIG. 1 and the motor controllers of FIG. 3 , according to an exemplary embodiment.
- FIG. 11 is a block diagram illustrating the motor controller of FIG. 5 in greater detail, according to an exemplary embodiment.
- FIG. 12 is a block diagram of the distributed motor controller system of FIG. 10 implemented in a zero turn radius (ZTR) standing lawn mower where the distributed controller system includes multiple controller modules, according to an exemplary embodiment.
- ZTR zero turn radius
- FIG. 13 is a block diagram of the distributed motor controller system of FIG. 10 implemented in a ZTR sitting lawn mower where the distributed controller system includes multiple controller modules, according to an exemplary embodiment.
- FIG. 14 is a flow diagram of a process for operating the distributed controller systems of FIGS. 12 and 13 where the distributed controller systems include multiple controller modules, according to an exemplary embodiment.
- FIG. 15 is a block diagram of the distributed controller system of FIG. 10 implemented in a spreader where the distributed controller system includes a single controller module, according to an exemplary embodiment.
- FIG. 16 is a flow diagram for operating the distributed controller system of FIG. 15 where the distributed controller system includes a single controller module, according to an exemplary embodiment.
- FIG. 17 is a flow diagram of a process for monitoring a battery status of a battery by the distributed controller system of FIG. 10 , according to an exemplary embodiment.
- FIG. 18 is a flow diagram of a process for performing noise cancellation with destructive waves for two motors that can be performed by the distributed controller system of FIG. 10 , according to an exemplary embodiment.
- FIG. 19 is a flow diagram of a process for performing a turn on a ZTR with the distributed controller system of FIG. 10 , according to an exemplary embodiment.
- FIG. 20 is a flow diagram of a process for correcting for tilt in outdoor power equipment that can be performed by the distributed controller system of FIG. 10 , according to an exemplary embodiment.
- FIGS. 21 and 22 illustrate outdoor power equipment rolling clockwise and counterclockwise, according to an exemplary embodiment.
- FIG. 23 is a flow diagram of a process for operating a chore motor at a speed proportional to a drive motor speed to save energy, the process can be performed by the distributed motor controller system of FIG. 10 , according to an exemplary embodiment.
- the motor controller module 100 includes an enclosure including one or multiple motor controllers for controlling electric motors of a piece of outdoor power equipment or other equipment suitable to be powered by electric motors.
- the motor controller module 100 can be aluminum, plastic, steel, fiberglass, polycarbonate, polyester, etc.
- the motor controller module 100 may be a specific thickness of aluminum (have a specific thermal mass) such that heat generated within the motor controller module 100 can be dissipated (e.g., via conduction of the aluminum).
- the motor controller module 100 can be implemented in various types of outdoor power equipment, for example, a zero turn radius (ZTR) machine (e.g., a sitting ZTR or a standing ZTR lawnmower, spreader, etc.), a tractor (e.g., a tractor lawn mower, a backhoe, etc.), an air compressor, a posthole digger or a machine with a posthole digger attachment, commercial construction equipment, recreational vehicles, utility vehicles, golf carts, aerial lifts, floor cleaning equipment, industrial utility vehicles, etc.
- the motor controller module 100 is shown to include an enclosure 102 and a heatsink 104 .
- the enclosure 102 may be connected to the heatsink 104 and fastened together via connections 106 a - 106 d which may be holes for bolts, screws, and/or any other type of connector.
- the motor controller module 100 can include, or can be mounted to, a base plate.
- the base plate may be an aluminum component which the motor controller module 100 can be attached to via the connections 106 a - 106 d.
- the base plate may be aluminum, steel, etc.
- the heatsink 104 can dissipate heat for one or multiple controllers included within the motor controller module 100 .
- the controllers can be configured to control a motor of the outdoor power equipment.
- the controllers of the motor controller module 100 can be configured to operate a drive motor.
- the drive motor can be configured to operate a drive wheel of the outdoor power equipment.
- the controllers of the motor controller module 100 can be configured to operate a chore motor.
- a chore motor can be a motor that performs a task of the outdoor power equipment.
- a chore motor can be a motor that drives a grass cutting blade of the lawn mower.
- the chore motor can be a motor that operates a distributor that distributes particles (e.g., fertilizer, seeds, salt, etc.).
- the motor controller module 100 is located near a motor (or other element or component) that the motor controller module 100 is operating (reducing susceptibility due to shorter signal lines) and may only require motor connections, power connections, and/or CAN connections. This distance and/or few number of required connections can decrease electromagnetic interference (EMI), improving electromagnetic compatibility (EMC). If the motor controller module 100 operates to control a drive motor, the motor controller module 100 may be located near the drive motor or mounted on a battery that provides the drive motor with energy. In some embodiments, the motor controller module 100 is connected directly to multiple battery cells (via a controller board of the motor controller module 100 ) for operating motors.
- EMI electromagnetic interference
- EMC electromagnetic compatibility
- the motor controller module 100 can be located near the chore motor or mounted on a battery that provides the chore motor with energy (e.g., electrical energy).
- the motor controller module 100 is located on or under a chassis of the outdoor power equipment.
- the motor controller module 100 can be located on a deck of outdoor power equipment (e.g., a shroud that encloses lawn mower blades). The motor controller module 100 can perform load based control of lawn mower speeds, perform anti-scrubbing, can identify the size of the deck and optimizing cutting speed based on the width of the identified deck, and various other features.
- bosses 108 a - 108 c are shown for mounting the motor controller module 100 onto outdoor power equipment (e.g., connecting to a base plate of the outdoor power equipment). Although three bosses are shown, the motor controller module 100 can include any number of bosses (e.g., two, four, etc.). Although not shown in FIG. 1 , in some embodiments, the bosses 108 a - 108 c are elevated. Elevating the bosses 108 a - 108 c can allow the motor controller module 100 to be sunk into another surface. For example, rather than being connected onto the top of a deck of outdoor power equipment, the motor controller module 100 can be sunk into the deck fully and/or partially via elevated bosses 108 a - 108 c.
- the motor controller module 100 can be water tight and/or dust tight. This can prevent any electronic components within the motor controller module 100 (e.g., the motor controllers as described herein) from becoming damaged. Since the motor controller module 100 may be sealed, all communication between the components (e.g., controllers) of the motor controller module 100 may be internal wiring/communication bus connections. In some embodiments, when the controllers of the motor controller module 100 communicate to other external controllers, motors, and/or controller modules, a water tight and/or dust tight wiring interface can be utilized to wire the controllers of the motor controller module 100 to the external components.
- the motor controller module 100 can have a heat dissipation channel for cooling the motor controller module 100 .
- a shell or casing can surround some and/or all of the motor controller module 100 forming an air channel between the shell/casing and the motor controller module 100 . This can permit air to flow around the sides of the motor controller module 100 for cooling (convection).
- the motor controller module 100 may have an opening allowing warm air to escape the motor controller module 100 .
- the controller module 100 can include a thermal bath (e.g., a thermal water bath) which can surround some and/or part of the controller module 100 and/or components of the controller module 100 to cool the controller module 100 .
- the controller module 100 can include a liquid cooling system configured to cool controllers of the controller module 100 and dissipate heat outside the controller module 100 .
- FIG. 2 illustrates the motor controller module 100 from an overhead perspective.
- the bosses 108 a - 108 c, and an additional boss 108 d, are shown in FIG. 2 .
- the motor controller module 100 is shown to have a length of 15.5 inches and a width of 8.7 inches.
- the motor controller module 100 can be any dimensions and is not limited to the dimensions shown in FIG. 2 .
- the size of the motor controller module 100 can change, e.g., be proportional to the number of motor controllers within the controller module 100 .
- the motor controller module 100 is shown to include a branding panel 200 .
- the branding panel 200 may include a sticker, ink printing, and/or etched brand labels.
- An input/output (I/O) panel 202 can include one or more holes and/or connectors (e.g., watertight connectors) for connecting the one or multiple controllers of the motor controller module 100 to motors, external devices, battery management systems, user input systems, etc.
- the holes and/or connectors of the I/O panel 202 may be based on the number of controllers and/or use of the controllers of the motor controller module 100 . For example, a ZTR lawn mower may have a different number controllers and/or motors than a spreader.
- the motor controller module 100 is shown to include motor controllers, according to an exemplary embodiment.
- the motor controller module 100 is shown from a side perspective and is shown to include a motor controller 304 , a motor controller 306 , and a motor controller 308 .
- Each of the motor controllers 304 - 308 can be configured to operate a motor (or in some cases multiple motors), for example, a motor that drives a wheel of outdoor power equipment, a motor that drives a blade of outdoor power equipment, a motor that drives a spreader of outdoor power equipment, a motor that drives a compressor of outdoor power equipment, etc.
- the controllers 304 - 308 can be configured to perform heat rejection by operating a cooling system.
- the controllers 304 - 308 can distribute data processing for the motor controller module 100 .
- the distributed data processing occurs dynamically.
- the distributed data processing is predefined such that each of the controllers 304 - 308 is setup to perform various processing operations.
- the distribution of data processing can be predetermined based on available inputs and outputs and processing power of each of the controllers 304 - 308 .
- each of the controllers 304 - 308 can perform all of the operations for an entire piece of outdoor power equipment. In this regard, based on user settings and/or requirements, one or multiple of the controllers 304 - 308 can be configured to perform processing operations for controlling the outdoor power equipment.
- each of the controllers 304 - 308 can be programed with a variety of desired features without requiring changes to the hardware of the controllers 304 - 308 .
- the motor controller module 100 is shown to have a total height of 5.75 inches (a vertical portion height of 3.8 inches), a sloped top width of 3.9 inches, and a flat top width of 3 inches. However, the motor controller module 100 may be any dimensions. Posts of the motor controllers 304 - 308 (e.g., posts 310 , 312 , and 314 ) can be aligned to simplify bussing. Various wires can be run between the controllers 304 - 308 within the motor controller module 100 and/or outside the motor controller module 100 (e.g., via the I/O plate 202 ). In FIG. 3 , only three motor controllers are shown to be mounted on the middle top and the sloped sides of the roof of the motor controller module 100 . However, any number of motor controllers can be mounted within the motor controller module 100 .
- the motor controllers 304 - 308 of the motor controller module 100 can be applied to various machines, e.g., lawn mowers, snow throwers, aerator, spreaders, etc.
- the number of motor controllers and/or the number of motor controller modules may be dependent on the machine. For example, for a ZTR, there may be three lawn mower blades and two drive wheels. A total of five motor controllers may be necessary for controlling the ZTR lawnmower.
- a first module may include at least two motor controllers for operating the two drive motors and a second motor controller module can include three motor controllers in communication with the two drive motor controllers for operating the lawn mower blades.
- the multiple modules may include controllers for specific tasks.
- a “drive module” that includes controllers for operating drive motors and a “chore module” a controller for operating chore motors (e.g., for lawn mower blades, spreaders, augers, blowers, debris collectors, etc.).
- a “chore module” a controller for operating chore motors (e.g., for lawn mower blades, spreaders, augers, blowers, debris collectors, etc.).
- chore motors e.g., for lawn mower blades, spreaders, augers, blowers, debris collectors, etc.
- a module may include both chore controllers and drive controllers.
- a drive module may have space for three controllers but only require two controllers for driving the wheels. In this regard, the remaining space may be populated with a chore controller for controlling a chore motor.
- a main PCB connecting the motor controllers 304 - 308 is shown, according to an exemplary embodiment.
- the main PCB, mezzanine PCB 400 is shown to connect the three motor controllers 304 - 308 via connectors 402 , 404 , and 406 which are components of the mezzanine PCB 400 .
- the mezzanine PCB 400 can provide all communication traces and/or connector pass-through for connecting external power and/or any other communication connection to the controllers 304 - 308 . This can greatly reduce and/or eliminate wiring within the motor controller module 100 .
- Each of the controllers 304 - 308 are shown to include a connector.
- the controller 304 includes the communications port 408
- the controller 306 includes the communications port 410
- the controller 306 includes the communications port 412 .
- the connectors 402 - 406 are male connectors that connect directly with the communications ports 408 - 412 where the connector for the communications ports 408 - 412 are female connectors (or vice versa).
- the mezzanine PCB 400 is shown to include an external connector 414 .
- the external connector 414 can connect the controllers 304 - 308 to other controllers (via a bus), to a power source (e.g., a battery or a charging source), and/or to various external devices (e.g., via I/O or a bus).
- a power source e.g., a battery or a charging source
- various external devices e.g., via I/O or a bus.
- a ribbon cable or other connector is used between the communications ports 408 - 412 and 402 - 406 , this can be implemented where the controllers 304 - 308 are positioned at different angles (e.g., as shown in FIG. 3 ).
- the mezzanine PCB 400 is a flexible PCB. When the controllers 304 - 308 are positioned at different angles (e.g., as shown in FIG. 3 ), a flexible PCB can be implemented to account for the angles of the controllers 304 - 308 .
- the mezzanine PCB 400 is shaped such that it includes one flat side and two diagonal sides to account for the slopped installation of motor controllers 304 - 308 e.g., as shown in FIG. 3 (e.g., the slopped sides of the mezzanine PCB 400 could be parallel with the sloped sides of the roof of the motor controller module 100 and the flat side parallel with the top of the motor controller module 100 .
- the motor controller 304 is shown to have a length of 2.6 inches, a width of 4.1 inches, and a height of 1.6 inches. However, the motor controller 304 is not limited to the dimensions shown in FIG. 5 and may be any appropriate dimensions.
- the motor controller 304 is shown to include a communications port 408 .
- the communications port can be configured to communicate with other motor controllers (e.g., the motor controller 306 and the motor controller 308 via bus connections (e.g., a controller area network (CAN) bus)), can include analog inputs, analog outputs, digital inputs, digital outputs, a motor position connection, and/or motor sensor inputs. Using a communications bus can reduce and/or minimize cabling.
- the communications port 408 includes two analog inputs, one analog output, seven digital input/output connections, CAN 2.0b connections, a motor position input, and five motor sensor inputs.
- Connectors 500 and 502 can be power connectors for connecting to a power source (e.g., a battery).
- the power connectors 500 and 502 can provide power to a power circuit of the motor controller 304 for powering the motor controller 304 .
- the motor controller 304 is shown to include motor control outputs 504 - 510 .
- the motor controller 304 can be configured to generate and/or switch one or more control signals for a motor and operate the motor based on voltages and/or signals (e.g., static voltage signal, a pulse wave modulated (PWM) signal, etc.) via the motor control outputs 504 - 510 .
- the motor controller 304 is shown to include various capacitors 512 .
- the capacitors 512 can be ceramic capacitors, electrolytic capacitors, and/or any other suitable type of capacitor.
- the capacitors 512 can facilitate signal filtering and/or regulation for the motor controller 304 .
- the controller 304 can include enough I/O to run both user interface and safety interfaces of a ZTR or other outdoor power equipment. If the controller 304 is not being used to manage user and/or safety interfaces (or even if the controller 304 is managing user and/or safety interfaces), the computing power and/or I/O of the controller 304 can be utilized to perform high level operations e.g., straight line assistance, collision avoidance, advanced user interface features, which are described in greater detail elsewhere herein, specifically with reference to FIG. 11 .
- high level operations e.g., straight line assistance, collision avoidance, advanced user interface features, which are described in greater detail elsewhere herein, specifically with reference to FIG. 11 .
- the motor controller 304 is shown from multiple perspectives, according to an exemplary embodiment.
- the motor controller 304 is shown from a left side perspective ( FIG. 6 ), a top perspective and a front perspective ( FIG. 7 ), a right side perspective ( FIG. 8 ), and a bottom perspective ( FIG. 9 ).
- the bottom perspective illustrates the various transistors 900 of the motor controller 304 (e.g., a metal-oxide-semiconductor field-effect transistor (MOSFET transistor), bipolar junction transistor (BJT transistor), etc.).
- the transistors may generate a large amount of heat and thus may be kept on the bottom side of a PCB of the motor controller 304 .
- the bottom side of the motor controller 304 may be mounted flush or directed towards the enclosure of the motor controller module 100 (e.g., as shown in FIG. 3 ) to dissipate heat generated by the motor controller 304 via the heatsink 104 of the motor controller module 100 .
- the transistors or other heat generating elements
- the motor controller module 100 can be kept at a low temperatures for the operation of the controllers 304 - 308 .
- controllers 304 - 308 cool may be important in some cases since the controllers 304 - 308 may switch high current, for example, to drive a motor, which the cool temperature within the motor controller 304 may aid and/or enable for long periods of time.
- outdoor power equipment 1000 including a distributed motor controller system is shown, according to an exemplary embodiment.
- the outdoor power equipment 1000 is shown to include a bus 1018 , the controller module 100 and another controller module 1024 .
- the outdoor power equipment 1000 is shown to include a battery pack (e.g., the battery 1020 ) a battery management system 1022 and external devices 1008 .
- the battery management system 1022 is incorporated into the battery 1020 .
- the battery 1020 can include one or more distinct batteries including one or more battery cells (e.g., lithium ion battery cells and/or any other type of battery cell as described herein or that is suitable).
- the external devices 1008 and the battery management system 1022 can be configured to communicate directly to the controllers of the controller modules 100 and 1024 and/or via the bus 1018 .
- the controllers 304 - 308 and/or 1032 - 1036 can dynamically interface with the battery management system 1022 to ensure optimal operation of the outdoor power equipment 1000 while protecting the battery 1020 .
- the bus 1018 may be one or more wires, traces, and/or electronic connections for facilitating a bus communications protocol for communication between the components of the outdoor power equipment 1000 .
- the protocol for the bus 1018 may be CAN bus (e.g., CAN 2.0, CAN 2.0A, CAN 2.0B, etc.).
- the components of the outdoor power equipment 1000 connected to the bus 1018 can each send and/or receive information via the bus 1018 and/or can send various commands to each other via the bus 1018 .
- the controllers 304 - 308 can send various operational commands to each other and/or to the external devices 1008 via the bus 1018 .
- the controller module 100 is shown to include the controllers 304 - 308 .
- the controller 304 can be configured to operate a motor 1002
- the controller 306 can be configured to operate a motor 1004
- the controller 308 can be configured to operate a motor 1006 .
- the controllers 304 - 308 can be configured to provide a continuous current of up to 120 amperes to the various motors that they control, according to some embodiments.
- the controller module 1024 is shown to include a controller 1026 , a controller 1028 , and a controller 1030 .
- the controller 1026 can be configured to operate the motor 1032 .
- the controller 1028 can be configured to operate the motor 1034
- the controller 1030 can be configured to operate the motor 1036 .
- the controllers 1032 - 1036 can be the same as and/or similar to the controllers 304 - 308
- the motors 1002 - 1006 and 1032 - 1036 can be battery powered motors that drive wheels and/or external devices (e.g., a lawn mower blade, a compressor, a spreader, etc.). In some embodiments, the motors 1002 - 1006 and 1032 - 1036 can be pre-synched.
- the motors 1002 - 1006 and 1032 - 1036 can be DC motors (e.g., a brushless DC motor controlled with a fast switching algorithm) and/or AC motors.
- the motors 1002 - 1006 and/or 1032 - 1036 can be self-commutated motors and/or externally commutated motors.
- the motor 1032 is shown to be powered via a battery 1020 .
- each of the motors 1002 - 1006 and/or 1032 - 1036 can be powered by their own battery and/or by a shared battery that is similar to and/or the same as the battery 1020 .
- the battery 1020 can be a lithium-ion (Li-ion) battery, a lithium-ion Polymer (Li-pol) battery, a lead-acid battery, a nickel-cadmium (NiCd) battery, a nickel-metal hydride (NiMh) and/or any other type of battery configured to store and/or discharge energy.
- the battery 1020 may have various capacities, e.g., 0.1 kWh, 0.5 kWh, 1 kWh, 3 kWh, 10 kWh, 50 kWh, etc.
- the outdoor power equipment 1000 is shown to include a battery management system 1022 .
- the battery management system 1022 can be configured to operate the battery 1020 to charge and/or discharge.
- the battery management system 1022 can be configured to cause the battery 1020 to be charged based on energy of a charging source 1038 .
- the charging source 1038 e.g., a wall outlet of a home, an outlet of a generator, another battery, etc.
- the battery management system 1022 can provide power to the battery management system 1022 which can be configured to cause the battery 1020 to be charged based on the power sourced from the charging source 1038 .
- the battery management system 1022 can be configured to cause the battery 1020 to discharge energy to power and/or operate the motor 1032 .
- the battery management system 1022 can be configured to monitor various parameters of the battery 1020 .
- the battery management system 1022 can be configured to measure, via various sensors (e.g., shunt resistors, voltage sensors, hall effect sensors, thermocouples, thermistors, etc.), a battery temperature, a battery voltage, a battery current, and/or any other battery parameter.
- the outdoor power equipment 1000 is shown to include the external devices 1008 .
- the external devices 1008 can be located within either the controller module 100 and/or the controller module 1024 . However, in some embodiments, the external devices 1008 are located outside the controller module 100 an/or the controller module 1024 .
- Each of the external devices 1008 can communicate with the controllers of the controller module 100 and the controller module 1024 via analog input, analog output, digital input, and/or digital output of the controllers.
- the external devices 1008 can be configured to communicate with the controllers 304 - 308 and/or 1032 - 1036 via the bus 1018 .
- the external devices 1008 can include a global positioning system 1010 .
- the global positioning system 1010 can be a satellite based radio navigation system configured to generate one or more coordinates (e.g., a latitude value, a longitude value, an altitude value) identifying a location of the outdoor power equipment 1000 .
- the global positioning system 1010 provides an indication of the coordinates to any of the controllers of the controller module 100 and/or the controller module 1024 .
- the external devices 1008 are further shown to include a user interface 1012 .
- the user interface 1012 can be one or more light emitting diodes (LEDs), a display screen (e.g., a LED screen, a touch screen (e.g., a resistive touch screen, a capacitive touch screen, etc.), etc.), a steering wheel, a throttle control, one or more ZTR drive sticks, buttons (e.g., one or more buttons to enable a chore function (e.g., turn on lawn mower blades, turn off lawn mower blades, select blade speed, start spreader, stop spreader, select spreader speed, turn on compressor, etc.)), and/or any other input and/or output device.
- LEDs light emitting diodes
- a display screen e.g., a LED screen, a touch screen (e.g., a resistive touch screen, a capacitive touch screen, etc.), etc.
- a steering wheel e.g., a throttle control
- buttons
- the user interface 1012 can include LEDs placed on the floor of the outdoor power equipment 1000 (e.g., near a footplate of a ZTR) and/or on the deck of the outdoor power equipment 1000 which indicate, via color (e.g., red, yellow, green) a power draw for each of the batteries of the outdoor power equipment 1000 .
- the user interface 1012 can be attached to the outside of the motor controller module 100 . If the outdoor power equipment 1000 is a hybrid device, the user interface 1012 can indicate an amount of motor usage of the motors of the outdoor power equipment 1000 to the user. Providing these power draw indications can indicate to a user which parts of a vehicle are using the power and in what amount.
- the external devices 1008 are shown to include a wireless network module 1014 .
- the wireless network module 1014 can be configured to communicate and/or manage a wireless network (e.g., a Bluetooth network, a Zigbee network, a Wi-Fi network, a cellular network (e.g., 3G, LTE, etc.).
- a wireless network e.g., a Bluetooth network, a Zigbee network, a Wi-Fi network, a cellular network (e.g., 3G, LTE, etc.).
- the controllers 304 - 308 and/or 1032 - 1036 can be enabled to communicate with various Internet servers, a smartphone, tablet, laptop computer, other outdoor power equipment 1000 , etc.
- the external devices 1008 are shown to include a data logger 1016 .
- the data logger 1016 can be a storage device configured to record and store a log of data for the outdoor power equipment 1000 .
- the data logger 1016 receives data from the controllers 304 - 308 and/or 1032 - 1036 and/or the battery management system 1022 via the bus 1018 .
- the data logger 1016 can be configured to store, in a hard drive, database, etc. the logged data.
- the data may be operational data for the outdoor power equipment 1000 . Operational data can include: battery charge amounts, motor speeds, average motor speeds, runtime, faults, etc.
- the external devices 1008 include vehicle lighting systems.
- the external devices 1008 can include headlights (e.g., brights, day lights, etc.), brake lights, and/or any other lighting system.
- the controllers 304 - 308 and/or the controllers 1032 - 1036 can operate the lighting systems of the outdoor power equipment 1000 .
- the controller module 100 and the controller module 1024 can both be configured to perform separate jobs.
- the controller module 100 can be configured to drive the outdoor power equipment 1000 (e.g., the motors 1002 - 1006 can be drive motors) while the controller module 1024 can be configured to perform chore functions for the outdoor power equipment 1000 .
- the controller 308 can receive user input indicating that the outdoor power equipment 1000 should drive forward and that three lawn mower blades of the outdoor power equipment 1000 should be operated.
- the controller 308 may operate a left motor 1006 of the outdoor power equipment 1000 while the controller 306 can be configured to operate a right motor 1004 .
- the controller 1026 , the controller 1028 and the controller 1030 can each be configured to operate a lawn mower blade via the motors 1032 - 1036 .
- the controller 308 can operate the motor 1006 to drive the outdoor power equipment 1000 , communicate a command via the bus 1018 to the controller 306 to operate the motor 1004 to drive the outdoor power equipment 1000 , and can communicate a command to operate the motors 1032 - 1036 to the controllers 1032 - 1036 via the bus 1018 .
- the outdoor power equipment 1000 can include a single controller module, the controller module 100 .
- the outdoor power equipment 1000 may only include three motors.
- the outdoor power equipment 1000 may include a motor for a right wheel of the snow thrower, a motor for a left wheel of the snow thrower, and a motor to operate the snow thrower auger.
- the controller 308 may operate a right wheel of the snow thrower via the motor 1006 , the controller 306 can operate a left wheel of the snow thrower via the motor 1004 , and the controller 304 can operate the auger of the snow thrower. If the controller 308 receives user input via the user interface 1012 to drive the snow thrower forward and/or operate the auger, the controller 308 can operate the motor 1006 to operate to drive the snow thrower forward, communicate a command to the controller 306 via the bus 1018 to drive the snow thrower forward via the motor 1004 , and/or communicate a command to the controller 304 to operate the auger of the snow thrower via the motor 1002 .
- each of the controllers can be interchangeable.
- any one of the controllers 304 - 308 and/or 1032 - 1036 can be configured to receive user input and/or operate a drive motor and/or a chore motor.
- each of the controllers 304 - 308 and 1032 - 1036 can be configured to receive user input directly from the user interface 1012 (e.g., via the bus 1018 ) and therefore, one controller may not be required to communicate a command and/or an indication of user input to the other controllers.
- the external devices 1008 include a power take off (PTO) and/or a PTO clutch.
- PTO power take off
- Any of the controllers 304 - 308 and/or 1032 - 1036 can operate the PTO clutch via the bus 1018 and/or via direct wiring connections to the PTO clutch.
- the outdoor power equipment 1000 may have a rear PTO for connecting an external device (e.g., a rear lawn mower deck, a post hole digger, etc.)
- an external device e.g., a rear lawn mower deck, a post hole digger, etc.
- one of the controllers 304 - 308 and/or 1032 - 1036 can determine, via the rear PTO, that a connection has been made to the rear PTO and can automatically determine to not operate lawn mower blades of the outdoor power equipment 1000 even though a user may have indicated to operate the lawn mower blades and instead operate the rear PTO.
- one or more of the controllers 304 - 308 and/or 1032 - 1036 can be configured to operate brakes for the motors 1002 - 1006 and/or 1032 - 1036 (for example mechanical brakes for the drive motors and/or the chore motors).
- the brake is a resistive load on the motor that dissipates current to stop the motor in case there is a malfunction (e.g., a battery malfunction).
- the controllers 304 - 308 and/or 1032 - 1036 can magnetically latch the motor (short the motor) to stop it.
- one or multiple controllers of the controllers 304 - 308 and/or the controllers 1032 - 1036 can store a database of operational parameters and/or control algorithms for operating the outdoor power equipment 1000 which are dependent on the type of the outdoor power equipment 1000 .
- the control algorithms may be specific to different types of external devices 1008 .
- a controllers of the controllers 304 - 308 and/or 1032 - 1036 can receive an indication of the type of the outdoor power equipment 1000 and/or the type of a particular external device of the external devices 1008 from the external devices 1008 can identify the type of the outdoor power equipment 1000 and/or the type of the external devices 1008 and retrieve the various control algorithms and/or parameters to operate the outdoor power equipment 1000 .
- controller 308 can communicate an operational state of motor 1006 (e.g., motor speed, motor direction, etc.) to controller 306 .
- controller 306 can operate motor 1004 .
- controller 306 can communicate an operational state of motor 1004 to controller 308 which can be configured to operate motor 1006 based on the operational state received from controller 306 .
- controller 308 and/or 306 can infer, or operate on data indicative of, an operational state of another motor.
- controllers 306 and/or 308 could receive all (or some) user input for outdoor power equipment 1000 (e.g., all drive information for two ZTR drive sticks, chore motor operation input, analog inputs, digital inputs, etc.).
- input directly relevant for controller 306 to operate motor 1004 can be used by controller 308 to operate motor 1006 while input for controller 308 can be used by controller 306 to operate motor 1004 .
- the state of one motor can bias the state of another motor with or without communication via bus 1018 .
- FIG. 11 the controller 308 is shown in greater detail, according to an exemplary embodiment. While FIG. 11 provides a detailed description of the controller 308 , the functionality described with reference to FIG. 11 can be applied to any of the controllers described herein (for example, the controllers described with reference to FIG. 10 ).
- the controller 308 is shown to include a processing circuit 1100 .
- the processing circuit 1100 is shown to include a processor 1102 and a memory 1104 . While the controller 308 is shown to include one processing circuit 1100 , it should be understood that the controller 308 can include any number of processing circuits 1100 and/or the functionality of the processing circuit 1100 can be distributed across multiple processing circuits (e.g., across multiple integrated circuits).
- the processor 1102 can be implemented as a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components.
- the memory device 1104 e.g., memory, memory unit, storage device, etc.
- the memory device 1104 is one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described in the present application.
- the memory device 1104 may be or include volatile memory or non-volatile memory.
- the memory device 1104 may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present application.
- the memory device 1104 is communicably connected to the processor 1102 via the processing circuit 1100 and includes computer code for executing (e.g., by processing circuit and/or processor) one or more processes described herein.
- the controller 308 is shown to include a network interface 1134 , a power circuit 1136 , a system interface 1138 , and a motor interface 1140 .
- the network interface 1134 can be, can include, and/or can be a part of the communications port 408 as described with reference to FIG. 4 .
- the network interface 1134 can include one or more circuits configured to allow the processing circuit 1100 to communicate data (e.g., send and/or receive) data via the bus 1018 .
- the power circuit 1136 can include one or more circuits configured to power the controller 308 .
- the power circuit 1136 can include one or more transformers, rectifiers, filters, voltage regulators, etc. configured to power the controller 308 via a power source 1142 .
- the power source 1142 may be a battery, for example, a battery that is the same as and/or separate from (but can be similar to) the battery 1020 (e.g., a battery for powering the motor that the controller 308 can operate).
- the power circuit 1136 can include one or more connectors for connecting to the power source 1142 .
- the connectors may be the power connectors 500 and/or 502 as described with reference to FIG. 5 .
- the system interface 1138 can be an interface circuit configured to communicate with the external devices 1008 .
- the system interface 1138 is similar to, the same as, and/or part of the communications port 408 as described with reference to FIG. 5 .
- the system interface 1138 can include one or more analog input circuits, analog output circuits, digital input circuits, digital output circuits, etc.
- the system interface 1138 can further be connector to the motor 1006 and can be configured to receive motor measurements (or can make motor measurements) via the connections to the motor 1006 .
- various motor sensors of the motor 1006 can interface with the controller 308 via the system interface 1138 .
- the motor interface 1140 can be one or more circuits configured to operate the motor 1006 .
- the motor interface 1140 can include one or more switches, amplifiers, signal generators, etc.
- the motor interface 1140 can include the motor control outputs 504 - 510 as described with reference to FIG. 5 .
- the memory 1104 is shown to include a network manager 1108 and controller applications 1106 .
- the network manager 1108 can be configured to perform one or more network protocols (e.g., CAN protocols) to enable the controller applications 1106 to communicate via the bus 1018 .
- the controller applications 1106 can include one or more modules configured to perform operations for the controller 308 . Each of the modules can communicate data to other controllers and/or to a battery management system via the network manager 1108 , the network interface 1134 , and/or the bus 1018 .
- the controller applications 1106 can communicate with the external devices 1008 , receive data from the motor 1006 , and/or operate the motor 1006 via the system interface 1138 and/or the motor interface 1140 .
- the controller applications 1106 include a hybrid manager 1110 .
- the hybrid manager 1110 can be configured to operate a hybrid device (where the outdoor power equipment 1000 is a hybrid device that runs on both a gas engine and a motor with one or more batteries).
- the hybrid manager 1110 can receive an indication of the voltage or state of charge (SoC) of the one or more batteries (e.g., from the battery management system 1022 ) and can be configured to operate a throttle of the gas engine based on the measurement.
- SoC state of charge
- the hybrid manager 1110 can be configured to distribute power in a power train of the hybrid system and/or can be configured to operate switching mechanisms causing the one or more batteries to charge and/or discharge in order to use a low (or minimal) amount of gas power.
- the controller applications 1106 include a user interface manager 1112 .
- the user interface manager 1112 can be configured to operate a user interface of the external devices 1008 .
- the user interface manager 1112 can be configured to cause a user interface to display sensed and/or received information, e.g., engine speeds, battery SoC, etc.
- the user interface manager 1112 receives user control inputs, e.g., sticks forward or backward by particular amounts, turn of a steering wheel, etc.
- the user interface manager 1112 can operate in a high accuracy mode or a high speed mode.
- the high accuracy mode may analyze control inputs from the user for driving the outdoor power equipment 1000 with high accuracy such that small changes to inputs (e.g., input drive sticks of a ZTR) causes a high resolution response to the small changes of the inputs.
- the user interface manager 1112 can operate in the high accuracy mode when the user input received via the user interface manager 1112 indicates to drive the outdoor power equipment 1000 slowly (e.g., a drive speed indication of the user input is less than a predefined amount). For a lawn mower, if the user is attempting to drive slowly, this may indicate that they are attempting to carefully mow grass around an object. In this regard, the user may desire responsiveness and thus the user interface manager 1112 can operate in the high accuracy mode. Operating in the high accuracy mode may cause the user input to be a first resolution, or down sampled to a first resolution.
- the user interface manager 1112 can operate in the high speed mode.
- the user interface manager 1112 can down sample the user input to a second resolution, less than the first resolution. This can cause the outdoor power equipment 1000 to be less responsive to changes in user input when a user is attempting to drive the outdoor power equipment 1000 fast.
- the controller applications 1106 include a drive motor controller 1114 .
- the drive motor controller 1114 can cause the motor 1006 to be operated to drive the outdoor power equipment 1000 .
- the drive motor controller 1114 may be enabled and operate to control the motor 1006 based on user input. For example, based on a throttle position, an input stick position, etc. the drive motor controller 1114 can be configured to operate the motor 1006 to drive the outdoor power equipment 1000 .
- the controller applications 1106 include a noise cancellation manager 1116 .
- the noise cancellation manager 1116 can be configured to operate a motor (or generate control commands for multiple motors) such that one or multiple motors can operate at a reduced sound level.
- Noise controller commands can be communicated among controllers of a single motor controller module or multiple motor controller modules (e.g., between a chore motor controller module of a lawn mower deck and a drive motor controller for driving a lawn mower). For example, when two sound waves are identical but have inverted phase, the waves cancel each other out (destructive waves or destructive harmonics).
- the noise cancellation manager 1116 can set one motor to run at a first speed and a second motor to run at a second speed such that the first speed and the second speed result in a reduced (or minimal) amount of sound.
- the noise cancellation manager 1116 can receive a command to operate a first lawn mower blade (or a set of lawn mower blades) at a predefined speed.
- the noise cancellation manager 1116 can operate the motor 1006 at the first speed and communicate a command to a second controller to operate a second motor at a second speed such that the second speed and the first speed together reduce noise.
- the noise cancellation manager 1116 can be configured to time a first motor and a second motor such that the sound of the motors is reduced.
- the noise cancellation manager 1116 can receive an input to operate two lawn mower blades time the two lawn mower blades (one controlled by the controller 308 via motor 1006 and the second controlled by another controller that receives a lawn mower control command from the controller 308 ) such that the timing of the two lawn mower blades reduces noise.
- the controller applications 1106 include a controller status manager 1118 .
- the controller status manager 1118 can be configured to monitor the status of the controller 308 . For example, the controller status manager 1118 can identify whether the controller 308 is properly powered via the power circuit 1136 , determine whether a motor control command of the motor 1006 is operating properly based on feedback received from the motor 1006 , determine whether any software faults have occurred for the controller 308 , etc.
- the controller status manager 1118 can cause an indicator (e.g., a display screen icon, a LED, etc.) to indicate that the controller 308 is operating. This can allow a technician to determine whether the controller 308 is functional before attempting to replace the controller 308 .
- the indicator is located on the controller module 100 or on a harness of the outdoor power equipment 1000 .
- the controller applications 1106 include an incline manager 1120 .
- the incline manager 1120 can be configured to control the outdoor power equipment 1000 to drive in a straight line even when the outdoor power equipment 1000 is operating on sloped ground. For example, if the outdoor power equipment 1000 is driving along the side of a hill (for example, if the lawn of an operator is sloped and an operator is attempting to cut the grass of the lawn in a straight line), correction may be required to cause the outdoor power equipment 1000 to drive in a straight line.
- the incline manager 1120 can be configured to receive accelerometer data and/or gyroscope data from an accelerometer and/or gyroscope.
- the controller 308 includes an accelerometer and/or gyroscope on the PCB of the controller 308 . In some embodiments, the controller 308 is connected and/or communicates with an accelerometer and/or gyroscope (e.g., the external devices 1008 ).
- an accelerometer and/or gyroscope e.g., the external devices 1008 .
- the data received from an angle sensing device may by the incline manager 1120 be indicative of a roll of the outdoor power equipment 1000 .
- the incline manager 1120 can determine whether the roll is greater than a predefined amount and whether line correction is necessary.
- the incline manager 1120 can be configured to operate one or more drive wheels to keep the outdoor power equipment 1000 driving in a straight line.
- the controller 308 operates a right drive wheel via the motor 1006 .
- the incline manager 1120 can operate the right wheel at a right wheel speed.
- the incline manager 1120 can determine a left roll speed and communicate via the bus 1018 , the left wheel speed to another controller configured to operate the left wheel.
- the left wheel speed may be offset from the right wheel speed based on an amount of the roll and a polarity of the roll. For example, if the outdoor power equipment 1000 is in a roll to the right, the right wheel speed may be a particular amount greater than the left wheel speed.
- the right wheel speed and/or the left wheel speed may be based on a user directed drive speed and a magnitude of the roll. Similarly, if the outdoor power equipment 1000 is in a roll to the left, the left wheel may be driven at a higher speed than the right wheel to keep the outdoor power equipment 1000 driving in a straight line.
- the controller applications 1106 include a chore motor controller 1122 .
- the motor 1006 is a chore motor, a motor for driving a blower, an auger, a spreader, a lawn mower blade, etc.
- the chore motor controller 1122 can be configured to operate the motor 1006 .
- the motor interface 1140 that includes one or multiple switches (e.g., transistor switches, relay switches, etc.).
- the chore motor controller 1122 can be configured to operate the motor interface 1140 to run the motor 1006 at varying speeds to perform the functionality of a chore motor.
- the controller applications 1106 include a fence installation manager 1124 .
- the fence installation manager 1124 can be configured to cause the outdoor power equipment 1000 to install a fence with multiple fence posts. In some cases, an operator of the outdoor power equipment 1000 may wish to use the outdoor power equipment 1000 to space fence posts at predefined amounts.
- the fence installation manager 1124 can be configured to receive a fence post spacing from the user interface 1012 , from a smartphone via the wireless network module 1014 , etc.
- the fence post spacing may be 7 feet, 8 feet, 9 feet, etc.
- the fence installation manager 1124 can be configured to operate one or more driver motors to drive the outdoor power equipment 1000 (either based on user command or autonomously) and stop once the fence post spacing is reached.
- the fence installation manager 1124 communicates drive and stop commands to other controllers via the bus 1018 that are responsible for operating drive motors. In some embodiments, the fence installation manager 1124 itself operates a drive motor (e.g., the motor 1006 ).
- the fence installation manager 1124 can determine when to stop the outdoor power equipment 1000 .
- the outdoor power equipment 1000 can determine, based on the speed of the wheel and the size of the wheel (e.g., the diameter, circumference, and/or radius) when the fence post spacing has been reached.
- the fence installation manager 1124 can cause the outdoor power equipment 1000 to stop.
- the fence installation manager 1124 can receive a coordinate from the global positioning system 1010 and drive the outdoor power equipment 1000 until a second coordinate is reached where the distance between the first coordinate and the second coordinate is (or is greater than or at least a predefined amount less than, and/or within a range of) the fence post spacing.
- the fence installation manager 1124 uses both the speed of the drive wheels and the coordinate to perform the fence post spacing.
- the fence installation manager 1124 can use the global positioning system coordinates to identify a rough estimate of the spacing and use the speed of the wheel and the size of the wheel to fine tune the spacing.
- the controller applications 1106 include a straight line manager 1126 .
- the straight line manager 1126 can be configured to be activated when the outdoor power equipment is a ZTR.
- the straight line manager 1126 can receive user input from the user interface 1012 and identify whether the user is attempting to drive in a straight line.
- the user interface 1012 includes a button causing the straight line manager 1126 to be activated or deactivated.
- the straight line manager 1126 can receive input from two different drive wheel controls (for example, ZTR drive sticks).
- the straight line manager 1126 can be configured to determine whether the input from the drive sticks are within a predefined amount from each other. If the input from the two drive sticks are within the predefined amount, the straight line manager 1126 can cause two drive motors of two drive wheels to operate at the same speed (e.g., based on an average input of the drive sticks). In some embodiments, the straight line manager 1126 sends a command to other controllers responsible for controlling the drive motors. In some embodiments, the straight line manager 1126 controls one or both of the drive motors directly, e.g., controls the motor 1006 .
- the controller applications 1106 include a collision avoidance manager 1128 .
- the collision avoidance manager 1128 can communicate with one or more collision sensors (e.g., the external devices 1008 ).
- collision avoidance sensors can include proximity sensors, backup cameras, camera vision systems, light detection and ranging (Lidar) systems, a radio detection and ranging (RADAR) system, etc.
- the collision avoidance manager 1128 Based on the input from systems (e.g., either or both of raw data input that can be processed by the collision avoidance manager 1128 or processed data by the system) the collision avoidance manager 1128 can determine whether a collision is imminent (will occur), has occurred, or may occur unless response actions are taken.
- the collision avoidance manager 1128 can communicate a visual and/or audio indication of an impending collision determined by the collision avoidance manager 1128 based on the collision sensors (e.g., operate a display, indicator, and/or speaker of the user interface 1012 ).
- the controller applications 1106 include an autonomous vehicle control application configured to implement the collision avoidance manager 1128 to autonomously control the outdoor power equipment 1000 .
- the controller applications 1106 include a battery manager 1130 .
- the battery manager 1130 can communicate with the battery management system 1022 . Based on various battery metrics received from the battery management system 1022 , the battery manager 1130 can determine whether there is a battery fault and/or whether the battery 1020 needs to be charged. For example, if a battery current is greater than a predefined amount, the battery manager 1130 can generate an alarm and present the alarm to a user via the user interface 1012 .
- the controller applications 1106 include a fuel gage manager 1132 .
- the fuel gage manager 1132 can be configured to generate an indication of the charge of the battery 1020 based on battery metrics and/or based on a battery charge received from the battery management system 1022 .
- the indication is an hours to empty, miles to empty, and/or any other indicator that the fuel gage manager 1132 can be configured to determine based on the battery metrics and/or battery charge received from the battery management system 1022 .
- the fuel gage manager 1132 can detect what attachments are connected to the outdoor power equipment 1000 (e.g., rear PTO, wireless radio, etc.), e.g., what components are communicating via the bus 1018 . Based on the components communicating via the bus 1018 and how much power those components consume, this may be indicative of the drawing on the battery 1020 and thus the indication of battery charge can be based on the identified attachments.
- the outdoor power equipment 1000 e.g., rear PTO, wireless radio, etc.
- the ZTR lawnmower 1206 can be the same as and/or similar to the outdoor power equipment 1000 . Furthermore, the ZTR lawnmower 808 can have two drive wheels and a drive motor for each drive wheel and two lawn mower blades and a lawn mower blade motor for each of the lawn mower blades.
- the ZTR lawnmower 1206 is shown to include the controller module 100 and two chore modules 1202 and 1204 .
- the chore modules 1202 and 1204 can be a combination (integration) of a motor controller and a motor (and/or battery) that can be coupled with the motor controller module 100 via the bus 1018 .
- One of the controllers of the controller module 100 can receive user input via a user input device of the ZTR lawnmower 1206 and operate one of the drive wheels of the ZTR lawnmower 1206 based on the user input.
- the controller can communicate (via the bus 1018 ) the user input (or another drive command based on the user input) to a second controller of the controller module 100 .
- the second controller can be configured to operate a second drive motor of the ZTR lawnmower 1206 based on the communicated user input (or drive command).
- the controller that receives the user input can communicate a command to operate the lawn mower blades to the chore modules 1202 and 1204 via the bus 1018 .
- the communicated command is the user input received from the user.
- the communicated command is a motor speed for the chore modules 1202 and/or 1204 determined by the controller of the controller module 100 based on the user input.
- Each of the chore motor modules 1202 and 1204 can operate a motor of the chore motor modules 1202 and 1204 to operate the blades of the lawn mower 1206 .
- the ZTR lawn mower 1208 can include two drive wheels and two corresponding drive motors for the drive wheels. Furthermore, the lawn mower can include three lawn mower blades and three lawn mower blade motors for each of the lawn mower blades.
- the controller module 100 can receive, via one of its controllers, user input for driving the ZTR lawnmower 1208 and/or operating the lawn mower blades.
- the controller receiving the user input can be configured to operate one or both of the drive motors of the ZTR lawnmower 1208 based on the user input.
- the controller communicates the user input and/or another drive command (e.g., motor speed) to another controller of the controller module 100 and that controller can control the other drive motor of the ZTR lawnmower 1208 .
- the controller that receives the user input can further communicate to controllers of the controller module 1024 .
- the controller of the controller module 100 can communicate (via the bus 1018 ) a command (e.g., a motor speed, an indication of a user input) to control the blade motors of the ZTR lawnmower 1208 .
- FIGS. 12 - 13 the steps of a process 1400 for operating the outdoor power equipment 1000 (e.g., the ZTR lawnmower 1206 and/or the ZTR lawnmower 1208 ) are shown. These steps are further described with reference to FIG. 14 .
- the outdoor power equipment 1000 e.g., the ZTR lawnmower 1206 and/or the ZTR lawnmower 1208
- the process 1400 is shown for operating the outdoor power equipment 1000 with multiple controller modules, according to an exemplary embodiment.
- the controller module 100 , the controller module 1024 , the controllers 304 - 308 , the controllers 1032 - 1036 , and/or any other computing device or component as described herein can be configured to perform the process 1400 .
- a first controller of a first controller module can receive a user input for operating outdoor power equipment.
- the first controller may be the controller 308 and the outdoor power equipment may be the outdoor power equipment 1000 as described with reference to FIG. 11 .
- the user input can be receive by the controller 308 via the user interface 1012 .
- the controller 308 of the controller module 100 can determine a first motor control decision of a first drive motor of the outdoor power equipment 1000 and a second motor control decision for a second drive motor of the outdoor power equipment 1000 .
- the first motor may be the motor 1006 and can be configured to drive a wheel of the outdoor power equipment 1000 while the second motor may be the motor 1004 configured to drive a second drive wheel of the outdoor power equipment 1000 .
- the motor control decision can cause the motor to be operated forwards or backwards at varying speeds. The speeds may be proportional to, and/or based on, a user input amount.
- the controller 308 can operate the motor 1006 based on the first motor control decision and can communicate, via the bus 1018 , the second motor control decision to a second controller.
- the second controller may be the controller 306 .
- the second control decision may be a speed for the motor 1004 but may also be raw user input received from the user interface 1012 .
- the controller 306 can be configured to control the motor 1004 based on the received second motor control decision.
- the second motor control decision is the user input received from the user interface 1012 .
- the controller 306 can determine the second motor control decision itself
- the controller 308 can generate one or more chore motor control decisions for one or more chore motors of the outdoor power equipment 1000 based on the user input.
- the one or more chore motors may be the motors 1032 - 1036 .
- the motor decision may be a speed to operate each of the motors 1032 - 1036 .
- the controller 308 can communicate the generated chore motor control decisions to the controllers 1026 - 1030 via the bus 1018 .
- each of the controllers 1026 - 1030 can receive the generated chore motor control decision (or each can receive a specific generated chore motor control decision) via the bus 1018 .
- each of the controller 1026 - 1030 can operate the motors 1032 - 1036 based on the received generate chore motor control decision.
- the controller 1026 can receive one chore motor control decision via the bus 1018 from the controller 308 and operate the motor 1032 based on the received chore motor control decision.
- the controller 1028 can receive another chore motor control decision from the controller 308 via the bus 1018 and operate the motor 1034 based on the other chore motor control decision.
- a spreader 1500 is shown for spreading particles (e.g., fertilizer, seed, salt, etc.).
- the spreader 1500 can be the same as and/or similar to the outdoor power equipment 1000 .
- the spreader 1500 is shown to include only one controller module, the controller module 100 .
- the controller module 100 includes controllers 304 - 308 .
- the controller 308 can be configured to operate one drive wheel of the spreader 1500
- the controller 306 can operate the other drive wheel of the spreader 1500
- the controller 304 can operate the spreader that distributes the particles.
- FIG. 15 includes the steps of a process 1600 as described with reference to FIG. 16 .
- process 1600 can be performed by any piece of outdoor power equipment, the process 1600 can be performed for outdoor power equipment that includes two drive motors and one chore motor.
- only one controller module is necessary to operate the outdoor power equipment.
- Another example of outdoor power equipment that may only require one controller module is a snow thrower (one auger, two drive wheels).
- the process 1600 for operating the outdoor power equipment 1000 with a single controller module is shown, according to an exemplary embodiment.
- the controller module 100 , the controller module 1024 , the controllers 304 - 308 , the controllers 1032 - 1036 , and/or any other computing device or component as described herein can be configured to perform the process 1600 .
- a first controller of a controller module can receive user input for operating outdoor power equipment.
- the first controller may be the controller 308
- the controller module may be the controller module 100
- the outdoor power equipment maybe the outdoor power equipment 1000 .
- the user input may be received from the user interface 1012 and may be an indication to drive the outdoor power equipment 1000 forward, turn left or right, and/or operate a chore motor (e.g., a spreader motor, a lawnmower blade motor, a snow thrower auger motor, etc.) at a particular speed.
- a chore motor e.g., a spreader motor, a lawnmower blade motor, a snow thrower auger motor, etc.
- the controller 308 can generate a first drive motor control decision and a second drive motor control decision for a first drive motor and a second drive motor of the outdoor power equipment 1000 based on the received user input of the step 1602 .
- the first drive motor may be the motor 1006 while the second drive motor may be the motor 1004 .
- the drive motor control decisions may be decisions to spin drive motors of the outdoor power equipment 1000 forward and/or backward at various speeds.
- the controller 308 can generate a chore motor control decision for a chore motor of the outdoor power equipment 1000 based on the received user input of the step 1602 .
- the chore motor may be the motor 1002 .
- the motor 1002 may be configured to operate a lawn mower blade, a spreader, a snow thrower auger, etc.
- the chore motor control decision is a decision to operate the chore motor 1002 at a particular speed and/or in a particular direction.
- step 1608 the controller 308 can operate the first drive motor, the motor 1006 , based on the first drive motor control decision.
- step 1610 the controller 308 can communicate the second drive motor control decision to the controller 306 via the bus 1018 .
- the controller 308 can communicate the chore motor control decision to the controller 304 via the bus 1018 .
- step 1612 the controller 306 can operate the drive motor 1004 to drive the outdoor power equipment 1000 based on the first drive motor control decision communicated to the controller 306 via the bus 1018 by the controller 308 .
- step 1614 the controller 304 can operate the chore motor 1002 based on the chore motor control decision communicated to the controller 304 via the bus 1018 by the controller 308 .
- a process 1700 is shown for monitoring the status of a battery of the outdoor power equipment 1000 , according to an exemplary embodiment.
- the controller module 100 , the controller module 1024 , the controllers 304 - 308 , the controllers 1032 - 1036 , and/or any other computing device or component as described herein can be configured to perform the process 1600 .
- the process 1700 is described with reference to the controller 308 .
- the controller 308 can receiver one or more battery metrics from the battery management system 1022 .
- the battery metrics can be discharge current, battery voltage, state of charge, etc.
- the battery metrics can be received via direct communication and/or via the bus 1018 .
- the controller 308 can determine, based on the battery metrics whether the battery and/or motor are operating correctly. For example, the controller 308 can compare the battery metrics to various thresholds, e.g., max output currents, max temperatures, etc. In some embodiments, various alarm levels can be generated. For example, if the temperature is greater than a first predefined amount but less than a second predefined amount, the alarm level may be one. However, if the temperature is greater than the second predefined amount, the alarm level may be two. Furthermore, if one of the battery metrics received from the battery management system 1022 is indicative of a battery fault, the controller 308 can generate an alarm. Based on the alarm, in step 1706 , the controller 308 can operate the outdoor power equipment 1000 .
- various thresholds e.g., max output currents, max temperatures, etc.
- various alarm levels can be generated. For example, if the temperature is greater than a first predefined amount but less than a second predefined amount, the alarm level may be one. However, if the temperature is greater than
- the controller 308 can turn off a motor (e.g., drive motor, chore motor, etc.) associated with the battery (or apply a brake) and/or can communicate to other controllers to stop using the battery, turn off partially (operate at low speeds), and/or turn off completely.
- a motor e.g., drive motor, chore motor, etc.
- the controller 308 can turn off a motor (e.g., drive motor, chore motor, etc.) associated with the battery (or apply a brake) and/or can communicate to other controllers to stop using the battery, turn off partially (operate at low speeds), and/or turn off completely.
- the controller 308 can generate a battery metric indication and cause a user device, e.g., the user interface 1012 , to present the user with an indication of the battery metrics.
- the controller 308 can generate a battery metric indication, e.g., runtime to empty, miles to empty, battery charge amount, etc. which can indicate to the user the current state of their battery.
- the controller 308 can present the alarm generated in the step 1704 and present the user with an indication of the alarm to help the user perform trouble shooting of the outdoor power equipment 1000 .
- a process 1800 is shown for reducing noise of the outdoor power equipment 1000 caused by motors of the outdoor power equipment 1000 operating, according to an exemplary embodiment.
- the controller module 100 , the controller module 1024 , the controllers 304 - 308 , the controllers 1032 - 1036 , and/or any other computing device or component as described herein can be configured to perform the process 1600 .
- the process 1800 is described with reference to the controller 308 .
- the controller 308 can determine a first motor control decision for a first motor and a second motor control decision for a second motor such that the operating a first motor at the first motor control decision and the second motor at the second motor control decision causes noise cancellation.
- the outdoor power equipment 1000 is a lawnmower that includes two lawnmower blades operated by two motors
- the speeds and/or timing can be set by the controller 308 such that the noise produced by each of the lawnmower blades and/or motors cancels out.
- the first motor control decision and the second motor control decision can cause two sound waves to be generated such that one wave has an inverted phase (an antiphase) of the other wave, causing cancellation of the waves.
- the first control decision and the second control decision are based on user input and/or a determined speed for the motors.
- the user input and/or determined speed may indicate a speed that both of the motors should operate at.
- the first control decision and the second control decision may deviate from the indicated speed such that the motors operate close to the desired speed but with reduced noise.
- the motors could operate a predefined speed
- the first control decision and the second control decision may be to operate one motor at the predefined speed and offset the second motor from the predefined speed by a particular amount.
- the motors can be kept 100 RPM apart.
- one of the controllers stores a lookup table of speed correspondences between two motors and/or offsets such that for a determination for a speed of one motor, a corresponding speed for a second motor for speed reduction can be retrieved from the lookup table by the controller.
- the selection of the motor speeds can be open loop and/or closed loop based on feedback sensors.
- the controller 308 communicates with a feedback device, for example, an accelerometer, a microphone, etc. Based on the feedback from the feedback device, the controller 308 can be configured to perform a tuning cycle to identify the first motor control decision and the second motor control decision. For example, the controller 308 can run through multiple different settings to generate values for motor speeds and/or timing (e.g., based on hall effect sensors for the motors). In some embodiments, a user can interact with a button causing the controller 308 to perform the tuning cycle and identify the first motor control decision and the second motor control decision. This tuning process can account for changes to the outdoor power equipment 1000 over time as the outdoor power equipment ages. In some embodiments, the controller 308 can identify the resonant frequencies of the outdoor power equipment 1000 by performing a frequency sweep and identifying the resonant frequencies of the outdoor power equipment 1000 . These resonant frequencies can be utilized in performing noise reduction.
- a feedback device for example, an accelerometer, a microphone, etc. Based on the feedback from the feedback device, the controller 30
- the controller 308 can operate the first motor and the second motor based on the first motor control decision and the second motor control decision. In some embodiments, the controller 308 operates both motors directly, or only one of the motors. In some embodiments, the controller 308 does not directly operate either of the motors.
- the controller 308 can communicate the first control decision and/or the second control decision to one or more other controller that via the bus 1018 . Each controller can operate a motor (or motors) based on the first control decision and/or the second control decision.
- the controller 308 can receive feedback from the feedback device and update the first motor control decision and the second motor control decisions of the step 1802 .
- a noise cancellation loop e.g., a proportional integral derivative (PID) loop
- PID proportional integral derivative
- a process 1900 is shown for turning a ZTR machine, according to an exemplary embodiment.
- the controller module 100 , the controller module 1024 , the controllers 304 - 308 , the controllers 1032 - 1036 , and/or any other computing device or component as described herein can be configured to perform the process 1600 .
- the process 1900 is described with reference to the controller 308 and the controller 306 .
- the controller 308 can receive a user input for a first drive motor of the ZTR machine and determine a first speed for the first drive motor of the ZTR.
- the controller 308 can determine whether the first user input of the first drive motor is greater than a first predefined amount. This can indicate whether or not the user is trying to cause the ZTR machine to make a sharp turn (a rotation). However, if the user is indicating that both drive motors should be driven at a speed greater than the first predefined amount, this would indicate that rather than turning, the user wants the ZTR machine to drive at a fast speed. Therefore, in step 1906 , the controller 308 can determine whether a second user input of a second drive motor is less than a predefined amount. This indicates that the user wants the ZTR machine to spin.
- the user inputs can be compared to the first predefined amount and the second predefined amount based on a value assigned indicating drive motor direction. For example, if forward user inputs range from 0 to 100 and reverse user inputs range from 0 to ⁇ 100, rather than comparing the user inputs to the first predefined amount and the second predefined amount, the absolute values of the user inputs can be compared to the first predefined amount and the second predefined amount.
- a user pushes forward on a right drive stick but not on a left drive stick it can be identified that the user is attempting to rotate the ZTR machine to the left and the left wheel should spin backwards to aid in the spin.
- the user pulls back on the right drive stick but not on the left drive stick it can be identified that the user is attempting to rotate the ZTR machine to the right and the left wheel should spin forward to aid in the spin.
- the controller 308 can operate a first drive motor of the ZTR machine in a first direction based on the first user input.
- the controller 308 can operate the first drive motor at a particular speed and in a particular direction indicated by the first user input.
- the controller 308 can determine a second speed for the second drive motor and a second direction for the second drive motor in response to determining that the first user input is greater than the first predefined amount and the second user input is less than the second predefined amount.
- the second direction may be opposite the first direction of the first drive motor. This can cause the motors to work together to spin or turn the ZTR machine since the motors are operating in different directions.
- the second speed can be set to a predefined stored turning amount.
- the turning speed may be an ideal speed to operate the second drive motor at to cause the ZTR machine to turn and/or spin.
- the speed is determined by the controller 308 to be proportional to the speed of the first drive motor.
- step 1912 the controller 308 can communicate the second speed and the second direction to the controller 306 via the bus 1018 .
- the controller 306 can control the second rive motor in step 1914 .
- a process 2000 for driving the outdoor power equipment 1000 in a straight line when the outdoor power equipment 1000 is driving on an incline is shown, according to an exemplary embodiment.
- the controller module 100 , the controller module 1024 , the controllers 304 - 308 , the controllers 1032 - 1036 , and/or any other computing device or component as described herein can be configured to perform the process 1600 .
- the process 2000 is described with reference to the controller 308 .
- the controller 308 can receive a roll angle for the outdoor power equipment 1000 from an angle sensing device.
- the roll angle may indicate how much the outdoor power equipment 1000 is rolling, identifying whether the outdoor power equipment 1000 is driving across the side of a hill.
- the controller 308 can determine whether the roll angle is greater than a first predefined amount or less than a second predefined amount. By comparing the roll angle to two predefined amounts, the controller 308 can determine which direction the outdoor power equipment 1000 is rolling, e.g., clockwise or counterclockwise. If the outdoor power equipment 1000 is rolling clockwise, a right drive wheel can be operated at a speed greater than a left drive wheel to keep the outdoor power equipment 1000 driving straight. If the outdoor power equipment 1000 is rolling counterclockwise, the left wheel can be operated at a speed greater than the right wheel to keep the outdoor power equipment 1000 driving straight.
- Comparing the roll angle to determine whether the roll angle is greater than a first predefined mount and less than a second predefined amount assumes that the roll angle is either positive or negative (positive for one direction from an axis of reference and negative from a second direction from the axis of reference).
- Roll angles that are either positive or negative are illustrated for the outdoor power equipment 1000 in FIGS. 21 and 22 .
- the roll angle may be expressed only as a positive value and not a negative value. If the roll angle is only positive, the roll angle can be compared to determine whether the roll angle is greater than a first predefined amount but not the second predefined amount or greater than the first predefined amount and the second defined amount. This can indicate whether the outdoor power equipment 1000 is rolling clockwise or counterclockwise.
- the controller 308 can communicate an indication that the roll angle is clockwise or counterclockwise (or greater than the first predefined amount or less than the second predefined amount) to the controller 306 via the bus 1018 .
- the controller 308 can operate the first drive motor at a first speed and the second drive motor can operate the second drive motor at a second speed such that the speeds are offset to keep the outdoor power equipment 1000 driving in a straight line even though the outdoor power equipment is rotating clockwise or counterclockwise.
- the first controller can operate the motor (left motor) in an amount based on a user input and the second controller can determine the second speed for the second motor (right motor) to be the first speed plus a predefined offset.
- the predefined offset may be based on the roll angle. This can enable the outdoor power equipment 1000 to drive in a straight line even though it is rolled clockwise.
- the first controller and the second controller only perform the roll correction if user inputs for the first drive motor and the second drive motor are within a predefined amount from each other, this may indicate that the user wishes to drive the outdoor power equipment 1000 in a straight line.
- the first motor controller can operate the left motor to be an amount based on the user input minus a predefined offset.
- the first controller can itself, slow down the left motor to perform roll correction.
- the first controller slows down the left motor by a predefined amount and the second controller speeds up the right motor by another predefined amount to perform roll correction.
- various amounts of roll may indicate that the outdoor power equipment 1000 is being operated in a dangerous manner.
- the outdoor power equipment 1000 is a lawnmower (or other outdoor equipment)
- the first controller and/or the second controller can determine whether the outdoor power equipment 1000 is in danger by determining whether a roll angle is greater than a first predefined amount.
- the first controller and/or the second controller can turn off lawn mower blade motors (or cause other controllers to turn off lawn mower blade motors).
- the first controller and/or the second controller may continue to operate (or allow other controllers to operate) the drive motors so that the operator of the outdoor power equipment 1000 can correct the dangerous situation.
- the motor controllers of the outdoor power equipment 1000 can be configured to shut down all motors and/or apply braking devices.
- a process 2300 is shown for operating a chore motor at a speed proportional to a drive speed for the outdoor power equipment 1000 , according to an exemplary embodiment.
- the controller module 100 , the controller module 1024 , the controllers 304 - 308 , the controllers 1032 - 1036 , and/or any other computing device or component as described herein can be configured to perform the process 1600 .
- the process 2300 is described with reference to the controller 308 and the controller 306 .
- the controller 308 can receive one or more drive inputs for the outdoor power equipment 1000 to drive the outdoor power equipment 1000 at a particular speed.
- the drive inputs may indicate a user defined drive speed for a first drive wheel and a second drive wheel.
- the controller 308 and/or multiple other controllers can operate drive motors to drive the outdoor power equipment 1000 —based on the user defined drive speed.
- the controller 308 can communicate the drive speed to the controller 306 via the bus 1018 .
- the controller 306 can determine one or more chore motor speeds for a chore motor, the chore motor speeds being proportional to the drive speed.
- the speed of a chore device e.g., a lawnmower blade, a spreader
- the speed of a chore device can be proportional to how fast the outdoor power equipment 1000 is moving.
- energy can be saved. If the outdoor power equipment 1000 is a lawnmower and the lawnmower is stationary or moving slowly, it is a waste of energy to operate the lawnmower blade at a high speed. However, if the lawnmower is moving quickly, the lawnmower blade may need to operate at the high speed to efficiently cut grass.
- the speed of the chore motor can be based on the drive speed for the outdoor power equipment 1000 .
- the controllers 306 can operate one or more chore motors at the one or more chore motor speeds determined in the step 2306 .
- control systems and circuits described herein may be implemented as “non-programmable circuitry” that consists of analog or digital hard circuitry that does not utilize a microcontroller or software or as a controller, microcontroller, computer, or other programmable device. It is believed that embodiments in which the controls are implemented as non-programmable circuitry including discrete components may be less expensive than embodiments implemented with microcontrollers or using software. Such non-programmable circuitry embodiments do not include a microcontroller.
- control systems and circuits described herein may be implanted as a component of a battery, as a component of a battery receiver or receiving port, as a component of the engine, as a component of a starter module separate from the engine, and/or as a component of the outdoor power equipment.
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Harvester Elements (AREA)
- Electric Propulsion And Braking For Vehicles (AREA)
Abstract
Description
- This Application is a continuation of U.S. application Ser. No. 16/512303, filed Jul. 15, 2022, which claims the benefit of U.S. Provisional Application No. 62/698,529, filed Jul. 16, 2018, both of which are hereby incorporated herein by reference in their entireties.
- The present application relates generally to outdoor power equipment. Conventionally, outdoor power equipment is powered solely via gas. The present application relates more particularly to electric outdoor power equipment. Electric outdoor power equipment may be battery powered, where a battery is configured to power a motor of the outdoor power equipment. In a conventional system, if there are multiple motor controllers, the motor controllers do not have information regarding how other motors of the electric outdoor power equipment are operating.
- One embodiment of the present disclosure relates to outdoor power equipment including a drive motor configured to operate a drive wheel, a drive motor controller configured to control the drive motor, a first chore motor configured to drive a first chore device, and a first chore motor controller communicatively coupled to the drive motor controller. The first chore motor controller is configured to receive an operational state of the drive motor including a drive motor speed from the drive motor controller and operate the first chore motor based on the operational state of the drive motor.
- Another embodiment of the present disclosure relates to outdoor power equipment including a left drive motor configured to operate a left drive wheel on a left side of the outdoor power equipment, a right drive motor configured to operate a right drive wheel on a right side of the outdoor power equipment, a sensor configured to detect an incline of a surface over which the outdoor power equipment is travelling, and at least one drive motor controller communicatively coupled to the sensor and configured to control the left drive motor and the right drive motor, The at least one drive motor controller is configured to receive the detected incline from the sensor, determine a roll angle of the outdoor power equipment based on the detected incline, and operate the left drive motor at a left drive speed and the right drive motor at a right drive speed based on the roll angle.
- Another embodiment of the present disclosure relates to a controller module including an enclosure including an inner wall defining a volume, multiple motor controllers, each motor controller including a printed circuit board (PCB) having a first side and a second side opposite the first side, multiple transistors located on the first side, and multiple outputs located on the second side. The first side of the PCB is positioned adjacent to the inner wall of the enclosure to allow heat generated by the motor controller to dissipate via the enclosure.
- It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only, and are not restrictive of the invention as claimed.
- The disclosure will become more fully understood from the following detailed description when taken in conjunction with the accompanying figures.
-
FIG. 1 is a diagram of a motor controller module for outdoor power equipment that includes multiple motor controllers, according to an exemplary embodiment. -
FIG. 2 is another diagram of the motor controller ofFIG. 1 illustrating the dimensions of the motor controller module, according to an exemplary embodiment. -
FIG. 3 is a diagram of the motor controller module ofFIG. 1 shown to include the motor controllers, according to an exemplary embodiment. -
FIG. 4 is a diagram of the motor controller module ofFIG. 1 shown to include a mezzanine board connecting the motor controllers ofFIG. 3 , according to an exemplary embodiment. -
FIG. 5 is a diagram of one of the motor controllers ofFIG. 3 , according to an exemplary embodiment. -
FIG. 6-9 are diagrams illustrating side perspectives, a top perspective, a front perspective, and a bottom perspective of the motor controller ofFIG. 5 , according to an exemplary embodiment. -
FIG. 10 is a diagram of a distributed motor controller system for outdoor power equipment shown to include the motor controller module ofFIG. 1 and the motor controllers ofFIG. 3 , according to an exemplary embodiment. -
FIG. 11 is a block diagram illustrating the motor controller ofFIG. 5 in greater detail, according to an exemplary embodiment. -
FIG. 12 is a block diagram of the distributed motor controller system ofFIG. 10 implemented in a zero turn radius (ZTR) standing lawn mower where the distributed controller system includes multiple controller modules, according to an exemplary embodiment. -
FIG. 13 is a block diagram of the distributed motor controller system ofFIG. 10 implemented in a ZTR sitting lawn mower where the distributed controller system includes multiple controller modules, according to an exemplary embodiment. -
FIG. 14 is a flow diagram of a process for operating the distributed controller systems ofFIGS. 12 and 13 where the distributed controller systems include multiple controller modules, according to an exemplary embodiment. -
FIG. 15 is a block diagram of the distributed controller system ofFIG. 10 implemented in a spreader where the distributed controller system includes a single controller module, according to an exemplary embodiment. -
FIG. 16 is a flow diagram for operating the distributed controller system ofFIG. 15 where the distributed controller system includes a single controller module, according to an exemplary embodiment. -
FIG. 17 is a flow diagram of a process for monitoring a battery status of a battery by the distributed controller system ofFIG. 10 , according to an exemplary embodiment. -
FIG. 18 is a flow diagram of a process for performing noise cancellation with destructive waves for two motors that can be performed by the distributed controller system ofFIG. 10 , according to an exemplary embodiment. -
FIG. 19 is a flow diagram of a process for performing a turn on a ZTR with the distributed controller system ofFIG. 10 , according to an exemplary embodiment. -
FIG. 20 is a flow diagram of a process for correcting for tilt in outdoor power equipment that can be performed by the distributed controller system ofFIG. 10 , according to an exemplary embodiment. -
FIGS. 21 and 22 illustrate outdoor power equipment rolling clockwise and counterclockwise, according to an exemplary embodiment. -
FIG. 23 is a flow diagram of a process for operating a chore motor at a speed proportional to a drive motor speed to save energy, the process can be performed by the distributed motor controller system ofFIG. 10 , according to an exemplary embodiment. - Before turning to the figures, which illustrate the exemplary embodiments in detail, it should be understood that the present application is not limited to the details or methodology set forth in the description or illustrated in the figures. It should also be understood that the terminology is for the purpose of description only and should not be regarded as limiting.
- Referring now to
FIG. 1 , amotor controller module 100 is shown, according to an exemplary embodiment. Themotor controller module 100 includes an enclosure including one or multiple motor controllers for controlling electric motors of a piece of outdoor power equipment or other equipment suitable to be powered by electric motors. In different embodiments, themotor controller module 100 can be aluminum, plastic, steel, fiberglass, polycarbonate, polyester, etc. In some embodiments, themotor controller module 100 may be a specific thickness of aluminum (have a specific thermal mass) such that heat generated within themotor controller module 100 can be dissipated (e.g., via conduction of the aluminum). Themotor controller module 100 can be implemented in various types of outdoor power equipment, for example, a zero turn radius (ZTR) machine (e.g., a sitting ZTR or a standing ZTR lawnmower, spreader, etc.), a tractor (e.g., a tractor lawn mower, a backhoe, etc.), an air compressor, a posthole digger or a machine with a posthole digger attachment, commercial construction equipment, recreational vehicles, utility vehicles, golf carts, aerial lifts, floor cleaning equipment, industrial utility vehicles, etc. Themotor controller module 100 is shown to include anenclosure 102 and aheatsink 104. Theenclosure 102 may be connected to theheatsink 104 and fastened together via connections 106 a-106 d which may be holes for bolts, screws, and/or any other type of connector. Themotor controller module 100 can include, or can be mounted to, a base plate. The base plate may be an aluminum component which themotor controller module 100 can be attached to via the connections 106 a-106 d. The base plate may be aluminum, steel, etc. - The
heatsink 104 can dissipate heat for one or multiple controllers included within themotor controller module 100. The controllers can be configured to control a motor of the outdoor power equipment. For example, the controllers of themotor controller module 100 can be configured to operate a drive motor. The drive motor can be configured to operate a drive wheel of the outdoor power equipment. Furthermore, the controllers of themotor controller module 100 can be configured to operate a chore motor. A chore motor can be a motor that performs a task of the outdoor power equipment. For example, for a lawnmower, a chore motor can be a motor that drives a grass cutting blade of the lawn mower. For a spreader, the chore motor can be a motor that operates a distributor that distributes particles (e.g., fertilizer, seeds, salt, etc.). - In some embodiments, the
motor controller module 100 is located near a motor (or other element or component) that themotor controller module 100 is operating (reducing susceptibility due to shorter signal lines) and may only require motor connections, power connections, and/or CAN connections. This distance and/or few number of required connections can decrease electromagnetic interference (EMI), improving electromagnetic compatibility (EMC). If themotor controller module 100 operates to control a drive motor, themotor controller module 100 may be located near the drive motor or mounted on a battery that provides the drive motor with energy. In some embodiments, themotor controller module 100 is connected directly to multiple battery cells (via a controller board of the motor controller module 100) for operating motors. - Similarly, if the
motor controller module 100 operates to control a chore motor, themotor controller module 100 can be located near the chore motor or mounted on a battery that provides the chore motor with energy (e.g., electrical energy). In some embodiments, themotor controller module 100 is located on or under a chassis of the outdoor power equipment. In some embodiments, themotor controller module 100 can be located on a deck of outdoor power equipment (e.g., a shroud that encloses lawn mower blades). Themotor controller module 100 can perform load based control of lawn mower speeds, perform anti-scrubbing, can identify the size of the deck and optimizing cutting speed based on the width of the identified deck, and various other features. - In
FIG. 1 , bosses 108 a-108 c are shown for mounting themotor controller module 100 onto outdoor power equipment (e.g., connecting to a base plate of the outdoor power equipment). Although three bosses are shown, themotor controller module 100 can include any number of bosses (e.g., two, four, etc.). Although not shown inFIG. 1 , in some embodiments, the bosses 108 a-108 c are elevated. Elevating the bosses 108 a-108 c can allow themotor controller module 100 to be sunk into another surface. For example, rather than being connected onto the top of a deck of outdoor power equipment, themotor controller module 100 can be sunk into the deck fully and/or partially via elevated bosses 108 a-108 c. - The
motor controller module 100 can be water tight and/or dust tight. This can prevent any electronic components within the motor controller module 100 (e.g., the motor controllers as described herein) from becoming damaged. Since themotor controller module 100 may be sealed, all communication between the components (e.g., controllers) of themotor controller module 100 may be internal wiring/communication bus connections. In some embodiments, when the controllers of themotor controller module 100 communicate to other external controllers, motors, and/or controller modules, a water tight and/or dust tight wiring interface can be utilized to wire the controllers of themotor controller module 100 to the external components. - Still referring to
FIG. 1 , although not shown, themotor controller module 100 can have a heat dissipation channel for cooling themotor controller module 100. For example, a shell or casing can surround some and/or all of themotor controller module 100 forming an air channel between the shell/casing and themotor controller module 100. This can permit air to flow around the sides of themotor controller module 100 for cooling (convection). Furthermore, themotor controller module 100 may have an opening allowing warm air to escape themotor controller module 100. - In some embodiments, the
controller module 100 can include a thermal bath (e.g., a thermal water bath) which can surround some and/or part of thecontroller module 100 and/or components of thecontroller module 100 to cool thecontroller module 100. In some embodiments, thecontroller module 100 can include a liquid cooling system configured to cool controllers of thecontroller module 100 and dissipate heat outside thecontroller module 100. - Referring now to
FIG. 2 , themotor controller module 100 is shown with indications of dimension, according to an exemplary embodiment.FIG. 2 illustrates themotor controller module 100 from an overhead perspective. The bosses 108 a-108 c, and anadditional boss 108 d, are shown inFIG. 2 . InFIG. 2 , themotor controller module 100 is shown to have a length of 15.5 inches and a width of 8.7 inches. However, themotor controller module 100 can be any dimensions and is not limited to the dimensions shown inFIG. 2 . For example, based on the number of motor controllers contained within thecontroller module 100, the size of themotor controller module 100 can change, e.g., be proportional to the number of motor controllers within thecontroller module 100. - The
motor controller module 100 is shown to include abranding panel 200. Thebranding panel 200 may include a sticker, ink printing, and/or etched brand labels. An input/output (I/O)panel 202 can include one or more holes and/or connectors (e.g., watertight connectors) for connecting the one or multiple controllers of themotor controller module 100 to motors, external devices, battery management systems, user input systems, etc. In some embodiments, the holes and/or connectors of the I/O panel 202 may be based on the number of controllers and/or use of the controllers of themotor controller module 100. For example, a ZTR lawn mower may have a different number controllers and/or motors than a spreader. - Referring now to
FIG. 3 , themotor controller module 100 is shown to include motor controllers, according to an exemplary embodiment. InFIG. 3 , themotor controller module 100 is shown from a side perspective and is shown to include amotor controller 304, amotor controller 306, and amotor controller 308. Each of the motor controllers 304-308 can be configured to operate a motor (or in some cases multiple motors), for example, a motor that drives a wheel of outdoor power equipment, a motor that drives a blade of outdoor power equipment, a motor that drives a spreader of outdoor power equipment, a motor that drives a compressor of outdoor power equipment, etc. In some embodiments, the controllers 304-308 can be configured to perform heat rejection by operating a cooling system. - The controllers 304-308 can distribute data processing for the
motor controller module 100. In some embodiments, the distributed data processing occurs dynamically. In some embodiments, the distributed data processing is predefined such that each of the controllers 304-308 is setup to perform various processing operations. The distribution of data processing can be predetermined based on available inputs and outputs and processing power of each of the controllers 304-308. In some embodiments, each of the controllers 304-308 can perform all of the operations for an entire piece of outdoor power equipment. In this regard, based on user settings and/or requirements, one or multiple of the controllers 304-308 can be configured to perform processing operations for controlling the outdoor power equipment. Via the distribution of operations, features can be added to each of the controllers 304-308 since each of the controllers 304-308 are physically similar (e.g., same processor, same I/O, same memory), each of the controllers 304-308 can be programed with a variety of desired features without requiring changes to the hardware of the controllers 304-308. - The
motor controller module 100 is shown to have a total height of 5.75 inches (a vertical portion height of 3.8 inches), a sloped top width of 3.9 inches, and a flat top width of 3 inches. However, themotor controller module 100 may be any dimensions. Posts of the motor controllers 304-308 (e.g., posts 310, 312, and 314) can be aligned to simplify bussing. Various wires can be run between the controllers 304-308 within themotor controller module 100 and/or outside the motor controller module 100 (e.g., via the I/O plate 202). InFIG. 3 , only three motor controllers are shown to be mounted on the middle top and the sloped sides of the roof of themotor controller module 100. However, any number of motor controllers can be mounted within themotor controller module 100. - The motor controllers 304-308 of the
motor controller module 100 can be applied to various machines, e.g., lawn mowers, snow throwers, aerator, spreaders, etc. The number of motor controllers and/or the number of motor controller modules may be dependent on the machine. For example, for a ZTR, there may be three lawn mower blades and two drive wheels. A total of five motor controllers may be necessary for controlling the ZTR lawnmower. In this regard, a first module may include at least two motor controllers for operating the two drive motors and a second motor controller module can include three motor controllers in communication with the two drive motor controllers for operating the lawn mower blades. Furthermore, the multiple modules may include controllers for specific tasks. For example, there may be a “drive module” that includes controllers for operating drive motors and a “chore module” a controller for operating chore motors (e.g., for lawn mower blades, spreaders, augers, blowers, debris collectors, etc.). In some embodiments, there may be one or multiple chore modules and/or drive modules. - In some embodiments, a module may include both chore controllers and drive controllers. For example, a drive module may have space for three controllers but only require two controllers for driving the wheels. In this regard, the remaining space may be populated with a chore controller for controlling a chore motor.
- Referring now to
FIG. 4 , a main PCB connecting the motor controllers 304-308 is shown, according to an exemplary embodiment. The main PCB,mezzanine PCB 400, is shown to connect the three motor controllers 304-308 via 402, 404, and 406 which are components of theconnectors mezzanine PCB 400. Themezzanine PCB 400 can provide all communication traces and/or connector pass-through for connecting external power and/or any other communication connection to the controllers 304-308. This can greatly reduce and/or eliminate wiring within themotor controller module 100. - Each of the controllers 304-308 are shown to include a connector. The
controller 304 includes thecommunications port 408, thecontroller 306 includes thecommunications port 410, and thecontroller 306 includes thecommunications port 412. In some embodiments, the connectors 402-406 are male connectors that connect directly with the communications ports 408-412 where the connector for the communications ports 408-412 are female connectors (or vice versa). Themezzanine PCB 400 is shown to include anexternal connector 414. Theexternal connector 414 can connect the controllers 304-308 to other controllers (via a bus), to a power source (e.g., a battery or a charging source), and/or to various external devices (e.g., via I/O or a bus). - In some embodiments, a ribbon cable or other connector is used between the communications ports 408-412 and 402-406, this can be implemented where the controllers 304-308 are positioned at different angles (e.g., as shown in
FIG. 3 ). In some embodiments, themezzanine PCB 400 is a flexible PCB. When the controllers 304-308 are positioned at different angles (e.g., as shown inFIG. 3 ), a flexible PCB can be implemented to account for the angles of the controllers 304-308. In some embodiments, themezzanine PCB 400 is shaped such that it includes one flat side and two diagonal sides to account for the slopped installation of motor controllers 304-308 e.g., as shown inFIG. 3 (e.g., the slopped sides of themezzanine PCB 400 could be parallel with the sloped sides of the roof of themotor controller module 100 and the flat side parallel with the top of themotor controller module 100. - Referring now to
FIG. 5 , a diagram of themotor controller 304 is shown, according to an exemplary embodiment. Themotor controller 304 is shown to have a length of 2.6 inches, a width of 4.1 inches, and a height of 1.6 inches. However, themotor controller 304 is not limited to the dimensions shown inFIG. 5 and may be any appropriate dimensions. Themotor controller 304 is shown to include acommunications port 408. The communications port can be configured to communicate with other motor controllers (e.g., themotor controller 306 and themotor controller 308 via bus connections (e.g., a controller area network (CAN) bus)), can include analog inputs, analog outputs, digital inputs, digital outputs, a motor position connection, and/or motor sensor inputs. Using a communications bus can reduce and/or minimize cabling. In some embodiments, thecommunications port 408 includes two analog inputs, one analog output, seven digital input/output connections, CAN 2.0b connections, a motor position input, and five motor sensor inputs. -
500 and 502 can be power connectors for connecting to a power source (e.g., a battery). TheConnectors 500 and 502 can provide power to a power circuit of thepower connectors motor controller 304 for powering themotor controller 304. Furthermore, themotor controller 304 is shown to include motor control outputs 504-510. Themotor controller 304 can be configured to generate and/or switch one or more control signals for a motor and operate the motor based on voltages and/or signals (e.g., static voltage signal, a pulse wave modulated (PWM) signal, etc.) via the motor control outputs 504-510. Themotor controller 304 is shown to includevarious capacitors 512. Thecapacitors 512 can be ceramic capacitors, electrolytic capacitors, and/or any other suitable type of capacitor. Thecapacitors 512 can facilitate signal filtering and/or regulation for themotor controller 304. - The
controller 304 can include enough I/O to run both user interface and safety interfaces of a ZTR or other outdoor power equipment. If thecontroller 304 is not being used to manage user and/or safety interfaces (or even if thecontroller 304 is managing user and/or safety interfaces), the computing power and/or I/O of thecontroller 304 can be utilized to perform high level operations e.g., straight line assistance, collision avoidance, advanced user interface features, which are described in greater detail elsewhere herein, specifically with reference toFIG. 11 . - Referring now to
FIGS. 6-9 , themotor controller 304 is shown from multiple perspectives, according to an exemplary embodiment. Themotor controller 304 is shown from a left side perspective (FIG. 6 ), a top perspective and a front perspective (FIG. 7 ), a right side perspective (FIG. 8 ), and a bottom perspective (FIG. 9 ). The bottom perspective illustrates thevarious transistors 900 of the motor controller 304 (e.g., a metal-oxide-semiconductor field-effect transistor (MOSFET transistor), bipolar junction transistor (BJT transistor), etc.). The transistors may generate a large amount of heat and thus may be kept on the bottom side of a PCB of themotor controller 304. The bottom side of themotor controller 304 may be mounted flush or directed towards the enclosure of the motor controller module 100 (e.g., as shown inFIG. 3 ) to dissipate heat generated by themotor controller 304 via theheatsink 104 of themotor controller module 100. For example, the transistors (or other heat generating elements) can be on one side of the PCB and in contact with, or close contact with, an aluminum housing of thecontroller module 100 which in turn is in contact with theheatsink 104. This can cause themotor controller module 100 to be kept at a low temperatures for the operation of the controllers 304-308. Keeping the controllers 304-308 cool may be important in some cases since the controllers 304-308 may switch high current, for example, to drive a motor, which the cool temperature within themotor controller 304 may aid and/or enable for long periods of time. - Referring now to
FIG. 10 ,outdoor power equipment 1000 including a distributed motor controller system is shown, according to an exemplary embodiment. Theoutdoor power equipment 1000 is shown to include abus 1018, thecontroller module 100 and anothercontroller module 1024. Furthermore, theoutdoor power equipment 1000 is shown to include a battery pack (e.g., the battery 1020) abattery management system 1022 andexternal devices 1008. In some embodiments, thebattery management system 1022 is incorporated into thebattery 1020. Thebattery 1020 can include one or more distinct batteries including one or more battery cells (e.g., lithium ion battery cells and/or any other type of battery cell as described herein or that is suitable). Theexternal devices 1008 and thebattery management system 1022 can be configured to communicate directly to the controllers of the 100 and 1024 and/or via thecontroller modules bus 1018. The controllers 304-308 and/or 1032-1036 can dynamically interface with thebattery management system 1022 to ensure optimal operation of theoutdoor power equipment 1000 while protecting thebattery 1020. - The
bus 1018 may be one or more wires, traces, and/or electronic connections for facilitating a bus communications protocol for communication between the components of theoutdoor power equipment 1000. For example, the protocol for thebus 1018 may be CAN bus (e.g., CAN 2.0, CAN 2.0A, CAN 2.0B, etc.). The components of theoutdoor power equipment 1000 connected to thebus 1018 can each send and/or receive information via thebus 1018 and/or can send various commands to each other via thebus 1018. For example, the controllers 304-308 can send various operational commands to each other and/or to theexternal devices 1008 via thebus 1018. - The
controller module 100 is shown to include the controllers 304-308. Thecontroller 304 can be configured to operate amotor 1002, thecontroller 306 can be configured to operate a motor 1004, while thecontroller 308 can be configured to operate a motor 1006. The controllers 304-308 can be configured to provide a continuous current of up to 120 amperes to the various motors that they control, according to some embodiments. Furthermore, thecontroller module 1024 is shown to include acontroller 1026, acontroller 1028, and a controller 1030. Thecontroller 1026 can be configured to operate themotor 1032. Thecontroller 1028 can be configured to operate themotor 1034, while the controller 1030 can be configured to operate themotor 1036. The controllers 1032-1036 can be the same as and/or similar to the controllers 304-308 The motors 1002-1006 and 1032-1036 can be battery powered motors that drive wheels and/or external devices (e.g., a lawn mower blade, a compressor, a spreader, etc.). In some embodiments, the motors 1002-1006 and 1032-1036 can be pre-synched. The motors 1002-1006 and 1032-1036 can be DC motors (e.g., a brushless DC motor controlled with a fast switching algorithm) and/or AC motors. The motors 1002-1006 and/or 1032-1036 can be self-commutated motors and/or externally commutated motors. - As an example, the
motor 1032 is shown to be powered via abattery 1020. Although not shown, each of the motors 1002-1006 and/or 1032-1036 can be powered by their own battery and/or by a shared battery that is similar to and/or the same as thebattery 1020. Thebattery 1020 can be a lithium-ion (Li-ion) battery, a lithium-ion Polymer (Li-pol) battery, a lead-acid battery, a nickel-cadmium (NiCd) battery, a nickel-metal hydride (NiMh) and/or any other type of battery configured to store and/or discharge energy. Thebattery 1020 may have various capacities, e.g., 0.1 kWh, 0.5 kWh, 1 kWh, 3 kWh, 10 kWh, 50 kWh, etc. - The
outdoor power equipment 1000 is shown to include abattery management system 1022. Thebattery management system 1022 can be configured to operate thebattery 1020 to charge and/or discharge. For example, thebattery management system 1022 can be configured to cause thebattery 1020 to be charged based on energy of a charging source 1038. For example, the charging source 1038 (e.g., a wall outlet of a home, an outlet of a generator, another battery, etc.) can provide power to thebattery management system 1022 which can be configured to cause thebattery 1020 to be charged based on the power sourced from the charging source 1038. - Furthermore, the
battery management system 1022 can be configured to cause thebattery 1020 to discharge energy to power and/or operate themotor 1032. In some embodiments, thebattery management system 1022 can be configured to monitor various parameters of thebattery 1020. For example, thebattery management system 1022 can be configured to measure, via various sensors (e.g., shunt resistors, voltage sensors, hall effect sensors, thermocouples, thermistors, etc.), a battery temperature, a battery voltage, a battery current, and/or any other battery parameter. - The
outdoor power equipment 1000 is shown to include theexternal devices 1008. Theexternal devices 1008 can be located within either thecontroller module 100 and/or thecontroller module 1024. However, in some embodiments, theexternal devices 1008 are located outside thecontroller module 100 an/or thecontroller module 1024. Each of theexternal devices 1008 can communicate with the controllers of thecontroller module 100 and thecontroller module 1024 via analog input, analog output, digital input, and/or digital output of the controllers. Furthermore, in some embodiments, theexternal devices 1008 can be configured to communicate with the controllers 304-308 and/or 1032-1036 via thebus 1018. - The
external devices 1008 can include aglobal positioning system 1010. Theglobal positioning system 1010 can be a satellite based radio navigation system configured to generate one or more coordinates (e.g., a latitude value, a longitude value, an altitude value) identifying a location of theoutdoor power equipment 1000. In some embodiments, theglobal positioning system 1010 provides an indication of the coordinates to any of the controllers of thecontroller module 100 and/or thecontroller module 1024. - The
external devices 1008 are further shown to include a user interface 1012. The user interface 1012 can be one or more light emitting diodes (LEDs), a display screen (e.g., a LED screen, a touch screen (e.g., a resistive touch screen, a capacitive touch screen, etc.), etc.), a steering wheel, a throttle control, one or more ZTR drive sticks, buttons (e.g., one or more buttons to enable a chore function (e.g., turn on lawn mower blades, turn off lawn mower blades, select blade speed, start spreader, stop spreader, select spreader speed, turn on compressor, etc.)), and/or any other input and/or output device. - In some embodiments, the user interface 1012 can include LEDs placed on the floor of the outdoor power equipment 1000 (e.g., near a footplate of a ZTR) and/or on the deck of the
outdoor power equipment 1000 which indicate, via color (e.g., red, yellow, green) a power draw for each of the batteries of theoutdoor power equipment 1000. In some embodiments, the user interface 1012 can be attached to the outside of themotor controller module 100. If theoutdoor power equipment 1000 is a hybrid device, the user interface 1012 can indicate an amount of motor usage of the motors of theoutdoor power equipment 1000 to the user. Providing these power draw indications can indicate to a user which parts of a vehicle are using the power and in what amount. - The
external devices 1008 are shown to include a wireless network module 1014. The wireless network module 1014 can be configured to communicate and/or manage a wireless network (e.g., a Bluetooth network, a Zigbee network, a Wi-Fi network, a cellular network (e.g., 3G, LTE, etc.). In this regard, the controllers 304-308 and/or 1032-1036 can be enabled to communicate with various Internet servers, a smartphone, tablet, laptop computer, otheroutdoor power equipment 1000, etc. - The
external devices 1008 are shown to include a data logger 1016. The data logger 1016 can be a storage device configured to record and store a log of data for theoutdoor power equipment 1000. In some embodiments, the data logger 1016 receives data from the controllers 304-308 and/or 1032-1036 and/or thebattery management system 1022 via thebus 1018. The data logger 1016 can be configured to store, in a hard drive, database, etc. the logged data. The data may be operational data for theoutdoor power equipment 1000. Operational data can include: battery charge amounts, motor speeds, average motor speeds, runtime, faults, etc. - In some embodiments, the
external devices 1008 include vehicle lighting systems. For example, theexternal devices 1008 can include headlights (e.g., brights, day lights, etc.), brake lights, and/or any other lighting system. In this regard, the controllers 304-308 and/or the controllers 1032-1036 can operate the lighting systems of theoutdoor power equipment 1000. - Still referring to
FIG. 10 , thecontroller module 100 and thecontroller module 1024 can both be configured to perform separate jobs. For example, in some embodiments, thecontroller module 100 can be configured to drive the outdoor power equipment 1000 (e.g., the motors 1002-1006 can be drive motors) while thecontroller module 1024 can be configured to perform chore functions for theoutdoor power equipment 1000. For example, thecontroller 308 can receive user input indicating that theoutdoor power equipment 1000 should drive forward and that three lawn mower blades of theoutdoor power equipment 1000 should be operated. Thecontroller 308 may operate a left motor 1006 of theoutdoor power equipment 1000 while thecontroller 306 can be configured to operate a right motor 1004. Thecontroller 1026, thecontroller 1028 and the controller 1030 can each be configured to operate a lawn mower blade via the motors 1032-1036. In this regard, thecontroller 308 can operate the motor 1006 to drive theoutdoor power equipment 1000, communicate a command via thebus 1018 to thecontroller 306 to operate the motor 1004 to drive theoutdoor power equipment 1000, and can communicate a command to operate the motors 1032-1036 to the controllers 1032-1036 via thebus 1018. - In some embodiments, rather than including two controller modules (the
controller module 100 and the controller module 1024), theoutdoor power equipment 1000 can include a single controller module, thecontroller module 100. For example, if theoutdoor power equipment 1000 is a spreader or a snow thrower, theoutdoor power equipment 1000 may only include three motors. For example, for a snow thrower, theoutdoor power equipment 1000 may include a motor for a right wheel of the snow thrower, a motor for a left wheel of the snow thrower, and a motor to operate the snow thrower auger. For the example of a snow thrower, thecontroller 308 may operate a right wheel of the snow thrower via the motor 1006, thecontroller 306 can operate a left wheel of the snow thrower via the motor 1004, and thecontroller 304 can operate the auger of the snow thrower. If thecontroller 308 receives user input via the user interface 1012 to drive the snow thrower forward and/or operate the auger, thecontroller 308 can operate the motor 1006 to operate to drive the snow thrower forward, communicate a command to thecontroller 306 via thebus 1018 to drive the snow thrower forward via the motor 1004, and/or communicate a command to thecontroller 304 to operate the auger of the snow thrower via themotor 1002. - It should be understood that the operations of each of the controllers can be interchangeable. For example, any one of the controllers 304-308 and/or 1032-1036 can be configured to receive user input and/or operate a drive motor and/or a chore motor. Furthermore, in some embodiments, each of the controllers 304-308 and 1032-1036 can be configured to receive user input directly from the user interface 1012 (e.g., via the bus 1018) and therefore, one controller may not be required to communicate a command and/or an indication of user input to the other controllers.
- In some embodiments, the
external devices 1008 include a power take off (PTO) and/or a PTO clutch. Any of the controllers 304-308 and/or 1032-1036 can operate the PTO clutch via thebus 1018 and/or via direct wiring connections to the PTO clutch. In some embodiments, theoutdoor power equipment 1000 may have a rear PTO for connecting an external device (e.g., a rear lawn mower deck, a post hole digger, etc.) In some embodiments, if a user connects to a rear PTO and provides input to operate lawn mower blades of theoutdoor power equipment 1000, one of the controllers 304-308 and/or 1032-1036 can determine, via the rear PTO, that a connection has been made to the rear PTO and can automatically determine to not operate lawn mower blades of theoutdoor power equipment 1000 even though a user may have indicated to operate the lawn mower blades and instead operate the rear PTO. - In some embodiments, one or more of the controllers 304-308 and/or 1032-1036 can be configured to operate brakes for the motors 1002-1006 and/or 1032-1036 (for example mechanical brakes for the drive motors and/or the chore motors). In some embodiments, the brake is a resistive load on the motor that dissipates current to stop the motor in case there is a malfunction (e.g., a battery malfunction). In some embodiments, where the motor is a stepper motor, the controllers 304-308 and/or 1032-1036 can magnetically latch the motor (short the motor) to stop it.
- In some embodiments, one or multiple controllers of the controllers 304-308 and/or the controllers 1032-1036 can store a database of operational parameters and/or control algorithms for operating the
outdoor power equipment 1000 which are dependent on the type of theoutdoor power equipment 1000. Furthermore, the control algorithms may be specific to different types ofexternal devices 1008. Via thebus 1018, a controllers of the controllers 304-308 and/or 1032-1036 can receive an indication of the type of theoutdoor power equipment 1000 and/or the type of a particular external device of theexternal devices 1008 from theexternal devices 1008 can identify the type of theoutdoor power equipment 1000 and/or the type of theexternal devices 1008 and retrieve the various control algorithms and/or parameters to operate theoutdoor power equipment 1000. - In some embodiments,
controller 308 can communicate an operational state of motor 1006 (e.g., motor speed, motor direction, etc.) tocontroller 306. In this regard, based on the operational state of motor 1006,controller 306 can operate motor 1004. Similarly,controller 306 can communicate an operational state of motor 1004 tocontroller 308 which can be configured to operate motor 1006 based on the operational state received fromcontroller 306. - In some embodiments, rather than, or in addition to, communicating operational states between controllers via
bus 1018,controller 308 and/or 306 can infer, or operate on data indicative of, an operational state of another motor. For example,controllers 306 and/or 308 could receive all (or some) user input for outdoor power equipment 1000 (e.g., all drive information for two ZTR drive sticks, chore motor operation input, analog inputs, digital inputs, etc.). In this regard, input directly relevant forcontroller 306 to operate motor 1004 can be used bycontroller 308 to operate motor 1006 while input forcontroller 308 can be used bycontroller 306 to operate motor 1004. In this regard, the state of one motor can bias the state of another motor with or without communication viabus 1018. - Referring now to
FIG. 11 , thecontroller 308 is shown in greater detail, according to an exemplary embodiment. WhileFIG. 11 provides a detailed description of thecontroller 308, the functionality described with reference toFIG. 11 can be applied to any of the controllers described herein (for example, the controllers described with reference toFIG. 10 ). - The
controller 308 is shown to include aprocessing circuit 1100. Theprocessing circuit 1100 is shown to include aprocessor 1102 and amemory 1104. While thecontroller 308 is shown to include oneprocessing circuit 1100, it should be understood that thecontroller 308 can include any number ofprocessing circuits 1100 and/or the functionality of theprocessing circuit 1100 can be distributed across multiple processing circuits (e.g., across multiple integrated circuits). - The
processor 1102 can be implemented as a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components. The memory device 1104 (e.g., memory, memory unit, storage device, etc.) is one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described in the present application. Thememory device 1104 may be or include volatile memory or non-volatile memory. Thememory device 1104 may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present application. According to an exemplary embodiment, thememory device 1104 is communicably connected to theprocessor 1102 via theprocessing circuit 1100 and includes computer code for executing (e.g., by processing circuit and/or processor) one or more processes described herein. - The
controller 308 is shown to include anetwork interface 1134, apower circuit 1136, asystem interface 1138, and amotor interface 1140. Thenetwork interface 1134 can be, can include, and/or can be a part of thecommunications port 408 as described with reference toFIG. 4 . Thenetwork interface 1134 can include one or more circuits configured to allow theprocessing circuit 1100 to communicate data (e.g., send and/or receive) data via thebus 1018. Thepower circuit 1136 can include one or more circuits configured to power thecontroller 308. For example, thepower circuit 1136 can include one or more transformers, rectifiers, filters, voltage regulators, etc. configured to power thecontroller 308 via apower source 1142. Thepower source 1142 may be a battery, for example, a battery that is the same as and/or separate from (but can be similar to) the battery 1020 (e.g., a battery for powering the motor that thecontroller 308 can operate). Thepower circuit 1136 can include one or more connectors for connecting to thepower source 1142. The connectors may be thepower connectors 500 and/or 502 as described with reference toFIG. 5 . - The
system interface 1138 can be an interface circuit configured to communicate with theexternal devices 1008. In some embodiments, thesystem interface 1138 is similar to, the same as, and/or part of thecommunications port 408 as described with reference toFIG. 5 . In this regard, thesystem interface 1138 can include one or more analog input circuits, analog output circuits, digital input circuits, digital output circuits, etc. Thesystem interface 1138 can further be connector to the motor 1006 and can be configured to receive motor measurements (or can make motor measurements) via the connections to the motor 1006. For example, various motor sensors of the motor 1006 can interface with thecontroller 308 via thesystem interface 1138. Themotor interface 1140 can be one or more circuits configured to operate the motor 1006. For example, themotor interface 1140 can include one or more switches, amplifiers, signal generators, etc. Themotor interface 1140 can include the motor control outputs 504-510 as described with reference toFIG. 5 . - The
memory 1104 is shown to include anetwork manager 1108 andcontroller applications 1106. Thenetwork manager 1108 can be configured to perform one or more network protocols (e.g., CAN protocols) to enable thecontroller applications 1106 to communicate via thebus 1018. Thecontroller applications 1106 can include one or more modules configured to perform operations for thecontroller 308. Each of the modules can communicate data to other controllers and/or to a battery management system via thenetwork manager 1108, thenetwork interface 1134, and/or thebus 1018. Furthermore, thecontroller applications 1106 can communicate with theexternal devices 1008, receive data from the motor 1006, and/or operate the motor 1006 via thesystem interface 1138 and/or themotor interface 1140. - The
controller applications 1106 include a hybrid manager 1110. The hybrid manager 1110 can be configured to operate a hybrid device (where theoutdoor power equipment 1000 is a hybrid device that runs on both a gas engine and a motor with one or more batteries). The hybrid manager 1110 can receive an indication of the voltage or state of charge (SoC) of the one or more batteries (e.g., from the battery management system 1022) and can be configured to operate a throttle of the gas engine based on the measurement. The hybrid manager 1110 can be configured to distribute power in a power train of the hybrid system and/or can be configured to operate switching mechanisms causing the one or more batteries to charge and/or discharge in order to use a low (or minimal) amount of gas power. - The
controller applications 1106 include a user interface manager 1112. The user interface manager 1112 can be configured to operate a user interface of theexternal devices 1008. For example, the user interface manager 1112 can be configured to cause a user interface to display sensed and/or received information, e.g., engine speeds, battery SoC, etc. In some embodiments, the user interface manager 1112 receives user control inputs, e.g., sticks forward or backward by particular amounts, turn of a steering wheel, etc. - The user interface manager 1112 can operate in a high accuracy mode or a high speed mode. The high accuracy mode may analyze control inputs from the user for driving the
outdoor power equipment 1000 with high accuracy such that small changes to inputs (e.g., input drive sticks of a ZTR) causes a high resolution response to the small changes of the inputs. The user interface manager 1112 can operate in the high accuracy mode when the user input received via the user interface manager 1112 indicates to drive theoutdoor power equipment 1000 slowly (e.g., a drive speed indication of the user input is less than a predefined amount). For a lawn mower, if the user is attempting to drive slowly, this may indicate that they are attempting to carefully mow grass around an object. In this regard, the user may desire responsiveness and thus the user interface manager 1112 can operate in the high accuracy mode. Operating in the high accuracy mode may cause the user input to be a first resolution, or down sampled to a first resolution. - When the user input speed is greater than a predefined amount, the user interface manager 1112 can operate in the high speed mode. In this regard, the user interface manager 1112 can down sample the user input to a second resolution, less than the first resolution. This can cause the
outdoor power equipment 1000 to be less responsive to changes in user input when a user is attempting to drive theoutdoor power equipment 1000 fast. - The
controller applications 1106 include adrive motor controller 1114. Thedrive motor controller 1114 can cause the motor 1006 to be operated to drive theoutdoor power equipment 1000. For example, if thecontroller 308 is configured to operate a drive motor, thedrive motor controller 1114 may be enabled and operate to control the motor 1006 based on user input. For example, based on a throttle position, an input stick position, etc. thedrive motor controller 1114 can be configured to operate the motor 1006 to drive theoutdoor power equipment 1000. - The
controller applications 1106 include a noise cancellation manager 1116. The noise cancellation manager 1116 can be configured to operate a motor (or generate control commands for multiple motors) such that one or multiple motors can operate at a reduced sound level. Noise controller commands can be communicated among controllers of a single motor controller module or multiple motor controller modules (e.g., between a chore motor controller module of a lawn mower deck and a drive motor controller for driving a lawn mower). For example, when two sound waves are identical but have inverted phase, the waves cancel each other out (destructive waves or destructive harmonics). In this regard, the noise cancellation manager 1116 can set one motor to run at a first speed and a second motor to run at a second speed such that the first speed and the second speed result in a reduced (or minimal) amount of sound. For example, the noise cancellation manager 1116 can receive a command to operate a first lawn mower blade (or a set of lawn mower blades) at a predefined speed. - The noise cancellation manager 1116 can operate the motor 1006 at the first speed and communicate a command to a second controller to operate a second motor at a second speed such that the second speed and the first speed together reduce noise.
- Furthermore, the noise cancellation manager 1116 can be configured to time a first motor and a second motor such that the sound of the motors is reduced. For example, the noise cancellation manager 1116 can receive an input to operate two lawn mower blades time the two lawn mower blades (one controlled by the
controller 308 via motor 1006 and the second controlled by another controller that receives a lawn mower control command from the controller 308) such that the timing of the two lawn mower blades reduces noise. - The
controller applications 1106 include a controller status manager 1118. The controller status manager 1118 can be configured to monitor the status of thecontroller 308. For example, the controller status manager 1118 can identify whether thecontroller 308 is properly powered via thepower circuit 1136, determine whether a motor control command of the motor 1006 is operating properly based on feedback received from the motor 1006, determine whether any software faults have occurred for thecontroller 308, etc. The controller status manager 1118 can cause an indicator (e.g., a display screen icon, a LED, etc.) to indicate that thecontroller 308 is operating. This can allow a technician to determine whether thecontroller 308 is functional before attempting to replace thecontroller 308. In some embodiments, the indicator is located on thecontroller module 100 or on a harness of theoutdoor power equipment 1000. - The
controller applications 1106 include anincline manager 1120. Theincline manager 1120 can be configured to control theoutdoor power equipment 1000 to drive in a straight line even when theoutdoor power equipment 1000 is operating on sloped ground. For example, if theoutdoor power equipment 1000 is driving along the side of a hill (for example, if the lawn of an operator is sloped and an operator is attempting to cut the grass of the lawn in a straight line), correction may be required to cause theoutdoor power equipment 1000 to drive in a straight line. Theincline manager 1120 can be configured to receive accelerometer data and/or gyroscope data from an accelerometer and/or gyroscope. In some embodiments, thecontroller 308 includes an accelerometer and/or gyroscope on the PCB of thecontroller 308. In some embodiments, thecontroller 308 is connected and/or communicates with an accelerometer and/or gyroscope (e.g., the external devices 1008). - The data received from an angle sensing device (e.g., the accelerometer and/or gyroscope) may by the
incline manager 1120 be indicative of a roll of theoutdoor power equipment 1000. In this regard, theincline manager 1120 can determine whether the roll is greater than a predefined amount and whether line correction is necessary. In response to determining that the roll is greater than a predefined amount and/or based on the polarity of the roll (whether theoutdoor power equipment 1000 is rolling clockwise or counterclockwise) theincline manager 1120 can be configured to operate one or more drive wheels to keep theoutdoor power equipment 1000 driving in a straight line. - In some embodiments, the
controller 308 operates a right drive wheel via the motor 1006. In this regard, based on a user preferred speed, an amount of roll, and a polarity of the roll, theincline manager 1120 can operate the right wheel at a right wheel speed. Furthermore, theincline manager 1120 can determine a left roll speed and communicate via thebus 1018, the left wheel speed to another controller configured to operate the left wheel. The left wheel speed may be offset from the right wheel speed based on an amount of the roll and a polarity of the roll. For example, if theoutdoor power equipment 1000 is in a roll to the right, the right wheel speed may be a particular amount greater than the left wheel speed. The right wheel speed and/or the left wheel speed may be based on a user directed drive speed and a magnitude of the roll. Similarly, if theoutdoor power equipment 1000 is in a roll to the left, the left wheel may be driven at a higher speed than the right wheel to keep theoutdoor power equipment 1000 driving in a straight line. - The
controller applications 1106 include achore motor controller 1122. If the motor 1006 is a chore motor, a motor for driving a blower, an auger, a spreader, a lawn mower blade, etc., thechore motor controller 1122 can be configured to operate the motor 1006. In some embodiments, themotor interface 1140 that includes one or multiple switches (e.g., transistor switches, relay switches, etc.). Thechore motor controller 1122 can be configured to operate themotor interface 1140 to run the motor 1006 at varying speeds to perform the functionality of a chore motor. - The
controller applications 1106 include afence installation manager 1124. Thefence installation manager 1124 can be configured to cause theoutdoor power equipment 1000 to install a fence with multiple fence posts. In some cases, an operator of theoutdoor power equipment 1000 may wish to use theoutdoor power equipment 1000 to space fence posts at predefined amounts. In some embodiments, thefence installation manager 1124 can be configured to receive a fence post spacing from the user interface 1012, from a smartphone via the wireless network module 1014, etc. For example, the fence post spacing may be 7 feet, 8 feet, 9 feet, etc. Thefence installation manager 1124 can be configured to operate one or more driver motors to drive the outdoor power equipment 1000 (either based on user command or autonomously) and stop once the fence post spacing is reached. In some embodiments, thefence installation manager 1124 communicates drive and stop commands to other controllers via thebus 1018 that are responsible for operating drive motors. In some embodiments, thefence installation manager 1124 itself operates a drive motor (e.g., the motor 1006). - Based on coordinates of the
outdoor power equipment 1000 and/or based on a stored size of the drive wheels and a speed of the drive wheels, thefence installation manager 1124 can determine when to stop theoutdoor power equipment 1000. For example, theoutdoor power equipment 1000 can determine, based on the speed of the wheel and the size of the wheel (e.g., the diameter, circumference, and/or radius) when the fence post spacing has been reached. In response to reaching the fence post spacing, thefence installation manager 1124 can cause theoutdoor power equipment 1000 to stop. Furthermore, thefence installation manager 1124 can receive a coordinate from theglobal positioning system 1010 and drive theoutdoor power equipment 1000 until a second coordinate is reached where the distance between the first coordinate and the second coordinate is (or is greater than or at least a predefined amount less than, and/or within a range of) the fence post spacing. In some embodiments, thefence installation manager 1124 uses both the speed of the drive wheels and the coordinate to perform the fence post spacing. For example, thefence installation manager 1124 can use the global positioning system coordinates to identify a rough estimate of the spacing and use the speed of the wheel and the size of the wheel to fine tune the spacing. - The
controller applications 1106 include astraight line manager 1126. Thestraight line manager 1126 can be configured to be activated when the outdoor power equipment is a ZTR. Thestraight line manager 1126 can receive user input from the user interface 1012 and identify whether the user is attempting to drive in a straight line. In some embodiments, the user interface 1012 includes a button causing thestraight line manager 1126 to be activated or deactivated. Thestraight line manager 1126 can receive input from two different drive wheel controls (for example, ZTR drive sticks). - The
straight line manager 1126 can be configured to determine whether the input from the drive sticks are within a predefined amount from each other. If the input from the two drive sticks are within the predefined amount, thestraight line manager 1126 can cause two drive motors of two drive wheels to operate at the same speed (e.g., based on an average input of the drive sticks). In some embodiments, thestraight line manager 1126 sends a command to other controllers responsible for controlling the drive motors. In some embodiments, thestraight line manager 1126 controls one or both of the drive motors directly, e.g., controls the motor 1006. - The
controller applications 1106 include acollision avoidance manager 1128. Thecollision avoidance manager 1128 can communicate with one or more collision sensors (e.g., the external devices 1008). For example, collision avoidance sensors can include proximity sensors, backup cameras, camera vision systems, light detection and ranging (Lidar) systems, a radio detection and ranging (RADAR) system, etc. Based on the input from systems (e.g., either or both of raw data input that can be processed by thecollision avoidance manager 1128 or processed data by the system) thecollision avoidance manager 1128 can determine whether a collision is imminent (will occur), has occurred, or may occur unless response actions are taken. In some embodiments, thecollision avoidance manager 1128 can communicate a visual and/or audio indication of an impending collision determined by thecollision avoidance manager 1128 based on the collision sensors (e.g., operate a display, indicator, and/or speaker of the user interface 1012). In some embodiments, thecontroller applications 1106 include an autonomous vehicle control application configured to implement thecollision avoidance manager 1128 to autonomously control theoutdoor power equipment 1000. - The
controller applications 1106 include abattery manager 1130. Thebattery manager 1130 can communicate with thebattery management system 1022. Based on various battery metrics received from thebattery management system 1022, thebattery manager 1130 can determine whether there is a battery fault and/or whether thebattery 1020 needs to be charged. For example, if a battery current is greater than a predefined amount, thebattery manager 1130 can generate an alarm and present the alarm to a user via the user interface 1012. - The
controller applications 1106 include afuel gage manager 1132. Thefuel gage manager 1132 can be configured to generate an indication of the charge of thebattery 1020 based on battery metrics and/or based on a battery charge received from thebattery management system 1022. In some embodiments, the indication is an hours to empty, miles to empty, and/or any other indicator that thefuel gage manager 1132 can be configured to determine based on the battery metrics and/or battery charge received from thebattery management system 1022. In some embodiments, thefuel gage manager 1132 can detect what attachments are connected to the outdoor power equipment 1000 (e.g., rear PTO, wireless radio, etc.), e.g., what components are communicating via thebus 1018. Based on the components communicating via thebus 1018 and how much power those components consume, this may be indicative of the drawing on thebattery 1020 and thus the indication of battery charge can be based on the identified attachments. - Referring now to
FIG. 12 , a standing ZTR lawnmower 1206 is shown, according to an exemplary embodiment. The ZTR lawnmower 1206 can be the same as and/or similar to theoutdoor power equipment 1000. Furthermore, the ZTR lawnmower 808 can have two drive wheels and a drive motor for each drive wheel and two lawn mower blades and a lawn mower blade motor for each of the lawn mower blades. The ZTR lawnmower 1206 is shown to include thecontroller module 100 and two 1202 and 1204. Thechore modules 1202 and 1204 can be a combination (integration) of a motor controller and a motor (and/or battery) that can be coupled with thechore modules motor controller module 100 via thebus 1018. One of the controllers of thecontroller module 100 can receive user input via a user input device of the ZTR lawnmower 1206 and operate one of the drive wheels of the ZTR lawnmower 1206 based on the user input. The controller can communicate (via the bus 1018) the user input (or another drive command based on the user input) to a second controller of thecontroller module 100. The second controller can be configured to operate a second drive motor of the ZTR lawnmower 1206 based on the communicated user input (or drive command). - The controller that receives the user input can communicate a command to operate the lawn mower blades to the
1202 and 1204 via thechore modules bus 1018. In some embodiments, the communicated command is the user input received from the user. In some embodiments, the communicated command is a motor speed for thechore modules 1202 and/or 1204 determined by the controller of thecontroller module 100 based on the user input. Each of the 1202 and 1204 can operate a motor of thechore motor modules 1202 and 1204 to operate the blades of the lawn mower 1206.chore motor modules - Referring now to
FIG. 13 , a sitting ZTR lawn mower 1208 is shown, according to an exemplary embodiment. The ZTR lawn mower 1208 can include two drive wheels and two corresponding drive motors for the drive wheels. Furthermore, the lawn mower can include three lawn mower blades and three lawn mower blade motors for each of the lawn mower blades. Thecontroller module 100 can receive, via one of its controllers, user input for driving the ZTR lawnmower 1208 and/or operating the lawn mower blades. - The controller receiving the user input can be configured to operate one or both of the drive motors of the ZTR lawnmower 1208 based on the user input. In some embodiments, the controller communicates the user input and/or another drive command (e.g., motor speed) to another controller of the
controller module 100 and that controller can control the other drive motor of the ZTR lawnmower 1208. Furthermore, the controller that receives the user input can further communicate to controllers of thecontroller module 1024. The controller of thecontroller module 100 can communicate (via the bus 1018) a command (e.g., a motor speed, an indication of a user input) to control the blade motors of the ZTR lawnmower 1208. - Referring generally to
FIGS. 12-13 , the steps of aprocess 1400 for operating the outdoor power equipment 1000 (e.g., the ZTR lawnmower 1206 and/or the ZTR lawnmower 1208) are shown. These steps are further described with reference toFIG. 14 . - Referring now to
FIG. 14 , theprocess 1400 is shown for operating theoutdoor power equipment 1000 with multiple controller modules, according to an exemplary embodiment. Thecontroller module 100, thecontroller module 1024, the controllers 304-308, the controllers 1032-1036, and/or any other computing device or component as described herein can be configured to perform theprocess 1400. - In
step 1402, a first controller of a first controller module can receive a user input for operating outdoor power equipment. The first controller may be thecontroller 308 and the outdoor power equipment may be theoutdoor power equipment 1000 as described with reference toFIG. 11 . The user input can be receive by thecontroller 308 via the user interface 1012. - In
step 1404, thecontroller 308 of thecontroller module 100 can determine a first motor control decision of a first drive motor of theoutdoor power equipment 1000 and a second motor control decision for a second drive motor of theoutdoor power equipment 1000. The first motor may be the motor 1006 and can be configured to drive a wheel of theoutdoor power equipment 1000 while the second motor may be the motor 1004 configured to drive a second drive wheel of theoutdoor power equipment 1000. The motor control decision can cause the motor to be operated forwards or backwards at varying speeds. The speeds may be proportional to, and/or based on, a user input amount. - In
step 1406, thecontroller 308 can operate the motor 1006 based on the first motor control decision and can communicate, via thebus 1018, the second motor control decision to a second controller. The second controller may be thecontroller 306. The second control decision may be a speed for the motor 1004 but may also be raw user input received from the user interface 1012. Thecontroller 306 can be configured to control the motor 1004 based on the received second motor control decision. In some embodiments, the second motor control decision is the user input received from the user interface 1012. In this regard, thecontroller 306 can determine the second motor control decision itself - In
step 1408, thecontroller 308 can generate one or more chore motor control decisions for one or more chore motors of theoutdoor power equipment 1000 based on the user input. The one or more chore motors may be the motors 1032-1036. The motor decision may be a speed to operate each of the motors 1032-1036. Instep 1410, thecontroller 308 can communicate the generated chore motor control decisions to the controllers 1026-1030 via thebus 1018. - In
step 1412, each of the controllers 1026-1030 can receive the generated chore motor control decision (or each can receive a specific generated chore motor control decision) via thebus 1018. Instep 1414, each of the controller 1026-1030 can operate the motors 1032-1036 based on the received generate chore motor control decision. For example, thecontroller 1026 can receive one chore motor control decision via thebus 1018 from thecontroller 308 and operate themotor 1032 based on the received chore motor control decision. Thecontroller 1028 can receive another chore motor control decision from thecontroller 308 via thebus 1018 and operate themotor 1034 based on the other chore motor control decision. - Referring now to
FIG. 15 , aspreader 1500 is shown for spreading particles (e.g., fertilizer, seed, salt, etc.). Thespreader 1500 can be the same as and/or similar to theoutdoor power equipment 1000. Thespreader 1500 is shown to include only one controller module, thecontroller module 100. Thecontroller module 100 includes controllers 304-308. Thecontroller 308 can be configured to operate one drive wheel of thespreader 1500, thecontroller 306 can operate the other drive wheel of thespreader 1500, and thecontroller 304 can operate the spreader that distributes the particles.FIG. 15 includes the steps of aprocess 1600 as described with reference toFIG. 16 . While theprocess 1600 can be performed by any piece of outdoor power equipment, theprocess 1600 can be performed for outdoor power equipment that includes two drive motors and one chore motor. In this regard, only one controller module is necessary to operate the outdoor power equipment. Another example of outdoor power equipment that may only require one controller module is a snow thrower (one auger, two drive wheels). - Referring now to
FIG. 16 , theprocess 1600 for operating theoutdoor power equipment 1000 with a single controller module is shown, according to an exemplary embodiment. Thecontroller module 100, thecontroller module 1024, the controllers 304-308, the controllers 1032-1036, and/or any other computing device or component as described herein can be configured to perform theprocess 1600. - In
step 1602, a first controller of a controller module can receive user input for operating outdoor power equipment. The first controller may be thecontroller 308, the controller module may be thecontroller module 100, and the outdoor power equipment maybe theoutdoor power equipment 1000. The user input may be received from the user interface 1012 and may be an indication to drive theoutdoor power equipment 1000 forward, turn left or right, and/or operate a chore motor (e.g., a spreader motor, a lawnmower blade motor, a snow thrower auger motor, etc.) at a particular speed. - In
step 1604, based on the user input, thecontroller 308 can generate a first drive motor control decision and a second drive motor control decision for a first drive motor and a second drive motor of theoutdoor power equipment 1000 based on the received user input of thestep 1602. The first drive motor may be the motor 1006 while the second drive motor may be the motor 1004. The drive motor control decisions may be decisions to spin drive motors of theoutdoor power equipment 1000 forward and/or backward at various speeds. - In
step 1606, thecontroller 308 can generate a chore motor control decision for a chore motor of theoutdoor power equipment 1000 based on the received user input of thestep 1602. The chore motor may be themotor 1002. Themotor 1002 may be configured to operate a lawn mower blade, a spreader, a snow thrower auger, etc. In some embodiments, the chore motor control decision is a decision to operate thechore motor 1002 at a particular speed and/or in a particular direction. - In
step 1608, thecontroller 308 can operate the first drive motor, the motor 1006, based on the first drive motor control decision. In step 1610, thecontroller 308 can communicate the second drive motor control decision to thecontroller 306 via thebus 1018. Furthermore, thecontroller 308 can communicate the chore motor control decision to thecontroller 304 via thebus 1018. - In
step 1612, thecontroller 306 can operate the drive motor 1004 to drive theoutdoor power equipment 1000 based on the first drive motor control decision communicated to thecontroller 306 via thebus 1018 by thecontroller 308. Instep 1614, thecontroller 304 can operate thechore motor 1002 based on the chore motor control decision communicated to thecontroller 304 via thebus 1018 by thecontroller 308. - Referring now to
FIG. 17 aprocess 1700 is shown for monitoring the status of a battery of theoutdoor power equipment 1000, according to an exemplary embodiment. Thecontroller module 100, thecontroller module 1024, the controllers 304-308, the controllers 1032-1036, and/or any other computing device or component as described herein can be configured to perform theprocess 1600. However, theprocess 1700 is described with reference to thecontroller 308. - In
step 1702, thecontroller 308 can receiver one or more battery metrics from thebattery management system 1022. The battery metrics can be discharge current, battery voltage, state of charge, etc. The battery metrics can be received via direct communication and/or via thebus 1018. - In step 1704, the
controller 308 can determine, based on the battery metrics whether the battery and/or motor are operating correctly. For example, thecontroller 308 can compare the battery metrics to various thresholds, e.g., max output currents, max temperatures, etc. In some embodiments, various alarm levels can be generated. For example, if the temperature is greater than a first predefined amount but less than a second predefined amount, the alarm level may be one. However, if the temperature is greater than the second predefined amount, the alarm level may be two. Furthermore, if one of the battery metrics received from thebattery management system 1022 is indicative of a battery fault, thecontroller 308 can generate an alarm. Based on the alarm, instep 1706, thecontroller 308 can operate theoutdoor power equipment 1000. For example, thecontroller 308 can turn off a motor (e.g., drive motor, chore motor, etc.) associated with the battery (or apply a brake) and/or can communicate to other controllers to stop using the battery, turn off partially (operate at low speeds), and/or turn off completely. - In
step 1708, based on the battery metrics, thecontroller 308 can generate a battery metric indication and cause a user device, e.g., the user interface 1012, to present the user with an indication of the battery metrics. In some embodiments, thecontroller 308 can generate a battery metric indication, e.g., runtime to empty, miles to empty, battery charge amount, etc. which can indicate to the user the current state of their battery. In some embodiments, thecontroller 308 can present the alarm generated in the step 1704 and present the user with an indication of the alarm to help the user perform trouble shooting of theoutdoor power equipment 1000. - Referring now to
FIG. 18 , aprocess 1800 is shown for reducing noise of theoutdoor power equipment 1000 caused by motors of theoutdoor power equipment 1000 operating, according to an exemplary embodiment. Thecontroller module 100, thecontroller module 1024, the controllers 304-308, the controllers 1032-1036, and/or any other computing device or component as described herein can be configured to perform theprocess 1600. However, theprocess 1800 is described with reference to thecontroller 308. - In
step 1802, thecontroller 308 can determine a first motor control decision for a first motor and a second motor control decision for a second motor such that the operating a first motor at the first motor control decision and the second motor at the second motor control decision causes noise cancellation. For example, if theoutdoor power equipment 1000 is a lawnmower that includes two lawnmower blades operated by two motors, the speeds and/or timing can be set by thecontroller 308 such that the noise produced by each of the lawnmower blades and/or motors cancels out. The first motor control decision and the second motor control decision can cause two sound waves to be generated such that one wave has an inverted phase (an antiphase) of the other wave, causing cancellation of the waves. In some embodiments, the first control decision and the second control decision are based on user input and/or a determined speed for the motors. For example, the user input and/or determined speed may indicate a speed that both of the motors should operate at. However, the first control decision and the second control decision may deviate from the indicated speed such that the motors operate close to the desired speed but with reduced noise. For example, if the motors could operate a predefined speed, the first control decision and the second control decision may be to operate one motor at the predefined speed and offset the second motor from the predefined speed by a particular amount. For example, the motors can be kept 100 RPM apart. In some embodiments, one of the controllers stores a lookup table of speed correspondences between two motors and/or offsets such that for a determination for a speed of one motor, a corresponding speed for a second motor for speed reduction can be retrieved from the lookup table by the controller. The selection of the motor speeds can be open loop and/or closed loop based on feedback sensors. - In some embodiments, the
controller 308 communicates with a feedback device, for example, an accelerometer, a microphone, etc. Based on the feedback from the feedback device, thecontroller 308 can be configured to perform a tuning cycle to identify the first motor control decision and the second motor control decision. For example, thecontroller 308 can run through multiple different settings to generate values for motor speeds and/or timing (e.g., based on hall effect sensors for the motors). In some embodiments, a user can interact with a button causing thecontroller 308 to perform the tuning cycle and identify the first motor control decision and the second motor control decision. This tuning process can account for changes to theoutdoor power equipment 1000 over time as the outdoor power equipment ages. In some embodiments, thecontroller 308 can identify the resonant frequencies of theoutdoor power equipment 1000 by performing a frequency sweep and identifying the resonant frequencies of theoutdoor power equipment 1000. These resonant frequencies can be utilized in performing noise reduction. - In
1804 and 1806, thesteps controller 308 can operate the first motor and the second motor based on the first motor control decision and the second motor control decision. In some embodiments, thecontroller 308 operates both motors directly, or only one of the motors. In some embodiments, thecontroller 308 does not directly operate either of the motors. Thecontroller 308 can communicate the first control decision and/or the second control decision to one or more other controller that via thebus 1018. Each controller can operate a motor (or motors) based on the first control decision and/or the second control decision. - In
step 1808, thecontroller 308 can receive feedback from the feedback device and update the first motor control decision and the second motor control decisions of thestep 1802. In this regard, a noise cancellation loop (e.g., a proportional integral derivative (PID) loop) can be implemented to continuously tune and reduce the noise caused by the two motors based on the feedback. - Referring now to
FIG. 19 , aprocess 1900 is shown for turning a ZTR machine, according to an exemplary embodiment. Thecontroller module 100, thecontroller module 1024, the controllers 304-308, the controllers 1032-1036, and/or any other computing device or component as described herein can be configured to perform theprocess 1600. However, theprocess 1900 is described with reference to thecontroller 308 and thecontroller 306. - In
step 1902, thecontroller 308 can receive a user input for a first drive motor of the ZTR machine and determine a first speed for the first drive motor of the ZTR. In step 1904, thecontroller 308 can determine whether the first user input of the first drive motor is greater than a first predefined amount. This can indicate whether or not the user is trying to cause the ZTR machine to make a sharp turn (a rotation). However, if the user is indicating that both drive motors should be driven at a speed greater than the first predefined amount, this would indicate that rather than turning, the user wants the ZTR machine to drive at a fast speed. Therefore, instep 1906, thecontroller 308 can determine whether a second user input of a second drive motor is less than a predefined amount. This indicates that the user wants the ZTR machine to spin. - In some embodiments, the user inputs can be compared to the first predefined amount and the second predefined amount based on a value assigned indicating drive motor direction. For example, if forward user inputs range from 0 to 100 and reverse user inputs range from 0 to −100, rather than comparing the user inputs to the first predefined amount and the second predefined amount, the absolute values of the user inputs can be compared to the first predefined amount and the second predefined amount. In this regard, if a user pushes forward on a right drive stick but not on a left drive stick, it can be identified that the user is attempting to rotate the ZTR machine to the left and the left wheel should spin backwards to aid in the spin. However, if the user pulls back on the right drive stick but not on the left drive stick, it can be identified that the user is attempting to rotate the ZTR machine to the right and the left wheel should spin forward to aid in the spin.
- In
step 1908, thecontroller 308 can operate a first drive motor of the ZTR machine in a first direction based on the first user input. Thecontroller 308 can operate the first drive motor at a particular speed and in a particular direction indicated by the first user input. - In step 1910, the
controller 308 can determine a second speed for the second drive motor and a second direction for the second drive motor in response to determining that the first user input is greater than the first predefined amount and the second user input is less than the second predefined amount. The second direction may be opposite the first direction of the first drive motor. This can cause the motors to work together to spin or turn the ZTR machine since the motors are operating in different directions. The second speed can be set to a predefined stored turning amount. The turning speed may be an ideal speed to operate the second drive motor at to cause the ZTR machine to turn and/or spin. In some embodiments, the speed is determined by thecontroller 308 to be proportional to the speed of the first drive motor. - In
step 1912, thecontroller 308 can communicate the second speed and the second direction to thecontroller 306 via thebus 1018. In response to receiving the second speed and the second direction, thecontroller 306 can control the second rive motor instep 1914. - Referring now to
FIG. 20 , aprocess 2000 for driving theoutdoor power equipment 1000 in a straight line when theoutdoor power equipment 1000 is driving on an incline is shown, according to an exemplary embodiment. Thecontroller module 100, thecontroller module 1024, the controllers 304-308, the controllers 1032-1036, and/or any other computing device or component as described herein can be configured to perform theprocess 1600. However, theprocess 2000 is described with reference to thecontroller 308. - In
step 2002, thecontroller 308 can receive a roll angle for theoutdoor power equipment 1000 from an angle sensing device. The roll angle may indicate how much theoutdoor power equipment 1000 is rolling, identifying whether theoutdoor power equipment 1000 is driving across the side of a hill. Instep 2004, thecontroller 308 can determine whether the roll angle is greater than a first predefined amount or less than a second predefined amount. By comparing the roll angle to two predefined amounts, thecontroller 308 can determine which direction theoutdoor power equipment 1000 is rolling, e.g., clockwise or counterclockwise. If theoutdoor power equipment 1000 is rolling clockwise, a right drive wheel can be operated at a speed greater than a left drive wheel to keep theoutdoor power equipment 1000 driving straight. If theoutdoor power equipment 1000 is rolling counterclockwise, the left wheel can be operated at a speed greater than the right wheel to keep theoutdoor power equipment 1000 driving straight. - Comparing the roll angle to determine whether the roll angle is greater than a first predefined mount and less than a second predefined amount assumes that the roll angle is either positive or negative (positive for one direction from an axis of reference and negative from a second direction from the axis of reference). Roll angles that are either positive or negative are illustrated for the
outdoor power equipment 1000 inFIGS. 21 and 22 . However, alternatively, the roll angle may be expressed only as a positive value and not a negative value. If the roll angle is only positive, the roll angle can be compared to determine whether the roll angle is greater than a first predefined amount but not the second predefined amount or greater than the first predefined amount and the second defined amount. This can indicate whether theoutdoor power equipment 1000 is rolling clockwise or counterclockwise. - In
step 2006, thecontroller 308 can communicate an indication that the roll angle is clockwise or counterclockwise (or greater than the first predefined amount or less than the second predefined amount) to thecontroller 306 via thebus 1018. Instep 2008, thecontroller 308 can operate the first drive motor at a first speed and the second drive motor can operate the second drive motor at a second speed such that the speeds are offset to keep theoutdoor power equipment 1000 driving in a straight line even though the outdoor power equipment is rotating clockwise or counterclockwise. - For example, if the it has been determined by the first controller that the
outdoor power equipment 1000 is rotated clockwise in an amount that requires correction, the first controller can operate the motor (left motor) in an amount based on a user input and the second controller can determine the second speed for the second motor (right motor) to be the first speed plus a predefined offset. The predefined offset may be based on the roll angle. This can enable theoutdoor power equipment 1000 to drive in a straight line even though it is rolled clockwise. In some embodiments, the first controller and the second controller only perform the roll correction if user inputs for the first drive motor and the second drive motor are within a predefined amount from each other, this may indicate that the user wishes to drive theoutdoor power equipment 1000 in a straight line. - In some embodiments, rather, or in addition to, the first controller operating the left motor at a first speed based on user input and the second controller operating the right motor to be the first speed plus a predefined offset, the first motor controller can operate the left motor to be an amount based on the user input minus a predefined offset. In this regard, rather than, or in addition to, the first controller communicating with the second controller (or the second controller receiving the roll information itself), the first controller can itself, slow down the left motor to perform roll correction. In some embodiments, the first controller slows down the left motor by a predefined amount and the second controller speeds up the right motor by another predefined amount to perform roll correction.
- In some embodiments, various amounts of roll may indicate that the
outdoor power equipment 1000 is being operated in a dangerous manner. For example, if theoutdoor power equipment 1000 is a lawnmower (or other outdoor equipment), it may be dangerous for theoutdoor power equipment 1000 to be riding on a sharp incline since there may be the chance that theoutdoor power equipment 1000 rolls or flips over and exposes the lawn mower blades. In this regard, the first controller and/or the second controller can determine whether theoutdoor power equipment 1000 is in danger by determining whether a roll angle is greater than a first predefined amount. In response to determining that the roll angle is greater than the first predefined amount, the first controller and/or the second controller can turn off lawn mower blade motors (or cause other controllers to turn off lawn mower blade motors). However, the first controller and/or the second controller may continue to operate (or allow other controllers to operate) the drive motors so that the operator of theoutdoor power equipment 1000 can correct the dangerous situation. - If the first controller and/or the second controller determine that the roll angle is greater than both the first predefined and a second predefined amount greater than the first predefined amount, this may indicate that the
outdoor power equipment 1000 is flipping or rolling, has flipped or rolled, or is very likely to flip or roll. In this regard, the motor controllers of theoutdoor power equipment 1000 can be configured to shut down all motors and/or apply braking devices. - Referring now to
FIG. 23 , aprocess 2300 is shown for operating a chore motor at a speed proportional to a drive speed for theoutdoor power equipment 1000, according to an exemplary embodiment. Thecontroller module 100, thecontroller module 1024, the controllers 304-308, the controllers 1032-1036, and/or any other computing device or component as described herein can be configured to perform theprocess 1600. However, theprocess 2300 is described with reference to thecontroller 308 and thecontroller 306. - In
step 2302, thecontroller 308 can receive one or more drive inputs for theoutdoor power equipment 1000 to drive theoutdoor power equipment 1000 at a particular speed. The drive inputs may indicate a user defined drive speed for a first drive wheel and a second drive wheel. Thecontroller 308 and/or multiple other controllers, can operate drive motors to drive theoutdoor power equipment 1000—based on the user defined drive speed. Instep 2304, thecontroller 308 can communicate the drive speed to thecontroller 306 via thebus 1018. - In
step 2306, thecontroller 306 can determine one or more chore motor speeds for a chore motor, the chore motor speeds being proportional to the drive speed. In this regard, the speed of a chore device, e.g., a lawnmower blade, a spreader, can be proportional to how fast theoutdoor power equipment 1000 is moving. By adjusting the speed of the chore device, energy can be saved. If theoutdoor power equipment 1000 is a lawnmower and the lawnmower is stationary or moving slowly, it is a waste of energy to operate the lawnmower blade at a high speed. However, if the lawnmower is moving quickly, the lawnmower blade may need to operate at the high speed to efficiently cut grass. In this regard, the speed of the chore motor can be based on the drive speed for theoutdoor power equipment 1000. In thestep 2308, thecontrollers 306 can operate one or more chore motors at the one or more chore motor speeds determined in thestep 2306. - The various control systems and circuits described herein (including in the related applications incorporated by reference) may be implemented as “non-programmable circuitry” that consists of analog or digital hard circuitry that does not utilize a microcontroller or software or as a controller, microcontroller, computer, or other programmable device. It is believed that embodiments in which the controls are implemented as non-programmable circuitry including discrete components may be less expensive than embodiments implemented with microcontrollers or using software. Such non-programmable circuitry embodiments do not include a microcontroller. The various control systems and circuits described herein (including in the related applications incorporated by reference) may be implanted as a component of a battery, as a component of a battery receiver or receiving port, as a component of the engine, as a component of a starter module separate from the engine, and/or as a component of the outdoor power equipment.
- The construction and arrangements of the starter system for an engine, as shown in the various exemplary embodiments, are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.) without materially departing from the novel teachings and advantages of the subject matter described herein. Some elements shown as integrally formed may be constructed of multiple parts or elements, the position of elements may be reversed or otherwise varied, and the nature or number of discrete elements or positions may be altered or varied. The order or sequence of any process, logical algorithm, or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes and omissions may also be made in the design, operating conditions and arrangement of the various exemplary embodiments without departing from the scope of the present invention.
Claims (20)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/888,813 US20220393621A1 (en) | 2018-07-16 | 2022-08-16 | Outdoor power equipment with distributed motor controllers |
| US18/243,998 US20240007026A1 (en) | 2018-07-16 | 2023-09-08 | Motor controller module |
| US19/025,514 US20250239951A1 (en) | 2018-07-16 | 2025-01-16 | Motor controller module |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201862698529P | 2018-07-16 | 2018-07-16 | |
| US16/512,303 US11437936B2 (en) | 2018-07-16 | 2019-07-15 | Outdoor power equipment with distributed motor controllers |
| US17/888,813 US20220393621A1 (en) | 2018-07-16 | 2022-08-16 | Outdoor power equipment with distributed motor controllers |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/512,303 Continuation US11437936B2 (en) | 2018-07-16 | 2019-07-15 | Outdoor power equipment with distributed motor controllers |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/243,998 Continuation US20240007026A1 (en) | 2018-07-16 | 2023-09-08 | Motor controller module |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20220393621A1 true US20220393621A1 (en) | 2022-12-08 |
Family
ID=69139687
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/512,303 Active US11437936B2 (en) | 2018-07-16 | 2019-07-15 | Outdoor power equipment with distributed motor controllers |
| US17/888,813 Abandoned US20220393621A1 (en) | 2018-07-16 | 2022-08-16 | Outdoor power equipment with distributed motor controllers |
| US18/243,998 Pending US20240007026A1 (en) | 2018-07-16 | 2023-09-08 | Motor controller module |
| US19/025,514 Pending US20250239951A1 (en) | 2018-07-16 | 2025-01-16 | Motor controller module |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/512,303 Active US11437936B2 (en) | 2018-07-16 | 2019-07-15 | Outdoor power equipment with distributed motor controllers |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/243,998 Pending US20240007026A1 (en) | 2018-07-16 | 2023-09-08 | Motor controller module |
| US19/025,514 Pending US20250239951A1 (en) | 2018-07-16 | 2025-01-16 | Motor controller module |
Country Status (1)
| Country | Link |
|---|---|
| US (4) | US11437936B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12041875B2 (en) * | 2020-10-23 | 2024-07-23 | Deere & Company | Flexible mower deck |
| US12477975B2 (en) | 2022-09-12 | 2025-11-25 | Honda Motor Co., Ltd. | Drive-by-wire system for vehicle, zero-turn-radius lawnmower including same, and drive-by-wire system for lawnmower |
| WO2024173652A1 (en) * | 2023-02-15 | 2024-08-22 | Husqvarna Ab | Dual operating lever lawn care vehicle with one hand operation capability |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160083073A1 (en) * | 2014-09-23 | 2016-03-24 | Amazon Technologies, Inc. | Vehicle noise control and communication |
| US20180338417A1 (en) * | 2017-05-24 | 2018-11-29 | Kubota Corporation | Grass Mower |
| US20200363796A1 (en) * | 2018-02-28 | 2020-11-19 | Honda Motor Co.,Ltd. | Control apparatus, work machine, and computer-readable storage medium |
Family Cites Families (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4137162A1 (en) | 1991-11-12 | 1993-05-13 | Wolf Dietrich Zinck | Battery-operated electric lawnmower using permanent D.C. motor - with battery simply electrically disconnected and removed for replacement without requiring any special tools |
| US5497604A (en) | 1994-02-03 | 1996-03-12 | The Toro Company | Supervisor switch for turf mower |
| US5809755A (en) | 1994-12-16 | 1998-09-22 | Wright Manufacturing, Inc. | Power mower with riding platform for supporting standing operator |
| US5502957A (en) | 1995-03-29 | 1996-04-02 | Robertson; Charles W. | Electric lawn mower with intelligent control |
| US6571542B1 (en) | 1999-03-25 | 2003-06-03 | Textron Inc. | Electric drive mower with interchangeable power sources |
| US6591593B1 (en) | 2000-10-23 | 2003-07-15 | Dennis Brandon | Electric riding lawn mower powered by an internal combustion engine and generator system |
| EP2186392B1 (en) | 2007-01-15 | 2011-10-26 | Kanzaki Kokyukoki Mfg. Co., Ltd. | Riding lawn mower |
| US20120159916A1 (en) * | 2007-01-15 | 2012-06-28 | Kanzaki Kokyukoki Manufacturing Co., Ltd. | Control sysytem for motor-driven lawnmower vehicle |
| US8207693B2 (en) * | 2007-09-11 | 2012-06-26 | Hydro-Gear Limited Partnership | Controller assemblies for electric drive utility vehicles |
| EP2197702B1 (en) * | 2007-09-11 | 2011-11-30 | Hydro-Gear Limited Partnership | Electric drive vehicle control system |
| CN101611675B (en) | 2009-07-13 | 2012-05-02 | 常州市乾乾工具有限公司 | Electric mower for independent movement |
| JP2011079510A (en) | 2009-09-10 | 2011-04-21 | Makita Corp | Electric vehicle |
| CN102686100B (en) | 2010-01-13 | 2016-03-30 | 株式会社Ihi | lawn mowing vehicle |
| EP2389797B1 (en) | 2010-05-27 | 2014-11-19 | Kanzaki Kokyukoki Mfg. Co., Ltd. | Electric lawn mower |
| JP5715855B2 (en) | 2011-03-09 | 2015-05-13 | 株式会社クボタ | Passenger work vehicle |
| US20120260617A1 (en) | 2011-04-18 | 2012-10-18 | Briggs & Stratton Corporation | Charging station for battery-powered lawn mower |
| WO2013009322A1 (en) | 2011-07-14 | 2013-01-17 | Husqvarna Ab | Riding lawn mower including distributed battery system |
| WO2013009325A1 (en) | 2011-07-14 | 2013-01-17 | Husqvarna Ab | Riding lawn mower including battery powered drive system |
| US9210839B2 (en) | 2011-07-14 | 2015-12-15 | Husqvarna Ab | Riding lawn mower including battery powered cutting system |
| US8620527B2 (en) | 2011-10-26 | 2013-12-31 | Acellerated Systems Inc. | Systems and methods for steering and calibration of vehicle steering controls for riding mowers and other vehicles |
| US8966870B2 (en) | 2011-10-26 | 2015-03-03 | Accelerated Systems Inc. | Methods of controlling a lawn mower having electric drive and blade motors |
| CA2853762C (en) | 2011-10-28 | 2018-03-06 | Husqvarna Ab | Indicator system for outdoor power equipment |
| US9380741B2 (en) | 2011-12-28 | 2016-07-05 | Husqvarna Ab | Yard maintenance vehicle route and orientation mapping system |
| WO2013100938A1 (en) | 2011-12-28 | 2013-07-04 | Husqvarna Consumer Outdoor Products N.A., Inc. | Lawn care vehicle with modular ride information system |
| EP2798126B1 (en) * | 2011-12-29 | 2019-08-07 | Clark Equipment Company | Electronic tag along |
| EP2639128B1 (en) | 2012-03-13 | 2023-09-06 | Kanzaki Kokyukoki Mfg. Co., Ltd. | Work vehicle |
| US20150214864A1 (en) * | 2014-01-30 | 2015-07-30 | Deere & Company | Control synchronization between multiple control units for resource load sharing |
| WO2016002081A1 (en) | 2014-07-04 | 2016-01-07 | マミヤ・オーピー株式会社 | Lawn mower |
| US10327392B2 (en) | 2014-11-05 | 2019-06-25 | Mean Green Products, LLC | Battery-powered debris blower |
| US10091936B2 (en) | 2014-12-02 | 2018-10-09 | Briggs & Stratton Corporation | Integrated transaxle standing mower operator platform |
| US10130037B2 (en) | 2014-12-31 | 2018-11-20 | Mean Green Products, LLC | Electric mower apparatus and method of use |
| US10058031B1 (en) * | 2015-02-28 | 2018-08-28 | Hydro-Gear Limited Partnership | Lawn tractor with electronic drive and control system |
| US9980434B1 (en) | 2015-02-28 | 2018-05-29 | Hydro-Gear Limited Partnership | Network for placing a plurality of lawnmower components in operative communication |
| US9840143B1 (en) | 2015-05-20 | 2017-12-12 | Hydro-Gear Limited Partnership | Cooling pump assembly and cooling system for utility vehicle |
| US10093169B1 (en) | 2015-07-09 | 2018-10-09 | Hydro-Gear Limited Partnership | Power and cooling system for utility vehicle |
| JP6509060B2 (en) | 2015-07-13 | 2019-05-08 | 株式会社クボタ | Mowing machine |
| FR3046024B1 (en) | 2015-12-23 | 2018-05-18 | Pellenc | ELECTRIC MOWER WITH AUTOMATIC BLADE RELEASE AND METHOD FOR CONTROLLING THE MOWER. |
| JP2017163871A (en) | 2016-03-15 | 2017-09-21 | 本田技研工業株式会社 | Lawn mower |
| NL2017019B1 (en) | 2016-06-21 | 2018-01-04 | Forage Co Bv | Mower |
| US10051786B2 (en) | 2016-07-13 | 2018-08-21 | Excel Industries, Inc. | Stand-on mower with winged deck |
| JP2018082682A (en) * | 2016-11-25 | 2018-05-31 | 本田技研工業株式会社 | Working machine |
| US10687464B2 (en) | 2017-01-12 | 2020-06-23 | Briggs & Stratton Corporation | Zero turn radius mower controls |
| CA3054160C (en) * | 2017-02-25 | 2022-05-03 | Pride Mobility Products Corporation | Mobility vehicle |
| US11197414B2 (en) | 2018-01-26 | 2021-12-14 | Briggs & Stratton, Llc | Systems and devices for autonomous lawn care |
| CN109463095A (en) * | 2018-11-26 | 2019-03-15 | 常州格力博有限公司 | Grass trimmer |
-
2019
- 2019-07-15 US US16/512,303 patent/US11437936B2/en active Active
-
2022
- 2022-08-16 US US17/888,813 patent/US20220393621A1/en not_active Abandoned
-
2023
- 2023-09-08 US US18/243,998 patent/US20240007026A1/en active Pending
-
2025
- 2025-01-16 US US19/025,514 patent/US20250239951A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160083073A1 (en) * | 2014-09-23 | 2016-03-24 | Amazon Technologies, Inc. | Vehicle noise control and communication |
| US20180338417A1 (en) * | 2017-05-24 | 2018-11-29 | Kubota Corporation | Grass Mower |
| US20200363796A1 (en) * | 2018-02-28 | 2020-11-19 | Honda Motor Co.,Ltd. | Control apparatus, work machine, and computer-readable storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240007026A1 (en) | 2024-01-04 |
| US20250239951A1 (en) | 2025-07-24 |
| US11437936B2 (en) | 2022-09-06 |
| US20200021210A1 (en) | 2020-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20250239951A1 (en) | Motor controller module | |
| US20250295062A1 (en) | Electric mower | |
| US9480201B2 (en) | Lawn mower | |
| US12145674B2 (en) | Electric outdoor ride-on power equipment | |
| US20190156595A1 (en) | Work Vehicle and Work Vehicle Management System | |
| US20130211646A1 (en) | Control apparatus of unmanned autonomous operating vehicle | |
| US8938331B2 (en) | Interface and monitoring system and method for a vehicle idling control system | |
| EP4475269A2 (en) | User-scalable power unit including removable battery packs | |
| US12491903B2 (en) | Autonomous machine navigation and charging | |
| US20200194745A1 (en) | Mobile power for outdoor power supply | |
| EP2778004A2 (en) | Control and operator interface for combine having hybrid drive | |
| CN221104138U (en) | Manned mower | |
| US20250031625A1 (en) | Manned mower | |
| CN221104140U (en) | Outdoor walking equipment | |
| US12344102B2 (en) | Vehicle voltage control | |
| CN221104137U (en) | Manned lawn mowers and outdoor walking equipment | |
| CN221104139U (en) | Manned lawn mowers and outdoor walking equipment | |
| CN120052165A (en) | Manned mower, manned mower control method and outdoor walking equipment | |
| CN121404020A (en) | Outdoor walking equipment | |
| CN121404215A (en) | Outdoor walking equipment | |
| CN120052164A (en) | Manned mower | |
| CN120052163A (en) | Manned mower and outdoor walking equipment | |
| CN121417748A (en) | Outdoor walking equipment and power tools | |
| WO2025227900A1 (en) | Multifunctional vehicle, garden operation vehicle and integrated controller assembly | |
| CA3223140A1 (en) | Lithium-ion battery material handling vehicle |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: BRIGGS & STRATTON CORPORATION, WISCONSIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHULENBERG, DAVID;SCHMALZ, JACOB;SIGNING DATES FROM 20190415 TO 20190416;REEL/FRAME:060824/0711 Owner name: BRIGGS & STRATTON, LLC, WISCONSIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BRIGGS & STRATTON CORPORATION;REEL/FRAME:061201/0309 Effective date: 20200921 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |