TinyG vs gShield and grbl: which CNC controller do you need?
Both drive stepper motors from G-code and use the same TI DRV8818 driver chips. They differ in how many motors they run, how they plan motion and whether you need an Arduino.
The short answer
- Choose TinyG if you want a self-contained controller, need a fourth motor (dual-motor gantry or a rotary axis), or want jerk-controlled motion for smoother, faster moves.
- Choose gShield if you have a 3-axis machine, already own an Arduino Uno and want to run grbl, or want to run g2core on an Arduino Due.
Side-by-side comparison
| TinyG v8 | gShield v5 + Arduino | |
|---|---|---|
| Price | $129.99 | $49.99 plus an Arduino |
| What it is | Complete controller board | Stepper driver shield for an Arduino |
| Motor outputs | 4 | 3 |
| Axes | 6 (XYZ + ABC rotary), motors mappable to any axis | 3 (X, Y, Z), motors fixed to axes |
| Dual-motor gantry | Map two motors to one axis | Wire two motors to one driver |
| Stepper drivers | TI DRV8818, up to 2.5 A per winding | TI DRV8818, up to 2.5 A per winding |
| Microstepping | Up to 1/8 | Up to 8× |
| Motor supply | 12–24 V DC | 12–30 V DC |
| Firmware | TinyG | grbl (Uno) or g2core (Due) |
| Acceleration planning | Jerk-controlled (S-curve) | grbl: constant acceleration (trapezoid); g2core: jerk-controlled |
| Host interface | USB; text and JSON | Arduino USB; grbl text commands or g2core JSON |
Motion planning: why jerk control matters
grbl ramps velocity up and down at a constant acceleration, so the velocity profile is a trapezoid and the acceleration switches on and off abruptly. TinyG and g2core limit jerk, the rate of change of acceleration, which gives S-shaped velocity curves. Speeds change without discontinuities, so you get a better surface finish, less vibration, chatter and skipped steps, less wear on the machine, and motors that run smoother and cooler. Because the motors never see an instantaneous change in acceleration, higher accelerations are possible too. The TinyG wiki explains this in Jerk-controlled motion explained.
TinyG and grbl: related, but not the same
TinyG was forked from grbl in early 2010 to build a 6-axis controller with
jerk-controlled acceleration planning, so the two share a lot: almost the
same G-code, homing cycles, feedhold (!), cycle start
(~) and software reset (Ctrl-X). Synthetos works on both
projects and sells hardware for each because they serve different needs.
Running g2core on gShield
gShield also fits the Arduino Due, which runs g2core, the ARM successor to the TinyG firmware. That gives you jerk-controlled motion on three axes for the price of a gShield and a Due.
Still not sure?
Check the FAQ or contact us with a description of your machine and motors.