Milos is back with an upgraded version of his low-cost robot arm project! After building a popular 3D-printed arm in 2023, he's now redesigned it with more powerful servos, real bearings, and improved electronics—all while keeping costs down. In this video, he walks through the new build, tests out its movement, and shows how Python scripts can record and replay motion with position feedback. Milos made the robot arm as cheap as possible using 3D printing, servo motors, and marbles for the custom designed bearings. While the robot arm turned out good, he wasn’t satisfied with its performance since the motors were not strong enough. Now we have a bigger and stronger arm, one that is comparable in size to the BRACCIO robot arm from Arduino but with the same goal of making it as low cost as possible!
Watch the Video
The new arm is trying to keep the same functionality like the last robot arm, but just bigger and stronger. This includes new DFROBOT servo motors with position feedback, actual bearings for each of the joints just to make the whole structure more stable. All of those changes bring it more onto the level of the BRACCIO robot arm since it will have the same size servos but with some benefits like the built in position feedback as well as a sturdier construction. The 3 arms put side by side, are in the picture below, with the new arm in the middle.
The Electronics
The electronics haven’t changed too much compared to the old, smaller robot arm. The MCU behind the robot arm is a Raspberry Pi Pico, and its main job is to record the data from the servo motors and send them position commands. This time however, Milos did more things on the programming side, he wrote a few Python scripts which can interact with the robot arm to send commands and also record the robot arm movements. This way, the robot arm can be guided by hand and after the recording is done, it can replay everything the user has shown it. Because of the higher current draw of the bigger motors, a bigger relay was used to make sure that the motors are getting sufficient power without anything overheating in the middle.
Testing the Arm
Of course, this was the favourite part for Milos to do, playing around with the finished robot arm. He runs through some basic tests like sending simple move commands to the robot arm, and also recording the data from moving the robot arm by hand. A picture of the collected data during one of those sessions is below.
He noticed one thing during testing, and especially when looking at the plotted data, and that’s the amount of noise coming from the potentiometers. Zooming in on one of the signals, we can see this.
The signal is very noisy, especially when that joint is stationary. To battle that a bit, Milos did some filtering in Python, and from the recorded data, he generated a new CSV file with filtered signals. An example of how the filtering process worked for the signal shown above is shown here:
While the filtering for this case was a bit too strong, it doesn’t change the signal too much for a robot arm of this precision, so it’s a better fit than the unfiltered signal. He applied the same filtering algorithm to all of the axis, and this is the comparison of that for all of the joints at once.
The Finished Product (For Now?)
What should Milos consider for the robot arm design? Or are you building one for yourself?
Let us know below.
Downloads and Links
- CAD and Code
- Affordable DIY Robot Arm: A Deep Dive into 3D Printing and Servo Motors -- Episode-628 - with more files and bill of materials.
Bill of Materials
Product Name | Manufacturer | Quantity | Buy Kit |
---|---|---|---|
RASPBERRY PI PICO H | RASPBERRY PI | 1 | Buy Now |
DFROBOT SERVO MOTOR | DFROBOT | 5 | Buy Now |
5V 18A POWER SUPPLY | XP POWER | 1 | Buy Now |
WHITE PLA 3D PRINTING FILAMENT | MULTICOMP | 1 | Buy Now |
M3 8 SO12CS Z100 | TR FASTENINGS | 1 | Buy Now |
Additional Parts
Product Name |
---|
Other M3 screws |
Aluminum 20x20 profiles |
LCD drawing tablet |
M8 bolts and nuts |
Small bearings |