Introduction: Hitec HFP-25 Programmer - How to Adjust Hitec Digital Servo Endpoints

About: I'm a tech at Robotzone (the makers of Actobotics®). I'll be posting helpful tutorials about how to use our products and incorporating them into cool robotics and R/C projects.

This instructable will explain how to change the center point and endpoints of a Hitec Digital servo using the HFP-25 programmer. Doing this will adjust how the servo will respond to the signal received by the servo. All programming is saved within the servo so even if you unplug it your new programming will be saved. Don't worry about messing anything up when using the programmer; if you get lost you can always reset the servo to factory defaults.

Not all Hitec digital servos are programmable or have all the same programmable features so be sure to read about your servo prior to purchasing to make sure it'll do what you want.

Step 1: Plug the Servo In

Plug the servo into the port labeled 'To Servo' on the right side of the programmer. make sure that the yellow wire is toward the 's' for signal, red wire in the middle and black near the '-' on the bottom.

Step 2: Turn the Programmer on and Test the Servo

Flip the power switch on. The programmer will show 'HFP-25' for about 4 seconds and then it will bring up the last screen that it was on before being shut off. In this case, it's the manual test mode. When I use the programmer this is always the last screen I see before shutting off since I like to test the servo in manual mode prior to installing my servo in a project. If you have a new servo it wouldn't be a bad idea to test the servo for proper operation using manual mode at this time.

As you can see in the pictures my HS-5485HB servo will rotate just over 90 degrees in stock form (no programming has been done yet). Note that the programmer is sending a PWM range of 899usec to 2105usec. This is wider than most of the transmitter and receivers can send to the servo so while I'm able to achieve just over 90 degrees in stock form, the stock servo may only move 85-90 degrees total when plugged into the radio system I choose.

Step 3: Find the Endpoint Adjustment Mode

If your programmer was in a programming or a test mode like mine was when turned on, press INPUT to exit that mode. The input button is how you enter into a screen as well as exit out of a screen. In my case, I pressed INPUTand the screen went to 'S-Test Manual'. Scroll through the programming mode options with the UP/L button or the DN/R button; either one works.

If you have a high-end servo such as a HS-7XXX servo, you may have to change the resolution in order to achieve a full 180 degree swing out of the servo. If you're just fine-tuning the rotation and don't need more than about 100 degrees there's no need to change resolution, however if you want over 100 degrees out of the servo this next step would be necessary to follow. Changing the resolution from high to normal has to be done prior to resetting the endpoints. If you're unsure if your servo has an adjustable resolution it's a good idea to check it prior to going into the endpoint adjustment mode. To check resolution:

  1. go to 'Program - RSLTN'
  2. press input
    • if the screen reads 'search' and then goes back to the 'Program - RSLTN' screen this means your servo does not have an adjustable resolution and no additional action is required. Otherwise continue to next step.
  3. If the screen reads RSLTN High, press the UP/L button for about 1 second and it will change to RSLTN Normal
  4. Once the screen reads RSLTN Normal, Press INPUT to exit the resolution programming mode.

Once you've set the resolution (if applicable) scroll through the programming mode options (using UP/L or DN/R) until you find the screen that reads Program EPAneuFS (short for 'Programming mode for the endpoints, neutral position and fail safe mode).

Step 4: Program the Center Point and Endpoints

Once your screen reads 'Program EPAneuFS' press INPUT to enter the programming mode. The screen will read EPAneuFS with an arrow below it pointing left or right unless you happened to get lucky and had the knob in the vicinity of the center and then you may have a numerical value appear.

If you get an arrow, the programmer is prompting you to rotate the knob found on the top right in the direction the arrow is pointing to get it close to the center. Once you get a numerical value to appear on the screen you can rotate the knob to where you would like to set your center position as. The position you set here is going to be where the servo goes to when it receives a 1500usec signal (typically the signal sent when a transmitter joystick is left in the middle). Due to a lack of imagination I always set the center to zero but you're welcome to do otherwise. Press 'M' for about a second. The screen will read 'Center' for about a second verifying that the center point been programmed.

I'm a creature of habit and so I always program the left endpoint after the center. Rotate the knob counterclockwise till you find the desired left endpoint position on the servo. When programming a servo for max rotation I will listen to the servo when the knob is rotated to the max CCW position. If it's buzzing, it's likely due to the fact that the servo has rotated so far that it's contacting the mechanical stop internally. I always back the servo off just a few clicks by rotating the knob back CW just a tiny amount. It usually only takes a change in number by 1 or 2 to get the servo to settle down. Once you find the left endpoint, press 'UP/L' for a second. The screen will read 'L-Pos' for about a second verifying that the left endpoint has been programmed.

Rotate the knob CW somewhere past where you set the center point, wherever you'd like, and press 'DN/R' to set the right endpoint. The last two pictures above are showing that I went all the way out to the max for my right endpoint but because the servo was resting on the mechanical stop inside (I could hear it buzzing) I backed it off just a bit and set that as my right endpoint.

Once you've set your middle, left and right endpoints you can press 'INPUT' to exit out of the programming mode and your servo should now have a new range! You can check the range by toggling (by using UP/L or DN/R) to the S-Test Manual screen, pressing 'INPUT' and rotating the knob back and forth.

Step 5: Why Is the Rotation in the Test Mode Different Than on My Radio System (or Servo Controller)

Keep in mind that you've selected endpoints using a range of 899usec-2105usec. If your controller sends this same signal range you'll find that the servo will respond exactly as it did with the programmer. If, however your controller has a different range (most will) you may notice slightly less range when using your radio system. If your radio system has adjustable travel you may find that you can fine-tune the rotation of the servo by adjusting the PWM signal range sent from the controller. Otherwise you can go back through and tweak the rotation of the servo by changing your servo's endpoints with the programmer.