Getting the position data from a Hitec 5645 Servo

Ok, I know when the servo is connected to the programmer it does not apply power to the servo right away. I know when power is applied to the servo there is a ~one second delay before the servo begins holding position. I know when a programmer command is initiated there is data transfered bidirectionally (I think) and this happens durring the time the programmer applies power to the servo, but before it actually starts holding position. I know the actual position is part of this data.

The thing I don’t know is if the servo can ever report it’s position after it is turned on and holding position. Without the data analyzer I’m in the dark, and probably would be even with it. :smiley:

Ok… confused…
:open_mouth:

When you say “programmer”, are you talking about the “servo programmer” (that silver do-hickey that has been sold out for a while), a servo controller, a microcontroller, the LynxTerm, or is the “programmer” a piece of electronics on the servo itself?

hmm… the bits that I read indicated that that new 2 way protocol was only in the robonova servos. Supposedly allowing a daisy chain style bus as well! But I couldn’t find any real datasheets on any of it.

Just a guess, is that 1 second delay waiting in a bootloader?

Sorry, the definition is:

Servo Programmer = HFP-10 Hitec Digital Servo Programmer and Tester.

No Andy, all Hitec digital servos have the delay. It’s there in normal use too. Although you can update the servos firmware with the programmer.

Personally, I think it can be done since the brains of the servo is an Atmel microcontroller. The feed back pot is read by the ADC on the chip. So if one was able to reprogram the chip, one would be able to get feed back information on the servo.

Yeah, I know, it is easier said than done.

So are there any Atmel programming experts out there willing to tackle this one?

Pete

I went about it the low-tech way, with analog servos: unsoldered the pot from the circuit board and put two 10k resistors in its place, the ran an extra servo lead to the pot. The extra lead goes to and ADC on an Atmel chip, and now it’s a digital servo and I control the feedback loop.

I did this for the ankle servos in my biped. It’s still just simple proportional feedback like any old analog servo but a friend and I did proportional+integral feedback with a servo on a test stand and it worked - zero deflection under load.

Nate: check out openservo.com

Yeah, I saw that when someone posted a link earlier - it’s brilliant. That’s the approach I really wanted to take but I didn’t even know where to start. If someone (like Lynxmotion for example) starts mass-producing those, I’ll want a few.

Hi guys,

I’m quite frustrating because i can’t get the Hitec servo programmer/tester from servocity since they are out of stocks. Any suggestion where i can get one to Australia?
Appearently I tried most of the hobby shop around the neighbourhood but still couldn’t get one… :frowning:

Cheers

Um… :open_mouth: We have them in stock…

I’v pretty much pulled the interface, protocol, and EEPROM locations on these Hitec digital servos apart.

I can read/write EEprom like the HFP 10, set and read position information via the A-D converter (10 bits)

I can also turn the servo motion on and off, but the H Bridge only has 2 drive points from the processor, so it is braked when off. This make it a bit stiff for the learn mode I wanted.

By using a simple inteface to the PC serial port at 19.2K which is only a couple of dollars worth of bits ( 4 fets, connector , 4 R’s). I have a rubbish VB program to control it, but have done what I needed. Setting to microsecond resolution without a timer !

I am willing to handover this info. if someone can make something more of it for the benefit of the robitics community.

These digital servos in serial mode are great, and I wish Hitec was more open on the information.

Would like to know exactly what changed in the 1.04 sw upgrade for the HFP-10, also it is not clear if the HSR5995 has more features. Maybe I’l save for one.

Here are links to Ribbotson’s DOC file and sample source code.

basicmicro.com/downloads/doc … lServo.doc

basicmicro.com/downloads/docs/HitecServo.zip

Note, I did not do this work. Please send any questions to Ribbotson, not me.

And Ribbotson, if you want these files removed just ask.

Wow, I’ve been looking for more detail on the inner workings of the digital servos and the HMI protocol and up to now hadn’t been able to find anywhere near the amount on info in Ribbotson’s doc - fantastic work, many thanks. Now all I gotta do is get me a digital servo to attack ; )

Chris

I have a later version of doc, and program.

And will try to sort out how they can be posted.

The information is for the normal digital servos. The HSR8498 is different, and that is the one which is referred to as having HMI.

For HMI we are waiting for Hitec to release their serial cable, however it is taking a long time. I suspect they are updating the servo firmware at the same time. Hitec are very carefull to make robust firmware.

This information is for the robotics community especially where position feedback of servo is needed. It is for experimental purposes and writing to EEPROM could stop your servo working !. The radio control community should sensibly use the HFP-10

Here is the latest version (0.4)of my documentation:

basicmicro.com/downloads/doc … 0Servo.pdf

The update of the Visual Basic program I used is here:

basicmicro.com/downloads/docs/HitecServo.zip

What does this app do?

Hi,

The app is sample code of how to connect to the Digital servos using the PC interface described in the document.
Also to set and read position from the PC serial interface.

The program can also read the servo EEPROM and data memory. It can write to these also, but you really need to be careful with this to maintain the EEPROM checksum correct.

Someone else may be able to make a programmer from the information, but my interest was to gain the feedback information and be able to turn off the servo updates and still read position. This does work OK. Unfortunately the servos are braked when the motors are turned off, so training though bending the robot joints is a little stiff

I know this is quite different from what you guys are doing, but it was posted over at OpenServo and thought you might be interested:

forums.parallax.com/forums/default.aspx?f=25&m=121278

A truly superb hack if ever there was one :wink: