Motores Closed-loop: Makerbase MKS Servo 42b (Review)
Motores Closed-loop: Makerbase MKS Servo 42b (Review)

Closed-Loop Motors: Makerbase MKS Servo42b (Brief analysis)

For some time now we have been seeing in the 3D printing scene a type of stepper motors that include electronics in the back and to which a 9.6″ OLED display can be connected.

You will probably wonder what they are for and what advantages they can offer us when mounting them on our printers, so in this article we will try to shed some light on them.

These motors are called Closed-Loop, and their main function is not to lose steps in any of their operations during the printing process. The process is relatively simple, just keep reading our article and you will discover how they do it.

Today we will briefly discuss the new engines of the company Makerbase, already well known for its electronics, which has developed two versions of servo motors for NEMA17 and NEMA23 specifically (Servo42b and Servo57b respectively).

And as always before I start, I want to remind you that you can join 3DWork on our Telegram channel full of people fanatic of 3D printing, or on any of our social networks Facebook, Twitter, Instagram.

 

 

Brief introduction

When managing the movements of our stepper motors, tiny electronic boards called drivers are used. And it is very important to know the role that these components play when talking about any type of motor (whether servo or not).

The drivers are in charge of carrying out the different calculations that our 3D printer requires in order to build the parts that we request. They are certainly an essential component in our hardware and choosing good drivers is quite important.

Before continuing I recommend that if you have a few minutes you read a very interesting article that we wrote a while ago called TMC Drivers: Guide to the best drivers and their technologies for 3D printing .

In it we make an interesting introduction to the Trinamic brand drivers, today one of the most used in our printers, and that offer us a series of great features.

 

Servo motors in 3D printing

A servo or servo motor is a drive element that controls speed, torque, and positioning. In addition, they operate in a system called “Closed-Loop“. But what exactly does this mean?

It means that they have an encoder (or decoder) that sends the motor position to the controller. And this controller is in charge of comparing the sent values ​​to correct the motor position and thus minimize the positioning error, if necessary.

As a result of this process we obtain a very precise and reliable positioning in this type of engine. However, these systems require fine-tuning of their parameters and these extra control components also add extra to the cost of the device.

In the case of a stepper motor that operates in a “Open-Loop” system, such as those that we normally use, its operation lacks a positioning system, so it is not capable of providing information to your controller to know your position.

However, something very important to always keep in mind is that if a stepper motor (Stepper) operates within its design limits, it should not “lose steps”, since they offer us very good positioning precision.

 

Engine speeds and torque

A general rule is that stepper motors perform well in applications that operate at or below 1000 rpm ranges. which would be more than enough for our 3D printers. This is because at higher speeds the motors lose torque quickly.

However, servo motors can operate in a wide speed range without this marked loss of torque. And this makes them a more suitable choice for different types of scenarios that may arise.

In the case of servo motors these are a better technology to use in applications that require high torque at high speeds. As in the case of CNC machines or 3D printers where a large volume has to be moved (for example, a very heavy bed).

Current drivers such as TMC can be considered as a “Semi Closed-Loop” since they monitor and correct faults but without having the exact position. They allow to mitigate this problem in part but without an exact positioning they are not able to recover the position in case of loss of steps.

Its way of mitigating it is by adjusting the definition of steps dynamically, providing more current when necessary, etc. But as we have commented, a good configuration of your machine will greatly limit any loss of steps.

 

Solving possible step losses

One of the problems that may appear on the scene when we are making a 3D part is the possible loss of steps during the printing process.

This may be for different reasons. Poor cooling of drivers and motors, excessive current to them or the heatbed/head hitting an obstacle are some clear examples. It goes without saying that this completely destroys our printed part, or leaves it at least imperfect.

And all this, no matter what the reason, happens for a simple reason. When our driver sends information to the motor to indicate how many steps it has to turn, it does not receive any confirmation from it. The driver performs an act of faith and will always trust that the engine has performed its function correctly . But this is not always the case.

There is no bi-directional communication between the driver and the motor and therefore no validation or verification that a command from the driver to the motor has been successfully completed.

To overcome this small problem, the Makerbase MKS Servo42b engines have a 32-bit microcontroller that constantly receives information on how many steps have been sent to each engine .

And not only does it store that information, but thanks to a small magnetic sensor (specifically the Allegro’s A1333LLETR-T) it will check if those steps sent have actually occurred in our engine.

