Skip to main content

Features (planning)

The intent is to use a 4MHz PIC 16F628 to control 8 Servos 'individually' :


1 Potentiometer to control Speed

1 (8) Position Switch to select the individual Servo (or all)

1 Button to toggle Mode


Features :


Swing Servo from From end-to-end at variable speed

Step Servo End-Center-End at variable speed

Center Servo

Move Servo manually with the Potentiometer



since the 4MHz part is relatively slow , we will likely have to employ an 'interesting' way to produce the proper pulses for the servo.

It is assumed, that there is a Pulse every 20 ms, there the pulse itself is 1-2 ms wide, where 1.5 ms is the center.


With the 4MHz Part, we will have 1uS per instruction, so if we assume that we want to be able to drive the servo with a resolution of 64 steps, we would have roughly 15 instructions available in a loop controlling the outputs.

Count iterations, compare the position value and setting the bits for each port, would be 18 or 19 instructions - a resolution of 55 positions .. perhaps sufficient.


If that proves to be too inaccurate, we could setup 64 bytes of ram and then simply shift out the ram to the port.


Will have to decide which route to go.