mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-06 00:36:32 +08:00
2878 lines
106 KiB
Python
2878 lines
106 KiB
Python
from dataclasses import dataclass
|
||
from enum import Enum
|
||
|
||
|
||
|
||
class ToggleType(Enum):
|
||
BOOLEAN = "boolean"
|
||
BUTTON = "button"
|
||
BUTTON_PARAM = "button_param"
|
||
BUTTON_TOGGLE = "button_toggle"
|
||
LABEL = "label"
|
||
MANAGE = "manage"
|
||
MULTI_BUTTON = "multi_button"
|
||
NUMERIC = "numeric"
|
||
NUMERIC_WITH_BUTTON = "numeric_with_button"
|
||
|
||
|
||
@dataclass(frozen=True)
|
||
class ToggleDefinition:
|
||
button_labels: list[str] | None = None
|
||
button_options: list[str] | None = None
|
||
car_params: list[str] | None = None
|
||
depends_on: list[str] | None = None
|
||
description: str | None = None
|
||
icon: str | None = None
|
||
max_value: float | int | None = None
|
||
min_value: float | int | None = None
|
||
param: str | None = None
|
||
parent_param: str | None = None
|
||
reboot_required: bool | None = None
|
||
step: float | int | None = None
|
||
title: str | None = None
|
||
toggle_type: ToggleType | None = None
|
||
tuning_level: int | None = None
|
||
unit: str | None = None
|
||
value_map: dict[int, str] | None = None
|
||
|
||
|
||
TUNING_LEVEL_TOGGLE = ToggleDefinition(
|
||
title=("Tuning Level"),
|
||
param="TuningLevel",
|
||
description=(
|
||
"Choose your tuning level. Lower levels keep it simple; higher levels unlock more toggles for finer control. " +
|
||
"Minimal - Ideal for those who prefer simplicity or ease of use " +
|
||
"Standard - Recommended for most users for a balanced experience " +
|
||
"Advanced - Fine-tuning for experienced users " +
|
||
"Developer - Highly customizable settings for seasoned enthusiasts"
|
||
),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_tuning.png",
|
||
max_value=3,
|
||
min_value=0,
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
value_map={
|
||
0: "Minimal",
|
||
1: "Standard",
|
||
2: "Advanced",
|
||
3: "Developer",
|
||
},
|
||
)
|
||
|
||
|
||
STOCK_OPENPILOT_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Enable openpilot"),
|
||
param="OpenpilotEnabledToggle",
|
||
description=("Use the openpilot system for adaptive cruise control and lane keep driver assistance. Your attention is required at all times to use this feature. Changing this setting takes effect when the car is powered off."),
|
||
icon="../assets/offroad/icon_openpilot.png",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("openpilot Longitudinal Control (Alpha)"),
|
||
param="ExperimentalLongitudinalEnabled",
|
||
description=("<b>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</b><br><br>On this car, openpilot defaults to the car's built-in ACC instead of openpilot's longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha."),
|
||
icon="../assets/offroad/icon_speed_limit.png",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Experimental Mode"),
|
||
param="ExperimentalMode",
|
||
description=("openpilot defaults to chill mode. Experimental mode enables alpha-level features that are not ready for chill mode."),
|
||
icon="../assets/img_experimental_white.svg",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Disengage on Accelerator Pedal"),
|
||
param="DisengageOnAccelerator",
|
||
description=("When enabled, pressing the accelerator pedal will disengage openpilot."),
|
||
icon="../assets/offroad/icon_disengage_on_accelerator.svg",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Driving Personality"),
|
||
param="LongitudinalPersonality",
|
||
button_labels=["SELECT"],
|
||
button_options=["Aggressive", "Standard", "Relaxed"],
|
||
description=("Standard is recommended. In aggressive mode, openpilot follows lead cars closer and uses more assertive gas and brake behavior. In relaxed mode, openpilot follows further away."),
|
||
icon="../assets/offroad/icon_speed_limit.png",
|
||
toggle_type=ToggleType.BUTTON_PARAM,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Enable Lane Departure Warnings"),
|
||
param="IsLdwEnabled",
|
||
description=("Receive alerts to steer back into lane when your vehicle drifts over a detected lane line without a turn signal active while driving over 31 mph (50 km/h)."),
|
||
icon="../assets/offroad/icon_warning.png",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Record and Upload Driver Camera"),
|
||
param="RecordFront",
|
||
description=("Upload data from the driver-facing camera and help improve the driver monitoring algorithm."),
|
||
icon="../assets/offroad/icon_monitoring.png",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Use Metric System"),
|
||
param="IsMetric",
|
||
description=("Display speed in km/h instead of mph."),
|
||
icon="../assets/offroad/icon_metric.png",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Show ETA in 24h Format"),
|
||
param="NavSettingTime24h",
|
||
description=("Use 24h format instead of am/pm."),
|
||
icon="../assets/offroad/icon_metric.png",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Show Map on Left Side of UI"),
|
||
param="NavSettingLeftSide",
|
||
description=("Show map on the left side when in split-screen view."),
|
||
icon="../assets/offroad/icon_road.png",
|
||
tuning_level=0,
|
||
),
|
||
)
|
||
|
||
|
||
SOFTWARE_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Automatically Update FrogPilot"),
|
||
param="AutomaticUpdates",
|
||
description=("FrogPilot will automatically update itself and its assets when you are offroad with an active internet connection."),
|
||
tuning_level=0,
|
||
),
|
||
)
|
||
|
||
|
||
ALERTS_AND_SOUNDS_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Alert Volume Controller"),
|
||
param="AlertVolumeControl",
|
||
description=("<b>Set how loud each type of openpilot alert is</b> to keep routine prompts from becoming distracting."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_mute.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Disengage Volume"),
|
||
param="DisengageVolume",
|
||
button_labels=["Test"],
|
||
description=("<b>Set the volume for alerts when openpilot disengages.</b><br><br>Examples include: \"Cruise Fault: Restart the Car\", \"Parking Brake Engaged\", \"Pedal Pressed\"."),
|
||
max_value=101,
|
||
min_value=0,
|
||
parent_param="AlertVolumeControl",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Muted", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Engage Volume"),
|
||
param="EngageVolume",
|
||
button_labels=["Test"],
|
||
description=("<b>Set the volume for the chime when openpilot engages</b>, such as after pressing the \"RESUME\" or \"SET\" steering wheel buttons."),
|
||
max_value=101,
|
||
min_value=0,
|
||
parent_param="AlertVolumeControl",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Muted", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Prompt Volume"),
|
||
param="PromptVolume",
|
||
button_labels=["Test"],
|
||
description=("<b>Set the volume for prompts that need attention.</b><br><br>Examples include: \"Car Detected in Blindspot\", \"Steering Temporarily Unavailable\", \"Turn Exceeds Steering Limit\"."),
|
||
max_value=101,
|
||
min_value=0,
|
||
parent_param="AlertVolumeControl",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Muted", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Prompt Distracted Volume"),
|
||
param="PromptDistractedVolume",
|
||
button_labels=["Test"],
|
||
description=("<b>Set the volume for prompts when openpilot detects driver distraction or unresponsiveness.</b><br><br>Examples include: \"Pay Attention\", \"Touch Steering Wheel\"."),
|
||
max_value=101,
|
||
min_value=0,
|
||
parent_param="AlertVolumeControl",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Muted", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Refuse Volume"),
|
||
param="RefuseVolume",
|
||
button_labels=["Test"],
|
||
description=("<b>Set the volume for alerts when openpilot refuses to engage.</b><br><br>Examples include: \"Brake Hold Active\", \"Door Open\", \"Seatbelt Unlatched\"."),
|
||
max_value=101,
|
||
min_value=0,
|
||
parent_param="AlertVolumeControl",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Muted", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Warning Soft Volume"),
|
||
param="WarningSoftVolume",
|
||
button_labels=["Test"],
|
||
description=("<b>Set the volume for softer warnings about potential risks.</b><br><br>Examples include: \"BRAKE! Risk of Collision\", \"Steering Temporarily Unavailable\"."),
|
||
max_value=101,
|
||
min_value=25,
|
||
parent_param="AlertVolumeControl",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Muted", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Warning Immediate Volume"),
|
||
param="WarningImmediateVolume",
|
||
button_labels=["Test"],
|
||
description=("<b>Set the volume for the loudest warnings that require urgent attention.</b><br><br>Examples include: \"DISENGAGE IMMEDIATELY — Driver Distracted\", \"DISENGAGE IMMEDIATELY — Driver Unresponsive\"."),
|
||
max_value=101,
|
||
min_value=25,
|
||
parent_param="AlertVolumeControl",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Muted", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("FrogPilot Alerts"),
|
||
param="CustomAlerts",
|
||
description=("<b>Optional FrogPilot alerts</b> that highlight driving events in a more noticeable way."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_green_light.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Goat Scream"),
|
||
param="GoatScream",
|
||
description=("<b>Play the infamous \"Goat Scream\" when the steering controller reaches its limit.</b> Based on the \"Turn Exceeds Steering Limit\" event."),
|
||
parent_param="CustomAlerts",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Green Light Alert"),
|
||
param="GreenLightAlert",
|
||
description=("<b>Play an alert when the model predicts a red light has turned green.</b><br><br><i><b>Disclaimer</b>: openpilot does not explicitly detect traffic lights. This alert is based on end-to-end model predictions from camera input and may trigger even when the light has not changed.</i>"),
|
||
parent_param="CustomAlerts",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lead Departing Alert"),
|
||
param="LeadDepartingAlert",
|
||
description=("<b>Play an alert when the lead vehicle departs from a stop.</b>"),
|
||
parent_param="CustomAlerts",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Loud \"Car Detected in Blindspot\" Alert"),
|
||
param="LoudBlindspotAlert",
|
||
car_params=["blind_spot_monitoring"],
|
||
description=("<b>Play a louder alert if a vehicle is in the blind spot when attempting to change lanes.</b> Based on the \"Car Detected in Blindspot\" event."),
|
||
parent_param="CustomAlerts",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Limit Changed Alert"),
|
||
param="SpeedLimitChangedAlert",
|
||
depends_on=["ShowSpeedLimits", "SpeedLimitController"],
|
||
description=("<b>Play an alert when the posted speed limit changes.</b>"),
|
||
parent_param="CustomAlerts",
|
||
tuning_level=0,
|
||
),
|
||
)
|
||
|
||
|
||
DRIVING_MODEL_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Automatically Download New Models"),
|
||
param="AutomaticallyDownloadModels",
|
||
description=("<b>Automatically download new driving models</b> as they become available."),
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Model Randomizer"),
|
||
param="ModelRandomizer",
|
||
description=("<b>Select a random driving model each drive</b> and use feedback prompts at the end of the drive to help find the model that best suits you!"),
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Update Model Manager"),
|
||
param="UpdateTinygrad",
|
||
button_labels=["UPDATE"],
|
||
description=("<b>Update the \"Model Manager\"</b> to support the latest models."),
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
)
|
||
|
||
|
||
GAS_BRAKE_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Advanced Longitudinal Tuning"),
|
||
param="AdvancedLongitudinalTune",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Advanced acceleration and braking control changes</b> to fine-tune how openpilot drives."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_advanced_longitudinal_tune.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Actuator Delay"),
|
||
param="LongitudinalActuatorDelay",
|
||
description=("<b>The time between openpilot's throttle or brake command and the vehicle's response.</b> Increase if the vehicle feels slow to react; decrease if it feels too eager or overshoots."),
|
||
max_value=1,
|
||
min_value=0,
|
||
parent_param="AdvancedLongitudinalTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="seconds",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Maximum Acceleration"),
|
||
param="MaxDesiredAcceleration",
|
||
description=("<b>Limit the strongest acceleration</b> openpilot can command."),
|
||
max_value=4.0,
|
||
min_value=0.1,
|
||
parent_param="AdvancedLongitudinalTune",
|
||
step=0.1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="m/s²",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Start Acceleration"),
|
||
param="StartAccel",
|
||
depends_on=["!HumanAcceleration", "!LongitudinalTune"],
|
||
description=("<b>Extra acceleration applied when starting from a stop.</b> Increase for quicker takeoffs; decrease for smoother, gentler starts."),
|
||
max_value=4,
|
||
min_value=0,
|
||
parent_param="AdvancedLongitudinalTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="m/s²",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Start Speed"),
|
||
param="VEgoStarting",
|
||
depends_on=["!ExperimentalGMTune", "!FrogsGoMoosTweak"],
|
||
description=("<b>The speed at which openpilot exits the stopped state.</b> Increase to reduce creeping; decrease to move sooner after stopping."),
|
||
max_value=1,
|
||
min_value=0.01,
|
||
parent_param="AdvancedLongitudinalTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="m/s²",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stop Acceleration"),
|
||
param="StopAccel",
|
||
description=("<b>Brake force applied to hold the vehicle at a standstill.</b> Increase to prevent rolling on hills; decrease for smoother, softer stops."),
|
||
max_value=0,
|
||
min_value=-4,
|
||
parent_param="AdvancedLongitudinalTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="m/s²",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stopping Rate"),
|
||
param="StoppingDecelRate",
|
||
depends_on=["!ExperimentalGMTune", "!FrogsGoMoosTweak"],
|
||
description=("<b>How quickly braking ramps up when stopping.</b> Increase for shorter, firmer stops; decrease for smoother, longer stops."),
|
||
max_value=1,
|
||
min_value=0.001,
|
||
parent_param="AdvancedLongitudinalTune",
|
||
step=0.001,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="m/s²",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stop Speed"),
|
||
param="VEgoStopping",
|
||
depends_on=["!ExperimentalGMTune", "!FrogsGoMoosTweak"],
|
||
description=("<b>The speed at which openpilot considers the vehicle stopped.</b> Increase to brake earlier and stop smoothly; decrease to wait longer but risk overshooting."),
|
||
max_value=1,
|
||
min_value=0.01,
|
||
parent_param="AdvancedLongitudinalTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="m/s²",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Conditional Experimental Mode"),
|
||
param="ConditionalExperimental",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Automatically switch to \"Experimental Mode\" when set conditions are met.</b> Allows the model to handle challenging situations with smarter decision making."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_conditional.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Below"),
|
||
param="CESpeed",
|
||
description=("<b>Switch to \"Experimental Mode\" when driving below this speed without a lead</b> to help openpilot handle low-speed situations more smoothly."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="ConditionalExperimental",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=1,
|
||
unit="mph",
|
||
value_map={0: "Off"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("With Lead"),
|
||
param="CESpeedLead",
|
||
description=("<b>Switch to \"Experimental Mode\" when driving below this speed with a lead</b> to help openpilot handle low-speed situations more smoothly."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="ConditionalExperimental",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=1,
|
||
unit="mph",
|
||
value_map={0: "Off"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Curve Detected Ahead"),
|
||
param="CECurves",
|
||
button_labels=["With Lead"],
|
||
button_options=["CECurvesLead"],
|
||
description=("<b>Switch to \"Experimental Mode\" when a curve is detected</b> to allow the model to set an appropriate speed for the curve."),
|
||
parent_param="ConditionalExperimental",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("With Lead"),
|
||
param="CECurvesLead",
|
||
description=("<b>Also switch to \"Experimental Mode\" for curve detections when a lead vehicle is present.</b>"),
|
||
parent_param="CECurves",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("\"Detected\" Stop Lights/Signs"),
|
||
param="CEStopLights",
|
||
depends_on=["!visible:CEModelStopTime"],
|
||
description=("<b>Switch to \"Experimental Mode\" whenever the driving model \"detects\" a red light or stop sign.</b><br><br><i><b>Disclaimer</b>: openpilot does not explicitly detect traffic lights or stop signs. In \"Experimental Mode\", openpilot makes end-to-end driving decisions from camera input, which means it may stop even when there's no clear reason!</i>"),
|
||
parent_param="ConditionalExperimental",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lead Detected Ahead"),
|
||
param="CELead",
|
||
button_labels=["Slower Lead", "Stopped Lead"],
|
||
button_options=["CESlowerLead", "CEStoppedLead"],
|
||
description=("<b>Switch to \"Experimental Mode\" when a slower or stopped vehicle is detected.</b> Can make braking smoother and more reliable on some vehicles."),
|
||
parent_param="ConditionalExperimental",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Slower Lead"),
|
||
param="CESlowerLead",
|
||
description=("<b>Switch to \"Experimental Mode\" when a slower lead vehicle is detected.</b>"),
|
||
parent_param="CELead",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stopped Lead"),
|
||
param="CEStoppedLead",
|
||
description=("<b>Switch to \"Experimental Mode\" when a stopped lead vehicle is detected.</b>"),
|
||
parent_param="CELead",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Navigation-Based"),
|
||
param="CENavigation",
|
||
button_labels=["Intersections", "Turns", "With Lead"],
|
||
button_options=["CENavigationIntersections", "CENavigationTurns", "CENavigationLead"],
|
||
description=("<b>Switch to \"Experimental Mode\" when approaching intersections or turns on the active route</b> while using \"Navigate on openpilot\" (NOO) to allow the model to set an appropriate speed for upcoming maneuvers."),
|
||
parent_param="ConditionalExperimental",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Predicted Stop In"),
|
||
param="CEModelStopTime",
|
||
description=("<b>Switch to \"Experimental Mode\" when openpilot predicts a stop within the set time.</b> This is usually triggered when the model \"sees\" a red light or stop sign ahead.<br><br><i><b>Disclaimer</b>: openpilot does not explicitly detect traffic lights or stop signs. In \"Experimental Mode\", openpilot makes end-to-end driving decisions from camera input, which means it may stop even when there's no clear reason!</i>"),
|
||
max_value=9,
|
||
min_value=0,
|
||
parent_param="ConditionalExperimental",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
value_map={0: "Off", 1: "1 second", 2: "2 seconds", 3: "3 seconds", 4: "4 seconds", 5: "5 seconds", 6: "6 seconds", 7: "7 seconds", 8: "8 seconds", 9: "9 seconds"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Turn Signal Below"),
|
||
param="CESignalSpeed",
|
||
button_labels=["Not For Detected Lanes"],
|
||
button_options=["CESignalLaneDetection"],
|
||
description=("<b>Switch to \"Experimental Mode\" when using a turn signal below the set speed</b> to allow the model to choose an appropriate speed for smoother left and right turns."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="ConditionalExperimental",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="mph",
|
||
value_map={0: "Off"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Not For Detected Lanes"),
|
||
param="CESignalLaneDetection",
|
||
description=("<b>Ignore the turn-signal condition when a clear lane is detected.</b>"),
|
||
parent_param="CESignalSpeed",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Status Widget"),
|
||
param="ShowCEMStatus",
|
||
description=("<b>Show which condition triggered \"Experimental Mode\"</b> on the driving screen."),
|
||
parent_param="ConditionalExperimental",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Curve Speed Controller"),
|
||
param="CurveSpeedController",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Automatically slow down for upcoming curves</b> using data learned from your driving style, adapting to curves as you would."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_speed_map.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Calibrated Lateral Acceleration"),
|
||
param="CalibratedLateralAcceleration",
|
||
description=("<b>The learned lateral acceleration from collected driving data.</b> This sets how fast openpilot will take curves. Higher values allow faster cornering; lower values slow the vehicle for gentler turns."),
|
||
parent_param="CurveSpeedController",
|
||
toggle_type=ToggleType.LABEL,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Calibration Progress"),
|
||
param="CalibrationProgress",
|
||
description=("<b>How much curve data has been collected.</b> This is a progress meter; it is normal for the value to stay low and rarely reach 100%."),
|
||
parent_param="CurveSpeedController",
|
||
toggle_type=ToggleType.LABEL,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Status Widget"),
|
||
param="ShowCSCStatus",
|
||
description=("<b>Show the \"Curve Speed Controller\" target speed on the driving screen.</b>"),
|
||
parent_param="CurveSpeedController",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Driving Personalities"),
|
||
param="CustomPersonalities",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Customize the \"Driving Personalities\"</b> to better match your driving style."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_personality.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Traffic Mode"),
|
||
param="TrafficPersonalityProfile",
|
||
description=("<b>Customize the \"Traffic Mode\" personality profile.</b> Designed for stop-and-go driving."),
|
||
icon="../../../frogpilot/assets/stock_theme/distance_icons/traffic.png",
|
||
parent_param="CustomPersonalities",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Following Distance"),
|
||
param="TrafficFollow",
|
||
description=("<b>The minimum following distance to the lead vehicle in \"Traffic Mode\".</b> openpilot blends between this value and the \"Aggressive\" profile as speed increases. Increase for more space; decrease for tighter gaps."),
|
||
max_value=3,
|
||
min_value=0.5,
|
||
parent_param="TrafficPersonalityProfile",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acceleration Smoothness"),
|
||
param="TrafficJerkAcceleration",
|
||
description=("<b>How smoothly openpilot accelerates in \"Traffic Mode\".</b> Increase for gentler starts; decrease for faster but more abrupt takeoffs."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="TrafficPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Braking Smoothness"),
|
||
param="TrafficJerkDeceleration",
|
||
description=("<b>How smoothly openpilot brakes in \"Traffic Mode\".</b> Increase for gentler stops; decrease for quicker but sharper braking."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="TrafficPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Safety Gap Bias"),
|
||
param="TrafficJerkDanger",
|
||
description=("<b>How much extra space openpilot keeps from the vehicle ahead in \"Traffic Mode\".</b> Increase for larger gaps and more cautious following; decrease for tighter gaps and closer following."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="TrafficPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Slowdown Response"),
|
||
param="TrafficJerkSpeedDecrease",
|
||
description=("<b>How smoothly openpilot slows down in \"Traffic Mode\".</b> Increase for more gradual deceleration; decrease for faster but sharper slowdowns."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="TrafficPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed-Up Response"),
|
||
param="TrafficJerkSpeed",
|
||
description=("<b>How smoothly openpilot speeds up in \"Traffic Mode\".</b> Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="TrafficPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Aggressive"),
|
||
param="AggressivePersonalityProfile",
|
||
description=("<b>Customize the \"Aggressive\" personality profile.</b> Designed for assertive driving with tighter gaps."),
|
||
icon="../../../frogpilot/assets/stock_theme/distance_icons/aggressive.png",
|
||
parent_param="CustomPersonalities",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Following Distance"),
|
||
param="AggressiveFollow",
|
||
description=("<b>How many seconds openpilot follows behind lead vehicles when using the \"Aggressive\" profile.</b> Increase for more space; decrease for tighter gaps.<br><br>Default: 1.25 seconds."),
|
||
max_value=3,
|
||
min_value=1,
|
||
parent_param="AggressivePersonalityProfile",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acceleration Smoothness"),
|
||
param="AggressiveJerkAcceleration",
|
||
description=("<b>How smoothly openpilot accelerates with the \"Aggressive\" profile.</b> Increase for gentler starts; decrease for faster but more abrupt takeoffs."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="AggressivePersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Braking Smoothness"),
|
||
param="AggressiveJerkDeceleration",
|
||
description=("<b>How smoothly openpilot brakes with the \"Aggressive\" profile.</b> Increase for gentler stops; decrease for quicker but sharper braking."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="AggressivePersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Safety Gap Bias"),
|
||
param="AggressiveJerkDanger",
|
||
description=("<b>How much extra space openpilot keeps from the vehicle ahead with the \"Aggressive\" profile.</b> Increase for larger gaps and more cautious following; decrease for tighter gaps and closer following."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="AggressivePersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Slowdown Response"),
|
||
param="AggressiveJerkSpeedDecrease",
|
||
description=("<b>How smoothly openpilot slows down with the \"Aggressive\" profile.</b> Increase for more gradual deceleration; decrease for faster but sharper slowdowns."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="AggressivePersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed-Up Response"),
|
||
param="AggressiveJerkSpeed",
|
||
description=("<b>How smoothly openpilot speeds up with the \"Aggressive\" profile.</b> Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="AggressivePersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Standard"),
|
||
param="StandardPersonalityProfile",
|
||
description=("<b>Customize the \"Standard\" personality profile.</b> Designed for balanced driving with moderate gaps."),
|
||
icon="../../../frogpilot/assets/stock_theme/distance_icons/standard.png",
|
||
parent_param="CustomPersonalities",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Following Distance"),
|
||
param="StandardFollow",
|
||
description=("<b>How many seconds openpilot follows behind lead vehicles when using the \"Standard\" profile.</b> Increase for more space; decrease for tighter gaps.<br><br>Default: 1.45 seconds."),
|
||
max_value=3,
|
||
min_value=1,
|
||
parent_param="StandardPersonalityProfile",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acceleration Smoothness"),
|
||
param="StandardJerkAcceleration",
|
||
description=("<b>How smoothly openpilot accelerates with the \"Standard\" profile.</b> Increase for gentler starts; decrease for faster but more abrupt takeoffs."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="StandardPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Braking Smoothness"),
|
||
param="StandardJerkDeceleration",
|
||
description=("<b>How smoothly openpilot brakes with the \"Standard\" profile.</b> Increase for gentler stops; decrease for quicker but sharper braking."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="StandardPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Safety Gap Bias"),
|
||
param="StandardJerkDanger",
|
||
description=("<b>How much extra space openpilot keeps from the vehicle ahead with the \"Standard\" profile.</b> Increase for larger gaps and more cautious following; decrease for tighter gaps and closer following."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="StandardPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Slowdown Response"),
|
||
param="StandardJerkSpeedDecrease",
|
||
description=("<b>How smoothly openpilot slows down with the \"Standard\" profile.</b> Increase for more gradual deceleration; decrease for faster but sharper slowdowns."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="StandardPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed-Up Response"),
|
||
param="StandardJerkSpeed",
|
||
description=("<b>How smoothly openpilot speeds up with the \"Standard\" profile.</b> Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="StandardPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Relaxed"),
|
||
param="RelaxedPersonalityProfile",
|
||
description=("<b>Customize the \"Relaxed\" personality profile.</b> Designed for smoother, more comfortable driving with larger gaps."),
|
||
icon="../../../frogpilot/assets/stock_theme/distance_icons/relaxed.png",
|
||
parent_param="CustomPersonalities",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Following Distance"),
|
||
param="RelaxedFollow",
|
||
description=("<b>How many seconds openpilot follows behind lead vehicles when using the \"Relaxed\" profile.</b> Increase for more space; decrease for tighter gaps.<br><br>Default: 1.75 seconds."),
|
||
max_value=3,
|
||
min_value=1,
|
||
parent_param="RelaxedPersonalityProfile",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acceleration Smoothness"),
|
||
param="RelaxedJerkAcceleration",
|
||
description=("<b>How smoothly openpilot accelerates with the \"Relaxed\" profile.</b> Increase for gentler starts; decrease for faster but more abrupt takeoffs."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="RelaxedPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Braking Smoothness"),
|
||
param="RelaxedJerkDeceleration",
|
||
description=("<b>How smoothly openpilot brakes with the \"Relaxed\" profile.</b> Increase for gentler stops; decrease for quicker but sharper braking."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="RelaxedPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Safety Gap Bias"),
|
||
param="RelaxedJerkDanger",
|
||
description=("<b>How much extra space openpilot keeps from the vehicle ahead with the \"Relaxed\" profile.</b> Increase for larger gaps and more cautious following; decrease for tighter gaps and closer following."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="RelaxedPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Slowdown Response"),
|
||
param="RelaxedJerkSpeedDecrease",
|
||
description=("<b>How smoothly openpilot slows down with the \"Relaxed\" profile.</b> Increase for more gradual deceleration; decrease for faster but sharper slowdowns."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="RelaxedPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed-Up Response"),
|
||
param="RelaxedJerkSpeed",
|
||
description=("<b>How smoothly openpilot speeds up with the \"Relaxed\" profile.</b> Increase for more gradual acceleration; decrease for quicker but more jolting acceleration."),
|
||
max_value=200,
|
||
min_value=25,
|
||
parent_param="RelaxedPersonalityProfile",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Longitudinal Tuning"),
|
||
param="LongitudinalTune",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Acceleration and braking control changes</b> to fine-tune how openpilot drives."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_longitudinal_tune.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acceleration Profile"),
|
||
param="AccelerationProfile",
|
||
button_labels=["SELECT"],
|
||
button_options=["Standard", "Eco", "Sport", "Sport+"],
|
||
description=("<b>How quickly openpilot speeds up.</b> \"Eco\" is gentle and efficient, \"Sport\" is firmer and more responsive, and \"Sport+\" accelerates at the maximum rate allowed."),
|
||
parent_param="LongitudinalTune",
|
||
toggle_type=ToggleType.BUTTON_PARAM,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Deceleration Profile"),
|
||
param="DecelerationProfile",
|
||
button_labels=["SELECT"],
|
||
button_options=["Standard", "Eco", "Sport"],
|
||
description=("<b>How firmly openpilot slows down.</b> \"Eco\" favors coasting, \"Sport\" applies stronger braking."),
|
||
parent_param="LongitudinalTune",
|
||
toggle_type=ToggleType.BUTTON_PARAM,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Human-Like Acceleration"),
|
||
param="HumanAcceleration",
|
||
description=("<b>Acceleration that mimics human behavior</b> by easing the throttle at low speeds and adding extra power when taking off from a stop."),
|
||
parent_param="LongitudinalTune",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Human-Like Following"),
|
||
param="HumanFollowing",
|
||
description=("<b>Following behavior that mimics human drivers</b> by closing gaps behind faster vehicles for quicker takeoffs and dynamically adjusting the desired following distance for gentler, more efficient braking."),
|
||
parent_param="LongitudinalTune",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Human-Like Lane Changes"),
|
||
param="HumanLaneChanges",
|
||
car_params=["radar_support"],
|
||
description=("<b>Lane-change behavior that mimics human drivers</b> by anticipating and tracking adjacent vehicles during lane changes."),
|
||
parent_param="LongitudinalTune",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lead Detection Sensitivity"),
|
||
param="LeadDetectionThreshold",
|
||
description=("<b>How sensitive openpilot is to detecting vehicles.</b> Higher sensitivity allows quicker detection at longer distances but may react to non-vehicle objects; lower sensitivity is more conservative and reduces false detections."),
|
||
max_value=50,
|
||
min_value=25,
|
||
parent_param="LongitudinalTune",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("\"Taco Bell Run\" Turn Speed Hack"),
|
||
param="TacoTune",
|
||
description=("<b>The turn-speed hack from comma's 2022 \"Taco Bell Run\".</b> Designed to slow down for left and right turns."),
|
||
parent_param="LongitudinalTune",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Quality of Life"),
|
||
param="QOLLongitudinal",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Miscellaneous acceleration and braking control changes</b> to fine-tune how openpilot drives."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_quality_of_life.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Cruise Interval"),
|
||
param="CustomCruise",
|
||
car_params=["!pcm_cruise", "openpilot_longitudinal"],
|
||
description=("<b>How much the set speed increases or decreases</b> for each + or – cruise control button press."),
|
||
max_value=99,
|
||
min_value=1,
|
||
parent_param="QOLLongitudinal",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Cruise Interval (Hold)"),
|
||
param="CustomCruiseLong",
|
||
car_params=["!pcm_cruise", "openpilot_longitudinal"],
|
||
description=("<b>How much the set speed increases or decreases while holding the + or – cruise control buttons.</b>"),
|
||
max_value=99,
|
||
min_value=1,
|
||
parent_param="QOLLongitudinal",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Force Stop at \"Detected\" Stop Lights/Signs"),
|
||
param="ForceStops",
|
||
description=("<b>Force openpilot to stop whenever the driving model \"detects\" a red light or stop sign.</b><br><br><i><b>Disclaimer</b>: openpilot does not explicitly detect traffic lights or stop signs. In \"Experimental Mode\", openpilot makes end-to-end driving decisions from camera input, which means it may stop even when there's no clear reason!</i>"),
|
||
parent_param="QOLLongitudinal",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Stopped Distance by:"),
|
||
param="IncreasedStoppedDistance",
|
||
description=("<b>Add extra space when stopped behind vehicles.</b> Increase for more room; decrease for shorter gaps."),
|
||
max_value=10,
|
||
min_value=0,
|
||
parent_param="QOLLongitudinal",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=1,
|
||
unit="feet",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Map Accel/Decel to Gears"),
|
||
param="MapGears",
|
||
button_labels=["Acceleration", "Deceleration"],
|
||
button_options=["MapAcceleration", "MapDeceleration"],
|
||
car_params=["toyota_brand"],
|
||
description=("<b>Map the Acceleration or Deceleration profiles to the vehicle's \"Eco\" and \"Sport\" gear modes.</b>"),
|
||
parent_param="QOLLongitudinal",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acceleration"),
|
||
param="MapAcceleration",
|
||
car_params=["toyota_brand"],
|
||
description=("<b>Apply acceleration profile mapping to gear changes.</b>"),
|
||
parent_param="MapGears",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Deceleration"),
|
||
param="MapDeceleration",
|
||
car_params=["toyota_brand"],
|
||
description=("<b>Apply deceleration profile mapping to gear changes.</b>"),
|
||
parent_param="MapGears",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Offset Set Speed by:"),
|
||
param="SetSpeedOffset",
|
||
car_params=["!pcm_cruise", "openpilot_longitudinal"],
|
||
description=("<b>Increase the set speed by the chosen offset.</b> For example, set +5 if you usually drive 5 over the limit."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="QOLLongitudinal",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reverse Cruise Increase"),
|
||
param="ReverseCruise",
|
||
car_params=["toyota_brand", "openpilot_longitudinal", "pcm_cruise"],
|
||
description=("<b>Reverse the cruise control button behavior</b> so a short press increases the set speed by 5 instead of 1."),
|
||
parent_param="QOLLongitudinal",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Weather Condition Offsets"),
|
||
param="WeatherPresets",
|
||
description=("<b>Automatically adjust driving behavior based on real-time weather.</b> Helps maintain comfort and safety in low visibility, rain, or snow."),
|
||
parent_param="QOLLongitudinal",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Low Visibility"),
|
||
param="LowVisibilityOffsets",
|
||
button_labels=["MANAGE"],
|
||
description=("<b>Driving adjustments for fog, haze, or other low-visibility conditions.</b>"),
|
||
parent_param="WeatherPresets",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Following Distance by:"),
|
||
param="IncreaseFollowingLowVisibility",
|
||
description=("<b>Add extra space behind lead vehicles in low visibility.</b> Increase for more space; decrease for tighter gaps."),
|
||
max_value=3,
|
||
min_value=0,
|
||
parent_param="LowVisibilityOffsets",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Stopped Distance by:"),
|
||
param="IncreasedStoppedDistanceLowVisibility",
|
||
description=("<b>Add extra buffer when stopped behind vehicles in low visibility.</b> Increase for more room; decrease for shorter gaps."),
|
||
max_value=10,
|
||
min_value=0,
|
||
parent_param="LowVisibilityOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="feet",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Acceleration by:"),
|
||
param="ReduceAccelerationLowVisibility",
|
||
description=("<b>Lower the maximum acceleration in low visibility.</b> Increase for softer takeoffs; decrease for quicker but less stable takeoffs."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="LowVisibilityOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Speed in Curves by:"),
|
||
param="ReduceLateralAccelerationLowVisibility",
|
||
description=("<b>Lower the desired speed while driving through curves in low visibility.</b> Increase for safer, gentler turns; decrease for more aggressive driving in curves."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="LowVisibilityOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Rain"),
|
||
param="RainOffsets",
|
||
button_labels=["MANAGE"],
|
||
description=("<b>Driving adjustments for rainy conditions.</b>"),
|
||
parent_param="WeatherPresets",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Following Distance by:"),
|
||
param="IncreaseFollowingRain",
|
||
description=("<b>Add extra space behind lead vehicles in rain.</b> Increase for more space; decrease for tighter gaps."),
|
||
max_value=3,
|
||
min_value=0,
|
||
parent_param="RainOffsets",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Stopped Distance by:"),
|
||
param="IncreasedStoppedDistanceRain",
|
||
description=("<b>Add extra buffer when stopped behind vehicles in rain.</b> Increase for more room; decrease for shorter gaps."),
|
||
max_value=10,
|
||
min_value=0,
|
||
parent_param="RainOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="feet",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Acceleration by:"),
|
||
param="ReduceAccelerationRain",
|
||
description=("<b>Lower the maximum acceleration in rain.</b> Increase for softer takeoffs; decrease for quicker but less stable takeoffs."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="RainOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Speed in Curves by:"),
|
||
param="ReduceLateralAccelerationRain",
|
||
description=("<b>Lower the desired speed while driving through curves in rain.</b> Increase for safer, gentler turns; decrease for more aggressive driving in curves."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="RainOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Rainstorms"),
|
||
param="RainStormOffsets",
|
||
button_labels=["MANAGE"],
|
||
description=("<b>Driving adjustments for rainstorms.</b>"),
|
||
parent_param="WeatherPresets",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Following Distance by:"),
|
||
param="IncreaseFollowingRainStorm",
|
||
description=("<b>Add extra space behind lead vehicles in a rainstorm.</b> Increase for more space; decrease for tighter gaps."),
|
||
max_value=3,
|
||
min_value=0,
|
||
parent_param="RainStormOffsets",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Stopped Distance by:"),
|
||
param="IncreasedStoppedDistanceRainStorm",
|
||
description=("<b>Add extra buffer when stopped behind vehicles in a rainstorm.</b> Increase for more room; decrease for shorter gaps."),
|
||
max_value=10,
|
||
min_value=0,
|
||
parent_param="RainStormOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="feet",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Acceleration by:"),
|
||
param="ReduceAccelerationRainStorm",
|
||
description=("<b>Lower the maximum acceleration in a rainstorm.</b> Increase for softer takeoffs; decrease for quicker but less stable takeoffs."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="RainStormOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Speed in Curves by:"),
|
||
param="ReduceLateralAccelerationRainStorm",
|
||
description=("<b>Lower the desired speed while driving through curves in a rainstorm.</b> Increase for safer, gentler turns; decrease for more aggressive driving in curves."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="RainStormOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Snow"),
|
||
param="SnowOffsets",
|
||
button_labels=["MANAGE"],
|
||
description=("<b>Driving adjustments for snowy conditions.</b>"),
|
||
parent_param="WeatherPresets",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Following Distance by:"),
|
||
param="IncreaseFollowingSnow",
|
||
description=("<b>Add extra space behind lead vehicles in snow.</b> Increase for more space; decrease for tighter gaps."),
|
||
max_value=3,
|
||
min_value=0,
|
||
parent_param="SnowOffsets",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increase Stopped Distance by:"),
|
||
param="IncreasedStoppedDistanceSnow",
|
||
description=("<b>Add extra buffer when stopped behind vehicles in snow.</b> Increase for more room; decrease for shorter gaps."),
|
||
max_value=10,
|
||
min_value=0,
|
||
parent_param="SnowOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="feet",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Acceleration by:"),
|
||
param="ReduceAccelerationSnow",
|
||
description=("<b>Lower the maximum acceleration in snow.</b> Increase for softer takeoffs; decrease for quicker but less stable takeoffs."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="SnowOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reduce Speed in Curves by:"),
|
||
param="ReduceLateralAccelerationSnow",
|
||
description=("<b>Lower the desired speed while driving through curves in snow.</b> Increase for safer, gentler turns; decrease for more aggressive driving in curves."),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="SnowOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Limit Controller"),
|
||
param="SpeedLimitController",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Limit openpilot's maximum driving speed to the current speed limit</b> obtained from downloaded maps, Mapbox, or the dashboard for supported vehicles (Ford, Genesis, Hyundai, Kia, Lexus, Toyota)."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_speed_limit.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Fallback Speed"),
|
||
param="SLCFallback",
|
||
button_labels=["SELECT"],
|
||
button_options=["Set Speed", "Experimental Mode", "Previous Limit"],
|
||
description=("<b>The speed used by \"Speed Limit Controller\" when no speed limit is found.</b><br><br>- <b>Set Speed</b>: Use the cruise set speed<br>- <b>Experimental Mode</b>: Estimate the limit using the driving model<br>- <b>Previous Limit</b>: Keep using the last confirmed limit"),
|
||
parent_param="SpeedLimitController",
|
||
toggle_type=ToggleType.BUTTON_PARAM,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Override Speed"),
|
||
param="SLCOverride",
|
||
button_labels=["SELECT"],
|
||
button_options=["None", "Set With Gas Pedal", "Max Set Speed"],
|
||
description=("<b>The speed used by \"Speed Limit Controller\" after you manually drive faster than the posted limit.</b><br><br>- <b>Set with Gas Pedal</b>: Use the highest speed reached while pressing the gas<br>- <b>Max Set Speed</b>: Use the cruise set speed<br><br>Overrides clear when openpilot disengages."),
|
||
parent_param="SpeedLimitController",
|
||
toggle_type=ToggleType.BUTTON_PARAM,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Quality of Life"),
|
||
param="SLCQOL",
|
||
button_labels=["MANAGE"],
|
||
description=("<b>Miscellaneous \"Speed Limit Controller\" changes</b> to fine-tune how openpilot drives."),
|
||
parent_param="SpeedLimitController",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Confirm New Speed Limits"),
|
||
param="SLCConfirmation",
|
||
button_labels=["Lower Limits", "Higher Limits"],
|
||
button_options=["SLCConfirmationLower", "SLCConfirmationHigher"],
|
||
description=("<b>Ask before changing to a new speed limit.</b> To accept, tap the flashing on-screen widget or press the Cruise Increase button. To deny, press the Cruise Decrease button or ignore the prompt for 30 seconds."),
|
||
parent_param="SLCQOL",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lower Limits"),
|
||
param="SLCConfirmationLower",
|
||
description=("<b>Request confirmation when the detected speed limit decreases.</b>"),
|
||
parent_param="SLCConfirmation",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Higher Limits"),
|
||
param="SLCConfirmationHigher",
|
||
description=("<b>Request confirmation when the detected speed limit increases.</b>"),
|
||
parent_param="SLCConfirmation",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Force MPH from Dashboard"),
|
||
param="ForceMPHDashboard",
|
||
description=("<b>Always read dashboard speed limit signs in mph.</b> Turn this on if the cluster shows mph but the limit is interpreted as km/h."),
|
||
parent_param="SLCQOL",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Higher Limit Lookahead Time"),
|
||
param="SLCLookaheadHigher",
|
||
description=("<b>How far ahead openpilot anticipates upcoming higher speed limits</b> from downloaded map data."),
|
||
max_value=30,
|
||
min_value=0,
|
||
parent_param="SLCQOL",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="seconds",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lower Limit Lookahead Time"),
|
||
param="SLCLookaheadLower",
|
||
description=("<b>How far ahead openpilot anticipates upcoming lower speed limits</b> from downloaded map data."),
|
||
max_value=30,
|
||
min_value=0,
|
||
parent_param="SLCQOL",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="seconds",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Match Speed Limit on Engage"),
|
||
param="SetSpeedLimit",
|
||
car_params=["!pcm_cruise"],
|
||
description=("<b>When openpilot is first enabled, automatically set the max speed to the current posted limit.</b>"),
|
||
parent_param="SLCQOL",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Use Mapbox as Fallback"),
|
||
param="SLCMapboxFiller",
|
||
depends_on=["MapboxSecretKey"],
|
||
description=("<b>Use Mapbox speed-limit data when no other source is available.</b>"),
|
||
parent_param="SLCQOL",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Limit Source Priority"),
|
||
param="SLCPriority",
|
||
button_labels=["SELECT"],
|
||
description=("<b>The source order for speed limits</b> when more than one is available."),
|
||
parent_param="SpeedLimitController",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Limit Offsets"),
|
||
param="SLCOffsets",
|
||
button_labels=["MANAGE"],
|
||
description=("<b>Add an offset to the posted speed limit</b> to better match your driving style."),
|
||
parent_param="SpeedLimitController",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Offset (0–24 mph)"),
|
||
param="Offset1",
|
||
description=("<b>How much to offset posted speed-limits</b> between 0 and 24 mph."),
|
||
max_value=99,
|
||
min_value=-99,
|
||
parent_param="SLCOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Offset (25–34 mph)"),
|
||
param="Offset2",
|
||
description=("<b>How much to offset posted speed-limits</b> between 25 and 34 mph."),
|
||
max_value=99,
|
||
min_value=-99,
|
||
parent_param="SLCOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Offset (35–44 mph)"),
|
||
param="Offset3",
|
||
description=("<b>How much to offset posted speed-limits</b> between 35 and 44 mph."),
|
||
max_value=99,
|
||
min_value=-99,
|
||
parent_param="SLCOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Offset (45–54 mph)"),
|
||
param="Offset4",
|
||
description=("<b>How much to offset posted speed-limits</b> between 45 and 54 mph."),
|
||
max_value=99,
|
||
min_value=-99,
|
||
parent_param="SLCOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Offset (55–64 mph)"),
|
||
param="Offset5",
|
||
description=("<b>How much to offset posted speed-limits</b> between 55 and 64 mph."),
|
||
max_value=99,
|
||
min_value=-99,
|
||
parent_param="SLCOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Offset (65–74 mph)"),
|
||
param="Offset6",
|
||
description=("<b>How much to offset posted speed-limits</b> between 65 and 74 mph."),
|
||
max_value=99,
|
||
min_value=-99,
|
||
parent_param="SLCOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Offset (75–99 mph)"),
|
||
param="Offset7",
|
||
description=("<b>How much to offset posted speed-limits</b> between 75 and 99 mph."),
|
||
max_value=99,
|
||
min_value=-99,
|
||
parent_param="SLCOffsets",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="mph",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Visual Settings"),
|
||
param="SLCVisuals",
|
||
button_labels=["MANAGE"],
|
||
description=("<b>Visual \"Speed Limit Controller\" changes</b> to fine-tune how the driving screen looks."),
|
||
parent_param="SpeedLimitController",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Show Speed Limit Offset"),
|
||
param="ShowSLCOffset",
|
||
description=("<b>Show the current offset from the posted limit</b> on the driving screen."),
|
||
parent_param="SLCVisuals",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Show Speed Limit Sources"),
|
||
param="SpeedLimitSources",
|
||
description=("<b>Display the speed-limit sources and their current values</b> on the driving screen."),
|
||
parent_param="SLCVisuals",
|
||
tuning_level=3,
|
||
),
|
||
)
|
||
|
||
|
||
STEERING_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Advanced Lateral Tuning"),
|
||
param="AdvancedLateralTune",
|
||
description=("<b>Advanced steering control changes to fine-tune how openpilot drives.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_advanced_lateral_tune.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Actuator Delay"),
|
||
param="SteerDelay",
|
||
button_labels=["Reset"],
|
||
description=("<b>The time between openpilot's steering command and the vehicle's response.</b> Increase if the vehicle reacts late; decrease if it feels jumpy. Auto-learned by default."),
|
||
max_value=1,
|
||
min_value=0.01,
|
||
parent_param="AdvancedLateralTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Friction"),
|
||
param="SteerFriction",
|
||
button_labels=["Reset"],
|
||
depends_on=["!ForceAutoTune", "!LateralTune", "!NNFF", "ForceAutoTuneOff", "ForceTorqueController"],
|
||
description=("<b>Compensates for steering friction.</b> Increase if the wheel sticks near center; decrease if it jitters. Auto-learned by default."),
|
||
max_value=1,
|
||
min_value=0,
|
||
parent_param="AdvancedLateralTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Kp Factor"),
|
||
param="SteerKP",
|
||
car_params=["torque_lateral_tuning"],
|
||
button_labels=["Reset"],
|
||
depends_on=["ForceTorqueController", "LateralTune", "NNFF"],
|
||
description=("<b>How strongly openpilot corrects lane position.</b> Higher is tighter but twitchier; lower is smoother but slower. Auto-learned by default."),
|
||
parent_param="AdvancedLateralTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lateral Acceleration"),
|
||
param="SteerLatAccel",
|
||
button_labels=["Reset"],
|
||
depends_on=["!ForceAutoTune", "!LateralTune", "!NNFF", "ForceAutoTuneOff", "ForceTorqueController"],
|
||
description=("<b>Maps steering torque to turning response.</b> Increase for sharper turns; decrease for gentler steering. Auto-learned by default."),
|
||
parent_param="AdvancedLateralTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Steer Ratio"),
|
||
param="SteerRatio",
|
||
button_labels=["Reset"],
|
||
depends_on=["!ForceAutoTune", "ForceAutoTuneOff"],
|
||
description=("<b>The relationship between steering wheel rotation and road wheel angle.</b> Increase if steering feels too quick or twitchy; decrease if it feels too slow or weak. Auto-learned by default."),
|
||
parent_param="AdvancedLateralTune",
|
||
step=0.01,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Force Auto-Tune On"),
|
||
param="ForceAutoTune",
|
||
car_params=["torque_lateral_tuning", "!has_auto_lateral_tune"],
|
||
depends_on=["ForceTorqueController", "LateralTune", "NNFF"],
|
||
description=("<b>Force-enable openpilot's live auto-tuning for \"Friction\" and \"Lateral Acceleration\".</b>"),
|
||
parent_param="AdvancedLateralTune",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Force Auto-Tune Off"),
|
||
param="ForceAutoTuneOff",
|
||
car_params=["torque_lateral_tuning", "has_auto_lateral_tune"],
|
||
description=("<b>Force-disable openpilot's live auto-tuning for \"Friction\" and \"Lateral Acceleration\" and use the set value instead.</b>"),
|
||
parent_param="AdvancedLateralTune",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Force Torque Controller"),
|
||
param="ForceTorqueController",
|
||
car_params=["!torque_lateral_tuning"],
|
||
description=("<b>Use torque-based steering control instead of angle-based control for smoother lane keeping, especially in curves.</b>"),
|
||
parent_param="AdvancedLateralTune",
|
||
reboot_required=True,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Always On Lateral"),
|
||
param="AlwaysOnLateral",
|
||
description=("<b>openpilot's steering remains active even when the accelerator or brake pedals are pressed.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_always_on_lateral.png",
|
||
reboot_required=True,
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Enable With Cruise Control"),
|
||
param="AlwaysOnLateralMain",
|
||
description=("<b>Enable \"Always On Lateral\" whenever \"Cruise Control\" is on, even when openpilot is not engaged.</b>"),
|
||
parent_param="AlwaysOnLateral",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Enable With LKAS"),
|
||
param="AlwaysOnLateralLKAS",
|
||
description=("<b>Enable \"Always On Lateral\" whenever \"LKAS\" is on, even when openpilot is not engaged.</b>"),
|
||
parent_param="AlwaysOnLateral",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Pause on Brake Press Below"),
|
||
param="PauseAOLOnBrake",
|
||
description=("<b>Pause \"Always On Lateral\" below the set speed while the brake pedal is pressed.</b>"),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="AlwaysOnLateral",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lane Changes"),
|
||
param="LaneChanges",
|
||
description=("<b>Allow openpilot to change lanes.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_lane.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Automatic Lane Changes"),
|
||
param="NudgelessLaneChange",
|
||
description=("<b>When the turn signal is on, openpilot will automatically change lanes.</b> No steering-wheel nudge required!"),
|
||
parent_param="LaneChanges",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lane Change Delay"),
|
||
param="LaneChangeTime",
|
||
depends_on=["LaneChanges", "NudgelessLaneChange"],
|
||
description=("<b>Delay between turn signal activation and the start of an automatic lane change.</b>"),
|
||
max_value=5,
|
||
min_value=0,
|
||
parent_param="LaneChanges",
|
||
step=0.1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=1,
|
||
value_map={0: "Instant"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Minimum Lane Change Speed"),
|
||
param="MinimumLaneChangeSpeed",
|
||
description=("<b>Lowest speed at which openpilot will change lanes.</b>"),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="LaneChanges",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Minimum Lane Width"),
|
||
param="LaneDetectionWidth",
|
||
depends_on=["LaneChanges", "NudgelessLaneChange"],
|
||
description=("<b>Prevent automatic lane changes into lanes narrower than the set width.</b>"),
|
||
max_value=15,
|
||
min_value=0,
|
||
parent_param="LaneChanges",
|
||
step=0.1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("One Lane Change Per Signal"),
|
||
param="OneLaneChange",
|
||
description=("<b>Limit automatic lane changes to one per turn-signal activation.</b>"),
|
||
parent_param="LaneChanges",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lateral Tuning"),
|
||
param="LateralTune",
|
||
description=("<b>Miscellaneous steering control changes</b> to fine-tune how openpilot drives."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_lateral_tune.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Force Turn Desires Below Lane Change Speed"),
|
||
param="TurnDesires",
|
||
description=("<b>While driving below the minimum lane change speed with an active turn signal, instruct openpilot to turn left/right.</b>"),
|
||
parent_param="LateralTune",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Neural Network Feedforward (NNFF)"),
|
||
param="NNFF",
|
||
description=("<b>Twilsonco's \"Neural Network FeedForward\" controller.</b> Uses a trained neural network model to predict steering torque based on vehicle speed, roll, and past/future planned path data for smoother, model-based steering."),
|
||
parent_param="LateralTune",
|
||
reboot_required=True,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Neural Network Feedforward (NNFF) Lite"),
|
||
param="NNFFLite",
|
||
depends_on=["!LateralTune", "!NNFF"],
|
||
description=("<b>A lightweight version of Twilsonco's \"Neural Network FeedForward\" controller.</b> Uses the \"look-ahead\" planned lateral jerk logic from the full model to help smoothen steering adjustments in curves, but does not use the full neural network for torque calculation."),
|
||
parent_param="LateralTune",
|
||
reboot_required=True,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Quality of Life"),
|
||
param="QOLLateral",
|
||
description=("<b>Steering control changes to fine-tune how openpilot drives.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_quality_of_life.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Pause Steering Below"),
|
||
param="PauseLateralSpeed",
|
||
button_labels=["Turn Signal Only"],
|
||
description=("<b>Pause steering below the set speed.</b>"),
|
||
max_value=99,
|
||
min_value=0,
|
||
parent_param="QOLLateral",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Turn Signal Only"),
|
||
param="PauseLateralOnSignal",
|
||
description=("<b>Only pause steering below the set speed while a turn signal is active.</b>"),
|
||
parent_param="PauseLateralSpeed",
|
||
tuning_level=1,
|
||
),
|
||
)
|
||
|
||
|
||
DEVICE_CONTROLS_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Device Settings"),
|
||
param="DeviceManagement",
|
||
description=("<b>Settings that control how the device runs, powers off, and manages driving data.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_device.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Device Shutdown Timer"),
|
||
param="DeviceShutdown",
|
||
description=("<b>Keep the device on for the set amount of time after a drive</b> before it shuts down automatically."),
|
||
max_value=33,
|
||
min_value=0,
|
||
parent_param="DeviceManagement",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=1,
|
||
value_map={0: "5 mins", 1: "15 mins", 2: "30 mins", 3: "45 mins", 4: "1 hour", 5: "2 hours", 6: "3 hours", 7: "4 hours", 8: "5 hours", 9: "6 hours", 10: "7 hours", 11: "8 hours", 12: "9 hours", 13: "10 hours", 14: "11 hours", 15: "12 hours", 16: "13 hours", 17: "14 hours", 18: "15 hours", 19: "16 hours", 20: "17 hours", 21: "18 hours", 22: "19 hours", 23: "20 hours", 24: "21 hours", 25: "22 hours", 26: "23 hours", 27: "24 hours", 28: "25 hours", 29: "26 hours", 30: "27 hours", 31: "28 hours", 32: "29 hours", 33: "30 hours"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Disable Logging"),
|
||
param="NoLogging",
|
||
description=("<b>WARNING: This will prevent your drives from being recorded and all data will be unobtainable!</b><br><br><b>Prevent the device from saving driving data.</b>"),
|
||
parent_param="DeviceManagement",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Disable Uploads"),
|
||
param="NoUploads",
|
||
button_labels=["Disable Onroad Only"],
|
||
button_options=["DisableOnroadUploads"],
|
||
description=("<b>WARNING: This will prevent your drives from being uploaded to <b>comma connect</b> which will impact debugging and official support from comma!</b><br><br><b>Prevent the device from uploading driving data.</b>"),
|
||
parent_param="DeviceManagement",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Disable Onroad Only"),
|
||
param="DisableOnroadUploads",
|
||
description=("<b>Disable uploads only while driving.</b> Offroad uploads remain enabled."),
|
||
parent_param="NoUploads",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("High-Quality Recording"),
|
||
param="HigherBitrate",
|
||
depends_on=["!DisableOnroadUploads", "DeviceManagement", "NoUploads"],
|
||
description=("<b>Save drive footage in higher video quality.</b>"),
|
||
parent_param="DeviceManagement",
|
||
reboot_required=True,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Low-Voltage Cutoff"),
|
||
param="LowVoltageShutdown",
|
||
description=("<b>While parked, if the battery voltage falls below the set level, the device shuts down</b> to prevent excessive battery drain."),
|
||
max_value=12.5,
|
||
min_value=11.8,
|
||
parent_param="DeviceManagement",
|
||
step=0.1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=3,
|
||
unit="volts",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Raise Temperature Limits"),
|
||
param="IncreaseThermalLimits",
|
||
description=("<b>WARNING: Running at higher temperatures may damage your device!</b><br><br><b>Allow the device to run at higher temperatures</b> before throttling or shutting down. Use only if you understand the risks!"),
|
||
parent_param="DeviceManagement",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Use Konik Server"),
|
||
param="UseKonikServer",
|
||
description=("<b>Upload driving data to \"stable.konik.ai\" instead of \"connect.comma.ai\".</b>"),
|
||
parent_param="DeviceManagement",
|
||
reboot_required=True,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Screen Settings"),
|
||
param="ScreenManagement",
|
||
description=("<b>Settings that control screen brightness, screen recording, and timeout duration.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_light.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Screen Brightness (Offroad)"),
|
||
param="ScreenBrightness",
|
||
description=("<b>The screen brightness while not driving.</b>"),
|
||
max_value=101,
|
||
min_value=1,
|
||
parent_param="ScreenManagement",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
value_map={0: "Screen Off", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Screen Brightness (Onroad)"),
|
||
param="ScreenBrightnessOnroad",
|
||
description=("<b>The screen brightness while driving.</b>"),
|
||
max_value=101,
|
||
min_value=0,
|
||
parent_param="ScreenManagement",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
value_map={0: "Screen Off", 101: "Auto"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Screen Recorder"),
|
||
param="ScreenRecorder",
|
||
description=("<b>Add a button to the driving screen to record the display.</b>"),
|
||
parent_param="ScreenManagement",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Screen Timeout (Offroad)"),
|
||
param="ScreenTimeout",
|
||
description=("<b>How long the screen stays on after being tapped while not driving.</b>"),
|
||
max_value=60,
|
||
min_value=5,
|
||
parent_param="ScreenManagement",
|
||
step=5,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="seconds",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Screen Timeout (Onroad)"),
|
||
param="ScreenTimeoutOnroad",
|
||
description=("<b>How long the screen stays on after being tapped while driving.</b>"),
|
||
max_value=60,
|
||
min_value=5,
|
||
parent_param="ScreenManagement",
|
||
step=5,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="seconds",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Standby Mode"),
|
||
param="StandbyMode",
|
||
description=("<b>Turn the screen off while driving and automatically wake it up for alerts or engagement state changes.</b>"),
|
||
parent_param="ScreenManagement",
|
||
tuning_level=1,
|
||
),
|
||
)
|
||
|
||
|
||
THEME_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Custom Themes"),
|
||
param="PersonalizeOpenpilot",
|
||
description=("<b>The overall look and feel of openpilot.</b> Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_frog.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Color Scheme"),
|
||
param="CustomColors",
|
||
button_labels=["DELETE", "DOWNLOAD", "SELECT"],
|
||
description=("<b>The color scheme used throughout openpilot.</b> Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"),
|
||
parent_param="PersonalizeOpenpilot",
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Distance Button"),
|
||
param="CustomDistanceIcons",
|
||
button_labels=["DELETE", "DOWNLOAD", "SELECT"],
|
||
depends_on=["OnroadDistanceButton", "QOLVisuals"],
|
||
description=("<b>The distance button icons shown on the driving screen.</b> Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"),
|
||
parent_param="PersonalizeOpenpilot",
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Icon Pack"),
|
||
param="CustomIcons",
|
||
button_labels=["DELETE", "DOWNLOAD", "SELECT"],
|
||
description=("<b>The icon style used across openpilot.</b> Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"),
|
||
parent_param="PersonalizeOpenpilot",
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Sound Pack"),
|
||
param="CustomSounds",
|
||
button_labels=["DELETE", "DOWNLOAD", "SELECT"],
|
||
description=("<b>The sound pack used by openpilot.</b> Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"),
|
||
parent_param="PersonalizeOpenpilot",
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Steering Wheel"),
|
||
param="WheelIcon",
|
||
button_labels=["DELETE", "DOWNLOAD", "SELECT"],
|
||
description=("<b>The steering-wheel icon</b> shown at the top-right of the driving screen. Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"),
|
||
parent_param="PersonalizeOpenpilot",
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Turn Signal"),
|
||
param="CustomSignals",
|
||
button_labels=["DELETE", "DOWNLOAD", "SELECT"],
|
||
description=("<b>Themed turn-signal animations.</b> Use the \"Theme Maker\" in \"The Pond\" to create and share your own themes!"),
|
||
parent_param="PersonalizeOpenpilot",
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Holiday Themes"),
|
||
param="HolidayThemes",
|
||
description=("<b>Themes based on U.S. holidays.</b> Minor holidays last one day; major holidays (Christmas, Easter, Halloween) run for a full week."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_calendar.png",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Rainbow Path"),
|
||
param="RainbowPath",
|
||
description=("<b>Color the driving path like a Mario Kart–style \"Rainbow Road\".</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_rainbow.png",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Random Events"),
|
||
param="RandomEvents",
|
||
description=("<b>Occasional on-screen effects triggered by driving conditions.</b> These are purely a visual and don't impact how openpilot drives!"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_random.png",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Random Themes"),
|
||
param="RandomThemes",
|
||
depends_on=["PersonalizeOpenpilot"],
|
||
description=("<b>Pick a random theme between each drive</b> from the themes you have downloaded. Great for variety without changing settings while driving."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_random_themes.png",
|
||
tuning_level=1,
|
||
),
|
||
)
|
||
|
||
|
||
VEHICLE_SETTINGS_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Disable Automatic Fingerprint Detection"),
|
||
param="ForceFingerprint",
|
||
description=("<b>Force the selected fingerprint</b> and prevent it from ever changing."),
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Disable openpilot Longitudinal Control"),
|
||
param="DisableOpenpilotLongitudinal",
|
||
description=("<b>Disable openpilot longitudinal</b> and use the car's stock ACC instead."),
|
||
reboot_required=True,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("General Motors Settings"),
|
||
param="GMToggles",
|
||
button_labels=["MANAGE"],
|
||
car_params=["gm_brand"],
|
||
description=("<b>FrogPilot features for General Motors vehicles.</b>"),
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("FrogsGoMoo's Experimental Tune"),
|
||
param="ExperimentalGMTune",
|
||
car_params=["gm_brand", "openpilot_longitudinal"],
|
||
description=("<b>Experimental GM tune by FrogsGoMoo</b> that attempts to smoothen stopping and takeoff control. Use at your own risk!"),
|
||
parent_param="GMToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Smooth Pedal Response on Hills"),
|
||
param="LongPitch",
|
||
car_params=["gm_brand", "openpilot_longitudinal"],
|
||
description=("<b>Smoothen acceleration and braking</b> when driving downhill/uphill."),
|
||
parent_param="GMToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stop-and-Go Hack"),
|
||
param="VoltSNG",
|
||
car_params=["gm_brand", "chevrolet_volt_model"],
|
||
description=("<b>Force stop-and-go</b> on the 2017 Chevy Volt."),
|
||
parent_param="GMToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Hyundai/Kia/Genesis Settings"),
|
||
param="HKGToggles",
|
||
button_labels=["MANAGE"],
|
||
car_params=["hyundai_brand"],
|
||
description=("<b>FrogPilot features for Genesis, Hyundai, and Kia vehicles.</b>"),
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("comma's New Longitudinal API"),
|
||
param="NewLongAPI",
|
||
car_params=["hyundai_brand", "openpilot_longitudinal"],
|
||
description=("<b>comma's new gas and brake control system</b> that improves acceleration and braking but may cause issues on some Genesis/Hyundai/Kia vehicles."),
|
||
parent_param="HKGToggles",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("\"Taco Bell Run\" Torque Hack"),
|
||
param="TacoTuneHacks",
|
||
car_params=["hyundai_brand", "hyundai_canfd_platform"],
|
||
description=("<b>The steering torque hack from comma's 2022 \"Taco Bell Run\".</b> Designed to increase steering torque at low speeds for left and right turns."),
|
||
parent_param="HKGToggles",
|
||
reboot_required=True,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acura/Honda Settings"),
|
||
param="HondaToggles",
|
||
button_labels=["MANAGE"],
|
||
car_params=["honda_brand"],
|
||
description=("<b>FrogPilot features for Acura and Honda vehicles.</b>"),
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Gentle Following"),
|
||
param="HondaAltTune",
|
||
car_params=["honda_brand", "openpilot_longitudinal", "honda_nidec_platform"],
|
||
description=("<b>Reduces jerky acceleration and braking when following a lead vehicle.</b> Ideal for stop-and-go traffic."),
|
||
parent_param="HondaToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Increased Braking Force"),
|
||
param="HondaMaxBrake",
|
||
car_params=["honda_brand", "openpilot_longitudinal", "honda_nidec_platform"],
|
||
description=("<b>Increases the maximum braking force for improved stopping performance.</b>"),
|
||
parent_param="HondaToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Responsive Pedal at Low Speeds"),
|
||
param="HondaLowSpeedPedal",
|
||
car_params=["honda_brand", "openpilot_longitudinal", "gas_interceptor"],
|
||
description=("<b>Improves acceleration from a standstill for a more responsive throttle feel in city driving.</b>"),
|
||
parent_param="HondaToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Subaru Settings"),
|
||
param="SubaruToggles",
|
||
button_labels=["MANAGE"],
|
||
car_params=["subaru_brand"],
|
||
description=("<b>FrogPilot features for Subaru vehicles.</b>"),
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stop and Go"),
|
||
param="SubaruSNG",
|
||
car_params=["subaru_brand", "!subaru_global_gen2", "!subaru_hybrid"],
|
||
description=("Stop and go for supported Subaru vehicles."),
|
||
parent_param="SubaruToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Toyota/Lexus Settings"),
|
||
param="ToyotaToggles",
|
||
button_labels=["MANAGE"],
|
||
car_params=["toyota_brand"],
|
||
description=("<b>FrogPilot features for Lexus and Toyota vehicles.</b>"),
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Automatically Lock/Unlock Doors"),
|
||
param="ToyotaDoors",
|
||
button_labels=["Lock", "Unlock"],
|
||
button_options=["LockDoors", "UnlockDoors"],
|
||
car_params=["toyota_brand"],
|
||
description=("<b>Automatically lock/unlock doors</b> when shifting in and out of drive."),
|
||
parent_param="ToyotaToggles",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lock"),
|
||
param="LockDoors",
|
||
car_params=["toyota_brand"],
|
||
description=("<b>Automatically lock doors</b> when shifting into drive."),
|
||
parent_param="ToyotaDoors",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Unlock"),
|
||
param="UnlockDoors",
|
||
car_params=["toyota_brand"],
|
||
description=("<b>Automatically unlock doors</b> when shifting out of drive."),
|
||
parent_param="ToyotaDoors",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Dashboard Speed Offset"),
|
||
param="ClusterOffset",
|
||
button_labels=["Reset"],
|
||
car_params=["toyota_brand"],
|
||
description=("<b>The speed offset openpilot uses to match the speed on the dashboard display.</b>"),
|
||
max_value=1.050,
|
||
min_value=1.000,
|
||
parent_param="ToyotaToggles",
|
||
step=0.001,
|
||
toggle_type=ToggleType.NUMERIC_WITH_BUTTON,
|
||
tuning_level=2,
|
||
unit="x",
|
||
),
|
||
ToggleDefinition(
|
||
title=("FrogsGoMoo's Personal Tweaks"),
|
||
param="FrogsGoMoosTweak",
|
||
car_params=["toyota_brand", "openpilot_longitudinal"],
|
||
description=("<b>Personal tweaks by FrogsGoMoo for quicker acceleration and smoother braking.</b>"),
|
||
parent_param="ToyotaToggles",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lock Doors On Ignition Off After"),
|
||
param="LockDoorsTimer",
|
||
car_params=["toyota_brand"],
|
||
description=("<b>Automatically lock the doors on ignition off</b> when no one is detected in the front seats."),
|
||
max_value=300,
|
||
min_value=0,
|
||
parent_param="ToyotaToggles",
|
||
step=5,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=0,
|
||
unit="seconds",
|
||
value_map={0: "Never"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stop-and-Go Hack"),
|
||
param="SNGHack",
|
||
car_params=["toyota_brand", "openpilot_longitudinal", "!gas_interceptor", "!stock_sng"],
|
||
description=("<b>Force stop-and-go</b> on Lexus/Toyota vehicles without stock stop-and-go functionality."),
|
||
parent_param="ToyotaToggles",
|
||
tuning_level=2,
|
||
),
|
||
)
|
||
|
||
|
||
APPEARANCE_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Advanced UI Controls"),
|
||
param="AdvancedCustomUI",
|
||
description=("<b>Advanced visual changes</b> to fine-tune how the driving screen looks."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_advanced_device.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Hide Current Speed"),
|
||
param="HideSpeed",
|
||
description=("<b>Hide the current speed</b> from the driving screen."),
|
||
parent_param="AdvancedCustomUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Hide Lead Marker"),
|
||
param="HideLeadMarker",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Hide the lead-vehicle marker</b> from the driving screen."),
|
||
parent_param="AdvancedCustomUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Hide Map Settings Button"),
|
||
param="HideMapIcon",
|
||
button_labels=["Hide Map"],
|
||
button_options=["HideMap"],
|
||
description=("<b>Hide the map settings button or map</b> from the driving screen."),
|
||
parent_param="AdvancedCustomUI",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Hide Max Speed"),
|
||
param="HideMaxSpeed",
|
||
description=("<b>Hide the max speed</b> from the driving screen."),
|
||
parent_param="AdvancedCustomUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Hide Non-Critical Alerts"),
|
||
param="HideAlerts",
|
||
description=("<b>Hide non-critical alerts</b> from the driving screen."),
|
||
parent_param="AdvancedCustomUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Hide Speed Limits"),
|
||
param="HideSpeedLimit",
|
||
car_params=["openpilot_longitudinal"],
|
||
depends_on=["SpeedLimitController"],
|
||
description=("<b>Hide posted speed limits</b> from the driving screen."),
|
||
parent_param="AdvancedCustomUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Use Wheel Speed"),
|
||
param="WheelSpeed",
|
||
description=("<b>Use the vehicle's wheel speed</b> instead of the cluster speed. This is purely a visual change and doesn't impact how openpilot drives!"),
|
||
parent_param="AdvancedCustomUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Developer UI"),
|
||
param="DeveloperUI",
|
||
description=("<b>Detailed information about openpilot's internal operations.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_advanced_device.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Developer Metrics"),
|
||
param="DeveloperMetrics",
|
||
description=("<b>Performance data, sensor readings, and system metrics</b> for debugging and optimizing openpilot."),
|
||
parent_param="DeveloperUI",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Adjacent Lane Metrics"),
|
||
param="AdjacentPathMetrics",
|
||
description=("<b>Show the width of the adjacent lanes.</b>"),
|
||
parent_param="DeveloperMetrics",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Border Metrics"),
|
||
param="BorderMetrics",
|
||
button_labels=["Blind Spot", "Steering Torque", "Turn Signal"],
|
||
button_options=["BlindSpotMetrics", "ShowSteering", "SignalMetrics"],
|
||
description=("<b>Show statuses along the border of the driving screen.</b><br><br><b>Blind Spot</b>: The border turns red when a vehicle is in a blind spot<br><b>Steering Torque</b>: The border goes from green to red according to how much steering torque is being used<br><b>Turn Signal</b>: The border flashes yellow when a turn signal is on"),
|
||
parent_param="DeveloperMetrics",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Blind Spot"),
|
||
param="BlindSpotMetrics",
|
||
car_params=["blind_spot_monitoring"],
|
||
description=("<b>Turn the border red</b> when a vehicle is in a blind spot."),
|
||
parent_param="BorderMetrics",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Steering Torque"),
|
||
param="ShowSteering",
|
||
description=("<b>Color the border from green to red</b> based on steering torque usage."),
|
||
parent_param="BorderMetrics",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Turn Signal"),
|
||
param="SignalMetrics",
|
||
description=("<b>Flash the border yellow</b> when the turn signal is on."),
|
||
parent_param="BorderMetrics",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lead Info"),
|
||
param="LeadInfo",
|
||
description=("<b>Show each tracked vehicle's distance and speed</b> below its marker."),
|
||
parent_param="DeveloperMetrics",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("FPS Display"),
|
||
param="FPSCounter",
|
||
description=("<b>Show the frames per second (FPS)</b> at the bottom of the driving screen."),
|
||
parent_param="DeveloperMetrics",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Numerical Temperature Gauge"),
|
||
param="NumericalTemp",
|
||
button_labels=["Fahrenheit"],
|
||
button_options=["Fahrenheit"],
|
||
description=("<b>Show a numerical temperature in the sidebar</b> instead of the status labels."),
|
||
parent_param="DeveloperMetrics",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Sidebar Metrics"),
|
||
param="SidebarMetrics",
|
||
button_labels=["CPU", "GPU", "IP", "RAM", "SSD Left", "SSD Used"],
|
||
button_options=["ShowCPU", "ShowGPU", "ShowIP", "ShowMemoryUsage", "ShowStorageLeft", "ShowStorageUsed"],
|
||
description=("<b>Display system information</b> (CPU, GPU, RAM usage, IP address, device storage) in the sidebar."),
|
||
parent_param="DeveloperMetrics",
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Use International System of Units"),
|
||
param="UseSI",
|
||
description=("<b>Display measurements using the \"International System of Units\" (SI)</b> standard."),
|
||
parent_param="DeveloperMetrics",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Developer Sidebar"),
|
||
param="DeveloperSidebar",
|
||
description=("<b>Display debugging info and metrics</b> in a dedicated sidebar on the right side of the screen."),
|
||
parent_param="DeveloperUI",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Metric #1"),
|
||
param="DeveloperSidebarMetric1",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Select the metric shown in the first \"Developer Sidebar\" widget.</b>"),
|
||
parent_param="DeveloperSidebar",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Metric #2"),
|
||
param="DeveloperSidebarMetric2",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Select the metric shown in the second \"Developer Sidebar\" widget.</b>"),
|
||
parent_param="DeveloperSidebar",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Metric #3"),
|
||
param="DeveloperSidebarMetric3",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Select the metric shown in the third \"Developer Sidebar\" widget.</b>"),
|
||
parent_param="DeveloperSidebar",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Metric #4"),
|
||
param="DeveloperSidebarMetric4",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Select the metric shown in the fourth \"Developer Sidebar\" widget.</b>"),
|
||
parent_param="DeveloperSidebar",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Metric #5"),
|
||
param="DeveloperSidebarMetric5",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Select the metric shown in the fifth \"Developer Sidebar\" widget.</b>"),
|
||
parent_param="DeveloperSidebar",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Metric #6"),
|
||
param="DeveloperSidebarMetric6",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Select the metric shown in the sixth \"Developer Sidebar\" widget.</b>"),
|
||
parent_param="DeveloperSidebar",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Metric #7"),
|
||
param="DeveloperSidebarMetric7",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Select the metric shown in the seventh \"Developer Sidebar\" widget.</b>"),
|
||
parent_param="DeveloperSidebar",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Developer Widgets"),
|
||
param="DeveloperWidgets",
|
||
description=("<b>Overlays for debugging visuals, internal states, and model predictions</b> on the driving screen."),
|
||
parent_param="DeveloperUI",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Adjacent Leads Tracking"),
|
||
param="AdjacentLeadsUI",
|
||
description=("<b>Display adjacent leads detected by the car's radar</b> to the left and right of the current driving path."),
|
||
parent_param="DeveloperWidgets",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Model Stopping Point"),
|
||
param="ShowStoppingPoint",
|
||
car_params=["openpilot_longitudinal"],
|
||
button_labels=["Show Distance"],
|
||
button_options=["ShowStoppingPointMetrics"],
|
||
description=("<b>Show a stop-sign marker where the model intends to stop.</b>"),
|
||
parent_param="DeveloperWidgets",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Radar Tracks"),
|
||
param="RadarTracksUI",
|
||
description=("<b>Display all radar points</b> produced by the car's radar."),
|
||
parent_param="DeveloperWidgets",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Driving Screen Widgets"),
|
||
param="CustomUI",
|
||
description=("<b>Custom FrogPilot widgets</b> for the driving screen."),
|
||
icon="../assets/icons/calibration.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Acceleration Path"),
|
||
param="AccelerationPath",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Color the driving path by planned acceleration and braking.</b>"),
|
||
parent_param="CustomUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Adjacent Lanes"),
|
||
param="AdjacentPath",
|
||
description=("<b>Show the driving paths for the left and right lanes.</b>"),
|
||
parent_param="CustomUI",
|
||
tuning_level=3,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Blind Spot Path"),
|
||
param="BlindSpotPath",
|
||
car_params=["blind_spot_monitoring"],
|
||
description=("<b>Show a red path when a vehicle is in that lane's blind spot.</b>"),
|
||
parent_param="CustomUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Compass"),
|
||
param="Compass",
|
||
description=("<b>Show the current driving direction</b> with a simple on-screen compass."),
|
||
parent_param="CustomUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Driving Personality Button"),
|
||
param="OnroadDistanceButton",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Control and view the current driving personality</b> via a driving screen widget."),
|
||
parent_param="CustomUI",
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Gas / Brake Pedal Indicators"),
|
||
param="PedalsOnUI",
|
||
button_labels=["Dynamic", "Static"],
|
||
button_options=["DynamicPedalsOnUI", "StaticPedalsOnUI"],
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>On-screen gas and brake indicators.</b><br><br><b>Dynamic</b>: Opacity changes according to how much openpilot is accelerating or braking<br><b>Static</b>: Full when active, dim when not"),
|
||
parent_param="CustomUI",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Dynamic"),
|
||
param="DynamicPedalsOnUI",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Show dynamic pedal indicator intensity based on acceleration/braking amount.</b>"),
|
||
parent_param="PedalsOnUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Static"),
|
||
param="StaticPedalsOnUI",
|
||
car_params=["openpilot_longitudinal"],
|
||
description=("<b>Show static pedal indicators that are full when active and dim when inactive.</b>"),
|
||
parent_param="PedalsOnUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Rotating Steering Wheel"),
|
||
param="RotatingWheel",
|
||
description=("<b>Rotate the driving screen wheel</b> with the physical steering wheel."),
|
||
parent_param="CustomUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Model UI"),
|
||
param="ModelUI",
|
||
description=("<b>Model visualizations</b> for the driving path, lane lines, path edges, and road edges."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_road.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Dynamic Path Width"),
|
||
param="DynamicPathWidth",
|
||
description=("<b>Change the path width based on engagement.</b><br><br><b>Fully Engaged</b>: 100%<br><b>Always On Lateral</b>: 75%<br><b>Disengaged</b>: 50%"),
|
||
parent_param="ModelUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Lane Lines Width"),
|
||
param="LaneLinesWidth",
|
||
description=("<b>Set the lane-line thickness.</b><br><br>Default matches the MUTCD lane-line width standard of 4 inches."),
|
||
max_value=24,
|
||
min_value=0,
|
||
parent_param="ModelUI",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="inches",
|
||
),
|
||
ToggleDefinition(
|
||
title=("Path Edges Width"),
|
||
param="PathEdgeWidth",
|
||
description=("<b>Set the driving-path edge width</b> that represents different driving modes and statuses.<br><br>Default is 20% of the total path width.<br><br>Color Guide:<br><br>- <b>Light Blue</b>: Always On Lateral<br>- <b>Green</b>: Default<br>- <b>Orange</b>: Experimental Mode<br>- <b>Red</b>: Traffic Mode<br>- <b>Yellow</b>: Conditional Experimental Mode overridden"),
|
||
max_value=100,
|
||
min_value=0,
|
||
parent_param="ModelUI",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="%",
|
||
value_map={0: "Off"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Path Width"),
|
||
param="PathWidth",
|
||
description=("<b>Set the driving-path width.</b><br><br>Default (6.1 feet) matches the width of a 2019 Lexus ES 350."),
|
||
max_value=10,
|
||
min_value=0,
|
||
parent_param="ModelUI",
|
||
step=0.1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="feet",
|
||
value_map={0: "Off"},
|
||
),
|
||
ToggleDefinition(
|
||
title=("Road Edges Width"),
|
||
param="RoadEdgesWidth",
|
||
description=("<b>Set the road-edge thickness.</b><br><br>Default matches half of the MUTCD lane-line width standard of 4 inches."),
|
||
max_value=24,
|
||
min_value=0,
|
||
parent_param="ModelUI",
|
||
step=1,
|
||
toggle_type=ToggleType.NUMERIC,
|
||
tuning_level=2,
|
||
unit="inches",
|
||
),
|
||
ToggleDefinition(
|
||
title=("\"Unlimited\" Road UI"),
|
||
param="UnlimitedLength",
|
||
description=("<b>Extend the length of the driving path, lane lines, and road edges</b> for as far as the model can see."),
|
||
parent_param="ModelUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Navigation Widgets"),
|
||
param="NavigationUI",
|
||
description=("<b>Speed limits, and other navigation widgets.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_map.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Larger Map Display"),
|
||
param="BigMap",
|
||
button_labels=["Full Map"],
|
||
button_options=["FullMap"],
|
||
description=("<b>Increase the map size</b> for easier navigation readings."),
|
||
parent_param="NavigationUI",
|
||
toggle_type=ToggleType.BUTTON_TOGGLE,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Map Style"),
|
||
param="MapStyle",
|
||
description=("<b>Select the map style</b> for \"Navigate on openpilot\" (NOO):<br><br><b>Stock openpilot</b>: Default comma.ai style<br><b>FrogPilot</b>: Official FrogPilot map style<br><b>Mapbox Streets</b>: Standard street-focused view<br><b>Mapbox Outdoors</b>: Emphasizes outdoor and terrain features<br><b>Mapbox Light</b>: Minimalist, bright theme<br><b>Mapbox Dark</b>: Minimalist, dark theme<br><b>Mapbox Navigation Day</b>: Optimized for daytime navigation<br><b>Mapbox Navigation Night</b>: Optimized for nighttime navigation<br><b>Mapbox Satellite</b>: Satellite imagery only<br><b>Mapbox Satellite Streets</b>: Hybrid satellite imagery with street labels<br><b>Mapbox Traffic Night</b>: Dark theme emphasizing traffic conditions<br><b>Mike's Personalized Style</b>: Customized hybrid satellite view"),
|
||
parent_param="NavigationUI",
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Road Name"),
|
||
param="RoadNameUI",
|
||
description=("<b>Display the road name at the bottom of the driving screen</b> using data from \"OpenStreetMap (OSM)\"."),
|
||
parent_param="NavigationUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Show Speed Limits"),
|
||
param="ShowSpeedLimits",
|
||
depends_on=["!SpeedLimitController"],
|
||
description=("<b>Show speed limits</b> in the top-left corner of the driving screen. Uses data from the car's dashboard (if supported) and \"OpenStreetMap (OSM)\"."),
|
||
parent_param="NavigationUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Show Speed Limits from Mapbox"),
|
||
param="SLCMapboxFiller",
|
||
depends_on=["!SpeedLimitController", "MapboxSecretKey", "ShowSpeedLimits"],
|
||
description=("<b>Use Mapbox speed-limit data when no other source is available.</b>"),
|
||
parent_param="NavigationUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Use Vienna-Style Speed Signs"),
|
||
param="UseVienna",
|
||
depends_on=["ShowSpeedLimits", "SpeedLimitController"],
|
||
description=("<b>Show Vienna-style (EU) speed-limit signs</b> instead of MUTCD (US)."),
|
||
parent_param="NavigationUI",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Quality of Life"),
|
||
param="QOLVisuals",
|
||
description=("<b>Miscellaneous visual changes</b> to fine-tune how the driving screen looks."),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_quality_of_life.png",
|
||
toggle_type=ToggleType.MANAGE,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Camera View"),
|
||
param="CameraView",
|
||
button_labels=["SELECT"],
|
||
button_options=["Auto", "Driver", "Standard", "Wide"],
|
||
description=("<b>Select the active camera view.</b> This is purely a visual change and doesn't impact how openpilot drives!"),
|
||
parent_param="QOLVisuals",
|
||
toggle_type=ToggleType.BUTTON_PARAM,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Show Driver Camera When In Reverse"),
|
||
param="DriverCamera",
|
||
description=("<b>Show the driver camera feed</b> when the vehicle is in reverse."),
|
||
parent_param="QOLVisuals",
|
||
tuning_level=1,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Stopped Timer"),
|
||
param="StoppedTimer",
|
||
description=("<b>Show a timer when stopped</b> in place of the current speed to indicate how long the vehicle has been stopped."),
|
||
parent_param="QOLVisuals",
|
||
tuning_level=1,
|
||
),
|
||
)
|
||
|
||
|
||
WHEEL_CONTROLS_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Distance Button"),
|
||
param="DistanceButtonControl",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Action performed when the \"Distance\" button is pressed.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_mute.png",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Distance Button (Long Press)"),
|
||
param="LongDistanceButtonControl",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Action performed when the \"Distance\" button is pressed for more than 0.5 seconds.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_mute.png",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Distance Button (Very Long Press)"),
|
||
param="VeryLongDistanceButtonControl",
|
||
button_labels=["SELECT"],
|
||
description=("<b>Action performed when the \"Distance\" button is pressed for more than 2.5 seconds.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_mute.png",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=2,
|
||
),
|
||
ToggleDefinition(
|
||
title=("LKAS Button"),
|
||
param="LKASButtonControl",
|
||
button_labels=["SELECT"],
|
||
car_params=["!subaru_brand"],
|
||
depends_on=["!AlwaysOnLateral", "!AlwaysOnLateralLKAS"],
|
||
description=("<b>Action performed when the \"LKAS\" button is pressed.</b>"),
|
||
icon="../../../frogpilot/assets/toggle_icons/icon_mute.png",
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=2,
|
||
),
|
||
)
|
||
|
||
|
||
NAVIGATION_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Public Mapbox Key"),
|
||
param="MapboxPublicKey",
|
||
button_labels=["ADD", "TEST"],
|
||
description=("<b>Manage your Public Mapbox Key.</b>"),
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Secret Mapbox Key"),
|
||
param="MapboxSecretKey",
|
||
button_labels=["ADD", "TEST"],
|
||
description=("<b>Manage your Secret Mapbox Key.</b>"),
|
||
toggle_type=ToggleType.MULTI_BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Automatically Update Maps"),
|
||
param="PreferredSchedule",
|
||
button_labels=["SELECT"],
|
||
button_options=["Never", "Weekly", "Monthly"],
|
||
description=("<b>How often maps update</b> from \"OpenStreetMap (OSM)\" with the latest speed limit information. Weekly updates run every Sunday; monthly updates run on the 1st."),
|
||
toggle_type=ToggleType.BUTTON_PARAM,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Speed Limit Filler"),
|
||
param="SpeedLimitFiller",
|
||
description=("<b>Automatically collect missing or incorrect speed limits while you drive</b> using speeds limits sourced from your dashboard (if supported), Mapbox, and \"Navigate on openpilot\".<br><br>When you're parked and connected to Wi-Fi, FrogPilot will automatically processes this data into a file to be used with the tool located at \"SpeedLimitFiller.frogpilot.com\".<br><br>You can download this file from \"The Pond\" in the \"Download Speed Limits\" menu.<br><br>Need a step-by-step guide? Visit <b>#speed-limit-filler</b> in the FrogPilot Discord!"),
|
||
tuning_level=0,
|
||
),
|
||
)
|
||
|
||
|
||
UTILITIES_TOGGLES = (
|
||
ToggleDefinition(
|
||
title=("Debug Mode"),
|
||
param="DebugMode",
|
||
description=("<b>Use all of FrogPilot's developer metrics on your next drive</b> to diagnose issues and improve bug reports."),
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reset Toggles to Default"),
|
||
param="DoToggleReset",
|
||
button_labels=["RESET"],
|
||
description=("<b>Reset all toggles to their default values.</b>"),
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
ToggleDefinition(
|
||
title=("Reset Toggles to Stock openpilot"),
|
||
param="DoToggleResetStock",
|
||
button_labels=["RESET"],
|
||
description=("<b>Reset all toggles to match stock openpilot.</b>"),
|
||
toggle_type=ToggleType.BUTTON,
|
||
tuning_level=0,
|
||
),
|
||
)
|
||
|