IoTSimulator

Biaxial Stepper: How It Works, Wiring, and Example Code

A small stepper module with two shafts that can move separately in Arduino projects.
M
Muhammad Ichsan
Biaxial Stepper

This article is a beginner guide to the Biaxial Stepper module. We will start with what the part is, then look at its pinout, show how to connect it to an Arduino, and finally walk through a simple example sketch.

What makes this part worth studying is not just that it has two shafts, but that both shafts are visible and easy to compare. That gives beginners a clear way to learn stepper motion without a lot of extra hardware.

By the end of the article, you should understand how the two shafts are arranged, what the pin names mean, and why this module is a neat example of two-part motion in one small package.

Description

Biaxial Stepper two-shaft illustration
Biaxial Stepper two-shaft illustration

The Biaxial Stepper looks like one module, but it behaves like two stepper motors in one body. It has an outer shaft and an inner shaft, and each shaft can move separately.

That is the useful part: you can compare the two shafts side by side and immediately see what your code is doing. For a beginner, that is much easier to understand than a motor hidden inside a larger machine.

The module uses eight coil pins in total. Four pins belong to the outer shaft and four pins belong to the inner shaft, so each shaft gets its own pair of coil connections. That split is what makes the module feel simple once you learn the pin names.

Features

Here are the main things to know about the Biaxial Stepper:

FeatureWhat it means
Two shaftsOne module gives you an outer shaft and an inner shaft.
Eight coil pinsEach shaft has its own coil connections.
Separate movementBoth shafts can move on their own.
Good for learningHelps you practice moving two parts from one Arduino.
Small layoutKeeps the two shafts in one compact module.
Simple step controlWorks well with Arduino step-by-step motion code.

The main thing to remember is simple: the two shafts are separate, so your code can move one shaft, the other shaft, or both together. That is the part that makes the module fun to use instead of just another motor block.

Common Uses

This module is useful when you want two rotating parts in one build. It keeps the project compact while still letting each shaft move on its own.

Clock hands and dials: This is probably the clearest use case. One shaft becomes the outer hand, the other becomes the inner hand, and the whole idea makes instant sense when you see it move.

Layered motion demos: You can move one shaft by itself, or make both shafts move in different directions. That makes the module great for showing motion in a way that feels obvious instead of abstract.

Learning dual-motor control: If you are learning stepper control, this is one of the friendliest ways to practice because the result is easy to see and easy to debug.

How Does It Work?

Biaxial Stepper working diagram
Biaxial Stepper working diagram

A stepper motor moves in small steps instead of spinning freely. The Arduino turns the coils on and off in a set order, and each small change pushes the shaft a little bit forward. That is why a stepper feels more precise than a regular spinning motor.

The Biaxial Stepper uses that same idea twice. The outer shaft follows one coil order, and the inner shaft follows another. That means the two shafts can move in different ways even though they share the same module. This is the part that makes the module more interesting than a basic single-shaft motor.

If the coil order changes, the direction changes too. If the steps happen faster, the shaft turns faster. If the steps slow down, the movement becomes slower and easier to watch. So the sketch is really controlling both direction and speed through the order of the coil signals.

Because the motor moves in steps, it can also stop at a chosen position and stay there instead of drifting freely. That is one of the main reasons stepper motors are useful in pointer displays and simple positioning projects.

The order of the coil signals matters too. If the sketch sends the signals in the wrong order, the shaft may move the wrong way or feel jerky. When the order is correct, the movement is steady and easy to control. For this module, that makes the code feel very direct: the sequence you write is the movement you get.

The two shafts do not have to move the same number of steps. One shaft can turn a full circle while the other only moves a small amount, which makes it easy to create simple layered motion without a lot of code. That is a very practical detail, because it lets you build simple animations without needing a big program.

Pinout

Biaxial Stepper anatomy and pinout
Biaxial Stepper anatomy and pinout

The anatomy view helps you match the shaft areas to their pin names. Even though the module looks like one part, the pinout is split into two groups, one for each shaft. Once you see that split, the wiring stops feeling confusing and starts feeling logical.

PinShaftMeaning
A1-Outer shaftFirst outer shaft connection.
A1+Outer shaftFirst outer shaft pair.
B1+Outer shaftSecond outer shaft pair.
B1-Outer shaftSecond outer shaft connection.
A2-Inner shaftFirst inner shaft connection.
A2+Inner shaftFirst inner shaft pair.
B2+Inner shaftSecond inner shaft pair.
B2-Inner shaftSecond inner shaft connection.

Coil Logic

Stepper coils are not like a simple LED that only turns on or off. The sketch steps through a pattern, and that pattern keeps the shaft moving in small, controlled steps. That pattern is the real trick behind the module.

Two Shafts, Two Patterns

