Skip to the content
PCBKitNew board
2 layers49 × 37 mmServo controller, the printed circuit board in 3D

Servo controller

rmingon/servo-controller

Custom-made dual-servo testing platform. It is designed for engineers, makers, and robotics developers who need a reliable and convenient way to drive and test two RC servos simultaneously from a PC.

Size
49 × 37 mm
Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
52
Pads
136
Tracks, vias
144, 16
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
13 Sep 2025
Updated
14 Sep 2025

Overview

Servo controller is an open-source printed circuit board by rmingon, from the rmingon/servo-controller repository on GitHub. It is a 2-layer board of 49 × 37 mm with 31 parts on 52 nets, routed with 144 tracks and 16 vias.

It is built around the ATMEGA328PB-AU, CH340C and LM1117S-5.0. Its parts include 12 capacitors, 6 connectors, 3 ICs, 2 resistors and 2 diodes. It belongs with the robots and motor control boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

Dual Servo Test Board

This repository contains the design files, schematics, and PCB layout for a compact, custom-made dual-servo testing platform. It is designed for engineers, makers, and robotics developers who need a reliable and convenient way to drive and test two RC servos simultaneously from a PC.

3d pcb schematic

Overview

This board is built around the ATmega328P microcontroller (the same MCU used in Arduino Uno), making it extremely flexible and easy to program. Communication with the host PC is handled via an onboard CH340 UART-to-USB bridge, enabling simple plug-and-play connectivity over USB.

The board includes XT60 and XT30 connectors for safe and reliable power input, making it suitable for lab bench setups or battery-powered applications.

Features

  • Dual Servo Control
    Two independent PWM channels allow you to control and test two RC servos simultaneously.

  • Robust Power Delivery

    • XT60 and XT30 connectors for battery/power input
    • Onboard LM1117-5 voltage regulator for a stable 5V rail
  • USB-to-UART Interface

    • CH340 USB-to-serial converter
    • Direct connection to PC for programming and control
  • Microcontroller

    • ATmega328P running at 16 MHz
    • Fully Arduino-compatible for easy firmware development
  • Test Points & Expandability

    • Breakout headers for ISP programming
    • Extra I/O pins available for debugging or future expansions

Connectors & Interfaces

ConnectorFunction
XT60Primary power input (+BAT, GND)
XT30Secondary power option
USB-CUART communication with PC
J3AVR-ISP programming header
J4 / J5Servo PWM outputs

Electrical Characteristics

ParameterValue
Input Voltage6 – 12 V (recommended)
Logic Voltage5 V
PWM Frequency~50 Hz (standard RC servo)
MCU Clock16 MHz

Software & Usage

  1. Connect Power via XT60/XT30 (or USB for low-power testing).
  2. Connect to PC via USB-C cable.
  3. Flash firmware using the Arduino IDE or avrdude over ISP.
  4. Use the provided PC software or your own serial commands to control PWM output and test servo movement.

Project Files

This repository contains:

  • KiCad PCB Layout (hardware.kicad_pcb)
  • Schematic (hardware.kicad_sch)
  • Project Configuration Files (.kicad_pro, .kicad_prl)
  • 3D Render and PCB previews

Applications

  • Servo quality testing (batch verification)
  • Robotics development and debugging
  • Educational tools for learning PWM and MCU programming
  • Rapid prototyping for motion-control projects

Future Improvements

  • Add current sensing for each servo channel
  • Optional I²C/UART expansion for external sensors
  • Integrate reverse-polarity protection on power input

Parts

31
QtyValueFootprintReferences
3100nFCapacitor_SMD:C_0603_1608MetricC9, C17, C18
2100nCapacitor_SMD:C_0603_1608MetricC11, C12
210nFCapacitor_SMD:C_0603_1608MetricC16, C20
210pfCapacitor_SMD:C_0603_1608MetricC7, C8
2Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4, J5
2LEDLED_SMD:LED_0603_1608MetricD1, D2
2R_Potentiometer_TrimPotentiometer_THT:Potentiometer_Runtron_RM-065_VerticalRV1, RV2
11.1KResistor_SMD:R_0603_1608MetricR1
110nCapacitor_SMD:C_0603_1608MetricC14
110pFCapacitor_SMD:C_Elec_3x5.4C19
11pCapacitor_SMD:C_0603_1608MetricC15
1500Resistor_SMD:R_0603_1608MetricR2
1ATmega328PB-APackage_QFP:TQFP-32_7x7mm_P0.8mmU2
1AVR-ISP-6Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ3
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU4
1Conn_01x02Connector_AMASS:AMASS_XT30U-F_1x02_P5.0mm_VerticalJ2
1Conn_01x02Connector_AMASS:AMASS_XT60-F_1x02_P7.20mm_VerticalJ1
1Crystal_GND24Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1LInductor_SMD:L_0603_1608MetricL1
1LM1117S-5Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1USB_C_PlugConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalP1

The 29 most common of 31 parts.

Questions

How big is the Servo controller PCB?

It measures 49 × 37 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Servo controller use?

31 parts, built around the ATMEGA328PB-AU, CH340C and LM1117S-5.0. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Servo controller KiCad files?

From the rmingon/servo-controller repository on GitHub, at the commit this page was made from: the board is hardware/hardware.kicad_pcb and its schematic hardware/hardware.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Servo controller design in my own project?

Its repository states no licence, so its author keeps all rights: ask rmingon before reusing the design.

Similar boards

  • 2 layersMaglev26, the printed circuit board in 3D

    Maglev26

    Hansolini/Take-home-Maglev-lab

    A small lab for students in control engineering to learn control topics at home!

    60 parts15MIT
  • 2 layers220 × 160 mmK Aries, the printed circuit board in 3D

    K Aries

    F6ITU/K_Aries

    Aries, an OpenHPSDR ATU (kicad version)

    275 parts2
  • 2 layers50 × 50 mmTestarduino, the printed circuit board in 3D

    Testarduino

    ItsUnagii/practicearduino

    Exercises in PCB design for my own personal practice.

    24 parts
  • 2 layers90 × 75.9 mmJAS Warhead PCB, the printed circuit board in 3D

    JAS Warhead PCB

    JAS-UCF/Blast-Shield

    PCB Design for WARHEAD

    77 parts
  • 2 layers120.9 × 110.9 mmPower Subsystem, the printed circuit board in 3D

    Power Subsystem

    Aryanag2/Smart-Medical-Pill-Dispenser

    ECE 445

    45 partsMIT
  • 2 layers40 × 85.1 mmLidar 2, the printed circuit board in 3D

    Lidar 2

    Slenderman00/Lidar

    19 parts
  • 2 layers82.8 × 53.3 mmServoBoard V21, the printed circuit board in 3D

    ServoBoard V21

    jeffrey500/ServoBoard

    A custom PCB that drives up to 4 PWM servos. The board uses the atmega328PB and has variable input and variable servo voltage using the LM2596S buck and AMS1117 LDO. The board also has 3 6n137 optocouplers.

    70 parts