Implement CAN logging with SavvyCAN's protocol
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- embedded-iot, networking
Research direction
Read the existing CAN debug implementation in core-interface/src/can_debug.rs and trace the board taps, MCP2515 debug mask switching, and publish_can_debug_task mentioned in the issue. Then identify the firmware entry points for vehicle tasks, client disconnects, and command/state queues. Done means SavvyCAN protocol logging sends CAN frames over Wi-Fi, handles disconnect and read-only behavior, validates bus IDs, and accounts for the listed legacy CAN debug path.
Written by the indexing model from the issue text.
Description
We need a way to make it easy to reverse engineer CAN buses from the firmware itself. The idea is to implement SavvyCAN's network protocol and send CAN frames using Wifi. We may need to disable the normal vehicle tasks when using this.
There was already a CAN debug tool that was started to be implemented in the firmware, but it will be easier to just use SavvyCAN instead.
Notes from the audit (old BLE CAN debug, still in main)
- Remove the old BLE CAN-debug path as part of this (or before):
core-interface/src/can_debug.rs,CAN_DEBUG_RX_CHANNEL, the board taps,
MCP2515 debug mask switching, andpublish_can_debug_task. In contracts,
markSetCanDebugEnabled/UpdateCanDebugFilters/CanDebugUpdate
[deprecated = true](append-only rule).
Until then it's reachable by any bonded phone:SetCanDebugEnabledwith
bus_id >= 8panics with a shift overflow in debug builds
(can_debug.rs:73, also:46). Release builds silently wrap. - Lessons for the new version:
- Validate
bus_idagainstMAX_CAN_BUSES/ the configured bus count. - Turn logging off when the client disconnects (the old one stays on).
- With "disable normal vehicle tasks", also force read-only on.
- Keep logging traffic off the shared command/state queues.
- Validate
- Dominant language
- Rust
- Stars
- 1
- Forks
- 0
- Avg merge
- 10h 56m
- Merged PRs (30d)
- 15
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenCarControls/firmware
-
Clean up E-GMP leftoversPossibly taken @Tichael claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
OpenCarControls/firmware#34 ·
Maintainers usually reply within 1 day
-
BLE: send the current state when the app subscribesPossibly taken @Tichael claimed this today. Open
Difficulty 3/5 1-2 days Newbie friendliness 35/100
OpenCarControls/firmware#58 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenCarControls/firmware#55 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenCarControls/firmware#54 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 55/100
OpenCarControls/firmware#53 ·
Maintainers usually reply within 1 day
All issues in OpenCarControls/firmware
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
area:sim good first issue kind:feature
Difficulty 2/5 1-3 hours Newbie friendliness 87/100
Maintainers usually reply within 1 day
-
The demo's interval button and chart legend keep the previous interval after an interval changeOpenbug ui
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
userFRM/egui-charts#670 ·
Maintainers usually reply within 1 day
-
docs good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 84/100
Usenova-Labs/usenova-backend#35 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
lugassawan/swe-workbench#823 ·
Maintainers usually reply within 1 day