Because the module has an inner and an outer shaft, the Arduino can move one shaft while the other stays still, or make both move together. That is why it works well for clock-style demos and other two-part motion projects. The best part is that the result is easy to understand just by watching it move.

The pinout map shows which pins belong to which shaft. Keep each pair together so the motion stays smooth and the sketch behaves the way you expect. If the pair is wrong, the motion usually feels wrong too, so this is one of the few places where careful wiring really matters.

The pin names split into two groups: A1-, A1+, B1+, B1- for the outer shaft, and A2-, A2+, B2+, B2- for the inner shaft.

Pin Groups

When wiring the module, keep each coil pair together. If a shaft turns the wrong way, swapping one pair is usually enough to fix it.

Arduino With Biaxial Stepper

The preview below shows a simple Arduino setup so you can see the biaxial stepper in context before looking at the code. The two shafts are connected to different pins, so you can understand how one sketch can move both parts separately. This is a good place to pause and look at the whole picture before jumping into the sketch.

SCL
SDA
AREF
GND.1
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
IOREF
RESET
3V3
5V
GND.2
GND.3
VIN
A0
A1
A2
A3
A4
A5
A1-
A1+
B1+
B1-
A2-
A2+
B2+
B2-

For simulation, you can connect the motor directly to Arduino digital pins. For real hardware, a stepper driver is usually the safer choice because the motor needs more current than a board pin should provide. If you try it without a driver, the Arduino pins can get stressed quickly, and in practice the motor may just twitch, jitter, or stop before making a full turn. That is usually the first sign that the wiring needs a proper driver stage.

The Arduino Stepper library example uses the same basic idea: the coil order matters, the pin groups must stay in order, and the motor works best when the wiring matches the code. That is why the simulator wiring can stay simple, while a real build still needs a proper driver. The lesson here is simple: the code sequence and the wiring have to agree.

A driver helps protect the Arduino and gives the motor the power it needs. In simple terms, the Arduino sends the control signals and the driver handles the motor current. This is a good reminder that stepper motors are not just about movement; they are also about giving the motor enough power to behave cleanly.

In a learning setup, the direct connection is still useful because it shows how each coil line changes the motion. That makes the Biaxial Stepper easier to understand before you move on to a real hardware build. If you are teaching someone stepper basics, this is the kind of example that makes the idea click faster.

Code

This example uses two Stepper objects so you can control the outer and inner shafts separately. It is a simple starting point that shows the idea without adding extra complexity. What makes it useful is that it gives you a direct, readable map from code to motion.

C++ Source
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

With this sketch, the outer shaft turns one way while the inner shaft turns the opposite way. That makes it easy to see that the module really contains two separate moving parts. If you later switch to a driver-based build, the same step order still applies, so this is not throwaway example code.

How The Code Works, Part By Part

Let's break the sketch into smaller pieces so the flow is easier to understand and easier to modify later.

Library And Step Count

The sketch starts by loading the Stepper library and setting how many steps make one full turn. That gives both shafts the same reference point. Without that number, the code would not know what a full rotation means.

C++ Source
1
2
3

Create The Two Motors

Next, the sketch creates one Stepper object for the outer shaft and one for the inner shaft. Each object gets its own four coil pins, so the two parts can move separately. This is the part where the code starts matching the hardware very closely.

C++ Source
1
2

Set Speed

The setup block sets a different speed for each shaft. That makes it easy to see that the outer and inner parts do not have to move the same way. In practice, this is one of the simplest ways to make the two shafts feel distinct.

C++ Source
1
2
3
4

Move The Shafts

The loop rotates the outer shaft in one direction and the inner shaft in the opposite direction. This clearly shows that each shaft can move on its own. It is a very small sketch, but it demonstrates the whole idea of the module in a way that is hard to miss.

C++ Source
1
2
3
4
5

Repeat

The delay gives the movement a small pause before the pattern repeats. That pause makes the motion easier to follow in the simulator. It also keeps the motion from feeling too fast for a beginner to read.

C++ Source
1

Wrapping Up

The Biaxial Stepper is a good way to learn how two stepper motors can live inside one module and still be controlled separately. That combination of compact size and clear motion is the reason the part is worth studying.

Once you understand the pin groups, the two shaft layout, and the idea of repeated stepping, you can use this part confidently in small motion projects. If you only remember one thing from the article, remember this: the shaft that moves is the shaft that your code is stepping.

New

Wait! We're building more...

Our laboratory is currently preparing a lot of exciting new projects using Biaxial Stepper. Stay tuned for the upcoming massive update!

Projects Using Biaxial Stepper

Explore practical implementations

No official projects found for this component yet.

Muhammad Ichsanul Fadhil
About Writer

Muhammad Ichsanul Fadhil

"I'm a developer and hardware enthusiast with a passion for IoT. I love experimenting with new components and writing down everything I learn to help others build their own projects."

Share this article

Share it with your favorite channel.