diff --git a/common/params.cc b/common/params.cc index 996d4c4b..253168ff 100644 --- a/common/params.cc +++ b/common/params.cc @@ -247,6 +247,7 @@ std::unordered_map keys = { {"DeviceShutdown", PERSISTENT}, {"DisableOnroadUploads", PERSISTENT}, {"DisengageVolume", PERSISTENT}, + {"DragonPilotTune", PERSISTENT}, {"DriveStats", PERSISTENT}, {"DynamicPathWidth", PERSISTENT}, {"EngageVolume", PERSISTENT}, diff --git a/selfdrive/car/toyota/interface.py b/selfdrive/car/toyota/interface.py index 2aaf3775..428e27cc 100644 --- a/selfdrive/car/toyota/interface.py +++ b/selfdrive/car/toyota/interface.py @@ -281,6 +281,20 @@ class CarInterface(CarInterfaceBase): tune.kpV = [0.8, 1.] tune.kiBP = [0., 5.] tune.kiV = [0.3, 1.] + elif (candidate in TSS2_CAR or ret.enableGasInterceptor) and params.get_bool("DragonPilotTune"): + # Credit goes to the DragonPilot team! + tune.deadzoneBP = [0., 16., 20., 30.] + tune.deadzoneV = [0., .03, .06, .15] + tune.kpBP = [0., 5., 20.] + tune.kpV = [1.3, 1.0, 0.7] + # In MPH = [ 0, 27, 45, 60, 89] + tune.kiBP = [ 0., 12., 20., 27., 40.] + tune.kiV = [.35, .215, .195, .10, .01] + if candidate in TSS2_CAR: + ret.vEgoStopping = 0.1 # car is near 0.1 to 0.2 when car starts requesting stopping accel + ret.vEgoStarting = 0.1 # needs to be > or == vEgoStopping + ret.stopAccel = -0.40 # Toyota requests -0.4 when stopped + ret.stoppingDecelRate = 0.5 # reach stopping target smoothly elif candidate in TSS2_CAR or ret.enableGasInterceptor: tune.kpBP = [0., 5., 20.] tune.kpV = [1.3, 1.0, 0.7] diff --git a/selfdrive/frogpilot/ui/vehicle_settings.cc b/selfdrive/frogpilot/ui/vehicle_settings.cc index 48b111de..a5fda9ee 100644 --- a/selfdrive/frogpilot/ui/vehicle_settings.cc +++ b/selfdrive/frogpilot/ui/vehicle_settings.cc @@ -12,6 +12,7 @@ FrogPilotVehiclesPanel::FrogPilotVehiclesPanel(SettingsWindow *parent) : FrogPil std::vector> tuneOptions{ {"StockTune", tr("Stock")}, {"CydiaTune", tr("Cydia's")}, + {"DragonPilotTune", tr("DragonPilot's")}, }; toggle = new FrogPilotButtonsParamControl(param, title, desc, icon, tuneOptions);