Servosila Brushless Motor Controllers
Servosila SC-25R Brushless Motor Controller
Servosila SC-25C Brushless Motor Controller
Download CAD files: CAD SC-25R, CAD SC-25C
SERVOSILA SC-25 Brushless Motor Controllers are miniature electronic units that provide high-precision control over a wide range of mechanisms actuated by brushless electric motors (PMSM, BLDC) of any manufacturer. The controllers turn brushless motors into computer-controlled traction drives, high-precision direct drives, or servo drives when (optionally) paired with absolute position encoders (BISS-C, SSI, SPI, PWM or Quadrature) of any manufacturer.
Up to 25A of phase-to-phase current, and up to 32bits of angular precision are provided. The electronic units feature a microprocessor chip, a set of absolute encoder interfaces for shaft position measurements, a firmware implementation of advanced motion control algorithms that operate in a closed loop fashion, as well as CANbus/CANopen and USB 2.0 interfaces for receiving commands from a control computer/PLC and sending back telemetry.
The controllers are extensively used in various products of Servosila including its lines of robotic arms, and servo drives. The controllers’ design incorporate multiple lessons learned by Servosila while operating its robots in various environments.
Servosila SC-25R Brushless Motor Controller
Servosila SC-25C Brushless Motor Controller
SERVOSILA SC-25 controllers come in two distinct forms, a rectangular one (SC-25R) and a circular one (SC-25C). Both models are identical in terms of capabilities, features, firmware, and external electrical connectors. Industrial designers might prefer one model over the other depending on what actuated mechanisms they are working on. At the same time, both electrical and software engineers rest assured that whichever model is chosen for a particular design, a full electrical and software compatibility is still in place.
Typical applications of SERVOSILA SC-25 controllers include:
  • servo drives, servo mechanisms,
  • traction electric drives, thrust drives,
  • industrial machines, pumps, conveyor belts,
  • robots,
  • robotic warehouses, robotic stores,
  • test equipment, test beds,
  • automated measurement and diagnostics equipment,
  • CNC machines,
  • actuated computer vision systems.
The controllers support the following kinds of electric motors:
  • Brushless DC motors (PMSM, BLDC) of any manufacturer,
  • ... Sensored or Sensorless,
  • ...with or without absolute shaft encoders,
  • ...with or without a gearbox,
  • ...with sinusoidal or trapezoidal control,
  • as well as Brushed DC Motors (up to 2 brushed motors can be connected to a single controller at the same time), and Solenoids.
The following interfaces to absolute position encoders are supported by the controllers:
  • BISS-C encoder interface (incl. popular RLS magnetic encoders),
  • SSI encoder interface,
  • SPI encoder interface,
  • PWM encoder interface,
  • Quadrature interface
