Table of Contents

Class Device

Namespace
Harp.StepperDriver
Assembly
Harp.StepperDriver.dll

Represents an observable source of messages from the Harp device connected at the specified serial port.

StepperDriver
whoAmI1130
firmwareVersion0.3
hardwareTargets1.0

Registers

name address type length access description range interfaceType
EnableDriver 32 U8 Write Enables the driver for a specific motor. If the driver is already enabled, the driver remains enabled. StepperMotors
DisableDriver 33 U8 Write Disables the driver for a specific stepper motor, which prevents current from being sent to the motor or load. If the driver is already disabled, the driver remains disabled. StepperMotors
EnableEncoders 34 U8 Write Specifies a set of port quadrature counters to enable in the device. QuadratureEncoders
DisableEncoders 35 U8 Write Specifies a set of port quadrature counters to disable in the device. QuadratureEncoders
EnableDigitalInputs 36 U8 Write Specifies a set of digital inputs to enable in the device. DigitalInputs
DisableDigitalInputs 37 U8 Write Specifies a set of digital inputs to disable in the device. DigitalInputs
Motor0OperationMode 38 U8 Write Configures the operation mode for motor 0. MotorOperationMode
Motor1OperationMode 39 U8 Write Configures the operation mode for motor 1. MotorOperationMode
Motor2OperationMode 40 U8 Write Configures the operation mode for motor 2. MotorOperationMode
Motor3OperationMode 41 U8 Write Configures the operation mode for motor 3. MotorOperationMode
Motor0MicrostepResolution 42 U8 Write Configures the microstep resolution for motor 0. MicrostepResolution
Motor1MicrostepResolution 43 U8 Write Configures the microstep resolution for motor 1. MicrostepResolution
Motor2MicrostepResolution 44 U8 Write Configures the microstep resolution for motor 2. MicrostepResolution
Motor3MicrostepResolution 45 U8 Write Configures the microstep resolution for motor 3. MicrostepResolution
Motor0MaximumRunCurrent 46 Float Write Configures the maximum run RMS current per phase for motor 0. 0.2 [0.139:2.1]
Motor1MaximumRunCurrent 47 Float Write Configures the maximum run RMS current per phase for motor 1. 0.2 [0.139:2.1]
Motor2MaximumRunCurrent 48 Float Write Configures the maximum run RMS current per phase for motor 2. 0.2 [0.139:2.1]
Motor3MaximumRunCurrent 49 Float Write Configures the maximum run RMS current per phase for motor 3. 0.2 [0.139:2.1]
Motor0HoldCurrentReduction 50 U8 Write Configures the hold current reduction for motor 0. HoldCurrentReduction
Motor1HoldCurrentReduction 51 U8 Write Configures the hold current reduction for motor 1. HoldCurrentReduction
Motor2HoldCurrentReduction 52 U8 Write Configures the hold current reduction for motor 2. HoldCurrentReduction
Motor3HoldCurrentReduction 53 U8 Write Configures the hold current reduction for motor 3. HoldCurrentReduction
Motor0StepInterval 54 U16 Write Configures the time between step motor pulses (us) when running at nominal speed for motor 0. 250 [100:20000]
Motor1StepInterval 55 U16 Write Configures the time between step motor pulses (us) when running at nominal speed for motor 1. 250 [100:20000]
Motor2StepInterval 56 U16 Write Configures the time between step motor pulses (us) when running at nominal speed for motor 2. 250 [100:20000]
Motor3StepInterval 57 U16 Write Configures the time between step motor pulses (us) when running at nominal speed for motor 3. 250 [100:20000]
Motor0MaximumStepInterval 58 U16 Write Configures the time between step motor pulses (us) used when starting or stopping a movement for motor 0. 2000 [100:20000]
Motor1MaximumStepInterval 59 U16 Write Configures the time between step motor pulses (us) used when starting or stopping a movement for motor 1. 2000 [100:20000]
Motor2MaximumStepInterval 60 U16 Write Configures the time between step motor pulses (us) used when starting or stopping a movement for motor 2. 2000 [100:20000]
Motor3MaximumStepInterval 61 U16 Write Configures the time between step motor pulses (us) used when starting or stopping a movement for motor 3. 2000 [100:20000]
Motor0StepAccelerationInterval 62 U16 Write Configures the acceleration for motor 0. The time between step pulses is decreased by this value when accelerating and increased when decelerating. 10 [2:2000]
Motor1StepAccelerationInterval 63 U16 Write Configures the acceleration for motor 1. The time between step pulses is decreased by this value when accelerating and increased when decelerating. 10 [2:2000]
Motor2StepAccelerationInterval 64 U16 Write Configures the acceleration for motor 2. The time between step pulses is decreased by this value when accelerating and increased when decelerating. 10 [2:2000]
Motor3StepAccelerationInterval 65 U16 Write Configures the acceleration for motor 3. The time between step pulses is decreased by this value when accelerating and increased when decelerating. 10 [2:2000]
EncoderMode 66 U8 Write Configures the operation mode of the quadrature encoder. EncoderModeConfig
EncoderSamplingRate 67 U8 Write Configures the sampling rate of the quadrature encoder event. EncoderSamplingRateConfig
Input0OpMode 68 U8 Write Configures the operation mode for digital input 0. InputOpModeConfig
Input1OpMode 69 U8 Write Configures the operation mode for digital input 1. InputOpModeConfig
Input2OpMode 70 U8 Write Configures the operation mode for digital input 2. InputOpModeConfig
Input3OpMode 71 U8 Write Configures the operation mode for digital input 3. InputOpModeConfig
InterlockEnabled 72 U8 Write Configures the external interlock connector state required for the device to be enabled. InterlockEnabledConfig
AccumulatedStepsSamplingRate 73 U8 Write Configures the dispatch rate of the accumulated steps event. AccumulatedStepsSamplingRateConfig
MotorStopped 74 U8 Event Emitted when any of the motors stops. MotorStoppedPayload
MotorOverVoltageDetection 75 U8 Event Contains a bit mask specifying the motor where the over voltage detection and protection mechanism occurred, which can happen when the there's a quick deceleration from a high velocity or when the motor stalls (not implemented). StepperMotors
MotorRaisedError 76 U8 Event Contains a bit mask specifying the motor that triggered the error which can be happen in case of short-circuit or driver temperature above 165 degrees celsius. StepperMotors
Encoders 77 S16 3 Event, Write Contains the quadrature encoder readings. EncodersPayload
DigitalInputState 78 U8 Event Reflects the state of the digital input lines. DigitalInputStates
DeviceState 79 U8 Event Contains the state of the device. DeviceStateMode
MoveRelative 80 S32 4 Write Moves all motors by the number of steps written in this array register and set the direction according to the value's signal. If a motor is disable, the user should set the value to 0. MoveRelativePayload
Motor0MoveRelative 81 S32 Write Moves motor 0 by the number of steps written in this register and set the direction according to the value's signal.
Motor1MoveRelative 82 S32 Write Moves motor 1 by the number of steps written in this register and set the direction according to the value's signal.
Motor2MoveRelative 83 S32 Write Moves motor 2 by the number of steps written in this register and set the direction according to the value's signal.
Motor3MoveRelative 84 S32 Write Moves motor 3 by the number of steps written in this register and set the direction according to the value's signal.
MoveAbsolute 85 S32 4 Write Moves all motors to the absolute position written in this array register. If a motor is disable, the user should set the value to 0. MoveAbsolutePayload
Motor0MoveAbsolute 86 S32 Write Moves motor 0 to the absolute position written in this register.
Motor1MoveAbsolute 87 S32 Write Moves motor 1 to the absolute position written in this register.
Motor2MoveAbsolute 88 S32 Write Moves motor 2 to the absolute position written in this register.
Motor3MoveAbsolute 89 S32 Write Moves motor 3 to the absolute position written in this register.
AccumulatedSteps 90 S32 4 Event, Write Contains the accumulated steps of all motors. Write a value to set the accumulated steps. An event will be emitted with a dispatch rate defined in AccumulatedStepsSamplingRate. AccumulatedStepsPayload
Mortor0AccumulatedSteps 91 S32 Write Contains the accumulated number of steps of motor 0. Write a value to set the current number of accumulated steps.
Mortor1AccumulatedSteps 92 S32 Write Contains the accumulated number of steps of motor 1. Write a value to set the current number of accumulated steps.
Mortor2AccumulatedSteps 93 S32 Write Contains the accumulated number of steps of motor 2. Write a value to set the current number of accumulated steps.
Mortor3AccumulatedSteps 94 S32 Write Contains the accumulated number of steps of motor 3. Write a value to set the current number of accumulated steps.
MaxPosition 95 S32 4 Write Defines the limit of the accumulated steps for the positive movement of all motors. The device will not let the motors move further than this value. A value equal to 0 will disable the limits. MaxPositionPayload
Motor0MaxPosition 96 S32 Write Specifies the limit of the accumulated steps for the positive movement of motor 0. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
Motor1MaxPosition 97 S32 Write Specifies the limit of the accumulated steps for the positive movement of motor 1. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
Motor2MaxPosition 98 S32 Write Specifies the limit of the accumulated steps for the positive movement of motor 2. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
Motor3MaxPosition 99 S32 Write Specifies the limit of the accumulated steps for the positive movement of motor 3. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
MinPosition 100 S32 4 Write Defines the limit of the accumulated steps for the negative movement of all motors. The device will not let the motors move further than this value. A value equal to 0 will disable the limits. MinPositionPayload
Motor0MinPosition 101 S32 Write Specifies the limit of the accumulated steps for the negative movement of motor 0. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
Motor1MinPosition 102 S32 Write Specifies the limit of the accumulated steps for the negative movement of motor 1. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
Motor2MinPosition 103 S32 Write Specifies the limit of the accumulated steps for the negative movement of motor 2. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
Motor3MinPosition 104 S32 Write Specifies the limit of the accumulated steps for the negative movement of motor 3. The device will not let the motor move further than this value. A value equal to 0 disables the feature.
StepRelative 105 S32 4 Write Starts the movement of all motors with the step interval defined by this array. The value's signal defines the direction. StepRelativePayload
Motor0StepRelative 106 S32 Write Starts the movement of motor 0 with the step interval defined by this register, disregarding the acceleration protocol. The sign of the value specifies the direction.
Motor1StepRelative 107 S32 Write Starts the movement of motor 1 with the step interval defined by this register, disregarding the acceleration protocol. The sign of the value specifies the direction.
Motor2StepRelative 108 S32 Write Starts the movement of motor 2 with the step interval defined by this register, disregarding the acceleration protocol. The sign of the value specifies the direction.
Motor3StepRelative 109 S32 Write Starts the movement of motor 3 with the step interval defined by this register, disregarding the acceleration protocol. The sign of the value specifies the direction.
StopMotors 110 U8 Write Stops the motors selected in the bit-mask immediately. StepperMotors
ResetEncoders 112 U8 Write Resets the encoder. QuadratureEncoders
[Combinator(MethodName = "Generate")]
[WorkflowElementCategory(ElementCategory.Source)]
public class Device : Device, INamedElement
Inheritance
Device
Implements
Inherited Members

Constructors

Device()

Initializes a new instance of the Device class.

public Device()

Fields

WhoAmI

Represents the unique identity class of the Harp.StepperDriver device. This field is constant.

public const int WhoAmI = 1130

Field Value

int

Properties

RegisterMap

Gets a read-only mapping from address to register type.

public static IReadOnlyDictionary<int, Type> RegisterMap { get; }

Property Value

IReadOnlyDictionary<int, Type>

Methods

CreateAsync(string)

Initializes a new instance of the asynchronous API to configure and interface with StepperDriver devices on the specified serial port.

public static Task<AsyncDevice> CreateAsync(string portName)

Parameters

portName string

The name of the serial port used to communicate with the Harp device.

Returns

Task<AsyncDevice>

A task that represents the asynchronous initialization operation. The value of the Result parameter contains a new instance of the AsyncDevice class.