Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

MCP2515 hardware masks are too strict

Closed
#29 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

A pull request for this has already been merged.

  • #61 by @Tichael — merged

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
rust
Domain
embedded-iot

Research direction

Read compute_mcp_masks in boards/esp/src/can.rs around line 617 and the two_filters_ored_into_mask0 test. Check how masks are combined and written for standard IDs, then update the calculation and test for the stated extended-ID fallback. Done means the test covers the corrected behavior and hardware masks no longer reject frames accepted by the software filter.

Written by the indexing model from the issue text.

Description

compute_mcp_masks (boards/esp/src/can.rs:617) still ORs the per-filter
masks; its doc comment describes AND. OR makes the hardware reject frames the
software filter accepts: 0x100/0x700 + 0x200/0x0FF → 0x7FF, so only two
exact IDs pass. The test two_filters_ored_into_mask0 locks in the bug.
Extended IDs aren't handled either (masks are written as standard IDs).

Fix: AND the masks (a bit must match only if every filter in that buffer cares
about it). Fall back to accept-all hardware masks when any filter is extended
(the software filter still applies). Update the test.

Dominant language
Rust
Stars
1
Forks
0
Avg merge
10h 56m
Merged PRs (30d)
15

Getting set up

Open in Codespaces

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenCarControls/firmware

All issues in OpenCarControls/firmware

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.