Demand Peripherals     Robotics and Automation Made Easy

SERVO4: Quad PWM Servo Controller

SERVO4 controls four hobby servos with 50 nanosecond resolution per servo.



The Quad Servo Controller provides four outputs that can each control one PWM servo motor. The servo pulse widths are accurate to 50 nanoseconds. The cycle time on each of the four signals is 20 milliseconds.

Normal servo motors expect a pulse width in the range of 1000000 to 2000000 nanoseconds. A 50 nanoseconds resolution gives 20000 different valid values or over 14 bits of accuracy.

The servos are numbered from 1 to 4 with servo 1 on the lowest numbered pin on the interface card. You can wire your own interface but SERVO4 is most often paired with the GPIO card. More information about the GPIO card can be found here: GPIO card.



servogroup : pulse widths in nanoseconds.
Servogroup has four space-separated pulse widths in nanoseconds and terminated by a newline. A pulse width of -1 keeps the current position for that servo. A dpget on the servogroup resource returns the current positions of all four servos.

servo1 - servo4 : pulse width in nanoseconds.
A dpget on the servoX resource returns the current position of servo X.



Move all pulse widths to center, then move just servo 1 and 3 but not 2 and 4. Set servo 2 to full counterclockwise.

   dpset servo4 positions 1500000, 1500000, 1500000, 1500000
   dpset servo4 positions 1400000 -1 1600000 -1
   dpset servo4 servo2 1000000

If running from the Bash command line the minus sign of a -1 will be interpreted as the start of a command line option. Use '--' to tell Bash there are no more dash options on the line.

   dpset servo4 positions -- 1400000 -1 1600000 -1


FPGA Defined Peripherals
User Interface
FPGA Configuration
FPGA Buttons & LEDs
Host Tx/Rx Interface
AVR Interface
Stereo Audio Amplifier
Text LCD and Keypad
Quad WS2812 Interface
Quad Slide Pot
IR Recv/Xmit
6 Digit LCD
RC Decoder
Keyfob RF Decoder
Rotary Encoder Interface
Quad Touch Interface
Motion Control
Dual DC Motor Controller
Dual Quadrature Decoder
Quad 13 Bit Servo
Bipolar Stepper Controller
Unipolar Stepper Controller
Simple Input / Output
Quad Binary Output
Quad Binary Input
Octal Input/Output
32 Channel Binary Output
32 Channel Binary Input
Quad Serial Output
Octal Serial Output
Octal 12-bit ADC
Quad Ping))) Interface
Pololu QTR Interface
Octal SRF04 Interface
Generic I2C
Generic SPI
Octal 8-Bit DAC
Quad Digital Potentiometer
Quad PWM Output
Quad PWM Input
Quad Event Counter
Real Time Clock
Dual Pulse Generator

Interface Cards
Control Cards
User Interface
Stereo Audio Amplifier
IR Recv/xmit
Six Digit LCD Display
Keyfob RF Receiver
Rotary Encoder
Quad Switch Card
Text LCD / keypad
Quad Slide Pot
Quad Touch Interface
Motion Control
Dual 7-amp H-bridge
Quad Open Drain Driver
Quad 10 Amp Relay Card
Input / Output
Octal 8-Bit DAC
Quad Digital Potentiometer
Octal 12-bit ADC
Octal SRF04
I2C Prototyping
SPI Prototyping
USB 2.0 Hub
Real Time Clock
Octal Input/Output
32 Channel Input
32 Channel Output
Power Distribution Card
15 Amp Power Distribution
5 Volt Switching Regulator
ATX Power Break-Out Card
Disk Drive Power Break-Out
MP43 Aluminum Mounting Plate
WW4 Large Prototyping Card
WW2 Prototyping Card
WW1 Small Prototyping Card
SMP SMD Prototyping Card