Making NX28

NX28 Small Quadruped Robot with M5AtomS3R

Making NX28

Agenda

 1. Overview
 2. Components
 3. Features
 4. 3D Modeling
 5. Assembly
 6. M5Cardputer Operation
 7. Demonstration
 8. Source Code

1. Overview

I made a small quadruped robot using the M5Stack M5AtomS3R.
It has an OLED SSD1306 display for expressive eyes, and it can be edited and controlled from an M5Cardputer.
The goal was to make it as simple, low-cost, cute, and cool as possible.

NX28_1
NX28_2
NX28_3
NX28_4

2. Components

The main components are listed below.

1) M5 Atom S3R
2) OLED SSD1306 128 x 64
3) SG92R servos x 5
4) FS403 servos x 2
5) 16340 3.7V lithium-ion battery
6) M5Cardputer for motion editing and control
7) M5 Joy2

The wiring is shown below.
NX28_5 Connection

3. Features

1) Forward, backward, side movement, and left/right turning
2) Eye expressions using an OLED SSD1306 display
3) BLE control from the M5Cardputer
4) Motion editing on the M5Cardputer
5) Trim adjustment for each servo
6) Motion data storage on an SD card
7) Real-time joystick control

4. 3D Modeling

I designed the robot in 3D CAD while keeping the structure as small and simple as possible.
The placement of the servos, battery, M5AtomS3R, and OLED was checked carefully to balance ease of assembly and appearance.

NX28_6 3D Modeling
NX28_7 3D Modeling
NX28_8 3D Modeling

5. Assembly

The servos, controller board, OLED display, and battery are installed into the 3D printed parts.
I assembled everything compactly while making sure the wiring does not interfere with the leg movement.

NX28_9 Assembly
NX28_10 Assembly

6. M5Cardputer Operation

The M5Cardputer is used for motion editing, servo trim adjustment, saving data to the SD card, and joystick control.
It communicates with the robot over BLE, so the edited motion can be tested immediately on the robot.

NX28_11 M5Cardputer Operation
NX28_12 M5Cardputer Operation

Motion Playback Keys

F : Forward
C : Back
V : Right
X : Left
G : Right Turn
D : Left Turn
H : Home position

Servo Editing

[ : Select previous servo
] : Select next servo
+ : Increase value
- : Decrease value
Hold the key to change the value faster.

Trim Adjustment

T : Switch Trim Mode

MOV : Edit motion offset
TRM : Edit servo trim

Trim values are used to compensate for servo mounting angle errors and individual robot differences.

Step Control and Motion Length

, : Move to previous step
. : Move to next step
< : Shorten motion length
> : Extend motion length

Each motion step can be edited to adjust walking timing and posture.

Save

S : Save all data to the SD card

The following data is saved.
・Motion data
・Trim values
・Motion length

Joystick Modes

Press the joystick button to switch modes.

CTRL:1
Up : Forward
Down : Back
Right : Right Turn
Left : Left Turn

CTRL:2
Up : Forward
Down : Back
Right : Right
Left : Left

JOY:DIRECT
The joystick directly controls the head servos.
X axis : Servo 1 Head Roll
Y axis : Servo 2 Head Pitch

7. Demonstration

Making Expressions with the Eyes

The OLED display shows eye expressions such as normal eyes and smiling eyes.
By changing the eye shape, the robot can look more lively and expressive, not just mechanical.

NX28_13 Face Expression
NX28_14 Face Expression

Walking Motion

By coordinating six servos, the robot can move forward, backward, sideways, and turn left or right.
The motion can be adjusted on the M5Cardputer while checking the actual movement of the robot.

NX28_15 Walking Motion
NX28_16 Walking Motion

Video

This is a demonstration video of the robot in action.

8. Source Code

The sketches, M5AtomS3R code, M5Cardputer code, and 3D model files are available on GitHub.

Source Code on GitHub

M5AtomS3R : NX28_M5AtomS3R
M5Cardputer : NX28_M5Cardputer
3D Model : 3D_model_3mf
SD Card Files : SDCardFiles

Update History

  • 2026.6.30Created the page for NX28, a small quadruped robot with M5AtomS3RNEW 

inserted by FC2 system