libstp.step.calibration.deadzone.screens

Deadzone calibration UI screens.

These screens guide the user through finding the minimum motor power where the wheel starts turning.

Classes

DeadzoneTestResult

Result from the testing screen.

DeadzoneConfirmResult

Result from the confirmation screen.

DeadzoneIntroScreen

Introduction screen for deadzone calibration.

DeadzoneTestingScreen

Screen shown during deadzone testing.

DeadzoneResultsScreen

Screen showing calibration results for a single motor.

DeadzoneSummaryScreen

Summary screen showing results for all motors.

Module Contents

class libstp.step.calibration.deadzone.screens.DeadzoneTestResult

Result from the testing screen.

is_turning: bool
class libstp.step.calibration.deadzone.screens.DeadzoneConfirmResult

Result from the confirmation screen.

confirmed: bool
retry_motor: str | None = None
class libstp.step.calibration.deadzone.screens.DeadzoneIntroScreen(motor_name: str, motor_port: int, direction: str, start_percent: int = 1, max_percent: int = 30)

Bases: libstp.ui.screen.UIScreen[None]

Introduction screen for deadzone calibration.

Shows motor info and instructions, waits for button press.

title = 'Deadzone Calibration'
motor_name
motor_port
direction
start_percent = 1
max_percent = 30
build() libstp.ui.widgets.Widget

Build the screen layout.

Called on every render. Return a Widget tree describing what to display.

async on_press()
class libstp.step.calibration.deadzone.screens.DeadzoneTestingScreen(motor_name: str, motor_port: int, current_percent: int, direction: str, max_percent: int = 30)

Bases: libstp.ui.screen.UIScreen[DeadzoneTestResult]

Screen shown during deadzone testing.

Shows current power percentage and direction, with buttons to indicate whether the wheel is turning.

title = 'Is the wheel turning?'
motor_name
motor_port
current_percent
direction
max_percent = 30
build() libstp.ui.widgets.Widget

Build the screen layout.

Called on every render. Return a Widget tree describing what to display.

async on_turning()
async on_not_turning()
async on_button()
class libstp.step.calibration.deadzone.screens.DeadzoneResultsScreen(motor_name: str, motor_port: int, forward_percent: int, reverse_percent: int, release_percent: int)

Bases: libstp.ui.screen.UIScreen[DeadzoneConfirmResult]

Screen showing calibration results for a single motor.

Allows user to confirm or retry the calibration.

title = 'Calibration Results'
motor_name
motor_port
forward_percent
reverse_percent
release_percent
property start_percent: int

The higher of forward/reverse as the start threshold.

property kS: float

Normalized static friction coefficient for ff.kS.

property is_symmetric: bool

Check if forward and reverse are roughly equal.

build() libstp.ui.widgets.Widget

Build the screen layout.

Called on every render. Return a Widget tree describing what to display.

async on_confirm()
async on_retry()
class libstp.step.calibration.deadzone.screens.DeadzoneSummaryScreen(results: list)

Bases: libstp.ui.screen.UIScreen[bool]

Summary screen showing results for all motors.

Allows user to apply all calibrations or cancel.

title = 'ff.kS Calibration Summary'
results
build() libstp.ui.widgets.Widget

Build the screen layout.

Called on every render. Return a Widget tree describing what to display.

async on_apply()
async on_cancel()