We present the NeuralNexus Arm, an open, low-cost 6-DOF robotic manipulator built by an undergraduate engineering team, together with the design decisions and debugging experience needed to reproduce it. The arm is driven by a single STM32H743 microcontroller on a custom printed circuit board (PCB) and combines two stepper-driver strategies on one controller: push-pull 3.3 V step/direction outputs for onboard TMC2209 drivers on the three wrist joints, and open-drain outputs for external CL57T and DM542 drivers on the three high-torque proximal joints. We describe the mechanical design, mixed-driver electronics, interrupt-driven firmware, a MATLAB/Simscape-based inverse-kinematics pipeline, a browser-native control interface using the Web Serial API, and a lightweight vision pipeline for object localisation and autonomous pick-and-place tasks. We also document non-obvious hardware and firmware failure modes encountered during the transition from a development board to the custom PCB as reproducibility guidance. All design files and firmware are released openly. The platform actuates all six axes under coordinated control at a 2 kHz update rate and executes both manual and pre-recorded motions from the browser interface.
Figures & tables
Robot
Cost ($)
DOF
Controller
Motor
Key Difference from NeuralNexus
HELENE
<1160
6
ESP32 + ROS Host
Stepper
Single closed-loop stepper driver family throughout (no mixed architecture); ROS-based control, not browser-native; the only competitor with a published ISO 9283 repeatability validation.
iArm
≈250
6
Raspberry Pi 4 + ROS
Serial Bus Servo
Servo-actuated, not stepper-driven; far lower torque/payload class; ROS-based host software rather than a zero-install browser interface.
EduSCARA
≈150
4
STM32 Nucleo + Python API
Hobby Servo
Only 4-DOF SCARA kinematics (RRPR), not a full 6-DOF articulated arm; potentiometer feedback rather than closed-loop stepper/encoder joints.
AR4 (MK3/MK4)
≈2000
6
Teensy 4.1 + Arduino Nano/Mega
Open-Loop Stepper
Uses one driver family only (DM542T/DM320T, same open-loop class at different current ratings) – not a mixed architecture; encoders exist but closed-loop correction is not implemented in firmware; Arduino/ROS control, no browser-native UI; non-commercial license restricts redistribution/resale.
PAROL6
≳350
6
Custom STM32 Board + Python Commander GUI
Stepper (Closed-Loop Upgradable)
Single driver family on its custom board (closed-loop is an optional FOC-driver upgrade, not a factory heterogeneous design); control is via a desktop Python app, not a browser; closest analog to our custom-PCB approach but without driver-family mixing.
Forte
<215
6
Off-the-Shelf Drivers, No Custom Board
Stepper (Capstan/Belt Drive)
No custom controller PCB at all – uses off-the-shelf drivers with a host PC; achieves low cost via a capstan-cable/belt drivetrain rather than gearbox+belt reductions; open-source release status unconfirmed.
TABLE I : Comparison of NeuralNexus with representative open-source robotic manipulators.
Figure 2Figure 3Figure 4Figure 5Figure 6Figure 7
Fig. 2 : The assembled NeuralNexus Arm.
Fig. 3 : Custom STM32H743 controller PCB, showing the onboard TMC2209 drivers for the wrist joints and the terminals to the external closed-loop drivers.
Joint
Motor class
Driver
GPIO mode
J1 (base)
NEMA 23
DM542
Open-drain
J2 (shoulder)
NEMA 24
CL57T
Open-drain
J3 (elbow)
NEMA 24
CL57T
Open-drain
J4 (wrist 1)
NEMA 17
TMC2209 (onboard)
Push–pull
J5 (wrist 2)
NEMA 17
TMC2209 (onboard)
Push–pull
J6 (wrist 3)
NEMA 17
TMC2209 (onboard)
Push–pull
TABLE II : Per-joint actuator and driver mapping.
Fig. 4 : Controller architecture. A single STM32H743 drives two stepper-driver families over separate electrical interfaces: push–pull 3.3 V logic to the onboard TMC2209 wrist drivers, and open-drain, common-anode 5 V signalling to the opto-isolated external closed-loop drivers on the proximal joints. Per-joint AS5047P magnetic encoders return over SPI [ 15 , 19 , 17 , 16 , 20 ] .
Motor class
Joint(s)
Supply voltage
NEMA 17
J4–J6 (wrist)
12 V
NEMA 23
J1 (base)
24 V
NEMA 24
J2, J3 (shoulder, elbow)
48 V
5 V (opto)
J1–J3 driver inputs
5 V (buck from 12 V)
Logic (MCU)
—
3.3 V (LDO)
TABLE III : Motor-supply rails by motor class.
Joint
Translation (m)
Joint Axis
Type
J1
(0,0.017,0)
(0,0,−1)
Revolute
J2
(0,−0.075,−0.138)
(0,0,1)
Revolute
J3
(0.310,0,−0.024)
(0,0,1)
Revolute
J4
(−0.060,0.160,−0.051)
(0,0,1)
Revolute
J5
(0.041,0,−0.1065)
(0,0,1)
Revolute
J6
(0,0.110,−0.041)
(0,0,1)
Revolute
TABLE IV : Joint frame transformations extracted from the MATLAB rigidBodyTree model.
Fig. 5 : Kinematic modelling and motion execution workflow. The manipulator is modelled using a MATLAB rigidBodyTree , inverse kinematics generates the required joint angles, and the computed commands are transmitted to the STM32H743 controller for synchronized stepper motor actuation.
Fig. 6 : Browser-native control panel (Web Serial API).
Fig. 7 : Detected 8×5 inner-corner patterns from nine calibration images captured at different positions and orientations.
Fig. 8 : Detected object-processing stages used for target localisation.
Fig. 9 : Visualisation of planar homography calibration using the 32mm chessboard. The detected image-plane corner points are mapped to a top-down representation of the calibrated workspace.
Subsystem
Cost ($)
Actuation — motors, drivers, gripper
$300.38
Control, PCB & sensing electronics
$252.36
Vision compute
$178.80
Mechanical parts (gears, pulleys, belts, bearings)
$296.82
Local hardware — misc. components, fasteners
$149.96
Enclosure / structural fabrication
$293.08
TABLE V : Bill of materials summary by subsystem. Full itemised breakdown in Appendix Acknowledgment .
Fig. 10 : Selected frames from Video 2, showing a full pick-and-place sequence: https://youtube.com/shorts/Vg3pZLFrEdM .
Metric
Value
Positioning repeatability
±1.3 mm
Pick-and-place cycle time
12.5 s
Task success rate
97%
Maximum payload
2000 g
Maximum joint speed
10∘ /s
TABLE VI : Experimental Performance Summary
Item
Qty
Unit ($)
Total ($)
Supplier
Used in
Actuation — motors, drivers, gripper
NEMA 23 stepper motor (Local)
1
$22.65
$22.65
Local Shop
J1 (base)
NEMA 17 stepper motor (Local)
3
$7.45
$22.35
AliExpress
Wrist joints
NEMA 24 stepper motors CL57T drivers+ gearboxes + PSU (StepperOnline)
2
$119.20
$238.40
Stepper Online
J2, J3
DM542 stepper driver (Leadshine, DM542)
1
$9.83
$9.83
Local Shop
J1
Gripper / end-effector hardware (3D Printed)
—
—
$7.15
Local Shop
Gripper
TABLE VII : Detailed bill of materials. Costs converted from LKR at 1 LKR = $0.00298 (Aug. 2026).