External absolute position encoders (optional) enable such functions as servo control, robust speed control at low speeds, a brake function, and various safety functions. If an electric drive does not have an encoder, the controllers are capable of operating using Hall sensors, or in an open loop position control mode similar to step motors.
A Sensorless control mode is available for controlling brushless motors that do not have built-in Hall Sensors or attached encoders.
The way the controllers are designed is that if an encoder is present, the system will try to use it whenever it makes sense. If no encoder is present, the system will still operate properly, but may do so not as good as it would with an encoder.
Servosila SC-25R brushless motor controller
Servosila SC-25C brushless motor controller
The controllers come with per-soldered connectors (Molex & TE Connectivity) for attaching phase lines, power lines, sensors, encoders, and information buses. Besides the connectors, the electronic units come with soldering holes for every signal or power line; the holes allow cables to be soldered directly to the boards to form vibration-resistant connections.
The connectors are intentionally placed on the front side of the boards only. There are no connectors on the back side of the boards. The back side is intended for installation of a heat sink, or for attaching the boards directly to an enclosure designed to act as a heat sink.
All the connectors are facing upwards, perpendicular to the boards. None of the connectors are facing sideways. This arrangement simplifies cable routing within cramped spaces such as cylindrical enclosures of servo drives or mobile chassis.
The SERVOSILA controllers feature two CANbus ports (parallel). This simplifies cabling of multiple controllers into a chain, for example, inside a robotic arm manipulator or a robotic chassis, and streamlines in-the-field repair or replacement process.
All controllers have an on-board terminal 120 Ohm resistor prescribed by the CANbus standard. The resistor can be turned on or off via a jumper. Only one controller in a chain needs to have the terminal resistor enabled.
There is a way to upgrade the controllers’ firmware via a RS232 port, including field firmware upgrades of servo drives or mobile vehicles.
Operation Modes & Capabilities
SERVOSILA SC-25 Brushless Motor Controllers are capable of controlling motors in several different ways called “modes”. The controllers switch from one mode to another upon receiving commands sent via CANbus or USB 2.0 by a control computer/PLC.
  • “Torque Control”. In this mode, the system tightly controls a prescribed torque with which a brushless motor actuates its payload. This mode would typically be employed whenever what matters is torque rather than speed of the motor, for example, in a test/diagnostics equipment, or in a highly dynamic walking robot application.
  • “Electronic Speed Control (ESC)”. In this mode, the SERVOSILA controllers maintain a constant commanded speed of rotation of the motors’ shafts under an influence of varying external forces. The controllers automatically increase or decrease torque in response to perturbations of external loads thus keeping the speed of the drive constant. This mode is often used when actuating pumps, conveyor belts, thrust drives, mobile chassis, and in many other applications.
  • “Servo Control”. In this mode, the controller turns a brushless motor into a servo motor capable of holding a commanded position (with or without a gearbox). Upon receiving a servo command, the controller first moves the drive’s output shaft to a specific commanded position (angle), and then holds the position under an influence of external forces that try to disturb the balance. An encoder is required in this mode to measure absolute position of the drive’s output shaft. The encoder can be connected to the controller via one of available encoder interfaces (BISS-C, SSI, SPI, PWM, Quadrature). Up to 32bit of angular precision is supported. The servo control mode is widely used in applications ranging from servo drives of robotic arm manipulators, to CNC machines, to robotic warehouse systems.
  • “Direct Drive”. In this mode the controller directly positions magnetic fields inside a brushless motor, and achieves the highest possible precision of positioning accuracy. This mode is often used with electric drives that do not have a gearbox (thus the name). Typical applications include computer vision systems, CNC machines, linear motor actuators, - all those applications where use of a gearbox is avoided to minimize backlash-related issues that affect positioning accuracy. A brushless motor operated in a direct drive mode is much better than a more traditional stepper motor.
  • “Parking Brake”. The controllers implement an energy-efficient “parking brake” mechanism that blocks motor’s motion; this is achieved without a need for an external braking mechanism. In this mode the controller monitors position of a brushless motor’s rotor using either Hall sensors or an encoder, and makes energy-efficient adjustments to the magnetic field inside the motor in such a way that rotation of the output shaft is blocked. The built-in braking mechanism comes handy in applications where motion may need to be stopped and then put on a brake, - such as a conveyor belt or a mobile chassis. Imagine a mobile robot that has to stop while climbing stairs and then use a payload while staying in the inclined position for an extended period of time. The “parking brake” mode efficiently keeps the wheels of such a robot on a brake without wasting too much energy on doing so.
  • “Energy Recuperation”. The controllers are capable of controlling (regulating) a flow of electrical current back to a battery whenever a brushless motor becomes an electric generator due to an external force causing rotation of the motor’s rotor. This feature enables the controllers to be used in starter-generator applications when coupled to internal combustion engines, or might help extend the range or endurance of a mobile vehicle through recuperation of its braking energy. The batteries might need to be equipped with additional electronics to be able to safely accept the reverse flow of electrical current.
