Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

SCARA ARM

Scara arm + Custom controller

A raw, high-performance C++ firmware built for a 4-Axis layout SCARA robot, powered by an ESP32 on a Makerbase TinyBee v1.0 board. It features a custom inverse kinematics engine and a minimalist serial-terminal-like that bypasses all heavy G-code bloatware.

Watch it here: https://www.youtube.com/watch?v=ozRpFa_8epw

The Main Architecture Loop

Every cycle, the ESP32 firmware coordinates tasks in the following sequential order:

 [ Web Client Request ]
           │
           ▼
 1. WebServer Parser ──────► Tokenizes HTTP GET request strings (raw text)
           │
           ▼
 2. Command Router   ──────► Matches actions (MOVE, IK, LOCK, SETHOME)
           │
           ▼
 3. Inverse Kinematics ────► Translates Cartesian space (X,Y,Z) to Joint Angles
           │
           ▼
 4. Bresenham Driver ──────► Computes multi-axis synchronized microstep pulses
           │
           ▼
 5. Virtual I2S Output ────► Shifts bits to hardware registers via high-speed I2S
           │
 └─────────┴───────── (Next Request / Loop Listen)

Features

  • 4-axis kinematics engine: 3 x Nema 17 motors with 13.7:1 planetary gearboxes. Keeps the end-effector perfectly parallel to the ground.
  • Closed-Loop Precision: Integrated with MKS Servo42C drivers to guarantee zero missed steps, high-speed tracking, and real-time error correction.
  • I2S hardware acceleration: Uses ESP32's native I2S DMA to clock a virtual 24-bit shift register network, saving physical GPIOs.
  • Raw web interface: A zero-dependency, barebone web interface acting as a remote Wi-Fi shell.
  • Configurable script: The script comes up out of the box with simple configurable variable.

Web interface

Hardware Configuration

Before flashing the project, make sure your hardware matches these specifications:

  • Board: Makerbase TinyBee v1.0
  • Drivers: Makerbase MKS Servo42C (Closed-loop Stepper Controllers)
  • Actuators: 3 x Nema 17 (48mm body) + 13.7:1 Planetary Gearbox
  • Power Adapter: 24V - 12A
  • I2S Register Pins: BCK (GPIO 25), WS (GPIO 26), DATA (GPIO 27)
  • Virtual Pins:
    • Axis X (Shoulder): Enable (0), Step (1), Dir (2)
    • Axis Y (Elbow): Enable (3), Step (4), Dir (5)
    • Axis Z (Quill): Enable (6), Step (7), Dir (8)

How to Clone and Build

You can compile this project using PlatformIO CLI or the Arduino IDE with the ESP32 core installed.

Cloning the Project

# Clone the repository
git clone <YOUR_REPOSITORY_URL>

The compiled binary should be successfully flashed via the micro-USB port on your TinyBee board.

License

This project is licensed under the MIT License.

About

A attempt to connect virtual software to real world problem.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages