With the Silent Stepper Brick one bipolar stepper motor with a maximum current of 1.6A and a maximum voltage of 46V per phase can be controlled over USB. With the provided API for many programming languages you can control the direction, velocity and acceleration of the connected motor. Step modes of the motor can be chosen between full-step and 1/256-steps.
Two Bricklet ports can be used to extend the features of this Brick. It can also be used together with other Bricks in a stack. For example an additional Master Brick with Master Extension allows to replace the USB connection by other cable based (RS485, Ethernet) or wireless (WIFI) connections.
The stepper motor can be powered by an external power supply connected directly to the Brick (black connector) or by the stack internal power supply. If an external power supply is connected the Brick automatically switches to this power supply.
It is possible to run the Silent Stepper Brick in a variety of different modes. The stepper motor can be driven completely noiseless (Stealth Mode), with smart energy optimizations (Coolstep Mode) or with maximized torque (Classic mode). The Silent Stepper Brick can be configured to switch between these modes automatically dependent on motor velocity.
The Silent Stepper Brick currently still uses 10-pole Bricklet connectors. You need 10p-7p Bricklet cables to connect Bricklets to it.
A comparison video between Stepper Brick and Silent Stepper Brick is available on Youtube:
Property | Value |
---|---|
Maximum Motor Current per Phase | 1.6A |
Minimum/Maximum Input Voltage | 8V/46V |
Step Resolution | 1, 1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256 |
Maximum Velocity | 0 to 65535, configurable as limit, in steps/s |
Maximum Acceleration | 0 to 65535, configurable as limit, in steps/s² |
Bricklet Ports | 2 |
Dimensions (W x D x H) | 40 x 40 x 17mm (1.57 x 1.57 x 0.67") |
Weight | 19g |
Current Consumption | 59mA |
The following picture depicts the different connection possibilities of the Stepper Brick.
To test a Silent Stepper Brick you need to have Brick Daemon and Brick Viewer installed. Brick Daemon acts as a proxy between the USB interface of the Bricks and the API bindings. Brick Viewer connects to Brick Daemon. It helps to figure out basic information about the connected Bricks and Bricklets and allows to test them.
Connect a stepper motor to the Brick and a suitable power supply (see here). Your setup should look like below.
Now connect the Brick to the PC over USB, you should see a new tab named "Silent Stepper Brick" in the Brick Viewer after a moment. Select this tab.
In the left part of the GUI you can enable the driver and control the velocity, acceleration and deceleration of the stepper. Below there are three buttons that control the direction of the stepper and stop it. For example if you press "Forward", the stepper will increase its speed to "Max Velocity" with the given acceleration. If you press "Stop" it will decrease its speed to "0" with the given deceleration.
Below you can set the stepping modes (full- to 1/256-step) and trigger a "Full Brake", which stops the motor immediately.
You can drive to a specific position (measured in steps) by entering it at "Drive To" an press "Go". Also you can drive a specific number of steps. By using these controls the motor will accelerate until reaching the maximum velocity and decelerate before reaching the specified position.
On the right side the current position and remaining steps are shown as well as the stack voltage and the voltage of the external power-connector (black). Below is a graphical representation of the velocity of the stepper. Beneath you can configure the minimum input voltage, which allows for undervoltage signals if the voltage is too low. In the bottom right the motor current can be configured according to the connected motor.
At the very bottom all of the Basic, Stealth, Coolstep, Spreadcycle and Misc configurations can be set. The last tab shows the current status of the driver.
After this test you can go on with writing your own application. See the Programming Interface section for the API of the Silent Stepper Brick and examples in different programming languages.
The connected stepper motor can be powered through the black on-board power-connector or through a Power Supply in the stack. The Brick switches automatically to the on-board power-connector when a voltage is measured there and no external voltage is detected on the power-connector. The black power connector is always prioritized.
The red LED is enabled if the input voltage is below the user configurable minimum voltage.
In most applications you can keep all of the settings as default and only configure the basic configuration:
In stealth mode the stepper motor is driven quietly and with little vibrations. The mode is usable for low and medium velocities.
In Coolstep mode the stepper motor is driven with smart energy optimizations. In applications with varying loads, the power consumption is automatically reduced during low load times. This means that less heat is generated and less cooling is necessary.
In Classic mode Stealth and Coolstep are disabled. The stepper motor is driven without any of the advanced features, but in return the torque is maximized.
Spreadcycle is a cycle-by-cycle current control. It has a fast reaction time to changes in velocity and motor load. It can be used together with Coolstep mode.
Stallguard can be used to measure motor load and for stall detection. In Coolstep mode the measurement is used internally to adjust the motor current to the load.
The used TMC2130 is a powerful stepper motor driver. Unfortunately this comes with lots of modes, features and configuration possibilities. In our experience, you can leave all of the configurations but the Basic Configurations (first tab in Brick Viewer) as default. We did choose sane default values for all of the configurations.
If you want to understand all of the features in detail and the description in this documentation is not enough, you can take a look at the TMC2130 datasheet.
For convenience, we provide a table that shows which API function parameters changes what TMC2130 register.
Function | Parameter | Register Name @Address[bits] | Note |
---|---|---|---|
SetBasicConfiguration | Standstill Current | ihold @0x10[4..0] | Value is converted to 0-31 |
Motor Run Current | irun @0x10[12..8] | Value is converted to 0-31 | |
Standstill Delay Time | iholddelay @0x10[19..16] | Value is converted to 2^18 clock cycles | |
Power Down Time | tpowerdown @0x11 | Value is converted to 2^18 clock cycles | |
Stealth Threshold | tpwmthrs @0x13 | Value is converted to time between two steps | |
Coolstep Threshold | tcoolthrs @0x14 | Value is converted to time between two steps | |
Classic Threshold | thigh @0x15 | Value is converted to time between two steps | |
High Velocity Chopper Mode | vhighchm @0x6C[19] | ||
SetSpreadcycleConfiguration | Slow Decay Duration | toff @0x6C[3..0] | |
Enable Random Slow Decay | rndtf @0x6C[13] | ||
Fast Decay Duration | fd3/hstrt @0x6C[11/6..4] | Used if chm=1, otherwise ignored | |
Hysteresis Start Value | hstrt @0x6C[6..4] | Used if chm=0, otherwise ignored | |
Hysteresis End Value | hend @0x6C[10..7] | Used if chm=0, otherwise ignored | |
Sinewave Offset | hend @0x6C[10..7] | Used if chm=1, otherwise ignored | |
Chopper Mode | chm @0x6C[14] | ||
Comperator Blank Time | tbl @0x6C[16..15] | ||
Fast Decay Without Comparator | disfdcc @0x6C[12] | ||
SetStealthConfiguration | Enable Stealth | en_pwm_mode @0x00[2] | |
Amplitude | pwm_ampl @0x70[7..0] | ||
Gradient | pwm_grad @0x70[15..8] | ||
Enable Autoscale | pwm_autoscale @0x70[18] | ||
Force Symmetric | pwm_symmetric @0x70[19] | ||
Freewheel Mode | freewheel @0x70[21..20] | ||
SetCoolstepConfiguration | Minimum Stallguard Value | semin @0x6D[3..0] | |
Maximum Stallguard Value | semax @0x6D[11..8] | ||
Current Up Step Width | seup @0x6D[7..4] | ||
Current Down Step Width | sedn @0x6D[14..13] | ||
Minimum Current | seimin @0x6D[15] | ||
Stallguard Threshold Value | sgt @0x6D[22..16] | ||
Stallguard Mode | sfilt 0x6D@[24] | ||
SetMiscConfiguration | Disable Short To Ground Protection | diss2g @0x6C[30] | |
Synchronize Phase Frequency | sync @0x6C[23..20] |
See Programming Interface for a detailed description.
Language | API | Examples | Installation |
---|---|---|---|
C/C++ | API | Examples | Installation |
C# | API | Examples | Installation |
Delphi/Lazarus | API | Examples | Installation |
Go | API | Examples | Installation |
Java | API | Examples | Installation |
JavaScript | API | Examples | Installation |
LabVIEW | API | Examples | Installation |
Mathematica | API | Examples | Installation |
MATLAB/Octave | API | Examples | Installation |
MQTT | API | Examples | Installation |
openHAB | API | Examples | Installation |
Perl | API | Examples | Installation |
PHP | API | Examples | Installation |
Python | API | Examples | Installation |
Ruby | API | Examples | Installation |
Rust | API | Examples | Installation |
Shell | API | Examples | Installation |
Visual Basic .NET | API | Examples | Installation |
TCP/IP | API | ||
Modbus | API |