{"id":13740048,"url":"https://github.com/v-ivanyshyn/parse_can_logs","last_synced_at":"2026-02-27T16:46:04.332Z","repository":{"id":93046301,"uuid":"212888024","full_name":"v-ivanyshyn/parse_can_logs","owner":"v-ivanyshyn","description":"Parse CAN logs and visualize data streams on plot","archived":false,"fork":false,"pushed_at":"2024-06-28T15:11:33.000Z","size":2215,"stargazers_count":45,"open_issues_count":2,"forks_count":9,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-08-04T04:06:05.018Z","etag":null,"topics":["can-bus","csv","graph","matplotlib"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/v-ivanyshyn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-04T19:26:17.000Z","updated_at":"2024-06-28T15:11:37.000Z","dependencies_parsed_at":"2023-07-12T07:15:16.101Z","dependency_job_id":"d3194425-b7b0-4597-bb35-291f6924b16d","html_url":"https://github.com/v-ivanyshyn/parse_can_logs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v-ivanyshyn%2Fparse_can_logs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v-ivanyshyn%2Fparse_can_logs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v-ivanyshyn%2Fparse_can_logs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v-ivanyshyn%2Fparse_can_logs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/v-ivanyshyn","download_url":"https://codeload.github.com/v-ivanyshyn/parse_can_logs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224758270,"owners_count":17364974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["can-bus","csv","graph","matplotlib"],"created_at":"2024-08-03T04:00:41.783Z","updated_at":"2026-02-27T16:45:59.222Z","avatar_url":"https://github.com/v-ivanyshyn.png","language":"Python","funding_links":[],"categories":["Hacking and Reverse Engineering tools"],"sub_categories":[],"readme":"# Parse CAN logs and visualize data streams on plot\n\n## How to use it:\nAssuming you have raw logs of massive CAN traffic in the following format:\n\n`timestamp CAN_ID byte0 byte1...byte7` (any non-alphanumeric character may be a delimiter)\n\nFor example:\n```\n820298   0x085: 7C 33 80 00 47 E0 7C 7F\n820301   0x047: 20 00 00 00 00 00 00 00\n820302   0x165: 10 C0 00 00 00 00 00 00\n820302   0x167: 72 80 6E 00 00 1A 0A 00\n820303   0x200: 00 00 80 53 80 53 10 00\n820303   0x202: 04 F9 18 00 60 00 00 00\n```\n\nIn the python script you set the file path (instead of `log Mustang S550.txt`).\n\n![Sample plot](https://github.com/v-ivanyshyn/parse_can_logs/blob/master/screenshot.png \"Sample plot\")\n\nRunning the script you get graphs of per-byte streams for individual frame. On the top chart there is predefined compiled data of RPM, speed, gear, etc... The second chart contains precompiled custom data based on formulas defined in code and supposed to be edited while investigating it. You can iterate the pages of these charts. Below on the last charts you can see the raw data, time lags and each byte values over time if these values aren't changing too frequently.\n\nIt becomes very useful for searching for correlations in CAN bus traffic with actual car parameters while driving (ex. speed, RPM, steering, ...).\n\nPersonally I reverse-engeneered Volkswagen CC drivetrain CAN bus. Decoded some pretty interesting parameters and put them in the [summary file](https://github.com/v-ivanyshyn/parse_can_logs/blob/master/VW%20CAN%20IDs%20Summary.md).\n\nCurrently investigating [Mustang S550 CAN bus](https://github.com/v-ivanyshyn/parse_can_logs/blob/master/Ford%20CAN%20IDs%20Summary.md).\n\n---\nBy the way, looking forward for collaboration - if you have any information about CAN bus traffic, would be thankful for sharing it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv-ivanyshyn%2Fparse_can_logs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fv-ivanyshyn%2Fparse_can_logs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv-ivanyshyn%2Fparse_can_logs/lists"}