version: sunnypilot v2026.002.000 (staging) date: 2026-07-21T07:44:02 master commit: 2c334ede443d7391d27575af8c854a095ba702a8
10 KiB
10 KiB
In [85]:
# Import all cars from opendbc
from opendbc.car import structs
from opendbc.car.values import PLATFORMS as TEST_PLATFORMS
# Example: add additional platforms/segments to test outside of commaCarSegments
EXTRA_SEGMENTS = {
# "81dd9e9fe256c397/0000001f--97c42cf98d", # Volkswagen ID.4 test route, new car port, not in public dataset
}In [86]:
import random
from openpilot.tools.lib.logreader import LogReader
from openpilot.tools.lib.comma_car_segments import get_comma_car_segments_database
MAX_SEGS_PER_PLATFORM = 3 # Increase this to search more segments
database = get_comma_car_segments_database()
TEST_SEGMENTS = []
print(f"Searching {len(TEST_PLATFORMS)} platforms")
for platform in TEST_PLATFORMS:
if platform not in database:
print(f"No segments available for {platform}")
continue
all_segments = database[platform]
NUM_SEGMENTS = min(len(all_segments), MAX_SEGS_PER_PLATFORM)
TEST_SEGMENTS.extend(random.sample(all_segments, NUM_SEGMENTS))
TEST_SEGMENTS.extend(EXTRA_SEGMENTS)
print(f"Searching {len(TEST_SEGMENTS)} segments")Searching 221 platforms No segments available for DODGE_DURANGO No segments available for FORD_RANGER_MK2 No segments available for HOLDEN_ASTRA No segments available for CADILLAC_ATS No segments available for CHEVROLET_MALIBU No segments available for CADILLAC_XT4 No segments available for CHEVROLET_VOLT_2019 No segments available for CHEVROLET_TRAVERSE No segments available for GMC_YUKON No segments available for HONDA_ODYSSEY_CHN No segments available for HYUNDAI_KONA_2022 No segments available for HYUNDAI_NEXO_1ST_GEN No segments available for GENESIS_GV70_ELECTRIFIED_1ST_GEN No segments available for GENESIS_G80_2ND_GEN_FL No segments available for RIVIAN_R1_GEN1 No segments available for SUBARU_FORESTER_HYBRID No segments available for TESLA_MODEL_3 No segments available for TESLA_MODEL_Y No segments available for TOYOTA_RAV4_PRIME No segments available for TOYOTA_SIENNA_4TH_GEN No segments available for LEXUS_LC_TSS2 No segments available for VOLKSWAGEN_CADDY_MK3 No segments available for VOLKSWAGEN_CRAFTER_MK2 No segments available for VOLKSWAGEN_JETTA_MK6 Searching 577 segments
In [ ]:
from openpilot.tools.lib.logreader import LogReader, comma_car_segments_source
from tqdm.notebook import tqdm, tnrange
# Example search for CAN ignition messages
# Be careful when filtering by bus, account for odd harness arrangements on Honda/HKG
BUSES_TO_SEARCH = [0, 1, 2]
# Support for external Red Panda
EXTERNAL_PANDA_BUSES = [bus + 4 for bus in BUSES_TO_SEARCH]
MESSAGES_TO_FIND = {
0x1F1: "GM CAN Ign",
0x152: "Rivian CAN Ign",
0x221: "Tesla 3/Y CAN Ign",
0x9E: "Mazda CAN Ign",
0x3C0: "VW CAN Ign",
}
progress_bar = tnrange(len(TEST_SEGMENTS), desc="segments searched")
for segment in TEST_SEGMENTS:
lr = LogReader(segment, sources=[comma_car_segments_source])
CP = lr.first("carParams")
if CP is None:
progress_bar.update()
continue
can_packets = [msg for msg in lr if msg.which() == "can"]
matched_messages = set()
for packet in can_packets:
for msg in packet.can:
if msg.address in MESSAGES_TO_FIND and msg.src in (BUSES_TO_SEARCH + EXTERNAL_PANDA_BUSES):
# print(msg)
matched_messages.add(msg.address)
if len(matched_messages) > 0:
message_names = [MESSAGES_TO_FIND[message] for message in matched_messages]
print(f"Match found: {segment:<45} {CP.carFingerprint:<38} {message_names}")
progress_bar.update()
segments searched: 0%| | 0/577 [00:00<?, ?it/s]
Match found: 0f53b336851e1384/2023-11-20--09-44-03/12/s CHRYSLER PACIFICA HYBRID 2018 ['VW CAN Ign'] Match found: 7620ad20d3cefc64/2023-10-28--08-14-40/3/s CHRYSLER PACIFICA HYBRID 2018 ['VW CAN Ign'] Match found: 00d247a9bb1f9196/2023-11-06--13-33-17/9/s CHRYSLER PACIFICA HYBRID 2018 ['VW CAN Ign'] Match found: 120a432f63cb0de2/2023-10-30--20-01-34/1/s CHRYSLER PACIFICA HYBRID 2019 ['VW CAN Ign'] Match found: b70b56b76a6217f2/2023-12-19--08-30-22/35/s CHRYSLER PACIFICA HYBRID 2019 ['VW CAN Ign'] Match found: 97e388680a6716ed/2024-01-17--10-15-13/9/s CHRYSLER PACIFICA HYBRID 2019 ['VW CAN Ign'] Match found: 2137b01aa0ca63f9/2024-01-06--22-06-14/70/s CHRYSLER PACIFICA 2018 ['VW CAN Ign'] Match found: 8fc6a1b72c8b1357/2023-11-06--07-50-05/8/s CHRYSLER PACIFICA 2018 ['VW CAN Ign'] Match found: 7e705eb5c27a49cc/2024-01-18--16-51-20/3/s CHRYSLER PACIFICA 2018 ['VW CAN Ign'] Match found: 12208e5acdc97eb3/2024-01-20--14-46-24/12/s CHRYSLER PACIFICA 2020 ['VW CAN Ign'] Match found: 12208e5acdc97eb3/2023-11-30--12-01-09/2/s CHRYSLER PACIFICA 2020 ['VW CAN Ign'] Match found: 9cad19e0efce3650/2024-01-26--10-24-52/27/s CHRYSLER PACIFICA 2020 ['VW CAN Ign'] Match found: 9db428338427dec2/2023-11-05--18-40-09/21/s JEEP GRAND CHEROKEE V6 2018 ['VW CAN Ign'] Match found: d50ada8ee55a5e74/2023-12-11--13-38-09/0/s JEEP GRAND CHEROKEE V6 2018 ['VW CAN Ign'] Match found: 900dfa83b4addfe6/2023-12-30--19-20-08/28/s JEEP GRAND CHEROKEE V6 2018 ['VW CAN Ign'] Match found: 20acda0eb23d7f23/2024-01-19--17-33-26/41/s JEEP GRAND CHEROKEE 2019 ['VW CAN Ign'] Match found: 1cc3b46843cad2ca/2024-01-10--20-20-54/24/s JEEP GRAND CHEROKEE 2019 ['VW CAN Ign'] Match found: 2d9b6425552c52c1/2023-12-07--10-31-46/22/s JEEP GRAND CHEROKEE 2019 ['VW CAN Ign'] Match found: ae679616266f4096/2023-12-04--13-13-56/16/s RAM HD 5TH GEN ['Tesla 3/Y CAN Ign'] Match found: ae679616266f4096/2024-01-08--07-58-12/65/s RAM HD 5TH GEN ['Tesla 3/Y CAN Ign'] Match found: ae679616266f4096/2023-12-05--15-43-46/25/s RAM HD 5TH GEN ['Tesla 3/Y CAN Ign'] Match found: 6dae2984cc53cd7f/2024-01-09--21-41-11/4/s FORD BRONCO SPORT 1ST GEN ['Rivian CAN Ign'] Match found: 440a155809ba2b6d/2023-12-30--08-51-53/2/s FORD BRONCO SPORT 1ST GEN ['Rivian CAN Ign'] Match found: 6dae2984cc53cd7f/2024-01-06--10-11-07/1/s FORD BRONCO SPORT 1ST GEN ['Rivian CAN Ign'] Match found: a4218e6416dfd978/2023-11-27--13-48-46/19/s FORD ESCAPE 4TH GEN ['Rivian CAN Ign'] Match found: a4218e6416dfd978/2023-11-10--14-13-14/0/s FORD ESCAPE 4TH GEN ['Rivian CAN Ign'] Match found: a4218e6416dfd978/2023-11-27--13-48-46/4/s FORD ESCAPE 4TH GEN ['Rivian CAN Ign'] Match found: 8a732841c3a8d5ef/2023-12-10--19-02-33/3/s FORD EXPLORER 6TH GEN ['Rivian CAN Ign'] Match found: 0b91b433b9332780/2023-12-28--14-02-49/4/s FORD EXPLORER 6TH GEN ['Rivian CAN Ign'] Match found: 8a732841c3a8d5ef/2023-11-09--07-28-12/1/s FORD EXPLORER 6TH GEN ['Rivian CAN Ign'] Match found: e886087f430e7fe7/2023-11-05--19-59-40/59/s FORD FOCUS 4TH GEN ['Rivian CAN Ign'] Match found: e886087f430e7fe7/2023-11-05--19-59-40/82/s FORD FOCUS 4TH GEN ['Rivian CAN Ign'] Match found: e886087f430e7fe7/2023-11-05--19-59-40/106/s FORD FOCUS 4TH GEN ['Rivian CAN Ign']
In [ ]:
In [ ]: