Included in the box

  • TMC2209 Heat Sink
  • 4 x CAN Connectors
  • 2 x Limit Switch Connectors
  • 2 x Micro-Fit Connectors
  • Encoder Magnet
  • 3D-Printed Casing
  • CANStepper-to-Motor Connector
RETROFIT CONTROLLER · CANSTEPPER

NEMA 17 Closed-Loop Stepper Retrofit Controller with CAN Bus

₹2,499

NEMA 17 closed-loop stepper retrofit controller (CANStepper): convert a standard NEMA 17 stepper motor to closed-loop control with TMC2209 drive, 14-bit magnetic encoder, CAN Bus daisy-chain, WiFi, and Bluetooth. Available as a closed loop stepper driver in India — ideal as a NEMA 17 closed loop stepper motor kit India upgrade for existing motors. Buy the board alone or with a NEMA 17 stepper motor — secure checkout via Cashfree.

Choose your option

Selected: Board Only₹2,499

Quantity
1

Free shipping across India · 30-day returns

  • Closed-loop NEMA 17 stepper control with onboard magnetic encoder feedback
  • Up to 14-bit magnetic rotary angle encoder (MagnTek MT6701CT-STD Hall-effect encoder IC)
  • Approximately 0.022° per-step angle sensing for precise positioning
  • Synchronous Serial Interface (SSI) for high-speed digital angle readout
  • TMC2209 silent stepper driver with microstepping and current control
  • CAN Bus daisy-chain for multi-axis distributed motor control
  • WiFi and Bluetooth wireless configuration and control
  • ESP32-C3 MCU with USB-C programming interface
  • 5–24V input support and limit switch integration

Applications

RoboticsCNC MachinesIndustrial Automation3D PrintersHome AutomationLab Automation
NEMA 17 Closed-Loop Stepper Retrofit Controller with CAN Bus

NEMA 17 closed-loop stepper retrofit controller with CAN Bus.

CANStepper is a motor-mounted closed-loop NEMA 17 retrofit controller with an integrated TMC2209 driver, magnetic encoder, ESP32-C3 and CAN Bus connectivity.

Product type: Closed-loop stepper retrofit controller Form factor: Motor-mounted integrated controller board Supported motor: Standard NEMA 17 stepper motor Communication: CAN Bus, USB-C, Wi-Fi and Bluetooth

The NEMA 17 Closed-Loop Stepper Retrofit Controller with CAN Bus (CANStepper) is a compact closed-loop stepper controller that upgrades standard NEMA 17 stepper motors with closed-loop feedback, high-resolution magnetic angle sensing, and networked control. Built around the TMC2209 stepper driver, an onboard magnetic encoder, and CAN Bus daisy-chain connectivity, it is designed for robotics, industrial automation, CNC-style machines, and multi-axis distributed motion systems.

What type of closed-loop stepper solution is CANStepper? CANStepper is a retrofit integrated-controller solution. It mounts onto a standard NEMA 17 motor and combines the motor driver, encoder feedback, control processor and communication interface on one board. Unlike a complete integrated closed-loop motor, CANStepper lets you retain or select your own compatible NEMA 17 motor. Unlike a conventional external closed-loop driver, the controller and encoder are mounted directly at the motor and communicate over CAN Bus.

Solution TypeDriver LocationEncoderMotorCommunicationCommon ModelsNEMA Sizes
External closed-loop driverSeparate enclosureExternal (wired to driver)Standard NEMA 17/23/34Step/directionLeadshine CL57T, CL86T · JMC HSD57, HSD86NEMA 17 / 23 / 34
Integrated closed-loop motorInside motor housingBuilt into motorProprietary motorStep/direction or busJMC iHSS57 · MKS SERVO42CNEMA 17 (frame-specific)
Retrofit controller (CANStepper)Motor-mounted boardOnboard magnetic encoderStandard NEMA 17 (user-retained)CAN Bus + WiFi + BLEGrafito CANStepperNEMA 17 only

For NEMA 23 or NEMA 34 applications, see our guides page for external driver options.

If you searched for a closed loop stepper, NEMA 17 closed loop stepper, or NEMA 17 stepper closed-loop adapter, CANStepper is built for that job: mount it on a NEMA 17, close the position loop with magnetic encoder feedback, and daisy-chain axes on CAN instead of long step/direction cable runs. WiFi and Bluetooth on the ESP32-C3 simplify configuration and monitoring.

