Interesting stuff. Handling unreliable connections in vehicles seems tricky. How do you deal with dropped CAN messages?
CAN Bus and J1939 Integration on Rugged Vehicle Tablets: A Practical Guide
2 Comments
@[nate] Good question. In practice most "dropped CAN messages" in vehicles are not protocol failures, so I'd check in this order:
Physical layer first. CAN is differential, so noise rarely corrupts a frame silently. The usual culprits are missing or doubled 120 Ω termination (it should be at both bus ends only), a connector working loose under vibration, or a star topology instead of a linear bus. The symptom is intermittent loss that appears only when the machine is running and disappears in the workshop.
Let the protocol do its job. CAN already has CRC checking, acknowledgement and automatic retransmission. A node that keeps seeing errors climbs its error counter and eventually goes bus-off, so check error counters before blaming the application.
Design the application for loss. J1939 broadcasts most engine data periodically, so one missed frame is replaced by the next one. Treat a value as stale after a timeout (typically a few multiples of its transmit period) instead of waiting forever. For multi-frame data, J1939's transport protocol handles segmentation and handshake.
Watch the receive side. If the terminal reads CAN through a slow app-layer library, the receive buffer can overflow under load. Reading at the SocketCAN level, with filters for only the IDs you need, avoids most of that.
If you tell me the vehicle and what the bus load looks like, I can be more specific.
Please log in to add a comment.
Please log in to comment on this post.
More Posts
- © 2026 Coder Legion
- Feedback / Bug
- Privacy
- About Us
- Contacts
- You Tube
- Tiktok
- Premium Subscription
- Terms of Service
- Early Builders
Related Jobs
- Senior SAP ABAP Developer - CPI integrations (Remote)Stage 4 Solutions Inc · Full time · Puerto Rico
- Mid-Level Electrical Integration EngineerGeneral Dynamics Mission Systems · Full time · Pittsfield, MA
- Full Stack Developer + AWS - Intermediate - Columbus, OH/Wilmington, DE - Information Technology - AMassGenics, Inc. · Full time · Columbus, OH
Commenters (This Week)
Contribute meaningful comments to climb the leaderboard and earn badges!