Say I have a servo connected to the SSC-32. I power up the controller and the servo is set to a certain position. Is there anyway that I can tell the Lynx SSC-32 Terminal to tell me WHAT POSITION that servo is at? I tried that query pulse width command (QP) but it didn’t work.
I want to be able to have the Lynx Terminal print out something like “#31 P1000” or just “P1000”, telling me that the servo at channel 31 is at position 1000.
If that query pulse command is what I am supposed to use, maybe I’m not using it right. Can someone give me an example on how to use it?
QP, what goes in the section? Do I include the <> brackets? I want to be able to specify the servo channel and have the terminal tell me what position it is at. How do I do this?
The best way to get the position of a non moving servo is to use the position it was last sent to by the control program. If the servo is moving you can poll it’s current commanded position (as it is moving) but the response is in Binary not Decimal, and it is limited to 10uS resolution. So if it’s at 1500 the query will return 150. You simply send, QP0 and then carriage return. Hope this helps. If you want to read this from a slower processor such as a BS2 you must make sure you are using the latest version of the firmware.
= the servo’s number
In Jim’s example, he used “QP0” which means, “gimme servo 0’s position”.
So, you can put 0-31 in the QP’s arguement ().
Just remember…
While the SSC-32’s powerful firmware can tell you the position of the servo even as that servo is moving, it’s not the real-life position.
It’s the position which the SSC-32 is telling the servo to go to.
Like an unruly child, servos don’t always listen to what we tell them.
Annoying things like gravity get in the way.
If you need to know the actual position that the servo is in, then you’ll need to modify the servo or wait until Hitec releases the newer servos with that feature.