How to terminate a CANivore connection without a 120ohm resistor?

Quick rundown, after opening up the robot crate post champs and unloading everything back home I turn on our robot to the great surprise of a red status LED for CAN on our canivore. Jokes about FedEx shipping aside, I verified that all physical can connections are still solid and so that isnt the issue. Everything checks out on phoenix tuner (up to date, termination enabled, 5V voltage above 4.6 etc).

Initially we soldered the wires of the last device in the loop using a 120ohm resistor as instructed but it was very unreliable and at champs we found out that alot of teams opted for different methods like using WAGos. Can anyone familiar with these alternate methods offer an explanation on how to actually set it up?

When you measure the resistance between CAN HI and CAN LOW, are you getting 120 ohms, or some other value? A proper solder connection should be fine, assuming everything else is actually working.

Edit: HI to LOW should actually read 60 ohms.

2 Likes

Sounds like you’re asking two different questions here:
-what do teams use to make can connections (wagos vs soldering)
-whats the most reliable layout (daisy chain, ladder)
Can you clarify what you’re looking for?

1 Like

How can i terminate the connection without the use of soldering or 120ohm resistors. So specifically how to do it using wagos?

1 Like

I’ll measure right now

Wait sorry i should have clarified, how should I measure it if I currently have my green and yellow wires on one side of the wago connector and the other side is taped off?

I originally misread the subject as “What alternatives can be used if you need to terminate a CAN connection but don’t have access to a 120 ohm resistor?”. In case anyone was wondering, if you’re using spec 28 AWG wire, you would need 1849 ft or 563.6m of wire to get 120 ohms of resistance. Careful how you manage all this wire so you don’t accidentally make an inductor. :thinking:

7 Likes

There really is no other way to terminate the CANivore run without the resistor. Some teams do use a WAGO connector on the end and have the resistor bridge one side of the connector (that is, run from the green to the yellow terminals on the side opposite the wires) but the WAGO itself will not sufficiently terminate the CAN run.

1 Like

Teams using a Power Distribution Panel might end their can chain from a Canivore there, but there’s a terminating resistor built into it controlled by a jumper selector. But those are Weidmuller connectors not wagos and there is a resistor still.

Maybe this is the “Ending a chain without adding an actual resistor” method meant? But if you do that I’m not sure how you then connect the PDP properly to the roboRio and more importantly the PDP is CAN 2.0 not FD so while it would close the chain, the PDP can’t be read by the Canivore

1 Like

Why not take the time to fix the soldering?

1 Like

For proper CAN functionality there needs to be a 120 ohm resistor on both extreme ends of the CAN trunk. That means that when you measure the resistance (with power off of course) with an ohm meter you should read 60 ohms. CAN is a fairly bulletproof medium, and often works with just one resistor (120 ohm) but that is not the correct setup.

1 Like

Exactly. The whole point of using a CANivore is to add a second CAN loop to the robot separate from the CAN loop that begins at the RoboRIO and terminates at the PDP/PDH. We did this for our drive system’s CAN loop this year, to keep it separate from the arm, end effector, and other devices on the main CAN loop, so that even if that failed the drive would still function correctly. Terminating the CANivore loop at the PDP/PDH connection just doesn’t make any sense.

1 Like

Without a resistor at the end of the run, when an electrical signal reaches the end of the wire that electrical energy must go someplace. Sadly, it can not just fall out the end of the wire into a bitbucket, so it is reflected back down the wire where it will interfere with any other signals present on the wire. As you mention, CANbus is pretty robust, so it usually survives this, but it’s “not good”.

3 Likes

Also, the rules require (R716) that the PDP/PDH is wired to the Rio’s CAN bus. And at least the PDH (not sure about the PDP) doesn’t know how to talk CAN-FD, so it won’t work on the CANivore bus.

1 Like

It really doesnt matter to the CAN topology what is connected where. All that matters for a proper functioning CAN bus is to have all the nodes connected to the bus, it doesnt matter where on the bus any particular node is placed. Because the PDP has a built in resistor, it makes sense to have it at one end. There are other components with resistors built in, so that can be the other end. Anything else can be placed anywhere between those end points. Every node needs a seperate address, and that is it. It is actually a very simple network to build.

A really solid set of docs on how the electrical layer works, and many of the relevant considerations.

1 Like

PDP is 2.0 can as well, not FD. Only FD are Canivore, Talon FX, Cancoder and Pigeon 2.0

2 Likes

Not sure if this helps at all, but if you’re just looking to avoid soldering a resistor, you could potentially use something like these CAN Connectors from CTRE. Just connect your green and yellow CAN wires to the two ports on one side, and the resistor wires to the two ports on the other side.

That said, it’s worth noting that one flaw with these connectors is that the contacts are exposed on the bottom, so you’ll need to use electrical tape on the bottom of the PCB to make sure you don’t short your CAN network on something metal.

3 Likes

Or 3d print a bottom cover/multi holder! This also gives you a way to mount them differently without using the existing holes it comes with. Many teams also make their own version of the PCB.

1 Like

True, we do something similar with our own custom CAN PCBs as well, I just suggested electrical tape as a simple solution (albeit, not ideal though).

Personally I avoid the CTRE CAN connectors since for most daisy-chaining applications it takes up less space to just use shrink tube solder or PWM-style connectors for connecting wires to each other. Our custom PCBs are for running in Bus topology so it removes the need for lots of intermediary connectors, since we can just put the “hubs” near the things they’re connected to.

2 Likes