A motion controller is the brain that converts trajectories into amplifier commands, so the first spec to lock is the number of coordinated axes and the loop architecture: open-loop stepper, closed-loop stepper with encoder, or servo with analog/PWM/digital command. The Ready Motion Controller variant documented at readymotioncontrol.com modifies GRBL 0.9j to drive 32 outputs across up to 8 axes for laser, mill, lathe, plasma, and 3D-printer retrofits [S1].
For factory-floor servo lines, Mitsubishi's Q173DSCPU and Q172DSCPU motion CPUs are designed to slot into a MELSEC-Q Multiple CPU rack alongside a PLC CPU, scaling axis count and I/O through dedicated servo system controllers [S3]. Buyers in 2026 should treat the choice as a stack decision: motion engine, drive bus, feedback, and HMI/network layer must all be specified together rather than picked from separate catalogs.
Axis Count and Coordinate Frame: From 1D to 8-Axis CNC
Stepper-focused boards such as the PCI-7332, PXI-7332, PCI-7334, PXI-7334, PCI/PXI-7342, -7344, -7352, -7354, -7356, -7358, and -7390 (NI 73xx family) expose 1 to 4 axes per card, with the higher 7356/7358 parts adding advanced servo features [S4]. Compact CNC retrofits typically only need 3 to 5 axes (X, Y, Z, plus A-rotation and a tool axis), so a single 8-axis board is enough headroom for most job shops [S1].
Multi-CPU motion controllers like the MELSEC Q173DSCPU and Q172DSCPU scale into the dozens of axes by adding servo amplifiers on a dedicated high-speed bus, with the motion CPU handling interpolation while the PLC CPU runs the machine sequence logic [S3]. For OEMs building packaging, semiconductor, or lithium-ion cell-handling lines, axis count above 8 almost always means moving from a GRBL-class board to a PLC-based motion CPU.
Open-Loop vs Closed-Loop: Stepper Output Mode, Encoder Edges, P-Command
Open-loop stepper control is the cheapest path and is supported natively on the 73xx family: set Type to Stepper, pick Open Loop, and set velocity/acceleration/deceleration low enough for the motor to keep up [S4]. The trade-off is lost-step recovery, which on a long CNC gantry shows up as a positional drift that no software limit can see.
Closed-loop options on the same controller family include Stepper Loop Mode set to P-Command for P-Command motors, plus encoder feedback where the controller reads every edge of a quadrature signal, producing four counts per electrical cycle for higher resolution [S4]. For high-inertia axes (large routers, heavy gantries), closed-loop stepper or full servo with an encoder is the safer spec, because a stall no longer silently corrupts the part.
Command Protocol and Drive Bus: Pulse Train, Analog, EtherCAT, SSCNET

At the drive interface, three families dominate. Pulse-and-direction stepper drives are the simplest and pair with any board exposing step/dir outputs, including the GRBL-derived 8-axis controllers that handle Stepper Motor Resolution, Stepper Drives Pulse Control, Invert Step Signal, and Invert Direction Signal in software [S1].
Analog-command servo drives (±10 V velocity/torque) sit in the middle and are typical for legacy servo retrofits. Digital fieldbus is the modern default: SSCNET for the MELSEC Q-series motion CPUs [S3] and EtherCAT for most third-party multi-axis systems. A common selection error is to specify a controller and a drive from different vendors without confirming the supported bus profile, then discover the controller cannot stream the cyclic position commands the drive expects.
Programming Model: G-Code vs PLC Ladder vs IEC 61131-3 vs C/C++
The programming model decides who on staff can commission the machine. GRBL-derived boards speak standard G-code with configurable soft limits, hard limits, homing feed rate, homing limit debounce, homing pull-off distance, and an offline G-code visualizer, which suits machinists [S1]. The Ready Motion Software exposes those settings over a web UI reachable from a phone, tablet, or PC browser, so the operator side is decoupled from the controller hardware [S1].
PLC-based motion CPUs in the MELSEC family are programmed with the MELSEC engineering toolchain and ladder/FBD/ST, which is familiar to plant electricians but alien to a CNC operator. NI 73xx controllers are configured through Measurement and Automation Explorer (MAX) plus NI-Motion driver code in C/C++, LabVIEW, or .NET [S4]. A useful rule of thumb: if the machine speaks G-code to a human, stay on a G-code controller; if it speaks I/O tags to a PLC, stay on a PLC motion CPU; if the team writes in LabVIEW or C, the NI 73xx family fits best [S4].
Feedback, Limits, and Safety I/O: Encoders, Home, Inhibits

