How critical is getting the termination resistor on the CANbus exactly 120 ohms?

I could only find a 118 ohm resistor? Will that still work?

Yes this is fine. Most resistor tolerances wouldn’t be able to tell the difference between what you have and an ideal 120 ohm resistor.


We have been using 100 ohm on our practice bot and it has been fine.

1 Like

Anything is better than nothing :wink:
10% resistors are the normal cheap ones…

1 Like

And even nothing works pretty well (Like…it would be dumb to run in competition this way, but we’ve done it).

The resistor is nominal and a 10% tolerance is normal in resistors. The object of the termination is to maintain a buss impedance that both allows signals to pass along the buss at optimum risetimes and to minimize noise and reflections along the line. The combination of the resistor in the Rio and the termination resistor makes the bus around 60 ohms, which happens to be the impedance of twisted #22 wire. Most teams use the termination in the PDP/PDH. Is there a reason for you to use a outboard resistor?

For what it’s worth, we tried a 150ohm resistor with the CANivore and that did not work. We acquired some 120ohm resistors and everything was happy and performing as expected then.

The 118 Ohm resistor is less than 2% below the target value of 120 Ohm. That small difference should not make much difference. Most commonly available resistors in the sizes appropriate for use as CAN bus termination (through hole and surface mount types) are typically metal film types and typically have tolerances of ± 1% so the CAN bus specifications would have allowed for such variations. The manufacturing techniques have improved since I started my career 40 years ago when 2% tolerance was common and 1% parts were available by special order and cost more. The carbon composition resistors in my antique tube radios have tolerances of 5% or 10% and are not commonly available now.

The termination resistors on a CAN bus serves two purposes. They damp the ringing after signal transitions. They also pull the bus to the “recessive state” (high/idle state). The CAN bus drivers actively drive the bus to the low state then “lets go” and allows the termination resistors to pull the bus up to the high/recessive state. The resistor must be low enough to able to pull the bus up to the idle state in a fraction of the bit time so the termination resistor does not need to have a tight tolerance for this function. How long this takes is dependent on the bus capacitance which will be small in an FRC robot compared to other CAN bus applications.

1 Like

I was not able to find any definitive specifications for the tolerances for the CAN termination resistors.

The 150 Ohm resistor is 25% higher than the nominal value. I had trouble getting a USB 2.0 bus to work when the characteristic impedance was off the nominal value by about that much due to ringing.

We’re using the Canivore and it is not compatible with the PDH we’re using. So we need to terminate ourselves.

We just implemented the 118 ohm on the Canivore and it worked perfectly. All of our CANbus issues disappeared.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.