The firmware of SERVOSILA controllers implements sophisticated brushless motor control algorithms:
  • Field-Oriented Control (FOC),
  • … with Back-EMF Observer and Hall Sensors Observer,
  • … with D-Q Coupling Compensation for reduced power consumption,
  • … with software-controllable Field Weakening for reaching speeds beyond the motor’s nominal speed,
  • … with safety features based on many lessons learned,
  • … with intelligent controls of the drive’s dynamic characteristics,
  • … and automatic system identification of motor’s parameters.
The algorithms ensure a low-noise operation of brushless motors while increasing available torque, minimizing power consumption, and reducing risks of overheating the motor, breaking a gearbox, or causing an injury.
The SERVOSILA controllers provide for a limited control of brushed motors (vs. brushless ones) and solenoids. Brushed motors can only be controlled in an open loop mode. It is possible to control up to 2 brushed motors or solenoids at the same time (vs. a single brushless motor).
System Identification
The controllers feature an automated system identification capability that dramatically simplifies commissioning of new motors. The controllers are capable of automatically detecting phase-to-phase resistances and inductances of the motors as well as other key characteristics of electric drives. The measured parameters are then used to automatically configure various control laws and regulators within the firmware. This feature speeds up commissioning of new motors and improves the quality of motor control even if the motor’s data sheet is lost for any reason.
CANbus/CANopen and USB 2.0 interfaces
The SERVOSILA controllers provide an open CANopen control interface, and an open USB 2.0 interface, a virtual COM port, for receiving commands from a control computer/PLC as well as for sending telemetry back.
No proprietary drivers or SDKs are needed to connect SERVOSILA controllers to a Linux or a Windows 10/8 computer. Both Windows 10/8 and Linux come with prepackaged drivers and programming APIs sufficient to interface to SERVOSILA controllers; this includes the popular Linux distributions of Debian and Ubuntu.
The controllers feature a built-in USB-to-CAN routing function, a “built-in USB2CAN adapter/dongle”, that enables PCs/PLCs to access an entire CANbus network through connection to a single SERVOSILA controller via its USB port. In other words, by connecting to a USB port of a single SERVOSILA controller, a control computer/PLC gains access to the entire CANbus network to which the SERVOSILA controller is connected to. Up to 16 controllers chained via their CANbus ports can be controlled by the same PC/PLC using the built-in USB-to-CANbus routing function. The limit is mainly due to throughput of a USB port of the SERVOSILA controller that acts as a USB2CAN dongle in addition to driving a motor; otherwise, all devices on a CANbus network are equally accessible to a control computer/PLC via a connection to a single SERVOSILA controller. This includes non-Servosila devices such as GPS receivers or IMUs.
Up to 126 SERVOSILA controllers can be connected to the same CANbus instance if a control computer/PLC has a hardware CANbus interface. Linux SocketCAN API can be used to develop software that sends commands to SERVOSILA controllers or receives telemetry back from the controllers.
Many off-the-shelf software products such as LabView support SocketCAN API out of the box, and come with an integrated CANopen stack. If the path taken is to develop the control software from scratch, there are many samples of open source programs available on the Internet that make use of Linux SocketCAN API.
Whenever a USB 2.0 interface (vs. a CANbus interface) is used to connect SERVOSILA controllers to a Linux or a Windows 10/8 computer, the controllers appear as Virtual COM ports to both operating systems. A semi-standard text protocol called SLCAN is then used to send commands to the controllers through the virtual COM port as well as for receiving telemetry back.
In addition, most Linux distributions come with a special SLCANd daemon which makes SERVOSILA controllers attached via USB Virtual COM ports appear as CANbus devices or as USB2CAN dongles. This daemon makes it possible to use the same Linux SocketCAN API whenever the SERVOSILA controllers are connected to Linux via USB 2.0 or a CANbus interface (does not matter which one, the API is still SocketCAN API).
As Windows 10/8 systems do not have such a unified CANbus API, the ways for a control system’s software running on Windows to interact with SERVOSILA controllers include:
  • either through a virtual COM-port (USB 2.0) by writing to and reading from the port using a standard text protocol called SLCAN which is based on exchange of text strings formatted according to fairly simple open specification,
  • or using a third-party USB2CAN adapter/dongle, and whatever programming API the adapter/dongle provides for Windows.
