From 29d9e1ce6964984edd9c24b75b1e25929f0adeee Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Thu, 3 Dec 2020 13:12:43 -0800 Subject: [PATCH] Fix commIssue due to frame drop and power draw (#2689) Co-authored-by: robbederks Co-authored-by: Willem Melching --- panda/board/boards/uno.h | 7 ++++++- selfdrive/modeld/models/driving.cc | 8 ++++---- selfdrive/modeld/models/driving.h | 1 - 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/panda/board/boards/uno.h b/panda/board/boards/uno.h index 91f65a246..cc9c4c0dc 100644 --- a/panda/board/boards/uno.h +++ b/panda/board/boards/uno.h @@ -56,7 +56,12 @@ void uno_set_gps_load_switch(bool enabled) { } void uno_set_bootkick(bool enabled){ - set_gpio_output(GPIOB, 14, !enabled); + if(enabled){ + set_gpio_output(GPIOB, 14, false); + } else { + // We want the pin to be floating, not forced high! + set_gpio_mode(GPIOB, 14, MODE_INPUT); + } } void uno_bootkick(void) { diff --git a/selfdrive/modeld/models/driving.cc b/selfdrive/modeld/models/driving.cc index c55af9e06..ebc85f066 100644 --- a/selfdrive/modeld/models/driving.cc +++ b/selfdrive/modeld/models/driving.cc @@ -311,7 +311,7 @@ void model_publish_v2(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, float model_execution_time) { // make msg MessageBuilder msg; - auto framed = msg.initEvent(frame_drop < MAX_FRAME_DROP).initModelV2(); + auto framed = msg.initEvent().initModelV2(); uint32_t frame_age = (frame_id > vipc_frame_id) ? (frame_id - vipc_frame_id) : 0; framed.setFrameId(vipc_frame_id); framed.setFrameAge(frame_age); @@ -319,7 +319,7 @@ void model_publish_v2(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, framed.setTimestampEof(timestamp_eof); framed.setModelExecutionTime(model_execution_time); - // plan + // plan int plan_mhp_max_idx = 0; for (int i=1; i @@ -393,7 +393,7 @@ void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, uint32_t frame_age = (frame_id > vipc_frame_id) ? (frame_id - vipc_frame_id) : 0; MessageBuilder msg; - auto framed = msg.initEvent(frame_drop < MAX_FRAME_DROP).initModel(); + auto framed = msg.initEvent().initModel(); framed.setFrameId(vipc_frame_id); framed.setFrameAge(frame_age); framed.setFrameDropPerc(frame_drop * 100); @@ -429,7 +429,7 @@ void model_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t frame_id, auto lpath = framed.initPath(); fill_path(lpath, &net_outputs.plan[plan_mhp_max_idx*(PLAN_MHP_GROUP_SIZE)], valid_len, valid_len_idx); - + auto left_lane = framed.initLeftLane(); int ll_idx = 1; fill_lane_line(left_lane, net_outputs.lane_lines, ll_idx, valid_len, valid_len_idx, diff --git a/selfdrive/modeld/models/driving.h b/selfdrive/modeld/models/driving.h index 346e6e876..93177105e 100644 --- a/selfdrive/modeld/models/driving.h +++ b/selfdrive/modeld/models/driving.h @@ -39,7 +39,6 @@ #define POSE_SIZE 12 #define MODEL_FREQ 20 -#define MAX_FRAME_DROP 0.05 struct ModelDataRaw { float *plan;