S-Lab
Salient Motion's software development tool
S-Lab is Salient Motion's premiere software design and test tool. Packed with a rich feature set for debugging and analysis, S-Lab is your one-stop-shop for all things motor control. Access S-Lab at https://app.salientmotion.com/.
Initial Setup
The motor controller does not accept power over USB. The device must be powered through the main power rails.
Dust Devil and Cyclone have an undervoltage lockouts. Ensure the supplied power exceeds their minimum operating voltage.
When the motor controller is first powered up and plugged in, hit the "pair" button. Once paired, you will see the following:
Linux
They Connect button may be greyed out in Linux (but not Windows) because, by default, Linux does not grant user space access to the HID interface exposed by our device.
Using the udev
rules attached below, copy the contents of the linux
folder to /etc/udev/rules.d/
as root and run the following two commands. A reboot may be necessary.
Replace /dev/hiddraw6
with the enumerated HID device file created when the Salient Motion motor controller is attached to the computer.
sudo chown $USER:$USER /dev/hidraw6
sudo udevadm control --reload-rules && sudo udevadm trigger
Creating a Configuration
Once you are paired, you will have to create a new motor configuration. A motor configuration defines the profile and settings for your motor so even if you switch motors or controllers, you can easily reapply the desired configuration.
Step 1 - Motor Details
Once you hit "New", you will be directed to the configuration page. From here, fill out the information on your motor details.
Step 2 - Throttle Settings
Next, you will be asked to program your throttle settings.
Input Mode:
You can choose between:
CAN: Use CAN bus messaging to send the motor controller throttle messages.
Servo: Use PWM to control the commanded setpoint.
USB: Use the throttle built into S-Lab to send throttle messages.
We recommend when first configuring a motor to set the Input Mode to "USB". This is the fastest and most reliable way to test your motor. You may change the Input Mode at any time.
Max Throttle Speed (rpm):
Set the maximum speed the motor will spin at when the throttle is positioned fully forward (or reverse), or the setpoint command is sent to the upper limit.
Pole Pair Count:
Provide the number of pole pairs (# of poles / 2) for your motor.
If you do not know your pole pair count, set the value to 1. Note, this will mean that your telemetry will be reported as electrical radians per second (erad) rather than rotations per minute (rpm).
Control Mode:
Salient Motion controllers currently support speed and torque control modes. Speed control mode will spin the motor up to the configured throttle limitation while torque control will maintain constant torque.
Default speed control gain values are set at 0.03 proportional and 0.3 integral gain. Decrease the integral gain to decrease overshoot. Increase the proportional gain for higher responsiveness.
Input Mapping:
The input mapping allows you to choose the bounds of commands that spin the motor. It is common to set the "Lower" to 1000, "Center" to 1500 and "Upper" to 2000. This means that any command between the lower and center limits will have the motor spin in the reverse direction, while any command from the center to the upper limit will spin the motor in the forward direction.
Step 3 - Parameter Detection
Next, you will be guided to run parameter detection. Parameter detection performs four measurements in the following sequence which are used for motor control:
Stator Resistance
Stator d-axis Inductance (high pitch noise is emitted)
Stator q-axis Inductance (high pitch noise is emitted)
Permanent Magnet Flux Linkage (motor spins)
For best performance, it is highly recommended that you run Parameter Detection with your motor unloaded.
If a high pitch noise is emitted but the motor does not spin or stalls, verify and increase the Max Motor Current value.
Contact us at info@salientmotion.com if:
No high pitch noise is audible.
Motor does not spin or continues to stall.
Your browser crashes or refreshes.
The controller restarts, indicated by all board LEDs illuminating.
Manual parameter estimation via an LCR meter and oscilloscope may be required depending on the motor characteristics.
WARNING: When Parameter Detection is run, it will spin your motor. Ensure you have a setup that will allow for the motor to safely spin and unloaded.
Step 4 - Hardware Limits
The hardware limits on the controller allow you to set safety bounds on operation. These numbers are set to protect the motor, motor controller and connected battery.
Motor Current Limits: The maximum allowable current limit for each product is highlighted below:
Dust Devil: 30 A (RMS)
Cyclone: 150 A (RMS)
The configuration menu will allow the user to set their own limits below each product's specified current limit, this is particularly useful when operating in voltage or torque modes.
The overtemperature set point will determine the temperature at which the controller will start to throttle the motor current. Once the overtemperature condition is active, the controller with throttle the motor current linearly to zero until the overtemperature condition is lifted.
Step 5 - Sensor Configuration
Salient Motion motor controllers offer two sensor modes:
Sensored: Encoder
Sensorless: Open-Loop Start Up
The encoder sensor mode requires the use of an external quadrature incremental encoder. For quick startup, use Open-Loop Startup mode.
When configuring the encoder settings, please provide the attached encoder's CPR, counts-per-revolution. This is not the same as pulses-per-revolution, PPR, or lines-per-revolution, LPR, for a quadrature incremental encoder.
The open-loop start-up mode accelerates the motor without any position information until the back-EMF signal response is strong enough to switch over to a sensorless closed-loop control solution.
If the motor does not spin during Open-Loop startup, try gradually increasing the Motor Current Limit until there is motion.
If the motor stalls during Open-Loop startup, decrease the Open-Loop Startup Acceleration to prevent the motor from losing synchronization.
If the motor does not transition to the sensorless closed-loop control solution (manifested by a sawtooth ceiling on the speed graph), increase the Open-Loop Startup Acceleration.
If problems persist, contact us at info@salientmotion.com.
Using the Dashboard
Once you have created and saved a motor configuration, please click the Apply
button to proceed to the dashboard.
Last updated