Servo tester

Radio control servo testers

Current Status:    Complete
Date:                   November 2012
License:               TBC
Design summary:
There are two variants of a Radio Control servo tester here, one uses the PIC12F675 development board with a variable resistor to set the pulse width, for a real analogue feel. The other is a rewrite of the software for the design published in the Elektor Electronics July/August 2006 edition, using a PIC16F84A.

The PIC12F675 simulator/tester

This uses the PIC12F675 development board, a servo lead and a variable resistor to provide control of a servo motor.
It reads the analogue voltage at AN0, converts the ADC value to an 7 bit result. The 7 bit result is then has a value of 100 added to it. This sets a delay from 100x10us to 2.27x10us (1-2.27ms) for the servo position pulse.
The pulse is repeated every 16 ms, to simulate the pulse output of an R/C receiver.

 Connect a 1K potentiometer to +5V and ground and the wiper to AN0/PIN7 to use the analogue input.

Download the source code here 18K ZIP file.

Elektor Electronics July/August 2006 servo tester software

I built the design published in the aforementioned issue of the Magazine. The PCB design was on the limit of my PCB manufacturing, with 8 thou tracks, which caused a few broken traces, but more annoying was the software!

The design has 3 buttons, UP, DOWN and TEST/AUTO. The UP/DOWN button moved the servo Ok but there was no delay in pressing the switch and it only provided a few positions for the servo, it needed delays! It was extremely difficult to get the servo centred after moving it. If you pressed the Auto button it moved the servo back and forth but you could not quit out of this test, without removing the power.

Due to the annoying software, I rarely used the module, a real shame. Late in 2012 (takes time to do these things), I rewrote the software with the following improvements:

  • Provides 13 movement points, from 1ms to 2ms to fully exercise the servo.
  • Use the LED indicators better, to show the servo position.
  • Provides a 300ms delay from detecting a keypress before stepping the servo.
  • Only does a single back/forth loop if the 'Test' button is pressed and returns the servo to the last known position for the test.


Software download and programming

You can download the software,, 26K zip archive.

Programming the PIC16F84A device caused a few problems for me*. I have both a PICKIT 2 and an ICD3, neither of which supported the device via MPLAB. It was necessary to use an old parallel port programmer for the PIC16F84A, removing the device from the development board and back to the programmer for each code change.
*Checking the Microchip PICKIT 2 support page, I now see that the PICKIT 2 application supports the 16F84A. Unsure why it did not work when I tested it.

Updated 14 April 2021