As science and engineering continue to advance, material handling has shifted decisively from manual workflows to automated systems. Within this transition, robotic manipulators have become a core element of modern production lines and a key direction for industrial innovation.
These machines address demanding shop-floor tasks—assembly, palletizing, picking, and point-to-point transfer—while delivering rapid response, high positioning accuracy, strong standardization, broad product variety, and mature accessory ecosystems. The result is lower labor and space cost with improved quality and throughput, which explains their adoption across numerous sectors.
In practice, robotic arms appear everywhere: parts handlers in automated assemblies, sorters in distribution centers, and more. Global leaders such as ABB, FANUC, KUKA, and Yaskawa dominate the high-end market, with regional vendors like Huazhong CNC and Siasun growing quickly. Yet many industrial arms remain bulky, expensive, and maintenance-intensive—characteristics that do not fit small-scale material movement.
To address these gaps, this article introduces a compact robotic arm built on the STM32 platform. The design favors an open hardware/ software stack that is easy to debug, compact in footprint, and economical, making it a practical option for light-duty transport applications.
The manipulator comprises the arm, articulated joints, and an end-effector. Together they form a reprogrammable motion mechanism and constitute one of the most important subsystems in any robot.
The control architecture is modular: power delivery, communications, motion-control electronics, and mechanical structure. Servomotors—commanded by a microcontroller—execute the arm’s movements.
In this implementation the arm has six degrees of freedom, each driven by an independent servo. Commands originate from an Android-based HMI, enabling joint rotation, gripping, and transfer operations (see UI illustration).
The motion controller is an STM32F407 MCU, which generates precise actuation signals to position each joint accurately.
Assembly tolerances and mechanical offsets inevitably introduce pose errors. To compensate, the arm is calibrated after assembly by connecting to the controller board, defining per-joint offsets, and storing a reference pose that subsequent motion can use as its baseline.
On production lines, manipulators paired with different end tools (e.g., welding torches or vacuum cups) perform processing and transport. In this design a mechanical gripper relocates an object between two points. The operator issues a transfer command from the mobile interface (main board keys), and the arm moves the item from point A to point B.
The arm employs a conventional linkage structure with angle control at each joint provided by servos. To extract full performance, an STM32 development board acts as the primary controller.
This STM32-centric approach mirrors best practices in embedded automation platforms: modular boards, open interfaces, and reusable software layers that cut development time and simplify integration.
Linkage joints are used throughout the design. This arrangement enables complex trajectories, improves agility during operation, and supports a wide variety of motions. Notably, many typical tasks can be realized with only two active degrees of freedom.
Six servomotors provide actuation. A servo is a position (angle) controller with high resolution, straightforward control, and simple MCU interfacing. The build uses three YF-6125MG units (25 kg·cm) and three MG996R units (13 kg·cm). The YF-6125MG models are continuous-rotation types supporting manual 360° travel and closed-loop 360° control. The MG996R units are limited-rotation devices with a 0–180° range (0° clockwise stop, 180° counter-clockwise stop).
Servos accept a PWM command from the MCU, convert it to a DC bias, and compare it with the feedback potentiometer. The resulting error sets rotation direction and magnitude. With power applied, the MCU streams PWM pulses; varying pulse width changes the commanded angle:
Using this scheme, each joint’s deflection is controlled precisely.
The system’s brain is an STM32F4-series MCU. The STM32F407 in particular combines a 32-bit core, 192 KB RAM, 112 GPIO lines, twelve 16-bit timers, two 32-bit timers, seven PWM outputs, and six serial ports—ample resources to coordinate multi-axis motion.
We therefore select the STM32F407ZET6 as the main controller to drive multiple servos concurrently. Programs are developed on a PC and deployed to the MCU; wireless communication links the STM32 with the Android app. The controller emits PWM signals to six servos, while sensors feed back live status to allow synchronized execution.
Firmware is authored and flashed with Keil, which provides vendor libraries that streamline MCU coding. The codebase uses C for efficiency, portability, and readability, enabling straightforward maintenance across different architectures.
The Android side—built in Android Studio—provides the visual interface and manages data exchange. After Wi-Fi pairing between the MCU and Android device, the STM32 posts telemetry to a server; the app then retrieves the data and issues control commands, supporting real-time operation from the handheld UI.
Before mission execution, the controller performs system initialization to ensure reliable behavior. This includes:
Variables are defined and given default values; global interrupts are enabled so the robot can receive target coordinates over the serial link and enter its task routine. After initialization, the Android app commands the arm to the pick location. Infrared sensors detect obstacles and trigger avoidance. The arm grasps the item, transports it, and releases it at the drop point. On completion, it returns to home and waits for the next instruction.
Robotic manipulators remain a cornerstone of robotics research and industrial practice. This work describes a six-DOF arm controlled by an STM32 MCU and details the end-to-end control architecture—servo selection, controller design, and the accompanying software stack.
A system simulation and on-bench verification were conducted. Requirements were derived from real engineering constraints and cell layout; firmware was debugged in Keil; and the Android UI plus communication interfaces enabled a smooth human–machine workflow. Results indicate robust joint control even in challenging environments.
Looking ahead, integrating richer sensing (force, vision, torque) will further raise precision, stability, and overall reliability of the platform.