Site Information

 Loading... Please wait...

Blog

Heavy Duty Truck Diagnostics And Scan Tool Supports OBD-II, SAE J1939, SAE J1708 & 1587 Protocols

The CR-HD unit is the perfect tool for diagnosing and clearing heavy duty diagnostic trouble codes. It covers SAE J1587, SAE J1708 and SAE J1939 protocols for accessing Engine, Transmission, Brakes and more. It features a 2.8” full color LCD display and is ergonomic, highly portable and easy to use. Perfect Scan Tool for Heavy Duty Truck works on [...]

Read More »


SAE J1939 Programming with Arduino – End of Message Acknowledgment Timeout

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. In order to test all timeouts during an RTS/CTS session, I used a dedicated Arduino sketch to simulate all the “nasty” features that would trigger a communication breakdown. This method was easier to implement rather than using a full SAE J1939 stack. [...]

Read More »


SAE J1939 Programming with Arduino – Clear to Send Timeout

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. The simplest test for a Clear to Send timeout is accomplished by running the Mega 2560 ECU as the only node in the network.To test this scenario, I run the Mega 2560 at an address of 0x80 (128) and attempt to initiate [...]

Read More »


Mini PCI Express Real-Time Interface For CAN Bus Or CAN FD

Kvaser announced their Mini PCI Express HS v2, a single-channel and a dual-channel Mini PCI Express interface boards with low latency designed for real-time environments. The two single- and dual-channel interfaces communicate with the PC over the PCI Express system bus, allowing for real-time performance and 1 µs time-stamping. They support both Classical CAN and CAN FD and [...]

Read More »


SAE J1939 Programming with Arduino – RTS/CTS Session Message Timing

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Note the time stamps from line 3 through line 5 of the screen shot (look at the last four numbers indicating the time in tenth of milliseconds; for instance 352.4 milliseconds in line 3). SAE J1939/21 requires a packet frequency between 50 [...]

Read More »


SAE J1939 Programming with Arduino - Transport Protocol – RTS/CTS Session (SAE J1939/21)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Test items include: Basic function Timing controlNaturally, for the RTS/CTS session we will need two SAE J1939 nodes. In my setup that means communication between the Arduino Uno and the Mega 2560 ECUs. [...]

Read More »


SAE J1939 Programming with Arduino - BAM Session Message Timing

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Looking at the below image, note the time stamps from line 1 through line 4 of the screen shot (look at the last four numbers indicating the time in tenth of milliseconds; for instance 942.4 milliseconds in line 1). SAE J1939/21 requires a [...]

Read More »


SAE J1939 Programming with Arduino - BAM Session (SAE J1939/21)

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Test items include: Basic function Timing controlThe initial test of the BAM session requires only one ECU, in this case I am using the full protocol running on the Arduino Mega 2560 [...]

Read More »


SAE J1939 Programming with Arduino - Sending and Receiving Messages

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Proving the capability of the most basic task of sending and receiving regular 8-byte (CAN) messages must be seen as an unnecessary test, since that had already taken place in previous chapters. Things change, however, with the transmission and reception of J1939 [...]

Read More »


SAE J1939 Programming with Arduino - Claiming Address With Contending Node

This post is part of a series about SAE J1939 ECU Programming & Vehicle Bus Simulation with Arduino. Now let’s have the two nodes compete for their addresses, since they both use the same preferred source address. For that purpose, it is important to consider which node starts up first, and the test results will demonstrate the difference.Test #1: Mega [...]

Read More »