Every serious motion controller must handle home, forward/reverse limits, and an inhibit output. During commissioning the typical best practice is to disable all of these signals first (Forward Limit Switches, Reverse Limit Switches, Home Switch, Forward Software Limit, Reverse Software Limit, Inhibit Output) and prove the basic move loop with a Relative Position move of one full motor revolution [S4].
Only after the motor reliably turns the commanded distance do you re-enable limit filters, homing feed rate, and homing pull-off distance. On a G-code controller, the equivalent soft-limit and hard-limit enable bits, plus a Homing Feed Rate and a Homing Direction switch, sit in the advanced settings page [S1]. Skipping this staged bring-up is the single most common reason a brand-new controller trips a fault on first power-up.
Comparison: Three Main Controller Classes Against Decision Criteria
Lining the three realistic options against axis count, loop type, programming, and approximate fit: (1) GRBL-derived 8-axis board, up to 8 axes, open-loop stepper or closed-loop stepper with external encoder, G-code, web UI, best for sub-$2k CNC retrofits and educational machines [S1]; (2) NI 73xx PCI/PXI motion controller, 1 to 4 axes per card, open or closed-loop stepper plus servo, P-Command and quadrature encoder feedback, MAX plus C/LabVIEW, best for lab automation and test stands [S4]; (3) MELSEC Q173DSCPU/Q172DSCPU motion CPU in a multi-CPU rack, dozens of axes, full servo over SSCNET, ladder/FBD/ST, best for factory servo lines and packaging machines [S3].
Who should NOT pick the GRBL board: any application where a missed step is a safety event, where the line must synchronize with a PLC sequence, or where the customer audit requires a vendor with a formal functional safety cert. Who should NOT pick a MELSEC Q-series motion CPU: a two-person job shop retrofitting a manual Bridgeport, where the engineering cost of a multi-CPU rack and SSCNET wiring dwarfs the cost of the mill itself. Industrial buyers comparing adjacent categories can also reference this PLC supplier sourcing guide and the related industrial PC sizing guide for the controller and edge compute side of the same stack. For the broader selection logic on industrial motion control architecture, see the motion controller reference and the linear motion primer.
Commissioning Workflow and Trackable Signals

A clean commissioning flow on a 73xx-class card is: install NI-Motion, open MAX, navigate to the NI Motion Device, expand the PCI-73xx tree, set Axis Configuration to Stepper, set Stepper Steps Per Revolution, Loop Mode, Polarity, Output Mode, and Pull-in Tries, disable all motion I/O, click Initialize, then run a 1-D Interactive Relative Position move of one revolution [S4]. If the motor turns exactly one revolution, the loop is healthy; if it under- or over-shoots, the Stepper Steps Per Revolution is wrong; if it runs backward, swap phase A/A- or B/B- between drive and motor [S4].
Trackable signals to watch in the next procurement cycle: GRBL-fork boards continuing to add closed-loop stepper support and modest axis-count bumps, MELSEC Q-series migration paths into MELSEC iQ-R motion, and NI 73xx cards being phased toward newer PXI-based servo controllers. The 8-axis, 32-output class documented on 2026-08-14 [S1] and the Q173DSCPU/Q172DSCPU configuration page updated 2026-07-12 [S3] are the two concrete reference points to anchor a 2026 spec against.
The underlying component specifications are covered under pid controller.