Servo Mid Position

Hi All,

So I have gone through the tutorial on servo mid positioning, I had a problem at first where my servos weren’t responding, but this was quickly sorted by charging my battery. I now have the servos in mid position, but the servo horn is still slightly out, as in the mounting holes are not in line with the centre of the servo. The pictures below will explain it a bit better.
On one servo I did remove the horn and rotated it one spline but then the horn ended up being too far in the opposite direction.
Is this as close as the servo horn will be to mid position?
Hope the pictures help!
Servo.JPG

yes this is a common problem and one of the time consuming things to sort out. you can create a “servo offset” table with in you code.
are you running code for a lynxmotion kit? most tutorials will show you how to adjust this off set using lynxtern or powerpod.
the offsets are then saved to the SSC. are you using this?

anyway i sometimes create a custom offset table in custom codes.

direct from one of my codes.

; Servo Offsets (manual input!) ;ONLY USE THESE IF NOT USING REGISTERS, otherwise 'comment out. serout SSC_OUT,SSC_BAUD,"#",dec | RRHipSwayPin,"po-90 #",dec | RRHipRotatePin,"po70 #",dec | RRHipZPin,"po0 #",dec | RRKneeZPin,"po70 #",dec | RRTarPin,"po80 #",dec | LRHipSwayPin,"po50 #",dec | LRHipRotatePin,"po50 #",dec | LRHipZPin,"po0 #",dec | LRKneeZPin,"po0 #",dec | LFTarPin,"po0 #",dec | RFHipSwayPin,"po90 #",dec | RFHipRotatePin,"po99 #",dec | RFHipZPin,"po-90 #",dec | RFKneeZPin,"po0 #",dec | RFTarPin,"po80 #",dec | LFHipSwayPin,"po60 #",dec | LFHipRotatePin,"po99 #",dec | LFHipZPin,"po0 #",dec | LFKneeZPin,"po0 #",dec | LFTarPin,"po0",13]

EG
RRHipSwayPin,“po-90 #”,dec | this will make the servo move more to the left
RRHipRotatePin,“po70 #”,dec | this will make the servo move more to the right
RRHipZPin,“po0 #”,dec | this will keep the servo were it is.

this will need to be placed before the main flow of your code but after you define the servo pins.
the numbers are the amount of offset needed. its a bit of trial and error to get the numbers correct.
the values should range between -99/+99.
try adjusting them by 20 or so at a time.
hope this helps.

As Jonny mentioned this is very normal and is talked about in many of the tutorials for the different robots. For example if you look at the tutorial for the Phoenix: lynxmotion.com/images/html/build159.htm

The first several steps in this tutorial talk about downloading Lynxterm and using it to find the correct zero points for each of the servos saving these offsets out to the SSC-32.

If you are not using an SSC-32, than you need to deal with this in your code. For example with my Biped brats, I have code that I use to find the appropriate zero offsets and I store these in the EEPROM of the microcontroller (In this case a Basic Atom Pro 28, or Axon2 or Arduino Meg). I then have all of my code that outputs positions to the servo add (or subtract) the zero offset values from the standardized calculated positions.

Good luck.
Kurt

Thanks a million kurte, and innerbreed, ya thats a help alright. I’m using the SSC-32 with the BAP28, on a custom designed hexapod. I had a look at the turorial and went through the register and adjusted the “offset” of my servos so they should work pretty good now. So the offset gives me a new mid position on the servo what happens when you adjust the width in the register?
Just another question on your custom offset table innerbreed, did you assign names to each of the servos instead of using numbers, as in how does Lynxterm know which servo is which? and where is custom codes?

Sorry for all the questions
Thanks

The off set table is used in the basic atom code. Not lynxterm. Each servo is assigned to a pin that lynxterm reads. In the atom code its easier to define the pin numbers as labels.

Eg: RRCoxaPin con P1

lynxterm will only read P1