Configure the OpenServo
In order to get the optimal output from your OpenServo you can change the settings to best match your servo. Settings available are Max position Min position Deadband and Reverse seek. These are documented below.
It is important to note that the registers may be protected against writing, and as such must be enabled. You can enable the writing of registers by sending WRITE_ENABLE command.
WRITE_ENABLE = 0x84 [device WRITE_ENABLE] send [0x10 0x84]
Maximum and Minimum position
16bit precision
V2 |
V3 |
V3-dev |
State |
Description |
|
0x28 |
0x2A |
0x08 Bank 1 |
MIN_SEEK_HI |
Read/Write Protected |
Minimum seek position high byte |
0x29 |
0x2B |
0x09 Bank 1 |
MIN_SEEK_LO |
Read/Write Protected |
Minimum seek position low byte |
0x2A |
0x2C |
0x0A Bank 1 |
MAX_SEEK_HI |
Read/Write Protected |
Maximum seek position high byte |
0x2B |
0x2D |
0x0B bank 1 |
MAX_SEEK_LO |
Read/Write Protected |
Maximum seek position low byte |
Every servo has a slightly different maximum and minimum rotation distance. You can configure your servo to take advantage of the maximum range of your servo, or protect it against damage by over shooting its mechanical maximum.
In order to set the maximum and minimum positions you must set two 16 bit registers, and assuming device = 0x10
Set the Maximum:
MAX_SEEK_HI = 0x2A MAX_SEEK_LO = 0x2B
[device MAX_SEEK_HI {max_hi} {max_lo}]
send [0x10 0x2A {max_hi} {max_lo}]
Set the minimum:
MIN_SEEK_HI = 0x28 MIN_SEEK_LO = 0x29
[device MIN_SEEK_HI {min_hi} {min_lo}]
send [0x10 0x28 {min_hi} {min_lo}]
Deadband
8 bit precision
V2/3 |
V3-dev |
|
|
|
0x21 |
0x01 Bank 1 |
DEADBAND |
Read/Write Protected |
Programmable deadband value |
Deadband is defined as the area around the current position that is not included in the measured range. It is designed to stop the servo from jittering around a position by allowing it some area to move before it is acted upon. Therefore you could define the deadband as the area of travel that is not acted upon.
The width of the deadband feature is 8bit precision. Very small values should be written into this function. The default is 4. Set the deadband:
DEADBAND = 0x21
[device DEADBAND {deadband}]
send [0x10 0x21 {deadband}]
Reverse Seek
8 bit precision
V2/3 |
V3-dev |
|
|
|
0x2E |
0x0C Bank 1 |
REVERSE_SEEK |
Read/Write Protected |
Reverse seek sense |
If you command your servo, and it goes in the opposite direction from the specified, you can enable reverse seek.
This feature is either on or off. Sending 0 sets this mode to off 1 to on.
Enable reverse seek:
`
REVERSE_SEEK = 0x2E
[device REVERSE_SEEK {1|0}]
send [0x10 0x2C {1|0}]
