CANStepper vs PD Stepper vs CANBUS Stepper vs MKS SERVO42C
If you are shopping for a closed-loop NEMA 17 board in 2026, four names keep showing up in forums, YouTube comments, and maker communities:
- Grafito CANStepper — the NEMA17 Closed Loop CAN Adapter Board
- PD Stepper (Things by Josh) — open-source USB-PD ESP32 + TMC2209 controller (GitHub · SparkFun)
- CANBUS Stepper (Things by Josh) — open-source CAN daisy-chain closed-loop NEMA 17 board (GitHub · product kits)
- MKS SERVO42C — Makerbase serial closed-loop retrofit (GitHub)
They all promise the same headline: stop losing steps and make your NEMA 17 smarter. Under the hood they split into different architectures—USB-PD single-axis IoT, CAN multi-axis distributed control, and serial FOC retrofits.
This post is a spec-focused competitive analysis. Competitor links go to official open-source repos and product pages so you can verify features yourself.
Inspiration & acknowledgement
The PD Stepper and CANBUS Stepper projects by Josh Rogan of Things by Josh have been an inspiration to us.
All component selection and firmware development for Grafito CANStepper was done completely by Team Grafito after our own research and internal requirements.
Related links
- CANStepper product page (Grafito)
- PD Stepper open source (joshr120/PD-Stepper)
- CANBUS Stepper open source (joshr120/CANBUS-Stepper)
- CANBUS Stepper Web GUI
- Things by Josh
- MKS SERVO42C GitHub
- How to make a NEMA 17 closed loop
- Introducing CANStepper
Quick verdict (by use case)
| If you need… | Strong fit |
|---|---|
| Multi-axis robotics/CNC with CAN daisy-chain + hard limit ports | Grafito CANStepper |
| Open-source CAN multi-axis with web GUI over USB + power pass-through | CANBUS Stepper |
| USB-C PD single-cable power + strong ESPHome blinds/IoT examples | PD Stepper |
| Serial FOC closed-loop retrofit on a classic Makerbase stack | MKS SERVO42C |
| Documented 5–24V / 2.0 A RMS envelope + dual dedicated limit connectors | CANStepper |
| Browser config of a whole CAN chain from one USB node | CANBUS Stepper |
One-line take: SERVO42C is the serial FOC classic. PD Stepper is the USB-PD IoT single-axis board. CANBUS Stepper and Grafito CANStepper both target CAN multi-axis closed-loop NEMA 17—with different MCU, UI, I/O, and product packaging choices.
Why closed-loop NEMA 17 boards matter
Open-loop steppers are cheap and everywhere—but they assume every microstep actually happens. Real machines hit friction, binding, high acceleration, and insufficient torque. Missed steps mean ruined prints, crashed tools, and robots that drift out of calibration.
Closed-loop boards add a magnetic encoder on the motor shaft so firmware can:
- Detect missed steps
- Monitor absolute (or high-resolution relative) angle
- Improve positioning reliability under load
- Support smarter homing and recovery strategies
| Philosophy | Product archetype | Core idea |
|---|---|---|
| Serial closed-loop retrofit | MKS SERVO42C | FOC/serial closed-loop on each motor |
| USB-PD all-in-one IoT node | PD Stepper | One motor, one USB-C PD cable, WiFi/BT, ESPHome |
| Open-source CAN multi-axis | CANBUS Stepper | Daisy-chain CAN + power pass-through + web GUI |
| Distributed CAN motion kit | CANStepper | CAN node + dual limits + documented drive envelope |
Meet the contenders
1. Grafito CANStepper (NEMA17 Closed Loop CAN Adapter Board)
Manufacturer: Grafito Innovations (India)
Shop: grafito.in/shop/products/canstepper-adapter-board
CANStepper mounts as a compact adapter that upgrades a standard NEMA 17 into a smart closed-loop actuator. The stack is robotics- and automation-oriented:
| Spec | Value |
|---|---|
| Driver | TMC2209 (StealthChop / microstepping, quiet) |
| Encoder | MagnTek MT6701 — up to 14-bit magnetic rotary (~0.022°) |
| MCU | ESP32-C3 (WiFi + Bluetooth) |
| Network | CAN Bus daisy-chain, USB-C, WiFi, Bluetooth |
| Power | Flexible 5–24V |
| Motor current | 2.0 A RMS / 2.8 A peak |
| Limit I/O | 2× dedicated limit-switch connectors |
In the box: TMC2209 heat sink, 4× CAN connectors, 2× limit-switch connectors, 2× Micro-Fit connectors, encoder magnet, 3D-printed casing, motor connector.
Built for: multi-axis robots, CNC-style machines, 3D printers, conveyors, linear actuators, lab automation, smart farming, industrial automation cells.
2. PD Stepper (Things by Josh) — open source
Official open source: github.com/joshr120/PD-Stepper
Also listed on: SparkFun PD Stepper · Things by Josh
PD Stepper’s big idea is convenience: negotiate power from a modern USB-C PD charger, run a silent TMC2209, close the loop with an AS5600 magnetic encoder, and control everything from an ESP32-S3 with WiFi/Bluetooth.
| Spec | Value |
|---|---|
| Driver | TMC2209 |
| Encoder | AS5600 (12-bit class absolute magnetic angle) |
| MCU | ESP32-S3 (WiFi + Bluetooth; ESPHome / ESP-NOW examples) |
| Network | Primarily wireless / AUX / I2C — no native CAN |
| Power | USB-PD only (5 / 9 / 12 / 15 / 20 V negotiated) |
| Drive envelope | Up to ~50 W via USB-PD + TMC2209 |
| Limit I/O | Sensorless homing + end-stops on AUX |
| Expansion | Qwiic / Stemma QT, AUX port, onboard buttons, motor temperature input |
| Open source | Yes — hardware/software project on GitHub |
Strong at: single-motor IoT projects, ESPHome covers/blinds demos, makers who want a charger-only power stack and an open codebase.
3. CANBUS Stepper (Things by Josh) — open source
Official open source: github.com/joshr120/CANBUS-Stepper
Kits: thingsbyjosh.com/products/canbus-stepper
Web GUI: joshr120.github.io/CANBUS_Stepper_Web_GUI
The CANBUS Stepper integrates the essentials to drive a NEMA 17 on one compact board, with control over CAN bus. High-current connectors enable straightforward daisy-chaining of multiple boards. It is the closest open-source architectural peer to Grafito CANStepper.
| Spec / feature | Value (from project README) |
|---|---|
| Processor | ESP32-S3 |
| Driver | TMC2209 silent stepper driver |
| Encoder | 14-bit magnetic absolute rotary encoder |
| Networking | Daisy-chainable CAN; up to 31 nodes with unique IDs |
| Power | High-current power pass-through connectors |
| Homing | Sensorless homing |
| Expansion | Qwiic / Stemma QT; configurable AUX connector |
| Wireless | WiFi and BLE |
| Software | Open-source node firmware + example code |
| Ecosystem | Works with ESPHome; Klipper integration in the works |
| Config UI | Web GUI — configure, control, monitor, and flash over a single USB serial connection to any node (no local software install) |
Strong at: open multi-axis CAN systems, whole-chain debugging from one USB node, ESPHome as a DC-powered alternative to PD Stepper, and builders who want published CAN protocol + Python USB examples.
4. MKS SERVO42C (Makerbase)
Official docs/code: github.com/makerbase-mks/MKS-SERVO42C
SERVO42C is the volume champion of “make my NEMA 17 closed loop without inventing a PCB.” It is optimized for standalone serial retrofit.
| Spec | Value |
|---|---|
| Motor class | 42-series / NEMA 17 closed-loop setups |
| Input voltage | 7–28V |
| Motor current | 0–3000 mA adjustable range |
| Control | Serial / USART closed-loop controller |
| Drive approach | 4 half-bridge / 8 MOSFETs with FOC |
| Angle resolution (published class) | about 0.08° |
| Wireless | Not a first-class WiFi/Bluetooth product story |
| Multi-axis bus | Serial-centric — not native CAN daisy-chain |
Strong at: FOC-style closed-loop single-axis upgrades and hobby CNC/3D-printer retrofits that already speak serial.
Spec comparison tables
A. Multi-axis CAN boards: CANStepper vs CANBUS Stepper
| Feature | Grafito CANStepper | CANBUS Stepper (GitHub) |
|---|---|---|
| Project / open source | Product page | joshr120/CANBUS-Stepper · Things by Josh |
| Motor form factor | NEMA 17 adapter | NEMA 17 all-in-one board |
| Driver | TMC2209 | TMC2209 |
| Encoder | MT6701 up to 14-bit (~0.022°) | 14-bit magnetic absolute |
| MCU | ESP32-C3 | ESP32-S3 |
| WiFi / Bluetooth | Yes | Yes (WiFi + BLE) |
| Multi-axis network | Native CAN daisy-chain | CAN daisy-chain + high-current power pass-through |
| Node scale | Distributed multi-motor CAN network | Up to 31 unique node IDs on one bus |
| Power architecture | Flexible 5–24V | DC multi-axis with power pass-through |
| Motor current (published) | 2.0 A RMS / 2.8 A peak | See project datasheet |
| Homing / limits | 2× dedicated limit-switch connectors | Sensorless homing; configurable AUX |
| Configuration | USB-C + WiFi/Bluetooth workflows | Web GUI over single USB serial to any node; flash from browser |
| Open source | Commercial product + public docs | Open-source software/examples (GPL project) |
| Ecosystem notes | Machine interconnect kit (CAN + limits + casing) | ESPHome support; Klipper in progress; Python USB examples |
| Expansion | CAN, dual limits, Micro-Fit, USB-C | Qwiic / Stemma QT, AUX, power pass-through |
| Best fit | Hard-limit multi-axis machines, documented drive envelope, kit interconnects | Open CAN stacks, USB web GUI system bring-up, ESPHome/Klipper roadmaps |
B. Wireless single-axis vs CAN: CANStepper vs PD Stepper
| Feature | Grafito CANStepper | PD Stepper (GitHub) |
|---|---|---|
| Project / open source | Product page | joshr120/PD-Stepper · SparkFun |
| Motor form factor | NEMA 17 | NEMA 17 |
| Driver | TMC2209 | TMC2209 |
| Encoder | MT6701 up to 14-bit | AS5600 12-bit class |
| MCU | ESP32-C3 | ESP32-S3 |
| WiFi / Bluetooth | Yes | Yes (ESPHome / ESP-NOW examples) |
| Multi-axis networking | Native CAN Bus daisy-chain | I2C / AUX / ESP-NOW (no CAN) |
| Power | Flexible 5–24V | USB-PD only (5–20 V negotiated) |
| Motor drive | 2.0 A RMS / 2.8 A peak | Up to ~50 W via USB-PD + TMC2209 |
| Limit / homing I/O | 2× dedicated limit ports | Sensorless + AUX end-stops |
| IoT / Home Assistant | Custom wireless motion node | Strong open-source ESPHome / HA examples |
| Open source | Commercial + public docs | Open-source project |
| Best fit | Multi-axis CAN robotics/CNC | Single-axis USB-PD IoT / blinds demos |
C. CAN adapter vs serial FOC: CANStepper vs MKS SERVO42C
| Feature | CANStepper | MKS SERVO42C (GitHub) |
|---|---|---|
| Project / open source | Product page | makerbase-mks/MKS-SERVO42C |
| Supported motor | NEMA 17 | 42-series / NEMA 17 class |
| Input voltage | 5–24V | 7–28V |
| Motor current | 2.0 A RMS / 2.8 A peak | 0–3000 mA adjustable |
| MCU / controller | ESP32-C3 (WiFi + Bluetooth) | Serial closed-loop controller |
| Communication | CAN + USB-C + WiFi + Bluetooth | USART / serial |
| Drive approach | TMC2209 + magnetic encoder | FOC MOSFET bridge stack |
| Angle resolution | ~0.022° | ~0.08° |
| Limit switch support | 2× connectors included | Not a highlighted dual-limit feature |
| Best fit | Distributed robotics / CAN networks | Standalone serial closed-loop retrofit |
Competitive analysis by decision factor
1. Multi-axis architecture
| Board | Multi-axis story |
|---|---|
| CANStepper | Each motor is a CAN node; dual hard limits; machine-oriented interconnect kit |
| CANBUS Stepper | CAN daisy-chain + power pass-through; up to 31 IDs; control whole chain from one USB node |
| PD Stepper | Excellent one-axis; multi-board via I2C/AUX/ESP-NOW—not a CAN fieldbus |
| SERVO42C | Serial multi-drop discipline; not native CAN |
If your project is 3–8 axes, shortlist CANStepper and CANBUS Stepper. If it is one axis with a USB charger, shortlist PD Stepper.
2. Encoder resolution
| Board | Sensing class |
|---|---|
| CANStepper | MT6701 up to 14-bit (~0.022°) |
| CANBUS Stepper | 14-bit magnetic absolute |
| PD Stepper | AS5600 12-bit class |
| SERVO42C | Published class ~0.08° |
CAN multi-axis boards lead resolution class; PD Stepper trades bits for USB-PD simplicity.
3. Power strategy
| Power style | Strong options |
|---|---|
| Machine DC rails (5–24V / industrial) | CANStepper, CANBUS Stepper, SERVO42C |
| USB-C PD charger only | PD Stepper |
| Daisy-chained power + CAN | CANBUS Stepper (power pass-through) |
4. Limit switches, homing, and machine safety
| Board | Homing / limits |
|---|---|
| CANStepper | 2× dedicated limit-switch connectors |
| CANBUS Stepper | Sensorless homing + configurable AUX |
| PD Stepper | Sensorless + AUX end-stops |
| SERVO42C | Not a dual-limit product highlight |
CNC and linear stages that must hard-stop cleanly often prefer dedicated limit ports.
5. Software, open source, and configuration UX
| Board | Software posture |
|---|---|
| PD Stepper | Open source; mature ESPHome / Home Assistant narrative |
| CANBUS Stepper | Open-source node firmware; published CAN protocol; web GUI over USB; Python examples; ESPHome; Klipper in progress |
| CANStepper | Commercial product with public specs/docs; ESP32-C3 USB-C / WiFi / BT workflows |
| SERVO42C | Makerbase serial ecosystem and community docs |
Choose open-source first if you need to fork firmware immediately. Choose a packaged product kit if you want documented electrical limits and interconnects for production-ish machines.
6. Drive character: TMC2209 silence vs FOC
| Approach | Boards |
|---|---|
| TMC2209 StealthChop / microstepping | CANStepper, PD Stepper, CANBUS Stepper |
| FOC MOSFET closed-loop | SERVO42C |
Quiet TMC2209 behavior is shared among the Things by Josh boards and CANStepper—not a differentiator between those three. SERVO42C competes on FOC closed-loop character instead.
Decision matrix by project type
| Project | Recommended starting point | Why |
|---|---|---|
| 4–6 axis robot or CNC gantry | CANStepper or CANBUS Stepper | Native CAN; pick hard limits (CANStepper) vs web GUI/open stack (CANBUS) |
| Open-source multi-axis bring-up | CANBUS Stepper | Web GUI + published protocol + OSS |
| 3D printer multi-axis retrofit | CANStepper / CANBUS / SERVO42C | Depends on CAN vs serial preference |
| Smart blinds / Home Assistant cover | PD Stepper first | ESPHome maturity; CANBUS as DC ESPHome alternative |
| Lab automation linear stage | CANStepper | Dual limits + closed loop + CAN |
| Camera slider / desk turntable | PD Stepper | USB-PD convenience |
| Agricultural multi-actuator cell | CANStepper or CANBUS Stepper | Distributed nodes on DC rails |
| Classic serial FOC experiment | SERVO42C | Makerbase ecosystem |
How the open-source boards relate to CANStepper
PD Stepper — joshr120/PD-Stepper
Best thought of as a USB-PD IoT sibling, not a CAN twin. Shared DNA with CANStepper: NEMA 17 mount, TMC2209 silence, ESP32 wireless, magnetic closed loop. Divergence: PD power, AS5600 encoder class, no native CAN multi-axis bus.
CANBUS Stepper — joshr120/CANBUS-Stepper
Best thought of as the open-source CAN multi-axis peer. Shared DNA: daisy-chain CAN, TMC2209, 14-bit encoder feedback, WiFi/BLE, multi-axis intent. Divergence:
| Theme | CANStepper emphasis | CANBUS Stepper emphasis |
|---|---|---|
| MCU | ESP32-C3 | ESP32-S3 |
| Hard limits | Dual dedicated connectors | Sensorless + AUX |
| Electrical packaging | Published 5–24V / 2.0 A RMS kit | Power pass-through + datasheet |
| UI | USB-C / wireless config workflows | Browser web GUI + flash over USB serial |
| Licensing posture | Commercial Grafito product | Open-source project + kits |
Neither “wins” universally—match the architecture to the machine.
Getting started with CANStepper
- Choose a NEMA 17 within 2.0 A RMS / 2.8 A peak
- Mount the adapter and encoder magnet
- Power with a stable 5–24V supply
- Daisy-chain CAN for multi-axis; wire limit switches for homing
- Configure over USB-C / WiFi / Bluetooth and verify closed-loop motion
Full walkthrough: How to make a NEMA 17 closed loop
Preorder: CANStepper product page
FAQ
Is PD Stepper open source?
Yes. Project home: https://github.com/joshr120/PD-Stepper.
Is CANBUS Stepper open source?
Yes. Project home: https://github.com/joshr120/CANBUS-Stepper. Kits are sold by Things by Josh.
Do CANStepper and CANBUS Stepper both use CAN?
Yes. Both are designed for multi-axis daisy-chain closed-loop NEMA 17 control over CAN. Compare limit I/O, MCU, power packaging, and software UX before choosing.
Do CANStepper and PD Stepper both use TMC2209?
Yes. Quiet StealthChop behavior is shared. Differentiate on CAN vs USB-PD, encoder bits, and multi-axis networking.
Can CANStepper do Home Assistant / blinds openers?
Yes as a custom wireless motion node (ESP32-C3). PD Stepper and CANBUS Stepper currently have stronger public ESPHome narratives; CANStepper is stronger when blinds/openers sit inside a larger multi-actuator CAN system with hard limits.
Where are live product comparison tables?
On the product page: https://grafito.in/shop/products/canstepper-adapter-board
Bottom line
| Goal | Shortlist |
|---|---|
| Open-source USB-PD single-axis IoT | PD Stepper |
| Open-source CAN multi-axis + web GUI | CANBUS Stepper |
| Packaged CAN multi-axis with dual hard limits + documented 5–24V drive kit | Grafito CANStepper |
| Serial FOC closed-loop classic | MKS SERVO42C |
Closed-loop NEMA 17 is no longer one product category—it is several. Link the official projects, read the datasheets, and pick the bus (USB-PD, CAN, or serial) that matches your machine.
Ready to build multi-axis with Grafito? Preorder the NEMA17 Closed Loop CAN Adapter Board (CANStepper).
Exploring the open-source peers?