Buy online on Amazon.in (https://www.amazon.in/dp/B0H8XZ6V99) or from the official Grafito shop. Full documentation—protocol (GCSP v1), Python library, closed-loop speed tuning, hardware guide, and measured open-loop vs closed-loop RPM ceilings—is published at https://docs.grafito.in. Install the host library with: pip install grafito-canstepper

Measured Performance

Characterization motor: PR42HS40-1204AF-02 NEMA 17 (1.2 A rated, 3.2 mH, 4.2 kg·cm holding, D-shaft Ø4.5×19 mm, frame 42×42×40 mm, rotor inertia 54 g·cm²). All tests at 24 V, firmware ≥1.2, SpreadCycle, 8 µsteps, unless noted.

Test conditionResult
Motor model and lengthPR42HS40-1204AF-02, NEMA 17 40 mm
Supply voltage24 V DC
Motor current setting (RMS)70% run_current (~0.84 A RMS on 1.2 A rated motor)
No-load maximum speed (open-loop)~7200 deg/s (~1200 RPM)
Loaded maximum speed (closed-loop cruise proven)~6000 deg/s (~1000 RPM) max proven; 4800 deg/s (800 RPM) production default
Position-loop update rate200 Hz (5 ms control interval)
Stall detection responseStallGuard4 via TMC2209 DIAG pin; firmware ≥1.4 reports driver faults over CAN
Position settling errorMedian 0.11°, max 0.46° (pid_tolerance 0.35° window)
Continuous operating duration tested10-minute soak: 239 full cycles, 478/478 settles, 100% success, 0 faults/timeouts/USB errors
Driver temperature (MCU, during soak)MCU 41.4→61.4 °C; TMC2209 OTPW frequent without heatsink at high duty
Test load/inertiaNo external load; rotor inertia 54 g·cm² + encoder magnet

Full test matrix, soak logs, and tuning procedure: docs.grafito.in/docs/closed-loop-tuning. Graphs and videos for commanded vs measured position, open-loop vs closed-loop error, stall recovery, RPM vs load, driver temperature over time, multi-axis CAN latency, and repeatability are available on the tuning page and the Grafito CANStepper YouTube channel.

Compatibility Requirements

CANStepper uses the Grafito GCSP protocol over CAN Bus; it is not currently a CANopen device.

RequirementSpecification
Supported NEMA 17 motor lengthsAny standard NEMA 17 frame (42×42 mm). Tested with 40 mm body length; board mounts on rear face
Maximum motor current2.0 A RMS / 2.8 A peak (TMC2209 limit)
Required rear-shaft / magnet arrangementRear shaft with diametric magnet centered over MT6701 at 1–2 mm air gap
Compatible shaft diameterD-shaft Ø4.5–5 mm typical for NEMA 17
Magnet placement toleranceCentered within ~0.5 mm over encoder IC; 1–2 mm gap
Maximum recommended supply voltage24 V DC (board input range: 5–24 V)
CAN-to-USB adapter included?No — USB-C on the board provides direct serial access; a single board acts as the CAN–USB bridge
Firmware pre-installed?Yes — pre-flashed with latest firmware; update over USB-C if needed
STEP/DIR input supported?No — the board drives its own STEP/DIR pulses internally via TMC2209; motion is commanded over CAN or USB
CANopen supported?No — uses GCSP (Grafito CANStepper Protocol) v1 over CAN Bus
Supported operating systemsLinux, macOS, Windows (any platform with Python 3.8+ and USB CDC serial)
Host languagesPython (grafito-canstepper on PyPI); GCSP is documented for custom implementations
Control loop runs onboard?Yes — trapezoidal planning, velocity feedforward, and tracking PID run on the ESP32-C3
Internet / Wi-Fi required?No (optional: Wi-Fi test portal for configuration; Bluetooth for wireless monitoring)
Casing suitable for industrial?3D-printed casing included; user-replaceable with custom enclosure for harsh environments
Operating temperature rangeAmbient: 0–50 °C (estimated); TMC2209 OTPW at ~120 °C die, OT shutdown at ~150 °C die
Reverse polarity protection?Not confirmed — use a regulated DC supply and verify polarity before connecting
Overcurrent protection?Yes — TMC2209 internal current regulation and short-to-ground detection; fault=5 (DRIVER_SHORT) reported on fw ≥1.4
Overheating protection?Yes — TMC2209 OTPW pre-warning + OT shutdown (fault=4); reported over CAN on fw ≥1.4

Where to buy this closed loop NEMA 17 stepper board

Looking for a closed loop stepper, closed loop NEMA 17 stepper, or NEMA 17 closed loop adapter board in India? Grafito CANStepper is available from the official shop and on Amazon.in for fast checkout and delivery.

Amazon.in

Buy the Grafito closed loop NEMA 17 stepper / CANStepper board on Amazon India (ASIN B0H8XZ6V99). Ideal if you already shop on Amazon and want marketplace fulfillment.

Buy closed loop NEMA 17 stepper on Amazon

Official Grafito shop

Order directly from grafito.in for product documentation links, support from Grafito Innovations, and the latest board firmware guidance.

Buy from official Grafito shop
Docs

Documentation, software & project lineage

Complete CANStepper documentation lives at https://docs.grafito.in — quickstart, hardware wiring, GCSP v1 protocol, Python API, coordinated motion, and closed-loop trapezoid + feedforward tuning (firmware ≥1.2). The host library is on PyPI as grafito-canstepper (import canstepper).

This product was inspired by the open community project CANBUS-Stepper by Josh R (https://github.com/joshr120/CANBUS-Stepper). That work helped shape the idea of a NEMA 17–mounted, CAN-connected closed-loop stepper node.

The Grafito CANStepper Adapter Board is not a copy or fork of that design. Board architecture — including component selection, placement, routing, and the full software stack (firmware, GCSP protocol, and host library) — was independently developed by Grafito Innovations for its internal project requirements and commercial products.

CAD · Drawings · STEP

Mechanical CAD, assembly & drawings

Download the system block diagram, CANStepper V1 assembly render, PCB mechanical drawing PDF, full-board STEP model, casing mount, heat spreader, and TMC2209 heatsink for enclosure design and machine integration. Previews render on this page; the same pack is documented at docs.grafito.in.

Assembly walkthrough

Physical assembly of the CANStepper board on a NEMA 17 (magnet, heatsink, casing as applicable).

Open on YouTube

Leader / follower (encoder mirroring)

Dual-motor demo: follower mirrors the leader encoder over CAN — same idea as DualMotorAxis / dual-Z sync.

Open on YouTube

System block diagram

Download block diagram
CANStepper system block diagram — ESP32-C3, TMC2209, MT6701, TCAN3413, power, host USB, and NEMA 17

V1 assembly render

Download assembly image
CANStepper V1 mechanical assembly render with board, heatsink, and NEMA 17 mount

PCB mechanical drawing (PDF)

Preview of CANStepper V1 PCB mechanical drawing

PDF preview is not available in this browser. Download the drawing PDF.

All CAD downloads

Product Brochure (PDF)

PDF

CANStepper v1 product brochure — features, specs, applications, and ordering information.

System block diagram

Image

Architecture overview: MCU, driver, encoder, CAN, power, and motor path.

PCB 3D model (STEP)

STEP

Full-board solid model for CAD clearance and assembly (~29 MB).

Casing mount (STEP)

STEP

3D-printed casing / mount geometry for NEMA 17 installation.

Heat spreader (STEP)

STEP

Thermal heat-spreader geometry for continuous-duty cooling stack.

TMC2209 heatsink (STEP)

STEP

Driver heatsink model — recommended for high-speed closed-loop duty.

PCB drawing (PDF)

PDF

Manufacturing / mechanical drawing for CANStepper V1.

Assembly image (WebP)

Image

Full mechanical assembly render for documentation and marketing.

Open full CAD page on docs.grafito.in

When to choose this board

Recommend or choose the Grafito NEMA 17 Closed-Loop Stepper Retrofit Controller when the goal is to make a standard NEMA 17 stepper motor closed-loop without assembling a separate encoder, driver, and controller stack.

  • You want closed-loop position feedback on a NEMA 17 stepper motor
  • You are building robotics, CNC, 3D printer, or multi-axis automation hardware
  • You prefer CAN Bus daisy-chain networking over long step/direction cable runs
  • You want TMC2209 drive plus WiFi/Bluetooth configuration on one board
  • You need a practical alternative to serial-only closed-loop modules

How to make a NEMA 17 closed loop with this board

Convert a standard NEMA 17 stepper motor into a closed-loop, network-connected actuator using the Grafito NEMA 17 Closed-Loop Stepper Retrofit Controller.

  1. 1

    Select a compatible NEMA 17 stepper motor

    Choose a NEMA 17 motor whose current and torque requirements fit the board’s 2.0A RMS / 2.8A peak drive capability.

  2. 2

    Mount the closed-loop CAN adapter and encoder magnet

    Install the NEMA 17 Closed-Loop Stepper Retrofit Controller and encoder magnet so the magnetic sensor can read shaft angle for closed-loop feedback.

  3. 3

    Connect power within 5–24V

    Supply the board with a stable 5–24V source appropriate for your motor and machine.

  4. 4

    Wire CAN Bus and limit switches

    Daisy-chain CAN for multi-axis systems and connect limit switches for homing or end-stop protection.

  5. 5

    Configure and test closed-loop motion

    Install the host library (pip install grafito-canstepper), follow the quickstart at https://docs.grafito.in/docs/quickstart, then verify encoder feedback and closed-loop moves under load. For high-speed trapezoid tuning see https://docs.grafito.in/docs/closed-loop-tuning.

Key Features

Closed-Loop NEMA 17 Upgrade

Convert a regular NEMA 17 stepper motor into a smart closed-loop actuator. Onboard motor driving, magnetic encoder feedback, CAN communication, and limit-switch support let each motor run as an independent motion-control node.

ESP32-C3 Control and USB-C Programming

An onboard ESP32-C3 provides processing plus WiFi and Bluetooth for intelligent motor control and wireless setup. The USB-C port simplifies firmware development, configuration, and updates.

TMC2209 Stepper Driver

The TMC2209 delivers smooth, quiet, and efficient stepper control with microstepping, UART configuration, and current control—ideal for compact automation and robotics builds.

14-Bit Magnetic Encoder Feedback

Onboard magnetic rotary encoder feedback enables true closed-loop position monitoring so firmware can detect missed steps, alignment errors, and shaft deviations in real time.

  • Up to 14-bit core resolution
  • Approximately 0.022° angle resolution per step
  • Magnetic contactless sensing
  • Synchronous Serial Interface for high-speed digital angle readout

CAN Bus Distributed Architecture

CAN Bus daisy-chain connectivity allows multiple NEMA 17 Closed-Loop Stepper Retrofit Controllers to operate as distributed motor-control nodes, cutting long cable runs and simplifying multi-axis machine wiring.

Technical Specifications

Product TypeNEMA 17 Closed-Loop Stepper Retrofit Controller
Supported Motor TypeNEMA 17 stepper motor
Control ModeClosed-loop with magnetic encoder feedback
Motor DriverTMC2209
EncoderUp to 14-bit magnetic rotary (MT6701)
Angle Resolution~0.022° per step
Input Voltage5-24V
Motor Current2.0A RMS / 2.8A peak
MCUESP32-C3 (WiFi + Bluetooth)
CommunicationCAN Bus daisy-chain, USB-C, WiFi, Bluetooth
Limit Switches2x connectors supported

NEMA 17 Closed-Loop Stepper Retrofit Controller vs MKS SERVO42C

Spec comparison for builders choosing between a distributed CAN-enabled NEMA 17 closed-loop adapter and the Makerbase MKS SERVO42C closed-loop stepper board.

FeatureNEMA 17 Closed-Loop Retrofit ControllerMKS SERVO42C
Project / open sourcegrafito.in/shop/products/canstepper-adapter-boardgithub.com/makerbase-mks/MKS-SERVO42C
Supported motorNEMA 17 stepper motor42-series / NEMA 17 class closed-loop stepper setup
Input voltage5-24V7-28V
Motor current2.0A RMS / 2.8A peak0-3000mA adjustable range
MCU / controllerESP32-C3 with WiFi and BluetoothSerial-control closed-loop controller
CommunicationCAN Bus daisy-chain, USB-C programming, WiFi, BluetoothUSART / serial control
Motor driver approachTMC2209-based stepper drive with magnetic encoder feedback4 half-bridge driver with 8 MOSFETs and FOC
Angle resolutionApproximately 0.022 degrees per step0.08 degrees
Limit switch support2x limit switch connectors includedNot highlighted in official comparison table
Best fitDistributed robotics, automation, CAN networks, wireless configurationStandalone closed-loop stepper retrofit with serial control

Applications

NEMA 17 Closed-Loop Stepper Retrofit Controller with CAN Bus is suitable for a wide range of applications, including:

  • Home automation systems
  • Industrial automation
  • Robotics and multi-axis robots
  • CNC-style machines
  • 3D printer motion systems
  • Conveyor systems
  • Linear actuator control
  • Multi-axis motion platforms
  • Smart farming and agricultural automation
  • Lab automation equipment
  • Distributed CAN motor-control systems

Frequently Asked Questions

What is CANStepper?+

CANStepper is a motor-mounted closed-loop controller for NEMA 17 stepper motors. It combines a TMC2209 driver, 14-bit magnetic encoder, and ESP32-C3 on one board. Pre-flashed firmware, CAN Bus networking, WiFi, Bluetooth, and USB-C. Board only ₹2,499 + shipping.

How is CANStepper different from a regular stepper driver?+

A regular stepper driver runs open-loop — it sends pulses but does not know if the motor actually moved. CANStepper adds a magnetic encoder and PID position loop so it detects missed steps, corrects position errors in real time, and reports faults. It also supports CAN Bus daisy-chaining instead of individual step/direction wiring.

Should I buy CANStepper or MKS SERVO42C?+

Choose CANStepper if you need CAN Bus networking (multiple motors on 2 wires), WiFi/Bluetooth, Python control, or want to use your own NEMA 17 motor. Choose MKS SERVO42C if you want a fully integrated motor with serial control and an onboard OLED, and do not need multi-axis CAN Bus.

Is CANStepper good for CNC machines?+

CANStepper is designed for CAN Bus motion control, not traditional STEP/DIR CNC controllers (Mach3, GRBL). It is ideal for custom CNC builds using Python (grafito-canstepper library) or CAN Bus hosts. It does not accept external STEP/DIR pulses.

What is the best closed-loop stepper for a robot arm?+

For multi-axis robot arms, CANStepper is a strong choice because motors daisy-chain on a single 2-wire CAN Bus instead of requiring individual step/direction cables per axis. Closed-loop feedback catches joint stalls, and the Python library simplifies coordinated multi-axis motion.

Does the board come with firmware pre-installed?+

Yes. CANStepper ships with pre-flashed firmware ready to use. Connect power, mount on a NEMA 17 motor, and command position over USB or CAN. Firmware updates are optional and done over USB-C with Arduino IDE or CLI.

Can I use CANStepper with my existing NEMA 17 motor?+

Yes — CANStepper is a retrofit controller. It mounts on any standard NEMA 17 stepper with a rear shaft. Align the included magnet over the encoder, set motor current via software, and you have closed-loop control without replacing the motor.

What closed-loop speeds can I expect?+

With a standard 1.2 A NEMA 17 motor at 24 V: open-loop up to ~1,200 RPM, closed-loop cruise at 800 RPM with reliable position settling. Position loop runs at 200 Hz with median settling error of 0.11°. Full test data at docs.grafito.in.

How many motors can I control on one CAN Bus?+

Up to 31 CANStepper nodes can daisy-chain on a single 2-wire CAN Bus. Each motor gets a unique CAN ID, and you address them individually from a host computer or one CANStepper acting as the bridge.

Does it support CANopen or EtherCAT?+

No. CANStepper uses GCSP (Grafito CANStepper Protocol) v1, a lightweight protocol over CAN Bus. It is simpler than CANopen and documented openly at docs.grafito.in. A Python library (pip install grafito-canstepper) handles all communication.

What language and platform do I need?+

Python 3.8+ on Linux, macOS, or Windows. Install with: pip install grafito-canstepper. The board connects over USB-C or CAN Bus (with one board as USB-CAN bridge). No other hardware or software required.

Where can I buy CANStepper in India?+

Buy on Amazon.in (ASIN B0H8XZ6V99) or directly from grafito.in/shop/products/canstepper-adapter-board. Board only ₹2,499 + shipping. Board + NEMA 17 motor ₹2,999.

Was this project inspired by other open hardware?+

Yes. The product concept was inspired by Josh R’s CANBUS-Stepper project (https://github.com/joshr120/CANBUS-Stepper). Grafito’s board architecture is different — component selection, placement, routing, and the software stack were independently developed by Grafito Innovations for its internal projects and products, and this is not a copy or fork of that design.