siliSpin
is an intuitive, control-only frontend GUI dedicated to sending commands to an ESCx controller.
How to run
This plugin is distributed within the standard SWTools package.
- Open emGUI
- Click on siliSpinESCx (top right corner)
- Alternatively, navigate to the SWTools installation, open 'plugins' folder and double-click on the plugin file. In this case, emGUI window will be kept hidden.
This plugin doesn't display any actual states. To monitor states, please combine with siliWatch.
Make sure that the addressing options have been correctly set, comlink can be established, and you have the access to your device.
- This tool actively controls the drive command. Do not use it unless you are sure that the spinning motor will not cause any harm or injury.
- Do not use this tool together with driver command over CAN API.

How to use
-
The top menu allows selecting which discovered device to bind to. You need to select a device first. The menu also shows a shortcut to the emGUI, and you may select between dark and light themes.
-
In the middle part, there are 10 preset command sliders, each of which can be controlled independently. Also, you can select the control mode for each. To send the desired command, just click on run.
-
Commands in the right section, there are these buttons:
- Stop - puts the motor into the freewheeling mode.
- Run - starts the motor with defined command and mode.
- Release/reinit - releases the override and gives control back to the on-board application. If the driver is in an error state, it will attempt to re-initialize.
- Follow changes - if checked, with each change of yours, the motor will react immediately.
-
Preset sequencing (web siliSpin, standalone or inside siliDash) - give a preset a Duration in seconds and it becomes a step of a sequence. Run on such a preset then plays the sequence: it holds the preset for its duration, moves on to the next preset, and ends at the first preset without a duration - that preset is run like a plain Run and stays in force. Nothing is stopped implicitly: to end with the motor stopped, make that last preset a freewheel one (mode 0). Consecutive presets with a duration therefore form one sequence, and a preset without one ends it. When every preset has a duration there is nothing to end on, so the sequence wraps from the last preset to the first and loops until you press Stop. Run on a preset without a duration sends that single command as before. A preset with a duration can also be a Ramp to next preset: instead of holding its values it slides its level and the three multipliers linearly into the next preset's values over its duration (its own mode and flags stay), re-sending the interpolated command every 50 ms - a smooth transition between two steps. The list marks it with ⇄ after the duration. Each preset can carry a short Label, shown in the list next to the level. The list itself is editable: drag a preset to reorder it, ✕ at the end of the selected row removes it, and + Add at the end of the list appends a copy of the last preset (not while a sequence plays). Clear removes all presets but one fresh one. Stop, Release/reinit, selecting another device, leaving the page or hiding the browser tab all end a sequence with a stop — browsers slow down timers in hidden tabs, so a step could otherwise overrun. Presets stay editable while a sequence plays, and Follow changes is paused until it ends.