CANStepper vs MKS SERVO42C: Closed-Loop NEMA 17 Specs (2026)

·Grafito Innovations
Grafito CANStepper NEMA17 Closed Loop CAN Adapter Board for closed-loop stepper motor control

CANStepper vs MKS SERVO42C (Closed-Loop NEMA 17)

If you are shopping for a closed-loop NEMA 17 board, two common paths show up for machine builders:

  1. Grafito CANStepper — the NEMA17 Closed Loop CAN Adapter Board
  2. MKS SERVO42C — Makerbase serial closed-loop retrofit (GitHub)

Both aim to reduce lost steps versus open-loop steppers. They differ mainly in networking, power, limit I/O, and software stack.

Full product documentation: https://docs.grafito.in
Python host library: pip install grafito-canstepper

Grafito CANStepper (overview)

  • TMC2209 drive + magnetic encoder feedback (MT6701, up to 14-bit)
  • ESP32-C3 with WiFi + Bluetooth + USB-C
  • Native CAN Bus daisy-chain (GCSP v1 protocol, up to 31 nodes)
  • Flexible 5–24 V power, 2.0 A RMS / 2.8 A peak
  • 2× dedicated limit-switch connectors
  • Host control via Python (grafito-canstepper) or any GCSP v1 client

Docs: docs.grafito.in · Tuning: closed-loop speed tuning

Spec comparison

FeatureGrafito CANStepperMKS SERVO42C
Productgrafito.in/shop/products/canstepper-adapter-boardMakerbase SERVO42C family
Supported motorNEMA 17 stepper42-series / NEMA 17 class
Input voltage5–24 V7–28 V (per Makerbase materials)
Motor current2.0 A RMS / 2.8 A peak0–3000 mA adjustable range (per Makerbase)
MCU / controllerESP32-C3 (WiFi + Bluetooth)Serial-control closed-loop controller
CommunicationCAN Bus daisy-chain, USB-C, WiFi, BluetoothUSART / serial control
Motor driver approachTMC2209 + magnetic encoder feedbackFOC-style closed-loop board with multi-MOSFET drive
Angle resolution~0.022° (14-bit class magnetic)~0.08° (per Makerbase materials)
Limit switches2× dedicated connectorsNot a primary multi-axis CAN feature
Best fitDistributed multi-axis machines, CAN networks, wireless config, Python/GCSP toolingStandalone closed-loop retrofit with serial control

When to choose CANStepper

Choose CANStepper when you need:

  • Multi-axis CAN daisy-chain instead of long step/dir runs
  • Hard limit-switch ports for machine homing
  • WiFi/Bluetooth + USB configuration
  • A published protocol and Python package for host control
  • Flexible 5–24 V machine power rails

Choose a serial-only FOC-style board (e.g. SERVO42C class) when you only need a single-axis serial retrofit and already have a serial-centric controller stack.

Software & documentation

Install and first move

pip install grafito-canstepper
from canstepper import CANStepperBus

bus = CANStepperBus.serial("/dev/ttyACM0")
node = bus.node(1)
node.configure_closed_loop_speed(4800, run_current=70, microsteps=8, stealthchop=False)
node.enable()
node.move_to(360.0, blocking=True)

Hardware, firmware (GCSP v1), and the host library are original Grafito Innovations work.

FAQ

Where is the full CANStepper documentation?

At docs.grafito.in — protocol, hardware, Python API, and closed-loop speed results.

Is CANStepper better than MKS SERVO42C for multi-axis machines?

If you need CAN daisy-chain, dual limit ports, and wireless configuration, CANStepper is usually the better architectural fit. SERVO42C-class boards remain common for serial single-axis retrofits.

What speeds are realistic?

On a representative 1.2 A NEMA 17 at 24 V with firmware ≥1.2: open-loop continuous spin ~1200 RPM, closed-loop position cruise ~800–1000 RPM. See closed-loop tuning.

Bottom line

CANStepper is built for distributed, multi-axis, CAN-networked closed-loop NEMA 17 motion with a full public docs site and PyPI host library. Use the comparison table above for serial FOC retrofits; use docs.grafito.in for everything else.