If the steps sent from the driver to the motor differ with those that have been carried out, the microcontroller will inform us with a flashing blue LED and will give the order to complete the remaining steps. In this way we will not have any loss of steps in our printing.

 

Necessary components

Here I leave you some of the components that appear in today’s article. It is my duty to inform you that they are affiliate links to different online marketplaces online stores.

If by chance you use them, the price of the product will be the same as if you access regularly. And 3DWork will have a small commission left to help maintain this website.

MKS Servo42b (NEMA17)
MKS Servo57b (NEMA23)

 

Installing the MKS Servo42b motor

The installation process could not be easier. To install a MKS Servo42b Motor you only have to remove the current driver from your board, since these motors have their own integrated driver in their own electronics (Allegro A4954LPT).

In its place we will introduce the special adapter it brings, and then wire it to our new motor, and this will be all you need to do (click to enlarge image).

As you may have already imagined, although these motors are completely plug and play you will need an electronics where you can easily extract the drivers (not soldered to the board).

I understand that if you have soldered drivers they can also be used, but you will have to remove the lines and solder one by one to the plate in order to use them, something that seems quite laborious to me but completely possible if you have some patience 🙂

Finally, you must verify that the new motor makes the turn correctly. Otherwise you can reverse the rotation using the OLED display and accessing its menus (as you can see in the video below), or directly connecting a USB cable and running the Terminal software that comes with it.

In this way, you should not modify it in the firmware of your printer, compile it and upload it to your electronics, something that is appreciated and that will save us work.

 

MKS Servo42b’s strengths (and weaknesses)

The great advantage that this type of motor offers us is to avoid the possibility of losing steps in our impressions, which is something excellent and with a lot of weight.

Another detail that we liked is that the quality and power of the engines used, as well as the rest of the components, is sensational.

One of the possible improvements would be to try to integrate TMC drivers, with this we will eliminate the famous “Salmon skin” effect that remains on the surface of our parts and that has always been related to the Allegro family of drivers.

However, I would like to emphasize that this problem is mostly seen in the Servo42a version, since in the Servo42b version this drawback is greatly reduced due to the speed of the new CPU partly.

Another improvement that would be appreciated, although in this case they will require collaboration with the Marlin development team, would be to integrate part of the configuration in the same firmware. In this way, configuration adjustments could be made from the native display of our printer, without having to resort to the 0.96″ mini OLED display.

 


STRENGTHS

POSSIBLE IMPROVEMENTS
  • Great torque in motor
  • Easy configuration through OLED screen
  • USB connection via terminal
  • High accelerations
  • Completely plug and play
  • Non-silent drivers
  • Lack of integration in Marlin
  • Some “salmon skin” can be seen in the Servo42a version (not so much in the 42b)

 

Technical specifications

Makerbase has two versions of Closed-Loop servo motors. However, we at 3DWork.io have only had the opportunity to test the MKS Servo42b v1.0. We leave you here the specifications of both servo motors:

 

MKS Servo42a

  • Based on the open source project by Misfittech “Nano_stepper” (more info)
  • CPU Atmel ATSAMD21G18A-U de 48Mhz
  • Magnetic encoder Allegro’s A1333LLETR-T Contactless 0° to 360° angle sensor IC 12bit
  • Drivers Allegro’s A4954LPT, support 2A current
  • Support setting parameter by I2C interface oled0.96 and USB instructions
  • Compatible with all 3D printing motherboards by use MKS SV_EXT V1.1
  • Support build and upload firmware to board by Arduino platform

 

MKS Servo42b

  • Based on the open source project by Misfittech “Nano_stepper” (more info)
  • To improve performance, Makerbase Team has made the following changes:
    • Ported the project to STMicroelectronics’ 32-bit MCU, STM32F103C8T6 ARM 32-bit Cortex™-M3 CPU Core,72 MHz maximum frequency,20k RAM. 64k Flash
    • Changed the magnetic encoder to Allegro’s A1333LLETR-T Contactless 0° to 360° angle sensor IC ,12bit
    • Ported the compilation platform from arduino to PlatformIO — Convenient for STM32 MCU compilation
    • Change the socket with motherboard, now it can work with much 3D printer motherboards using MKS SV_EXT V1.1 by Makerbase

 

 

We hope that this brief approach to Closed-Loop MKS Servo42b motors has been of interest to you.

If you wish, you can find other interesting articles in 3DWork at the following links: