HMI

Has anyone figured out how to get feedback from a 5990TG or other Hitec servo using the HMI protocol? I can’t seem to find much information about HMI.

Here is the programmer:

lynxmotion.com/Product.aspx? … goryID=113

I imagine the programmer would be useful for getting the servos set up. I wonder if the regular Hitec Digital Servo Programmer can be used to program the 5990TG.

My first question, can HMI be used through the SSC-32? Or do you have to use a digital pin on the Atom? Can you send movements through the SSC-32 and read feedback with the Atom?

Take a look at this (the section Pulse of HMI Protocol):
robonova.de/store/down/downl … g_8498.pdf

It says:

For the feedback pullup is there an additional circuit needed outside the SSC-32 and BotBoard?

The diagram says:

If using the Atom Pro, which command would be used to read the HMI feedback pulse?

How do you daisy chain them and get separate feedback for each? The Dynamixel servos seem to make their daisy chaining and feedback a lot more accessible. But the 5990TG is a better value compared to them, and it works with the SES. This is important stuff. :slight_smile:

I’m really confused about what Hitec is doing with HMI. :confused:

Yes, HMI support would be nice!

No, the SSC32 at the moment can’t do it :frowning:

IIRC, the regular programmer will not program the HSR series.

I too would like to know more about HMI, as now I have some of those servos!

There is some more HMI information here:
lynxmotion.net/viewtopic.php?t=2539

Either the HMI pulse mode or the serial mode can be used to get feedback from the servo. Both require a controller with bidirectional I/O ports, so not the SSC32

The HMI servos use the servo programmer cable, and cannot use the stand alone Hitec servo programmer.

If you use serial control, you can give each servo an ID and then daisy chain them. However the serial speed is only 19200, so that becomes a limitation if you want to move a lot of servos quickly.

The feedback does work, but is not as good as the Bioloid servos. Often the feedback fails to respond (both pulse and serial), so you have to check the values and maybe repeat . Also the feedback does interfere with the servo operation, so you should not do it too often.

What!? That really sucks… I guess feedback is more limited then to figuring out their starting position to avoid sudden movement on power up. :frowning:

Yes, it sure does! For me, this would make the feedback feature completely unusable. Have you looked at Open Servos? I so want to get some servos converted to Open Servos one of these days.

8-Dale

Ribbotson, thanks for the response. :slight_smile:

Ok, so to get the most from them they have to be on serial control, but then they have the speed limitation. I think anyone is going to want to move a lot of servos quickly, that’s kinda the point.

That’s discouraging. I’m actually starting to think Hitec might have some other technology or at least a new HMI version in the works.

Now I’m just weighing the value of the 5990TG on its merits as a standard digital servo (which are still considerable). :laughing:

Yeah… I have looked at them, but for $30 a board, its a little steep, considering you still have to supply the servo!

I was really really really hoping that HMI would be useful, thats why I put a little money into the 5990s… But if HMI is broken, then I might was well just add another wire to my servos to tap into the pot and be done with it :angry:

True, however, you could get some HS-645MG servos (133 oz/in torque) and have them converted to Open Servos for about $30.00 a piece the last time I checked. I know this is no where near the torque of an HS-5990TG, but it isn’t a bad way to experiment. It could lead to some other experimentation with higher torque servos. :wink: This is what I would do if I could afford the HS-645MG’s and conversion cost. I’d want the conversion cost to be less than the cost of a single servo. I would love to see what differences there would be with an HS-645MG converted to an Open Servos. It should be possible to squeeze at least the same torque as an HS-5645MG (everything is identical except the electronics) out of a converted HS-645MG.

8-Dale

If you look at the schematic for the “open servo”, all it is doing is measuring the pot wiper voltage. One can do this with the ssc-32.

Please elaborate… how would this work?

The below threads have some details. The short version is that you take the voltage supplied to the servo pot (2.0v in the servo I tested) and use it as the analog reference voltage input to the ssc-32. Then the pot wiper voltage is input to an ssc-32 analog input pin, which is monitored as desired to find the current voltage value, which will be a function of the current servo rotation position.

lynxmotion.net/phpbb/viewtopic.php?t=2748
lynxmotion.net/phpbb/viewtopic.php?t=3182

Thanks. So, each servo would need two SSC-32 ports, turning it into a an SSC-16 with position feedback. I guess that’s a reasonable compromise since you don’t really need feedback on each DOF.

For terrain adaption- I assume you would send a movement comand and compare the actual position to the expected position, then change the expected position to the actual position to stop stalling.
[/quote]

The ssc-32 only has four analog inputs, so you would need to multiplex the input from many servos to the available four input pins. This should be easily done with 74HC4051 analog multiplexing chips (eigh inputs each, $.36 each from Jameco) such that the pot wiper voltage of the servos could be checked one at a time as desired. I’ve got some CD4051 chips I’m tinkering with to see if 16 inputs can be multiplexed into a single input pin using only four servo output pins for control of the chips. In the servo I tested, the pot voltage was from 2v to 0v. For the most accurate positioning, the ssc-32 analog reference voltage should be changed from 5v to 2v to get the most accurate position input. I’ve done some tinkering with most of this and it should to be fairly easy to do. A possibly better alternative to allowing the servo to stall would be to use a foot contact sensor to stop the servo at its current position when foot contact is made. In some of my pix you see a white tube thing on the end of a popcicle stick atached to a servo. This is DIY foot contact sensor I’m using for testing.

Open Servos do a lot more than just that. Have you really checked out what is being done with them? There is a new v3 board now.

8-Dale

A while back I looked at their schematics to see what they were doing. Unless they add another pot to the servo, then they are just measuring the wiper voltage of the existing pot. As far as I can tell, nobody on this board actually owns an “open servo”, so I don’t think anybody here can actually speak to their real world performance. They currently appear to be somewhat in the relm of “vaporware”. Just being curious, I think I’ve pretty much managed to duplicate their servo feedback setup from a standard servo only using some wire, solder, and creative thinking. I like open source projects, but this one doesn’t appear to be going anywhere fast. The additional features appear to be outweighed by the additional overhead of cost, effort, and possibly programming issues with controlling the servos. I think a worthy project for you would be to purchase one of the v3 boards, install it in a servo, then do various test with it. You could take pix of the project, and do a detailed writeup so everyone would have an idea of how well they work in the real world.

Vaporware means there is no real product. Open Servos are not vaporware.

You amaze me sometimes. :smiley: If you have ever seriously looked at the Open Servo project, you would know it is always being worked on and experimented with. To say that it isn’t going anywhere is just ridiculous, especially since you are obviously an intelligent person able to build a lot of interesting and cool stuff.

As soon as I have some servos I can have converted to Open Servos, that is exactly what I am going to do. There is a LOT of actual experimentation going on. One just has to peruse the Open Servo forums to see that.

I want very much to get some Open Servos into a robot. I want to start out with the front mounted 3DOF arm I have designed for W.A.L.T.E.R. The arm is built. I just need to get servos for it, verify they work properly in the arm as is, and then send them to be converted into Open Servos. I want to use HS-645MG’s because I am sure that HS-475MG’s just won’t be beefy enough.

8-Dale

Even though ive read this thread acouple times, im still extremely confused on what these “open servos” really are. Ive looked at the site but i really dont understand what advantage this brings to a digital servo. If anybody can explain this to me that would be very helpful.

It just depends on what you want to do. If you need any of the capabilities (probably not at this time) Open Servos offer, then take a close look them. Otherwise, forget about them until you have more experience with servos and robots. Open Servos probably won’t have as many benefits for digital servos as for analog servos, but it depends on what you need for your application. Remember, Open Servos are still experimental right now, so unless you really want to experiment and need some of the capabilities they offer, you are better off just sticking with stock servos for now.

8-Dale

thanks linuxguy, but that still leaves me wondering exactly “what” openservos are.

Hi,

Here is an example from one of our members (Andrew Lippitt ?) hexapod project, I think he’s using open servos. vizlog.com/robot/. Or his thread here lynxmotion.net/viewtopic.php?t=191&postdays=0&postorder=asc&start=0