Skip to content

Digital Throttle

The throttle provides a proportional input to control the speed or torque of the motor. The Analog throttle interfaces function using a voltage on an interface pin (for example, TPOTC). The throttle can also be controlled digitally via CANBUS. This section describes digital control of the throttle; refer to Throttle for a more general discussion of throttle functions.

Digital Throttle

The Digital Throttle is also referred to as the Digital Pot. By default the Digital Throttle commands must be sent out every 50msec. There are several options in the Joystick Options register that control how the controller behaves when the commands start and stop The Digital throttle can be made to go to 0 when commands stop. There is also an option to stop the motor using quick stop. There is another option that forces the controller to go into Digital Throttle mode if it is not enabled when commands start. Only See Joystick Options for information on how to enable or disable quick stop after throttle commands cease to be sent. NOTE: Failband, Deadband, and Throttle Scale settings have no effect in this mode.

RAM Register 0x7A (Digital Throttle Pot)

Value Mode
0-255 This is the equivalent to 0-5V analog throttle range

The Value is an 8-bit number that equals the desired throttle setting. 0 is off and 1 or greater can start the motor moving. However, the motor may not shut off if used in mixed mode throttle control unless the manual throttle is set into the deadband region.


Set Digital throttle to 25% PWM:

Set RAM register 0x7A to 0x40     0x40 = 64 = 25% PWM    

Digital Control (Buttons Register)

Use the Digital Control command to control motor direction or to implement a quick stop as well as other remote control features.

RAM Register 0x7A (Digital Buttons)

NOTE: All bits are set to 1 by default. All features are active low.

Bit Mask Command Description
0x01 Digital Forward Run forward. Bit 1 must be set for this to work. NOTE: The throttle should be set to 0 before changing directions.
0x02 Digital Reverse Run in reverse. Bit 0 must be set for this to work. NOTE: The throttle should be set to 0 before changing directions.
0x04 Reserved Set to 1
0x08 Reserved Set to 1
0x10 Quick Stop Motor stops when set to zero. The stop diagnostic byte in RAM Register 0x12B will either indicate "Digital STOP" (0x03) or "Waiting for deadband" (0x0C). In either case the throttle(s) must be set to deadband or 0 to restart the motor. See Stop Diagnostics for more information on stop values.
0x20 Reverse Set to 0 to reverse the motor if the controller is in analog or mixed throttle mode. NOTE: This bit has no effect if the reverse pin is active. Use bits 0 and 1 if in full digital throttle mode.
0x40 Indoor/Outdoor Set to 0 for indoor mode. Set to 1 for outdoor mode.
0x80 Reserved Set to 1


Set motor to run reverse in indoor mode at 20% PWM:

Set EE register 0x57 to 0x07      Full digital control
Set RAM register 0x7B to 0xBD     Clear indoor/outdoor and digital reverse bits
Set RAM register 0x7A to 0x33     0x33 = 51 = 20% PWM      

Change direction slowly from reverse to 0 in 2 seconds. Forward to 50% PWM in 3 seconds:

Set RAM register 0x7A to 0x32     Decrement
Wait 40msec
Set RAM register 0x7A to 0x31     Note: Larger delays and bigger steps can be used   
Wait 40msec
Set RAM register 0x7A to 0x00
Set RAM register 0x7B to 0xBE     Clear indoor/outdoor and digital forward bits
Set RAM register 0x7A to 0x01     0x80 = 128 = 50% PWM
Wait 23msec
Set RAM register 0x7A to 0x02     
Wait 23msec
Set RAM register 0x7A to 0x80     0x80 = 128 = 50% PWM   

NOTE 1: If using CANBUS, the commands above can be done in using combined commands. See CANBUS Control Library

NOTE 2: Forward and Reverse acceleration and deceleration can also be controlled automatically using the indoor/outdoor EEPROM registers 0x36 - 0x41. See Performance Settings for more information.