In charge of controlling this Robotic Arm there is an Arduino M0. This board mounts a very capable ARM processor which will be controlling:
- 3x NEMA stepper motors: 2 to rotate the arm and forearm, 1 to move up and down
- Up to 4 Servo outputs (but just 2 units used to move the gripper)
- 1x 12V voltage controllable output (for a suction pump? electromagnet?)
- 1x SENSOR input (in the case we want to use an external button/switch/ Temperature sensor…etc
- i2C and UART communication ports (A LIDAR sensor can be connected to measure distances)
- MPU sensor (not used in this project)

All the elements of the schematic have been integrated in the DEVIA Robotics control board to make everything easier. The board is 100% Arduino ZERO compatible and have some cool addons. More info here
The Power Supply
To move the motors we will need at least 9V: The minimum voltage needed by the stepper motor drivers modules to move the motors of the Robotic Arm. As a 12V power supply is quite common, but other power sources (9-15V) can be available too, we decided to put a voltage regulator on the board capable of handling those input voltages. NOTE: 12V and 2 Amperes is the recommended power source for the pyBot Robotic Arm
Most of the current electronics modules and processors work at 3.3V but some actuators (like servos) still need 5V to work properly, that is the reason the DEVIA board have two voltage regulator modules, 9-15V to 5V and 5V to 3.3V
Motors + controlling them
We opted for regular NEMA17 motors as they are widely available in the MAKER / 3D printers World. They are accurate, affordable and let you know how much they have rotated its shaft (as long as you do not skip steps. Learn more about stepper motors here). But how does the DEVIA control board controls them? Using stepper motor drivers modules. These modules, which can be attached (are not integrated) to the control board will deliver the exact amount of current to the motor´s coils making them to move a certain quantity of steps when required.
The M0 processor of the control board will tell the motors when to spin and how (number of steps and direction). The control board will accept many models of stepper motor drivers. You can find many in the market and its price will depend on many factors as: power, noise created when moving the motors, accuracy… Regular A4988 stepper motor drivers will do the job in this project.
WIFI Module. Control the Robot remotely
The ESP8266 Wifi module will let you control the Robotic Arm from any WIFI connected device as a smartphone/ tablet or even a computer. It will create its own network accessible only using a password (by default: 87654321). Alternatively, you can control the pyBot Robotic arm with just a USB cable and the control APP
i2C port. Connecting additional sensors
A “LIDAR” sensor (in this case a VL53L0X Time-of-Flight Ranging Sensor) has been added as a way to measure, in real time (up to 20 times per second) how far the arm from the ground is. It is quite handy as provides info about the presence of any object under the gripper. The sensor uses the i2c bus to establish a communication channel with the processor. A i2c bus is perfect to chain several (not too many) sensors or modules to the M0 processor just using 4 wires (Power/Ground/SDA/SCL). It has some minor disadvantages like sensitivity to electromagnetic interference but easily solvable taking precautions.
How everything is connected to the electronics board

LINKS
- PyBot Robotic Arm custom KIT
- Assembly guide: A complete step-by-step guide to create your own Robotic Arm
- Arduino code: The code in charge of controlling the pyBot Robotic Arm. To be uploaded to the DEVIA control board
- CONTROL APP Python code
- Control APP: User guide, links to Python code
- pyBot 3D parts models (.stl file format) (.iges file format)
- pyBot Robotic Arm: Mechanical guide
- pyBot Robotics Arm: Electronics guide
- Robotic Arm Gripper
- DEVIA Control Board