Press "Enter" to skip to content

Posts tagged as “heavy-duty vehicle networks”

ARD1939: A Portable SAE J1939 Protocol Stack for Arduino, ESP32, and Embedded Systems

Developing an SAE J1939 application has traditionally required a substantial investment—not only in hardware and engineering time, but also in software. Commercial SAE J1939 protocol stacks are often expensive, frequently licensed per device, and in many cases remain closed-source. For students, hobbyists, researchers, startups, and even experienced engineers who simply…

Choosing the Right Hardware for Embedded SAE J1939 Development

One of the first questions engineers ask when starting with SAE J1939 development is: “Which hardware platform should I use?” The good news is that there is no shortage of choices. Over the years I have worked with numerous embedded platforms, development environments, and operating systems. They all have their…

Understanding J1939 PGNs Without Getting Lost in the Standard

In this post, I would like to address what is arguably the most important concept in the SAE J1939 standard: the Parameter Group Number (PGN). PGNs are the heart and soul of J1939. Every application you design, whether it transmits engine speed, requests a VIN, or reports diagnostic information, revolves…

J1939 Reverse Engineering: Decoding Proprietary PGNs and Unknown CAN Messages

If you spend enough time working with heavy-duty vehicles, agricultural equipment, construction machinery, or industrial engines, you will eventually encounter proprietary J1939 messages. At that point, many engineers ask the same question: Can I reverse engineer a J1939 network? The short answer is yes—but only to a certain extent. Before…

Why J1939 Communication Fails: 10 Troubleshooting Steps That Solve Most Problems

If you’ve worked with SAE J1939 long enough, you’ve probably experienced the frustration of connecting two devices to a CAN bus and seeing… absolutely nothing happen. No engine data. No diagnostic messages. No responses to requests. Just silence. The good news is that most J1939 communication problems are caused by…

SAE J1939 Development Doesn’t Have to Be Complicated: From Monitoring to Full ECU Simulation

If you have recently started working with SAE J1939, chances are your search history looks something like this: How do I monitor J1939 traffic? What hardware do I need for J1939 development? How do I simulate a J1939 ECU? How can I test my software without connecting to a real…

SAE J1939 Message Frequencies: How Accurate Do They Really Need to Be?

One of the more common questions when analyzing or simulating SAE J1939 traffic is surprisingly simple: “How accurate must a J1939 message frequency be?” If a message is supposed to be transmitted every 100 milliseconds, does that mean exactly 100 milliseconds? Can it be 101 milliseconds? 105 milliseconds? What happens…

Understanding the SAE J1939 Application Layer – What It Is, What It Does, and How Engineers Use It

When people talk about SAE J1939, they often jump straight to CAN frames, PGNs, or diagnostic trouble codes. But all of those live downstream from the most important part of the standard: the application layer. The application layer is where J1939 stops being a transport mechanism and becomes a language.…

SAE J1708 vs. SAE J1939: Understanding the Differences and Transition in Heavy Trucks

In the late 1980s and 1990s, heavy-duty vehicles (like diesel trucks and buses) began using electronic networks to share data among engine, transmission, brake, and other control units (ECUs). The industry’s first standardized solution was a combination of SAE J1708 and SAE J1587. In this two-part system, J1708 defined the…

Copyright © 2024 Copperhill Technologies Corporation
wpChatIcon
wpChatIcon