In general, user software for a control computer/PLC can be developed in any language that supports either Linux SocketCAN API or read/write operations for virtual COM ports on Windows 10/8 or Linux. This includes C/C++, Qt, Java, Python, MATLAB, LabView, and many other languages and packages.
Servoscope, a graphical software tool
Servosila Servoscope application
Servosila Servoscope application
The SERVOSILA controllers come with a graphical software tool called Servoscope. The tool provides means of configuring the controllers, displaying real-time telemetry coming via CANbus or USB, and sending commands down to the controllers.
The tool allows visualizing the telemetry data by plotting graphical charts. This is helpful when tracking down transient issues with electric drives.
The application runs on Windows 10/8 or Linux including the popular distributions of Debian and Linux. No drivers need to be installed on either of the platforms to run the tool. The tool connects to SERVOSILA controllers via CANbus or USB interfaces.
Electric Drive Simulator
The Servoscope application comes with a built-in software simulator of electric drives. In a real time, the simulator numerically solves differential equations that define the dynamics of brushless motors, and provides a simulated CANbus/CANopen interface via Linux SocketCAN API for user control software being tested to connect to. The interface of the software simulator exactly matches the interface of a real SERVOSILA controller coupled with a real electric drive.
The simulator allows debugging of user software via CANbus/CANopen protocol prior to procuring a real hardware. Even if the hardware is available, it is still wise to first test your code against a simulator to avoid risking to burn a motor, break a gearbox, or cause an injury.
The simulator allows modeling the behavior of brushless motors or control systems under various conditions including dangerous or critical ones. The simulator is one of the software tools packaged into Servoscope application.
Parameter Value
Supported kinds of electric motors Brushless DC Motors (PMSM, BLDC): Sensored or Sensorless.
Brushed Motors & Solenoids (open loop only)
Number of simultaneously connected motors: 1 brushless motor, or
up to 2 brushed motors or solenoids
Max. phase-to-phase current 25 A with a heat sink
Nominal phase-to-phase current 15 A with a heat sink,
7 A, no heat sink
Input voltage 8-60 V DC
Operation modes Torque Control,
Electronic Speed Control (ESC),
Servo Control,
Direct Drive Control.
Parking Brake,
Energy Recuperation,
System Identification
Supported algorithms of brushless motor control Field-Oriented Control (FOC),
EMF Observer,
Hall Sensors Observer,
D-Q axis Coupling Compensation,
Field Weakening,
Motor dynamics management
Auto configuration (system identification) function Yes
Interfaces to absolute position encoders BISS-C,
Quadrature with Index Signal
Max. resolution of encoder 32bit
Built-in network router USB-to-CANbus router («USB2CAN dongle»)
11bit and 29bit identifiers are supported
Control Interfaces CANbus with CANopen application protocol;
USB 2.0, a virtual COM port, with SLCAN application protocol
CANbus Terminal Resistor 120 Ohm Yes (jumper controlled)
Supported CANbus bit rates 1 mbit/sec
500 kbit/sec
250 kbit/sec
125 kbit/sec
100 kbit/sec
50 kbit/sec
CANbus ports 2 (parallell)
USB 2.0 ports 1
Supported operating systems Windows 10 (no driver is needed)
Windows 8 (no driver is needed)
Linux (no driver is needed) including Debian, Ubuntu
Programming APIs Linux SocketCAN API,
SLCAN protocol via a virtual COM-port (USB2.0) for Windows 10, 8 and Linux.
Software Electric Drive Simulator Yes
Power consumption when idling 120-180 mA
Dimensions Model SC-25R: 68mm x 40mm x 16mm
Model SC-25C: diameter 62mm, height 16mm
Weight ~50g without heat radiator