Skip to content
Tercio S1

Wiring

5 min readFirmware v2 · protocol v2

Screw terminals for power, motor, bus and switches; small JST connectors for step/dir and an external encoder. Pin numbers and positions are on the pinout.

Terminal Pitch Wire
Power (J1) 3.5 mm 0.5–1.0 mm² (20–18 AWG)
Motor (J8), CAN (J4), Inputs (J7) 2.54 mm 0.25–0.5 mm² (24–20 AWG)

Use bootlace ferrules on stranded wire: a stray strand across two terminals of the motor connector is enough to damage the driver. The Tercio cables come with ferrules crimped.

Connect a 12–28 V DC supply to J1: pin 1 GND, pin 2 VIN. The S1 makes its own 5 V and 3.3 V from it.

Sizing the supply. A stepper driver draws much less from the supply than the coil current, because the driver chops. As a start, allow about 1 A at 24 V per S1 running a NEMA 17 at 1.5 A, and more for acceleration-heavy work. Higher voltage gives more torque at speed, up to the 28 V limit.

Several drivers can share one supply. Run a separate pair of wires from the supply to each driver (a star) rather than chaining power from board to board.

A bipolar stepper has four wires: two coils with two ends each. Connect one coil to A1 and A2 and the other to B1 and B2.

Finding the coils. Wire colours differ between manufacturers. Measure with a multimeter: two wires of the same coil read a few ohms between them, wires of different coils read open.

Direction. If the motor turns the wrong way for your machine, do not rewire it: turn on Reverse direction (Settings → Motor & driver). It needs no recalibration. If you do swap the wires of one coil, run Calibrate again.

The bus is one twisted pair (CAN-H, CAN-L) plus GND, running from the Tercio FD through every node in a line.

ComputerTercio Controlor Python, Arduino
AdapterTercio FD120 Ω built in
Node 1Tercio S1J9 open
Node 2Tercio S1J9 open
Node 3Tercio S1J9 jumper fitted
One twisted pair (CAN-H, CAN-L) plus GND runs from the adapter through every node. The two ends of the bus are terminated with 120 Ω: the adapter (built in) and the last node. Each S1 also needs its own 12–28 V supply.
  1. Chain the nodes. From the adapter’s JST connector to the first S1’s CAN terminal (J4), then from there on to the next S1, and so on. At each S1 the incoming and outgoing wires share a terminal: twist them together before the ferrule, or use twin-wire ferrules.

  2. Connect GND along the whole chain, not only CAN-H and CAN-L. Leave J4 pin 1 empty.

  3. Terminate both ends. The Tercio FD has 120 Ω built in, so it is one end. Fit the jumper on J9 of the S1 at the far end, and on no other S1. With power off, you should measure about 60 Ω between CAN-H and CAN-L anywhere on the bus.

  4. Give every S1 its own node ID before they share the bus. New drivers are all node 1. See Node IDs.

Lengths. The data phase runs at 2.5 Mbit/s, which is fast for CAN. Keep the whole bus within a few metres, the cable twisted all the way, and any branch off the line (a stub) to a few centimetres.

Two drivers with the same ID answer each other’s commands. New drivers are all node 1, so give each one a unique ID before it joins the bus:

One at a timeConnect only the new S1. In Tercio Control, open it, change Node ID under Settings → Communication, then Apply and Save to motor.
All connectedEvery driver has a unique serial number. AssignNodeId sets the ID of the driver with a given serial, even when several share ID 1. In Python: bus.discover(), then bus.assign_node_id(uid, 2).

J7 has two switch inputs, IN1 and IN2, plus 3.3 V and GND to power a sensor.

  • IN1 is the negative end of travel, IN2 the positive end.
  • With the defaults, an input is active when pulled to GND. The S1 pulls it up internally, so a plain normally-open switch between INx and GND is all you need.
  • For normally-closed switches, or sensors that drive the input high, turn off Switches pull to ground (Settings → Inputs). The internal resistor then pulls down.
  • Turn on Stop at limit switches to block motion into an active switch. Homing uses the switches either way.

J5 (JST PH, 5-pin) takes STEP, DIR and EN from a motion controller. Wire the controller’s ground to J5 pin 5. Leave pin 1 empty.

  • STEP: one step on each rising edge.
  • DIR: high means positive. Change it before the STEP edge, not on it.
  • EN: with the default EN input active low, the S1 follows the pulses while EN is low. EN is pulled up on the board, so an unconnected EN keeps the motor off. Tie it to GND, or turn off EN input active low, if your controller has no enable output.

The inputs are 3.3 V logic. Boards with 3.3 V outputs (most 32-bit printer and CNC boards) connect directly; a 5 V controller such as an Arduino Uno needs a level shifter.

Configuring step/dir mode and scaling is in Motion → Step/dir mode.

J2 (JST PHD, 2 × 6) carries both an I²C and an SPI port with 3.3 V power. Wire only the one your encoder uses:

Encoder Connect
AS5048A (SPI, 14-bit) +3.3V (1), GND (3), CS (6), MISO (8), MOSI (10), SCK (12)
AS5600 (I²C, 12-bit) +3.3V (1), GND (3), SDA (2), SCL (4)

Keep the cable short (under about 30 cm) and away from the motor wires. Then select the encoder in the settings, see Encoders.