Arduino-based motor controller and software for rescued Scorbot ER III robot arm.

Video of Scorbot start up and simple motion demo
The project is complete as a demostration of reviving the Scorbot, but future exploration could include:
scorbot.h is where I’m storing definitions and shared functions/helpers/ has working test fileshelpers/pin_test/pin_test.ino was looking for shorts, etc in the arduino mega pins, due to my clumsy work. surprisingly I got it right on the first tryhelpers/motor_only_test/motor_only_test.ino just moves the motors back and forthhelpers/base_motor_test/base_motor_test.ino is testing for homing and encoders for just the base motoradded Queue system to make sequence of actions
scorbot joint cover with microswitch cam.stl, printed and replaced cams. 1 original cam remainsThis is a messing around, learning project inspired by a free robot arm. The Scorbot ER III is a circa 1995 robot. So simple, maybe even I can work with it!
The goals of the project are to
| Specification | Value |
| Mechanical Structure | Vertically articulated |
| Axes | 5 axes plus gripper |
| Control | 8 axes simultaneously |
| Working Envelope | |
| Axis 1: Base Rotation | 310° |
| Axis 2: Shoulder Rotation | +130° / –35° |
| Axis 3: Elbow Rotation | ±130° |
| Axis 4: Wrist Pitch | ±130° |
| Axis 5: Wrist Roll | Unlimited |
| Maximum Working Radius | 610 mm (24.4”) |
| Gripper Opening | 75 mm (3”) without rubber pads 65 mm (2.56”) with rubber pads |
| Maximum Work Load | 1 kg (2.2 lb.) |
| Transmission | Gears, timing belts and lead screw |
| Actuators | 6 DC servo motors with closed-loop control |
| Feedback | Optical encoders on all axes |
| Hard Home | Fixed reference position on all axes |
| Repeatability | ±0.5 mm (±0.02”) |
| Maximum Speed | 330 mm/sec. (13”/sec.) |
| Weight | |
| Robot Arm | 11 kg (24 lb.) |
| Controller | 5 kg (11 lb.) |
The Scorbot cable connector is an DB 50 cable. Connectors and breakout boards that fit are available at Amazon or Ali Express. DB 50 connector Specification DB50 diagram
Here is the pin numbers (looking at the male scorbot cable connector pins)
────────────────────────────────────────────────────────────────────────────────────────────
╲ (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) ╱
╲ (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) ╱
╲ (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) ╱
─────────────────────────────────────────────────────────────────────────────────────
| DB-50 Pin | Motor | Joint | Signal | Arduino Pin | L298N Board | L298N Input | L298N Output | Notes |
|---|---|---|---|---|---|---|---|---|
| 1 | 2 | Shoulder | Encoder P0 | 36 | ||||
| 2 | 1 | Base | Encoder P0 | 34 | ||||
| 3 | 5 | Wrist Roll | Encoder P1 | 43 | ||||
| 4 | 3 | Elbow | Encoder P1 | 39 | ||||
| 5 | 1 | Base | Encoder P1 | 35 | ||||
| 6 | 5 | Wrist Roll | Microswitch | 50 | ||||
| 7 | 2 | Shoulder | Microswitch | 47 | ||||
| 8 | 4 | Wrist Pitch | Microswitch | 49 | ||||
| 9 | 5 | Wrist Roll | Encoder LED | 5V via 47Ω | ||||
| 10 | 3 | Elbow | Encoder LED | 5V via 47Ω | ||||
| 11 | 1 | Base | Encoder LED | 5V via 47Ω | ||||
| 12 | 6 | Gripper | Motor + | 32 | 3 | 3 | 3 | |
| 13 | 5 | Wrist Roll | Motor + | 30 | 3 | 1 | 1 | |
| 14 | 4 | Wrist Pitch | Motor + | 28 | 2 | 3 | 3 | |
| 15 | 3 | Elbow | Motor + | 26 | 2 | 1 | 1 | |
| 16 | 2 | Shoulder | Motor + | 24 | 1 | 3 | 3 | |
| 17 | 1 | Base | Motor + | 22 | 1 | 1 | 1 | |
| 18 | 5 | Wrist Roll | Encoder P0 | 42 | ||||
| 19 | 6 | Gripper | Encoder P1 | 44 | ||||
| 20 | 4 | Wrist Pitch | Encoder P1 | 41 | ||||
| 21 | 2 | Shoulder | Encoder P1 | 37 | ||||
| 22 | 6 | Gripper | Microswitch | - | manual says not connected | |||
| 23 | 1 | Base | Microswitch | 46 | ||||
| 24 | 3 | Elbow | Microswitch | 48 | ||||
| 25 | 6 | Gripper | Encoder LED | 5V via 47Ω | ||||
| 26 | 4 | Wrist Pitch | Encoder LED | 5V via 47Ω | ||||
| 27 | 2 | Shoulder | Encoder LED | 5V via 47Ω | ||||
| 28 | 6 | Gripper | Encoder GND | GND | ||||
| 29 | 5 | Wrist Roll | Switch & Encoder GND | GND | ||||
| 30 | 4 | Wrist Pitch | Switch & Encoder GND | GND | ||||
| 31 | 3 | Elbow | Switch & Encoder GND | GND | ||||
| 32 | 2 | Shoulder | Switch & Encoder GND | GND | ||||
| 33 | 1 | Base | Switch & Encoder GND | GND | ||||
| 34 | 6 | Gripper | Encoder P0 | 45 | ||||
| 35 | 4 | Wrist Pitch | Encoder P0 | 40 | ||||
| 36 | 3 | Elbow | Encoder P0 | 38 | ||||
| 37 | - | - | - | - | ||||
| 38 | - | - | - | - | ||||
| 39 | - | - | - | - | ||||
| 40 | - | - | - | - | ||||
| 41 | - | - | - | - | ||||
| 42 | - | - | - | - | ||||
| 43 | - | - | - | - | ||||
| 44 | - | - | - | - | ||||
| 45 | 6 | Gripper | Motor - | 33 | 3 | 4 | 4 | |
| 46 | 5 | Wrist Roll | Motor - | 31 | 3 | 2 | 2 | |
| 47 | 4 | Wrist Pitch | Motor - | 29 | 2 | 4 | 4 | |
| 48 | 3 | Elbow | Motor - | 27 | 2 | 2 | 2 | |
| 49 | 2 | Shoulder | Motor - | 25 | 1 | 4 | 4 | |
| 50 | 1 | Base | Motor - | 23 | 1 | 2 | 2 | |
| - | 1 | Base | PWM (motor speed) | 7 | 1 | ENA | ||
| - | 2 | Shoulder | PWM (motor speed) | 6 | 1 | ENB | ||
| - | 3 | Elbow | PWM (motor speed) | 5 | 2 | ENA | ||
| - | 4 | Wrist Pitch | PWM (motor speed) | 4 | 2 | ENB | ||
| - | 5 | Wrist Roll | PWM (motor speed) | 3 | 3 | ENA | ||
| - | 6 | Gripper | PWM (motor speed) | 2 | 3 | ENB | ||
| - | - | - | - | 52 | Emergency Stop Button |
| Component | Connection | Source | Notes |
|---|---|---|---|
| Arduino Mega | 12V Vin | Common 12v plug or Barrel Jack | Powers logic |
| Arduino Mega | GND | Common Ground | Shared with all components |
| L298N Board 1-3 | 12V | 12V 10A Power Supply | Motor power |
| L298N Board 1-3 | GND | Common Ground | Shared ground |
| Encoder LEDs (6x) | 5V | Arduino 5V via 47Ω resistor | One resistor per encoder |
| Encoder LEDs GND | GND | DB-50 pins 28-33 | Common ground |
| Function | Arduino Pin | Purpose |
|---|---|---|
| TX | 18 | Serial1 - transmit to joystick controller |
| RX | 19 | Serial1 - receive from joystick controller |
| Project Name | Associated Web Pages | Brief Description |
|---|---|---|
| Scorbot | • GitHub My Name is Scorbot Scorbot learns to draw” |
Arduino MEGA-based controller for Scorbot ER-V with 6-encoder system, custom PCB shield, and Python drawing capabilities. Complete reverse engineering from junkyard condition. |
| robotic-arm | • Scorbot ER-III Manual | Custom controller replacement for Scorbot-ER III with serial and hard-coded control modes. Arduino-based system with comprehensive reference documentation. |
| Scorbot | • Author’s Portfolio • CS 287: Advanced Robotics Course |
Arduino-based joystick controller for Scorbot robotic arm as cost-effective alternative to expensive original controller. Georgia Tech ECE project. |
| Scorbot-ER-V-Simulator-Controller | • Hackster.io Project • Arduino Project Hub • Author’s Website • ResearchGate Profile |
Professional-grade MATLAB simulation software and hardware controller for Scorbot ER-V+ with PID control, ROS integration, and industrial safety features. |
| OpenScorbot | • Author: Software Engineer at Casa-Systems | Complete open-source hardware/software controller replacement for SCORBOT ER-IX. |
| ScorBotToolbox | • USNA Documentation • MATLAB File Exchange • Legacy MTIS Toolbox |
MATLAB toolbox for interfacing and simulating Intelitek ScorBot-ER 4U educational robot with comprehensive control and visualization capabilities. |
| ED-Scorbot | • University Research Page • ROS Simulation |
Event-based Scorbot ER-VII platform for neuromorphic research with spike-based controllers, FPGA integration, and spiking neural networks. |
| scorbot | • Limited documentation available | Scorbot ER-VII implementation with basic functionality. |
| SCORBOT-ER-VII | • Gazebo simulation files included | Contains simulation files for Scorbot ER-VII in Gazebo robotics simulator environment. |
| scorbot-simulator | • YouTube Demo • Documentation |
Unity-based Scorbot simulator with graphic interface, includes video demonstrations and comprehensive Doxygen documentation. Built with Unity 2017.4.1f1. |
| openScorbot | • Spanish documentation included | Free controller for Scorbot ER-4U with Python 3.6.9 and Qt 5 Designer GUI. |
| scorbot | • Processing-based interface documentation | Processing code for mouse-controlled Scorbot-ER V Plus with coordinate mapping system. Future goal: Game of Life with marbles. |
| scorbot_config | • CraigCode1010.com • Complete SAC project documentation |
Configuration files for Scorbot integration with MoveIt motion planning framework. Part of SAC (Scorbot Arm Control) project. |
| sac_description | • Project Documentation • ROS system topology details |
ROS package with URDF descriptions for Southern Adventist University robotic arm simulation, includes Scorbot modeling for Gazebo. |
| r2d3 | • Cross-platform simulator documentation | Free robotic manipulator simulator using Blender and Python, specifically designed for Scorbot ER-V with forward/inverse kinematics and ACL programming support. |
| sboter4u | • Scorbot ER4U robot configuration using Moveit |