Site Information

 Loading... Please wait...

Blog

SAE J1939 Development: Why Every Engineer Needs a Stable J1939 Test Network

Posted by Wilfried Voss on

SAE J1939 Development- Why Every Engineer Needs a Stable J1939 Test NetworkDeveloping an SAE J1939 application should be challenging because of your application logic—not because your test environment keeps changing.

Unfortunately, that’s exactly what happens in many development projects.

An engineer designs a new J1939 ECU, writes the firmware, connects it to another prototype node, and immediately starts chasing communication problems. The problem is that both nodes are under development. If communication fails, which one is responsible?

  • Is it your hardware?
  • Is it your CAN driver?
  • Is it your J1939 implementation?
  • Is it the second ECU?
  • Is it incorrect address claiming?
  • Is it Transport Protocol?
  • Is it timing?
  • Is it simply a wiring issue?

You have introduced multiple changing variables into the system.

That is rarely a productive way to develop software.

Engineering Rule #1: Reduce the Number of Changing Variables

One of the first lessons learned in engineering is to change only one variable at a time.

Suppose you modify hardware, firmware, network configuration, timing, and message handling simultaneously. In that case, every test result becomes questionable because you no longer know which change caused the behavior.

The same principle applies to J1939 development.

SAE J1939 Starter Kit And Network SimulatorYour application should be the only component under development.

Everything else should already work.

That is exactly the philosophy behind the SAE J1939 Starter Kit and Network Simulator.

Instead of connecting your prototype to another unfinished ECU, you connect it to a stable, fully functional J1939 network whose behavior is known and repeatable.

A Complete J1939 Network—Not Just Another Interface

Many CAN interfaces simply allow you to transmit and receive CAN frames.

That is useful.

But it does not create a working J1939 network.

The Copperhill Technologies Starter Kit includes two complete J1939 nodes communicating with each other, creating an actual SAE J1939 network that supports:

  • Address Claiming (SAE J1939/81)
  • Transport Protocol (SAE J1939/21)
  • PGN transmission and reception
  • Request messages
  • Diagnostic messages
  • ECU simulation
  • Network scanning

Because both nodes already operate correctly, they provide a reliable reference network while your own ECU is under development.


SAE J1939 Development CommunityJoin the J1939 Community: Connect, Learn, and Build Better SAE J1939 Applications

The J1939 Community is a place where embedded developers, software engineers, and system integrators can exchange practical knowledge about SAE J1939 development. Whether you’re designing a new ECU, debugging communication problems, implementing Transport Protocol, or simply trying to understand PGNs, you’ll find discussions focused on real-world engineering rather than theory. The community also features announcements about new development tools, software updates, technical articles, programming examples, and the ongoing J1939 Development for Embedded Systemsbook project.

If you work with SAE J1939—or plan to—you’re invited to become part of the community. Registration is free and gives you the opportunity to ask questions, share your experience, suggest new features for the JCOM1939 Monitor software, discuss development techniques, and connect with fellow engineers from around the world. Join the J1939 Community and help build a valuable resource for everyone developing SAE J1939 applications.


Why Two Nodes Matter

Many newcomers wonder why the starter kit contains two J1939 interfaces.

The answer is simple.

A J1939 node does not exist in isolation.

Even the CAN controller itself expects activity on the network. A controller transmitting onto an otherwise empty bus will eventually enter error states because nothing acknowledges its messages.

A functioning network requires multiple participants.

The Starter Kit provides exactly that.

Instead of spending hours building a test environment, you can start developing immediately.

Debug Your ECU—Not Your Test Bench

Imagine developing a new engine controller.

You connect it to the Starter Kit.

Your ECU transmits PGNs.

The simulated network responds exactly as expected.

If communication fails, your investigation becomes much simpler because you already know the simulator is operating correctly.

You have removed one of the largest unknowns from the equation.

That dramatically shortens debugging time.

Simulate Before the Machine Exists

Another major advantage is independence from actual vehicle hardware.

How often does one of these situations occur?

  • The vehicle is unavailable.
  • The prototype engine has not arrived.
  • The machine is in another state.
  • The customer cannot interrupt production.
  • Access to the vehicle is limited.

Development comes to a halt.

The Starter Kit eliminates this dependency by allowing engineers to simulate virtually any PGN defined by SAE J1939-71, including diagnostic messages from SAE J1939-73. Once you know which PGNs your application requires, you can build a realistic simulation without having access to the physical machine.

The Real Power Comes from the Windows Software

JCOM1939 Monitor Software for WindowsThe hardware is only one part of the solution.

The included JCOM1939 Monitor software transforms the Starter Kit into a complete development laboratory.

Using the software you can:

  • Monitor live J1939 traffic
  • Record communication sessions
  • Decode PGNs
  • Simulate ECUs
  • Generate custom PGNs
  • Configure periodic transmissions
  • Respond automatically to Request messages
  • Scan the network for active ECUs

Running two instances of the software allows you to observe both sides of the communication simultaneously, making it much easier to understand exactly what happens on the bus.

Expand Your Development Environment

The Starter Kit is only one component of a complete J1939 development workflow.

Copperhill Technologies offers a broad range of hardware for engineers developing embedded applications, including USB interfaces, Bluetooth gateways, CAN interfaces, embedded controllers, and protocol development tools.

Whether your target platform is Windows, Linux, Raspberry Pi, Arduino, ESP32, or another embedded processor, the same development philosophy applies:

Create a stable environment first.

Then develop your application.

For an overview of available development hardware, visit the Copperhill Technologies J1939 Development section.

Learn While You Build

A development tool is only as useful as the knowledge behind it.

For that reason, the JCOM1939 website contains an extensive collection of technical resources, including:

  • Programming tutorials
  • Quick-start guides
  • Technical articles
  • Application notes
  • Troubleshooting information
  • Protocol explanations
  • Software documentation

Whether you’re learning J1939 for the first time or implementing advanced features such as Address Claiming or the Transport Protocol, the goal is the same: reduce the learning curve and spend more time building reliable applications.

Final Thoughts

Every experienced engineer eventually reaches the same conclusion:

Debugging is much easier when you already trust the test environment.

The SAE J1939 Starter Kit and Network Simulator was designed around that principle.

Instead of trying to determine whether two prototype ECUs are communicating correctly, start with a known-good network and focus on what really matters—your own application.

Reduce the number of changing variables.

Your development time—and your sanity—will thank you.


Additional Resources

SAE J1939 Monitor, Analyzer, And ECU Simulator For Windows - New Byte & Bit Editing Mode

The jCOM1939 Monitor Software by Copperhill Technologies is the ideal software tool for monitoring, analyzing, and simulating SAE J1939 data traffic.  The program links to our jCOM.J1939.USB ECU Simulator Board that operates as an SAE J1939 to USB (or UART) gateway.  This comprehensive and easy-to-use, easy-to-understand Windows software illustrates not only SAE J1939 data traffic; it also allows the [...]

Read More »