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}]