That brings to mind an important point. Untill we work out the exact values to send to the servo best not “experiment” with them. Let the guys who have the programmer work it out first. If you write the contents with the wrong value the servo may become unresponsive. The Hitec programmer can reset everything to factory defaults, and thus repair a screwed up servo, but if you don’t have the Hitec programmer it could be bad.
I know, thats why I am not trying it out Gunna let the pros figure it out first. I don’t want to risk a $55 servo. Hmmm, if it is possible to do it through a Basic Atom, why didn’t Hitec tell us? Or at least tell us the values. Damn greedy big companies. Always want money =/
thats cool Jim, Now I wont have to buy a htech programmer, thanks!
Hi-Tec is not affiliated with Basic Micro’s Atom chips, which is what is being used to do this. That’s why they have not made any mention of this I would assume.
They can still say that sending this value to the servo will program it!
plus if they came out and said it, published the data, it would imply some sort of support which they wouldn’t necessarily be getting paid for so… it’s just not a win-win thing for them to do.
And to add further, they would not sell as many programmers. So RD6… That’s just the way the corporate ball bounces.
you know if there is a way to write this information out to the digital server. Why couldn’t there be a way to read the default information and store it some place. unless it is a limitation of the Bot board.
Oh I can see having to learn the Basic even with trying to avoid it
but before I attemt any of this I know I need a better understanding of the servos and the Basic used.
Here is a file for everything you ever wanted to know about them there Hitec servos.
basicmicro.com/downloads/doc … 0Servo.pdf
Nothing like a small nudge to say get on it fool
Are there any more updates to this post? I’m playing around with a 5645 right now and I need it to go to 180. I’m hesitant to play around with it lest I corrupt it.

Are there any more updates to this post? I’m playing around with a 5645 right now and I need it to go to 180. I’m hesitant to play around with it lest I corrupt it.
I will see if Acidtech can join this thread to help out. He is the one who did it originally. I’m not sure which IDE he used, but it does use the Atom Pro processor.
The servo programming basic file has a routine in it to dump the contents of the servos eeprom. I’ll need you to post that for your servo in order to determine what values will need to be modified.
Any chance there has been more work on this this? I’m trying to also reprogram the HS-5645 to do a 180deg arc.
I was thinking of using the BAP to reprogram the 5645 but I dont want to mess it up. Has anyone done this yet using the BAP? I might just use the 5645 as is to be safe.

I was thinking of using the BAP to reprogram the 5645 but I dont want to mess it up. Has anyone done this yet using the BAP? I might just use the 5645 as is to be safe.
Nathan at Basic Micro is the only one who can help with this. The code he originally wrote was using an old version of the new Pro IDE. I have no idea if it will still work with the changes he has implemented in the new IDE. [email protected]
Hi Jim,
Thank you for taking the time to speak with me yesterday.
I’ve read this post as you suggested and garnered the following understanding:
-
Programming Hitec Digital Servos requires a programmable computer/micro controller that is capable of serial I/O at 19.2K baud, 8-bits, 1 stop bit, no parity.
-
A hardware interface is required that multiplexes the serial data stream into and out of the servo’s signal line. The Hitec Digital Servo document details this interface for a PC. The Basic Atom Pro (BAP) code sample you referenced sets the BAP’s P0 and P14 port characteristics so that they act as a multiplexor for serial I/O to the servo.
-
The BAP code sample you referenced sets the BAP up to program a specific set of values that extends the servo’s range of operation from the factory default to a full ±90 degrees. The values used in the program have been extracted from a servo after it was set up using the Hitec HFP-10 Digital Servo Programmer.
Does this track with your understanding?
Hi,
The information in the servo document was gained from snooping the interaction between the HFP-10 and the digtal servos. Therefore it should be good for any servo which the HFP-10 can program. The 5645 is OK for this. I didn’t try any of the new G2 servos or the HFP-20.
The serial interface is as you describe and logically inverted at TTL level, so compatible with most UARTs directly. The TX and RX are on the same control lead, so you need to able to tristate the TX.
I controlled the power to the servo for the PC version. This because the servo tests for the programmer at power up. You can get around this by plugging in or powering up the servo at the right time.
The values used to set the range were based on values read from a number of HFP-10 to servo setups. The values do change slightly, so I guess some algorithm is used based on the checking of the servo endpoints. However the average values given do seem to do the job nicely.
It’s a long time since I last looked at this, but let me know if you have problems. If you discover more please share.
Hi Ribbotson,
In your original “Programming Hitec Digital Servos” you refer to VisualBasic 2005 source code being available for driving the hardware described. Is this still available?
Thanks,
Murray
I’ve attempted to use a Basic Atom Pro running a modified version of serpro01 to communicate with a HiTec HS-5125 Thin Wing Digital Servo. I’ve set up the circuit on a Basic Atom Prototype board using the serpro01 recommended 90 kOhm pull down on the signal line and 220uF of capacitance on the power rails. In addition I have a HiTec HFP-20 Digital Servo Programmer and a Basic Stamp Logic Analyzer (BSAL) that I have used to check that the servo is fully functional. I’ve also used the BSAL to watch various signals from the Pro and the servo. I can clearly see the initial handshake signal coming from the servo. However, the pro never exits it’s initial test loop. I have used the pro to toggle the signal line although not with the right timing to communicate with the servo. From what I can tell this is because the servo won’t pull the signal line high enough to register as a “1” that allows it to exit the initial test loop. I have tried varying the pull down value between 47k and the recommended 90k without success. Using the pro AD converter the max value I get from the servo is around 2.3 volts.
I’m starting to think that I need to isolate the servo with level shifting circuitry something like used by lynxmotion forum member ribbotson here:
basicmicro.com/downloads/doc … 0Servo.pdf
Am I missing something? I’m using the latest pro IDE.