  
  #ifdef QCOM2
    Pigeon * pigeon = Pigeon::connect("/dev/ttyHS0");
  #else
    Pigeon * pigeon = Pigeon::connect(panda);
  #endif
  
    std::unordered_map<char, uint64_t> last_recv_time;
    std::unordered_map<char, int64_t> cls_max_dt = {
      {(char)ublox::CLASS_NAV, int64_t(900000000ULL)}, // 0.9s
 
</s> remove   Pigeon * pigeon = Pigeon::connect("/dev/ttyHS0");
 </s> add   Pigeon *pigeon = Pigeon::connect("/dev/ttyHS0"); </s> remove   if (!panda->is_pigeon) { return; };

  // ubloxRaw = 8042
 </s> add  </s> remove   bool is_pigeon = false;
 </s> add  </s> remove   is_pigeon =
    (hw_type == cereal::PandaState::PandaType::GREY_PANDA) ||
    (hw_type == cereal::PandaState::PandaType::BLACK_PANDA) ||
    (hw_type == cereal::PandaState::PandaType::UNO) ||
    (hw_type == cereal::PandaState::PandaType::DOS);
 </s> add   assert((hw_type != cereal::PandaState::PandaType::WHITE_PANDA) &&
         (hw_type != cereal::PandaState::PandaType::GREY_PANDA));

  Pigeon *pigeon = Pigeon::connect(panda);
  
  #ifdef QCOM2
    Pigeon * pigeon = Pigeon::connect("/dev/ttyHS0");
  #else
  Pigeon *pigeon = Pigeon::connect(panda);
  #endif
  
    std::unordered_map<char, uint64_t> last_recv_time;
    std::unordered_map<char, int64_t> cls_max_dt = {
      {(char)ublox::CLASS_NAV, int64_t(900000000ULL)}, // 0.9s
keep keep keep keep replace keep keep keep keep keep
 turn pigeon off when going offroad (#20296)

* cleanup

* power off pigeon

* comment

Co-authored-by: Comma Device <device@comma.ai> 
selfdrive/boardd/boardd.cc