    PythonProcess("paramsd", "selfdrive.locationd.paramsd"),
    PythonProcess("plannerd", "selfdrive.controls.plannerd"),
    PythonProcess("radard", "selfdrive.controls.radard"),
    PythonProcess("thermald", "selfdrive.thermald.thermald", offroad=True),
    PythonProcess("timezoned", "selfdrive.timezoned", enabled=TICI, offroad=True),
    PythonProcess("tombstoned", "selfdrive.tombstoned", enabled=not PC, offroad=True),
    PythonProcess("updated", "selfdrive.updated", enabled=not PC, onroad=False, offroad=True),
    PythonProcess("uploader", "selfdrive.loggerd.uploader", offroad=True),
    PythonProcess("statsd", "selfdrive.statsd", offroad=True),
  
 
</s> remove   NativeProcess("ui", "selfdrive/ui", ["./ui"], offroad=True, watchdog_max_dt=(5 if TICI else None)),
 </s> add   NativeProcess("ui", "selfdrive/ui", ["./ui"], offroad=True, watchdog_max_dt=(5 if not PC else None)), </s> remove         if TICI and ((modem_version is None) or (modem_nv is None)):
 </s> add         if AGNOS and ((modem_version is None) or (modem_nv is None)): </s> remove from selfdrive.hardware import HARDWARE, TICI
 </s> add from selfdrive.hardware import HARDWARE, TICI, AGNOS </s> remove     submaster_config={'ignore_avg_freq': ['radarState', 'longitudinalPlan']}
 </s> add     submaster_config={
      'ignore_avg_freq': ['radarState', 'longitudinalPlan', 'driverCameraState', 'driverMonitoringState'],  # dcam is expected at 20 Hz
      'ignore_alive': ['wideRoadCameraState'],  # TODO: Add to regen
    } </s> remove       "modelV2": [], "driverCameraState": [], "roadCameraState": [], "managerState": [], "testJoystick": [],
 </s> add       "modelV2": [], "driverCameraState": [], "roadCameraState": [], "wideRoadCameraState": [], "managerState": [], "testJoystick": [],
  PythonProcess("timezoned", "selfdrive.timezoned", enabled=not PC, offroad=True),
    PythonProcess("paramsd", "selfdrive.locationd.paramsd"),
    PythonProcess("plannerd", "selfdrive.controls.plannerd"),
    PythonProcess("radard", "selfdrive.controls.radard"),
    PythonProcess("thermald", "selfdrive.thermald.thermald", offroad=True),
  PythonProcess("timezoned", "selfdrive.timezoned", enabled=not PC, offroad=True),
    PythonProcess("tombstoned", "selfdrive.tombstoned", enabled=not PC, offroad=True),
    PythonProcess("updated", "selfdrive.updated", enabled=not PC, onroad=False, offroad=True),
    PythonProcess("uploader", "selfdrive.loggerd.uploader", offroad=True),
    PythonProcess("statsd", "selfdrive.statsd", offroad=True),
  
keep keep keep keep replace keep keep keep keep keep
 less TICI when not needed (#24698)

* less TICI when not needed

* fix process replay

* move reading voltages into hw abstraction layer

* Update selfdrive/hardware/tici/hardware.h

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Update selfdrive/hardware/hw.h

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Update selfdrive/hardware/base.h

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* rename init function

* Update selfdrive/athena/athenad.py

Co-authored-by: Robbe Derks <robbe.derks@gmail.com>

* Update selfdrive/boardd/boardd.cc

* Apply suggestions from code review

* Update selfdrive/thermald/thermald.py

* update ref

* fix alert width if all cameras are bad

* add ecam to test_loggerd

* bump cereal

* bump cereal

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Robbe Derks <robbe.derks@gmail.com> 
selfdrive/manager/process_config.py