rcbench
Servo and ESC test bench: panel, IOmcu and shared C
Loading...
Searching...
No Matches
servo_limit_cfg_t Struct Reference

Data Fields

uint16_t centre_us
int16_t step_us
uint16_t max_travel_us
uint16_t settle_ms
uint16_t measure_ms
float knee_ratio
 The knee. Current must exceed the free-running baseline by both a ratio and an absolute margin before a step counts as bound.
float knee_margin_a
float hard_limit_a
float stall_above_a
 Working hard: above this the servo is doing real work, and it may not do so for longer than stall_ms.
uint16_t stall_ms
uint16_t backoff_us

Field Documentation

◆ backoff_us

uint16_t servo_limit_cfg_t::backoff_us

how far short of the bind to programme

◆ centre_us

uint16_t servo_limit_cfg_t::centre_us

where the search starts

◆ hard_limit_a

float servo_limit_cfg_t::hard_limit_a

abort at once, wherever it happens

◆ knee_ratio

float servo_limit_cfg_t::knee_ratio

The knee. Current must exceed the free-running baseline by both a ratio and an absolute margin before a step counts as bound.

Either test alone misreads a common case. A ratio alone is fooled by a very low baseline, where sensor noise is a large multiple of almost nothing. An absolute margin alone is fooled by a large servo, whose free current exceeds a threshold chosen for a small one.

◆ max_travel_us

uint16_t servo_limit_cfg_t::max_travel_us

how far from centre the search may go

◆ measure_ms

uint16_t servo_limit_cfg_t::measure_ms

average over this long once settled

◆ settle_ms

uint16_t servo_limit_cfg_t::settle_ms

wait for the servo to arrive before reading

◆ stall_above_a

float servo_limit_cfg_t::stall_above_a

Working hard: above this the servo is doing real work, and it may not do so for longer than stall_ms.

A threshold of its own, independent of the knee test. Armed from the knee, the stall protection would depend on a tuning value: a knee set too high to find anything would also disarm the timer meant to catch a search pushing into a stop.

It sits between the free current of any servo on this bench and the hard ceiling, so ordinary work does not trip it and a bind does.

◆ stall_ms

uint16_t servo_limit_cfg_t::stall_ms

how long that may persist

◆ step_us

int16_t servo_limit_cfg_t::step_us

signed: direction and size of a step


The documentation for this struct was generated from the following file: