Press "Enter" to skip to content

J1939 Community

I’m currently setting up this community forum to create a place where engineers, developers, and J1939 enthusiasts can ask questions, exchange ideas, share experiences, and discuss everything related to SAE J1939, embedded development, the JCOM1939 Monitor software, and the upcoming J1939 Development for Embedded Systems book.

The forum is still a work in progress, so please bear with me while I organize the discussion categories and add the initial content. This will take a little time, but my goal is to build a valuable technical resource where both beginners and experienced developers can find answers and contribute their own knowledge.

I invite you to check back regularly. Once everything is in place, I hope you’ll join the discussions, ask questions, share your projects, and help make this community a useful resource for everyone working with SAE J1939.

Join the J1939 Community…

Please or Register to create posts and topics.

Build Your Own J1939 Diagnostic Software for Windows or Linux

If you work with SAE J1939 long enough, there comes a point where generic CAN monitoring software is no longer enough. You need an application that is tailored to your own project, whether that means displaying proprietary parameters, automating diagnostics, logging data, testing ECUs, or integrating J1939 into a larger software system.

The good news is that you do not need an expensive proprietary SDK or platform-specific library to accomplish this.

The JCOM1939 Gateway series was designed from the beginning to support custom software development on virtually any operating system and in virtually any programming language.

Why Develop Your Own J1939 Software?

Commercial CAN and J1939 monitoring tools are excellent for analyzing networks, but they are intentionally generic. Real-world applications often require much more:

  • Customized dashboards
  • Proprietary PGN decoding
  • Automated testing
  • Manufacturing test fixtures
  • Long-term data logging
  • Fleet management applications
  • Equipment-specific diagnostic tools
  • Research and educational software

Rather than adapting your workflow to a generic monitoring program, you can build software that exactly matches your requirements.

No Proprietary SDK Required

Many USB CAN interfaces require proprietary Windows DLLs or platform-specific drivers.

The JCOM1939 USB Gateway takes a different approach.

Communication between your application and the gateway is performed through a standard USB virtual serial (COM) port.

That means your software only needs to open the assigned serial port and exchange command packets according to the documented communication protocol.

This architecture offers several important advantages:

  • Platform independent
  • No proprietary DLLs
  • No operating-system-specific API
  • Simple implementation
  • Easy integration into existing software

If your programming language can access a serial port, it can communicate with the gateway.

That includes:

  • C
  • C++
  • C#
  • VB.NET
  • Java
  • Python
  • Rust
  • Go
  • Node.js
  • MATLAB
  • LabVIEW
  • and many more.

The Same Interface Used by the JCOM1939 Monitor

An important detail that many users overlook is that the JCOM1939 Monitor software itself communicates with the gateway using exactly the same documented programming interface.

In other words, there is no hidden or proprietary protocol reserved for the Windows application.

The monitor software demonstrates what can be accomplished with the interface, while your own applications can use the same command set to implement custom functionality.

Documented Programming Interface

The programming interface is fully documented and allows complete control of the gateway's operating modes.

Available functions include:

  • CAN port initialization
  • CAN Silent Mode
  • 250 kbit/s and 500 kbit/s operation
  • J1939 Address Claim initiation
  • Message transmission
  • Optional transmit loopback
  • Periodic message transmission
  • Message reception
  • PGN (Message ID) filtering
  • Query Address Claim status
  • Detect Address Claim success or failure
  • Read transmit error counter
  • Read receive error counter
  • Query gateway status information
  • and additional control functions.

These commands provide everything necessary to build professional J1939 diagnostic and development applications.

Example Applications

The programming interface enables a wide variety of software projects, including:

Custom Diagnostic Tools

Display only the information relevant to your equipment instead of generic CAN traffic.

Automated Test Systems

Control ECUs automatically during manufacturing or validation testing.

Data Logging

Create dedicated loggers that record only the PGNs required by your application.

Proprietary Network Monitoring

Decode proprietary PGNs and SPNs without modifying generic monitoring software.

Engineering Tools

Develop configuration utilities, commissioning tools, calibration software, or service applications specifically for your products.

Sample Source Code Included

To simplify development, complete sample applications are provided.

Current examples include:

The examples demonstrate much more than simply opening a serial port.

They include:

  • Serial communication setup
  • Command packet generation
  • Packet reception
  • Error detection
  • Reliable data exchange
  • Practical implementation examples

These projects provide an excellent starting point for developing your own applications.

Industrial-Strength Data Integrity

Communication over USB uses a binary packet protocol specifically designed for reliable operation.

To prevent accidental interpretation of payload bytes as control characters, the protocol uses byte stuffing, a well-established technique employed in industrial communication systems.

As a result, command packets remain synchronized even when arbitrary binary data is transmitted.

The protocol also incorporates integrity checking so that communication errors can be detected by the receiving application, as demonstrated in the supplied sample programs.

The result is a communication channel whose robustness closely matches the reliability expected from the CAN network itself.

One Hardware Platform, Unlimited Applications

Because communication is based on a documented serial protocol rather than proprietary software libraries, the JCOM1939 USB Gateway becomes much more than a CAN interface.

It becomes a flexible platform for developing your own J1939 applications on Windows, Linux, and virtually any other operating system capable of accessing a serial port.

Whether your goal is to create a lightweight diagnostic utility, an automated production test system, a research platform, or a complete fleet management application, the gateway provides a straightforward and portable foundation for your software development.

The JCOM1939 Monitor demonstrates what is possible. The documented programming interface enables you to build exactly the application your project requires.


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...

Copyright © 2024 Copperhill Technologies Corporation
wpChatIcon
wpChatIcon