Custom Servo Controller

by Synthiam

Use Vx virtual servo ports to control up to 99 servos on a custom servo controller via a serial protocol, such as arduino mega with a custom firmware.

Requires ARC v1 (Updated 5/24/2024)

How to add the Custom Servo Controller robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Servo category tab.
  5. Press the Custom Servo Controller icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Custom Servo Controller robot skill.

How to use the Custom Servo Controller robot skill

Use Vx virtual servo ports to control up to 99 servos on a custom servo controller via a serial protocol, such as Arduino Mega, with custom firmware. The Vx virtual servo ports allow you to control up to 99 servos on a custom servo controller via a serial protocol, such as an Arduino Mega, equipped with custom firmware. This custom firmware can be loaded onto an Arduino or a custom microcontroller, transforming it into a specialized servo controller. The robot skill will establish a connection to ARC through a serial port.

User-inserted image

This setup is particularly useful if you need to manage more than 24 servos, as the EZB protocol is limited to handling only 24. You can effectively control up to 100 servos by using Vx virtual servo ports.


This is an example of the Arduino firmware you can use to connect this robot skill to: Custom_Servo_Controller (May 24 2024).zip


The configuration screen allows specifying several parameters to make the robot skill work.

  • Port: This is the UART/Serial port for the connected controller

  • DTR Enabled: Does Data Terminal Ready need to be enabled? Some Arduinos require this

  • Baudrate: The baudrate for the specified device

  • Ports: Select each Vx virtual servo port that will be connected to the attached custom servo controller.

User-inserted image

How To Use

  1. Load the Firmware

    • Load the firmware onto your custom servo microcontroller or create a custom firmware. If you load the firmware, edit the MAX_SERVOS and define each servo ID as a PIN.
  2. Configure the Robot Skill

    • Press the configuration button in the robot skill.
    • Select the Port and Baudrate corresponding to your connected custom servo microcontroller.
    • Choose the Vx (virtual servo ports) that match the servos defined in the custom servo firmware on the controller. For example, V0 will represent the first servo on your servo controller.
  3. Connect to the servo Microcontroller

    • Press the CONNECT button on the robot skill to establish a connection with the custom servo microcontroller.
  4. Operate the Servos

    • Use any servo robot skill to control your selected Vx servos. This allows you to move the servos as needed, leveraging the virtual ports to manage a larger array of servos than typically possible with standard protocols.

This setup provides a flexible and scalable solution for controlling many servos, suitable for complex robotic projects requiring extensive servo management.

Reasons for Using This Robot Skill

  1. Extended servo Control Capacity:

    • The EZB protocol limits servo control to 24 servos, which can be restrictive for complex robotic projects. By utilizing Vx virtual servo ports, this robot skill allows you to control up to 99 servos, significantly expanding your control capacity.
  2. Customizable Firmware:

    • The ability to load or create custom firmware on an Arduino or custom microcontroller offers flexibility. You can tailor the firmware to meet the specific needs of your project, defining the maximum number of servos and their corresponding pins.
  3. Integration with ARC:

    • This robot skill connects to ARC (Advanced Robotics Control) via a serial port, providing a seamless integration with your existing robotic systems. ARC's user-friendly interface simplifies the configuration and control process.
  4. Versatility in Applications:

    • Whether you're building a humanoid robot, an animatronic display, or a multi-functional robotic arm, the increased servo control offered by this skill is versatile and can adapt to a wide range of applications.

Benefits of Using This Robot Skill

  1. Scalability:

    • Easily scale your robotic projects without being constrained by the servo limit of traditional protocols. This allows for more complex and sophisticated designs.
  2. Enhanced Precision:

    • With the ability to control up to 99 servos, you can achieve more precise and detailed movements in your robotic creations, enhancing their performance and realism.
  3. Cost-Effective Solution:

    • Using an Arduino or custom microcontroller with custom firmware is a cost-effective solution compared to purchasing specialized servo controllers. This makes it accessible for hobbyists and professionals alike.
  4. Simplified Configuration:

    • The configuration process is straightforward, allowing you to quickly set up and start controlling your servos. This reduces the time and effort required to get your project up and running.
  5. Flexibility in Design:

    • The ability to define each servo ID as a pin in the firmware provides flexibility in your design. You can easily reconfigure your setup as your project evolves.
  6. Robust Performance:

    • Custom firmware can be optimized for your specific application, ensuring robust and reliable performance. This reduces the likelihood of errors and enhances the overall stability of your robotic system.

By leveraging this robot skill, you can overcome the limitations of traditional servo control protocols, enhance the capabilities of your robotic projects, and achieve greater flexibility and precision in your designs.


Upgrade to ARC Pro

Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro


Excellent! Thanks for this.