Press "Enter" to skip to content

How to Develop J1939 Software Without Access to a Vehicle

If you are new to SAE J1939 development, you may believe that access to a truck, engine, generator, or agricultural machine is required before you can write any meaningful software.

While eventually you will want to test your application on real equipment, the majority of J1939 software development can be completed without a vehicle. In many cases, developing in a controlled laboratory environment is actually more efficient than working on a live machine.

This article explains how to create a practical J1939 development environment using simulation techniques and the SAE J1939 ECU Simulator Board with USB Port.

Why Developing on a Real Vehicle Can Be Difficult

Working directly with a vehicle introduces several challenges:

  • Vehicle availability may be limited.
  • Access to the CAN bus can be difficult.
  • Some systems transmit only a subset of desired messages.
  • Diagnostic functions may require the engine to be running.
  • Troubleshooting can become complicated when multiple ECUs interact simultaneously.
  • Reproducing specific test conditions is often impossible.

Imagine trying to debug a transport protocol issue while a truck engine is running, other ECUs are transmitting hundreds of messages per second, and the problem only appears occasionally.

A simulated environment removes much of that complexity.

What Can Be Developed Without a Vehicle?

Surprisingly, most software functions can be developed and tested without access to actual equipment.

Examples include:

PGN Reception

Your software can receive and decode any Parameter Group Number (PGN), including:

  • Engine Speed
  • Vehicle Speed
  • Fuel Rate
  • Fuel Level
  • Engine Temperatures
  • GPS Position
  • Proprietary Messages

As long as the simulator generates the desired message traffic, your application cannot tell whether the data originated from a truck or a simulator.

PGN Transmission

You can create software that transmits:

  • Broadcast messages
  • Peer-to-peer messages
  • Proprietary PGNs
  • Request Messages
  • Diagnostic Messages

The simulator provides a realistic network environment for validating message formatting and timing.

Address Claiming

Network management according to SAE J1939/81 can be developed and tested without a vehicle.

This includes:

  • Address Claim Messages
  • Address Conflicts
  • Dynamic Address Negotiation

Since address claiming is one of the first challenges encountered by new J1939 developers, being able to test it repeatedly is extremely valuable.

Transport Protocol

Many applications eventually need to transmit large data blocks.

Examples include:

  • VIN messages
  • Software identification
  • Configuration data
  • Proprietary data transfers

The SAE J1939 Transport Protocol (TP) can be fully tested in a simulated environment before connecting to actual equipment. The simulator supports the complete J1939 transport protocol functionality.

Diagnostic Functions

You can simulate:

  • DM1 messages
  • DM2 messages
  • Fault code reporting
  • Request/Response communication

This allows development of diagnostic software without waiting for a real machine to generate fault conditions.

Creating a J1939 Development Environment

The minimum setup consists of:

  • Development PC running Windows or Linux
  • SAE J1939 ECU Simulator Board with USB Port
  • CAN cabling
  • A second J1939 node

Many beginners overlook the final requirement.

A CAN network requires at least two active nodes. A single node transmitting without receiving acknowledgements will eventually stop communicating correctly. For that reason, a complete simulation environment should include two J1939 devices.

Using the SAE J1939 ECU Simulator Board

The SAE J1939 ECU Simulator Board with USB Port was specifically designed to simplify J1939 software development.

The board acts as a complete J1939 node and supports:

  • J1939/81 Network Management
  • J1939/21 Transport Protocol
  • PGN monitoring
  • PGN transmission
  • ECU simulation
  • Request message processing
  • Address claiming

All protocol timing is handled directly on the board, reducing the burden on the host computer. Communication with the PC occurs through a standard USB virtual COM port, making integration straightforward for Windows, Linux, Raspberry Pi, Arduino, ESP32, and other embedded platforms.

Simulating a Complete ECU

One common misconception is that the simulator represents a specific engine.

It does not.

The simulator works at the PGN level.

If you know which PGNs your target ECU transmits, you can recreate its behavior by transmitting the same messages with appropriate timing and data content.

This approach provides enormous flexibility.

You can simulate:

  • Diesel engines
  • Transmission controllers
  • Hydraulic controllers
  • Generator systems
  • Agricultural equipment
  • Marine systems

The simulator simply generates J1939 messages according to your configuration.

Accelerating Development with JCOM1939 Monitor

JCOM1939 Monitor Pro - Data Monitoring, Recording, SimulationThe free JCOM1939 Monitor software provides a graphical environment for:

  • Monitoring traffic
  • Recording traffic
  • Simulating ECUs
  • Scanning networks
  • Responding to request messages
  • Testing PGN configurations

Instead of writing software immediately, developers can first experiment with message structures and network behavior using the monitor application. This often shortens development time dramatically.

Typical Development Workflow

A practical workflow looks like this:

  1. Define required PGNs.
  2. Configure the simulator.
  3. Verify network communication using JCOM1939 Monitor.
  4. Develop PC or embedded software.
  5. Test address claiming.
  6. Test request messages.
  7. Test transport protocol transfers.
  8. Verify diagnostic communication.
  9. Connect to a real vehicle for final validation.

By the time vehicle testing begins, most software bugs have already been eliminated.

Final Thoughts

Developing SAE J1939 software without access to a vehicle is not only possible—it is often the most efficient approach.

A simulated environment allows you to focus on protocol behavior, message formats, diagnostics, and network management without the distractions and unpredictability of real-world equipment.

The SAE J1939 ECU Simulator Board with USB Port provides an affordable and practical way to create that environment. Whether you are building a Windows application, a Raspberry Pi gateway, an ESP32 data logger, or an embedded controller, you can begin development immediately and validate your software long before connecting to an actual engine or vehicle.

For many engineers, that means faster development, easier debugging, and significantly lower project costs.


SAE J1939 Starter Kit and Network Simulator

Our JCOM.J1939 Starter Kit and Network Simulator is designed to allow the experienced engineer and the beginner to experiment with SAE J1939 data communication without the need to connect to a real-world J1939 network, i.e., a diesel engine. It may sound obvious, but you need at least two nodes to establish a network. That fact applies especially to CAN/J1939, where the CAN controller shuts down after transmitting data without receiving a response. Therefore, our jCOM.J1939 Starter Kit and Network Simulator consists of two J1939 nodes, namely our jCOM.J1939.USB, an SAE J1939 ECU Simulator Board with USB Port.

The jCOM.J1939.USB gateway board is a high-performance, low-latency vehicle network adapter for SAE J1939 applications. The board supports the full SAE J1939 protocol according to J1939/81 Network Management (Address Claiming) and J1939/21 Transport Protocol (TP). More Information…

Comments are closed.

Copyright © 2024 Copperhill Technologies Corporation
wpChatIcon
wpChatIcon