Like many other businesses, we have to deal with the global shortage of electronic components. For instance, the NXP LPC 17xx processors we used for our SAE J1939 gateways and the starter kit are not available at this time. Even worse, there is no reliable information if/when production resumes. This situation forced us to rethink our hardware design, and we chose the popular ESP32 processor, specifically the ESP32-WROOM-32D/U module.
There are several advantages to using the module: First, it is available in large quantities, and we ensured having sufficient inventory for future sales. Secondly, the module already provides a multitude of I/O functionality, including a USB port plus Bluetooth, BLE, and WiFi. The sum of all these peripherals would require significant effort and development costs when using the LPC 17xx series processors. Last but not least, the ESP32 processor is vastly more powerful regarding processor speed and memory resources. These features open the door to an extended range of applications, especially for the Internet of Things (IoT).
Furthermore, the topic of porting the firmware turned out to be much smoother than expected. We pride ourselves on writing straightforward code, which helped make the transition a breeze. We investigated the required hardware features (CAN port and timers) and their programming thoroughly, and, after extensive testing, we released a new and more powerful design for our SAE J1939 gateways. The gateway functionality is 100% identical to the previous version, i.e., it works in combination with our JCOM1939 Monitor software.
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. It allows any host device with a USB COM port to monitor SAE J1939 data traffic and communicate with the SAE J1939 vehicle network.
The board supports the full SAE J1939 protocol according to J1939/81 Network Management (Address Claiming) and J1939/21 Transport Protocol (TP). In addition, an extensive programming interface supports Windows and Linux/Ubuntu applications, including complete C/C++/C# source code for short time-to-market developments.
With all its features, the gateway allows the simulation of an SAE J1939 ECU (Electronic Control Unit) using embedded solutions such as the Raspberry Pi, BeagleBone, Arduino, Teensy, and others but also PCs running Windows or Linux (incl. Ubuntu, Fedora, etc.).
SAE J1939 Starter Kit And Network Simulator
Our SAE 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 and SAE J1939. The CAN Bus controller will shut down after transmitting data without receiving a response. For that reason, our JCOM.J1939 Starter Kit And Network Simulator consists of two J1939 nodes, namely our JCOM.J1939.USB gateway.
JCOM1939 Monitor Pro - SAE J1939 Data Monitor, Recorder, Simulator
The communication protocol between the gateway and the host system (PC, Embedded System, Android System, etc.) is well documented, and we provide C/C# source code to read and write CAN data frames.
In addition, the gateway is supported by our free-of-charge JCOM1939 Monitor, an SAE J1939 Monitoring, Analyzer and ECU Simulation software under Windows.
The JCOM1939 Monitor Software for Windows is a complete tool to monitor, analyze, record, and simulate SAE J1939 data traffic. It works in combination with our SAE J1939-USB gateways. The monitor software represents a comprehensive and easy-to-use, easy-to-understand tool that displays not only SAE J1939 data traffic; it also allows scanning the network, simulating an ECU (incl. full node address negotiation features), and responding to data request messages.
A Comprehensible Guide to J1939
SAE J1939 has become the accepted industry standard and the vehicle network technology of choice for off-highway machines in applications such as construction, material handling, and forestry machines. J1939 is a higher-layer protocol based on Controller Area Network (CAN Bus).
It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy duty vehicles. The messages exchanged between these units can be data such as vehicle road speed, torque control message from the transmission to the engine, oil temperature, and many more.
The information in this book is based on two documents of the SAE J1939 Standards Collection: J1939/21 - Data Link Layer J1939/81 - Network Management A Comprehensible Guide to J1939 is the first work on J1939 besides the SAE J1939 standards collection.
It provides profound information on the J1939 message format and network management combined with a high level of readability.
SAE J1939 Data Acquisition System For Diesel Engines Measures And Records 23 Suspect Parameter Numbers (SPNs)
The Titan S8-CAN by Madgetech (USA) represents a data acquisition system for diesel engines that simultaneously measures and records 23 suspect parameter numbers (SPNs). The portable data logger is suitable for engine, road, and diagnostic testing applications. It connects to an SAE J1939 network via the diagnostic port and supports the monitoring and recording of SAE J1939 messages between [...]
The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. SAE J1939 is a very ingeniously designed protocol that takes a resourceful advantage of the CAN 29-Bit message identifier. Rather than relying on a myriad of protocol functions, SAE J1939 uses predefined parameter tables, which keeps the actual protocol on a comprehensible level. However, these parameter tables [...]
The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. The main document describing the J1939 message format is SAE J1939/21 – Data Link Layer. J1939/21 defines the use of the CAN data frame (29-bit identifier, Parameter Group Numbers – PGN, etc.) and the transport protocol functions, i.e. a definition of how messages longer than the standard [...]
The following is an excerpt from A Comprehensible Guide To J1939 by Wilfried Voss. SAE J1939 is a higher-layer protocol based on Controller Area Network (CAN). It provides serial data communications between microprocessor systems (also called Electronic Control Units - ECU) in any kind of heavy-duty vehicles.Everything that has to do with CAN is based on maximum reliability with the [...]
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Parameters groups are, for instance, engine temperature, which includes coolant temperature, fuel temperature, oil temperature, etc. Parameter Groups and their numbers (PGN) are listed in SAE J1939 (roughly 300 pages) and defined in SAE J1939/71, a document containing roughly [...]
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. A Suspect Parameter Number (SPN) is a number assigned by the SAE to a specific parameter within a parameter group. It describes the parameter in detail by providing the following information: Data Length in bytes Data [...]
This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. SAE J1939 is a very ingeniously designed protocol that takes a resourceful advantage of the CAN Bus 29-Bit message identifier. Rather than relying on a myriad of protocol functions, SAE J1939 uses predefined parameter tables, which keeps the actual protocol on a [...]