Breadcrumbs

Using and Working with CAN Bus

Overview

CAN bus can be confusing and complicated, but we’ve gathered some helpful information here. We’ve got a basic guide below, but if you want one of the best overall introductions, we recommend the https://www.csselectronics.com website. They have a variety of tutorials and guides at https://www.csselectronics.com/pages/can-bus-intros-tutorials that are very comprehensive and well explained. HGM uses CSS Electronics products for testing and development, and we highly recommend them.

For specifics on integrating to our controllers, please have a look here:
Connecting COMPUSHIFT to Engine Management Systems

We have a guide here on How to Modify A CAN Bus Network if you need a quick reference.

Building a Reliable CAN Bus Network

CAN is a robust, fault-tolerant bus used for ECU communication, but reliable results come from following the established CAN network practices originally defined by Bosch. When those conventions are not followed, it can introduce subtle, intermittent issues that are difficult and time-consuming to diagnose.

Connectors and Tees

HGM uses Deutsch DTM series connectors because they are a standard style for J1939 CAN networks. On our 2-pin CAN Deutsch connectors:

  • Pin 1 = CAN High (CAN H)

  • Pin 2 = CAN Low (CAN L)

Connector color also helps identify how a given cable is used in the network:

  • Gray Deutsch connectors are typically used for short stubs from a tee to a single device. These represent short branch connections off the main backbone.

  • Black Deutsch connectors are typically used on cables that form part of the main CAN backbone (longer network lengths between tees and between terminators).

Using tees, proper end-of-line terminators, and color-coded Deutsch connectors makes it easier to distinguish stubs vs. backbone segments and helps ensure the CAN bus is wired and terminated correctly.

Termination

All properly designed CAN bus networks have 120 Ω termination at the ends of the main trunk. Many engine ECUs (and some other OEM devices) include an internal 120 Ω termination resistor. When present, that ECU effectively provides one end-of-line terminator. Plan your network so there are still only two total terminators: one at each end of the backbone.

HGM CAN-enabled devices are usually not internally terminated. To create a proper CAN network, you must build the backbone (trunk) and add both tees and terminators externally:

  • Use CAN tees to connect each device to the main CAN backbone, rather than daisy-chaining device-to-device.

  • Install a 120 Ω terminator at each physical end of the CAN backbone (two total for a standard J1939-style network).

  • Do not place terminators on short stubs; they should only be at the ends of the main network run.

Verification with an ohmmeter

With power off and all nodes connected:

  • Measure resistance between CAN High and CAN Low.

  • A properly terminated J1939/CAN bus with two 120 Ω terminators will read approximately 60 Ω.

Readings far from 60 Ω indicate missing or extra terminators. For example:

  • Around 120 Ω = only one terminator

  • Around 40 Ω = three terminators

Twisted Pair Wiring

Run CAN High and CAN Low together as a consistent twisted pair along the entire route. The twist maintains the cable’s characteristic impedance (typically 120 Ω), reduces EMI, and improves noise immunity.

Avoid separating or untwisting the pair, changing wire types mid-run, or creating long untwisted sections. These can cause reflections, noise pickup, and intermittent communication errors, especially at higher baud rates like 500 kbit/s and 1 Mbit/s.

HGM provides pre-engineered CAN wiring kits for most supported ECUs and common integration scenarios. These kits include correctly terminated backbones, tees, and stub leads with the appropriate Deutsch connectors so you can build a compliant network without custom cable design.

To maintain reliability and ensure compatibility with our documentation and test procedures, please do not cut, splice, or otherwise modify the CAN bus connectors or harnesses coming directly out of HGM controllers. Make all network connections via tees, extension cables, and adapters instead.

Baud Rate / Network Speed

All devices on a CAN bus must use the same bit rate to communicate reliably (for example, 250 kbit/s for some J1939 “classic” implementations). A single device at a different baud rate can prevent communication even when wiring and termination are correct.

Most factory and OEM J1939-style systems use a 500 kbit/s baud rate. Many motorsport and high-performance CAN systems use 1 Mbit/s (1000 kbit/s). Always confirm the baud rate of the system you are connecting to and match it on all devices.

HGM maintains technical notes and integration guides for most of the common engine, transmission, and vehicle CAN systems we support. Please refer to those documents when planning a new integration, or contact HGM Support for assistance.

CAN Bus Errors vs. Trouble Codes

Transmit/receive errors on the bus (for example, error frames, framing errors, rising error counters) point to physical or data-link issues such as wiring, termination, baud-rate mismatch, or noise.

Application-layer trouble codes reported by an ECU are different — they indicate faults detected by the ECU’s own diagnostics, and do not necessarily mean there is a CAN wiring problem.

CAN Bus Quick Checklist

  • Verify physical layout:

    • One main backbone, devices connected via tees, short stubs only.

    • Exactly two 120 Ω terminators at the physical ends of the backbone (none on stubs).

  • Check connectors and color coding:

    • Deutsch DTM series used for CAN.

    • Pin 1 = CAN High (CAN H), Pin 2 = CAN Low (CAN L).

    • Gray connectors used for stubs, black connectors used for backbone segments.

  • Confirm termination (power off):

    • All nodes plugged in.

    • Measure resistance between CAN High and CAN Low.

    • Expect approximately 60 Ω (two 120 Ω terminators in parallel).

  • Verify baud rate:

    • Confirm the expected baud rate for the system (for example, 250 kbit/s, 500 kbit/s, or 1 Mbit/s).

    • Ensure every device on the bus is configured to the same baud rate.

  • Inspect wiring quality:

    • CAN High and CAN Low run as a twisted pair for the full length.

    • No long untwisted sections, no unnecessary splices or cable type changes.

    • Use HGM wiring kits where available for supported ECUs.

  • Differentiate faults:

    • Bus-level errors (error frames, communication loss) usually indicate wiring, termination, baud rate, or noise issues.

    • ECU trouble codes indicate application-level or system faults and do not always mean there is a CAN wiring problem.

  • Protect HGM controller harnesses:

    • Do not cut, splice, or modify CAN connectors coming directly from HGM controllers.

    • Use tees, extensions, and adapters to make all CAN connections.