Com wire

I have searched around for the discussion I’m sure has been touched on many times. Lots of post using phone wire for CAN in the past. My history started last spring so Roborio is my starting point. I would like the team I’m mentoring this winter to start using feed back to operate their robot this year. The off season labs we been preforming has got everyone excited with the possibilities. What I have observed though is many or most of the connection cables we have are pieced together sometimes with two or more solder joints and not always matching colors. I bought a supply of pins and sockets.

Now I’m asking for your experiences would phone and/or Ethernet cable work well for making cables? Solid or stranded? With both types i usually like this strip twice as much wire off and fold it back once to get a solid connection.

We haven’t messed with the CAN bus stuff, except as needed for the connections between the computer and the VRM and PCM. But in general, you want to worry mostly about the physical aspects of the wiring–make sure it’s robust, and easy to repair if needed. I would tend to want to use thicker wire than is found in LAN cables. The twisted pair that comes in the kit is pretty nice, but finding twisted pair of the same gauge, with an overall jacket, would be even better. The color codes are also a concern, it would be nice to have colors on the wires that are not shared by the power distribution, etc.

Let us know what you find, I’m sure others could use some help here too.

Our team uses WAGO Levernuts and ferrules for CAN, no soldering required. They’re easily changed and you can wire CAN in either series or parallel, for which you can have either two-connection for series or much larger levernuts for parallel.

http://www.andymark.com/product-p/am-2577.htm

Here’s a five terminal connector.

AndyMark provides it, and it looks very similar to this cable, with the Mississippi State University AVTC team uses in their vehicles for CAN communication. It’s probably the best CAN cable you can get.

However, in my experience, it’s a pain to strip that oil-resistant insulation off. I often would try to strip it and end up cutting the insulation off the internal wires. YMMV

CTR Electronics also provides it. It’s uninsulated, which makes it really easy to strip the wires. I would recommend this over the AndyMark stuff because it’s easier to use.

Our team just bought some off of eBay.

Big thing to look for in CAN is if it’s twisted. CAN uses differential signaling for communication, meaning one wire goes logic low while the other wire goes logic high. [strike]What this does is allow the CAN controllers to detect signaling errors do to electromagnetic interference (EMI), and attempt to resend the message.[/strike] Sources of EMI? Motors, overhead lights, static, bad crimps, solar flares… you name it!

Next biggest thing to look for is the size. All the CAN connectors use Weidmuller Connectors, which can accept wire from 16AWG to 24AWG. All the above wire will work.

Can you twist it yourself? Sure! I’ve done this before by taping up the ends in a drill and spinning it for a while. Number of turns per meter does matter in the real world, but for our application, anything will probably work. I’ve seen teams just run normal wires, untwisted, and have it work fine.

I was thinking for PWM and DIO as well.

We just use hobby servo wire for these.

https://www.servocity.com/html/servo_wire__bulk_.html
https://www.servocity.com/html/servo_extensions___leads.html

http://www.amazon.com/Remote-Control-Female-Servo-Extension/dp/B00EZE90WQ/ref=sr_1_fkmr1_2?ie=UTF8&qid=1452290263&sr=8-2-fkmr1&keywords=servo+extension+unshrouded

On the ServoCity and Amazon assembled ones, you’ll have to remove the plastic shroud on the male side, but that’s pretty easy to do with pliers or a small flat-head / standard screwdriver.

The first ServoCity wire requires assembly, in which pins, housings, and crimpers are needed. If you’re not comfortable with assembling them, then don’t do it. It’s easy to mess up and will cost you matches if not done right.

quote=
.

Thanks for the tip! We just bought the last one! :cool:[/quote]

That isn’t exactly correct. Differential signaling causes any effects of EMI to be nullified, since the EMI (nominally) affects both wires equally. So if CAN is looking for a voltage differetial of 5 Volts, it does not matter if a 20 V EMI signal is superimposed upon both wires, the difference is still 5 volts.

Error detection is performed with mechanisms like a CRC checksum.

Twisted wires help maintain a constant impedance, important towards suppressing reflections, which can cause data errors.

You made me review some electrical notes. You’re right (of course). EMI affects both signals identically (because they’re twisted). The controller’s are ground independent meaning that the signals don’t need a ground. The controller uses a comparator (just think of a voltage meter measuring the voltage across the signals) to see if the signal is logic low (voltages separate, 2V measured) or logic high (voltages come together, 0V measured).

If something happens, the CRC portion of the CAN message will request the other CAN controller to resend the message.

CAN is a very robust standard used by all automotive manufacturers and many companies. Fortunately, or unfortunately, FIRST and NI doesn’t really expose you to the fun stuff in CAN. It all kind of… just works.

So what makes CAN really cool is no one is a master controller and no one is a slave device. Any device can talk to any device. It’s a broadcast network with wither 11-bit IDs or 29-bit extended IDs. In practice, CAN is usually limited to speeds up to 500 kbps, but will reach speeds up to 1 Mbps. Newer standards (CAN FD) push that speed even higher. Not very fast, right, but when you’re talking about the data we’re transmitting, it’s pretty fast.

I also saw on another thread about how they’re using a signal-splitter to run the network as a star network rather than daisy chaining. I do not recommend doing that because of signal reflections. Most devices give you an ‘in’ and an ‘out’ port if you want to call it that. Use that, it’s better for signal integrity. You have a chance of running into signal reflections on the network.

The wire for FRC CAN doesn’t really matter. I would use stranded as the equipment is made to hold it in easier than solid core. During Beta, I used the KOP Link Connector Cable (Black, Red, White Green 4 conductor). I used R & B for power and W & G for CAN. It worked even without a can bus termination resistor. Really, for our distances and usage, it’s robust you don’t need to worry about it.

Typically we use 22AWG 4C unshielded wire.

I just received ours. Item was not as described. I got 50’ of green wire with a yellow tracer. Hopefully just a mess-up, but I contacted the seller.

The wire and the terminations really do matter, sorry.
The twist of the wires or at least the constant spacing between wires sets the transmission line impedance. The CAN transceivers need the termination resistors to operate correctly. They help set the signalling voltage level and terminate the transmission line. Without them, the reflections at each end of the line allow errors to build up. This is an effect of the length of the line. The longer the line, the worse the effect. Also, the CAN buss should never be parallel wired. In short systems it may seem to work but, as is typical, this system will fail you when you need it the most.
The twisted wiring allows both wires to be exposed to external noise. Since the intruding noise is in phase as it passes through the wire, the twist will cause the ‘in phase’ noise to be cancelled at the source. Any noise that remains will also be in phase and that will be cancelled at the differential input to the transceiver chip. The twist of 2-3 turns per inch will produce a shunt capacitance of ~20-30pf per foot.
Murphy is always lurking…

The IDs (MessageID) isn’t just used to identify a device. The MessageID is part of the arbitration mechanism on CAN and so as multiple devices start to send their message, the lowest valued MessageID wins (simplified). As the bits are transmitted, if the value on the bus doesn’t correspond to the value being transmitted, the node backs off (lost arbitration, but keeps listening so it can later ACK/NACK the packet for CRC). Since the MessageID is sent most-significant bit first, and 0s are dominant, the node sending a 0 beats a node sending a 1 (hence the lower value wins).

When developing Jaguar, I spent time fracturing up the extended MessageID to ensure things like “everyone stop!” got through, to everyone. In effect the Jaguar CAN protocol uses the MessageID field divided such that functions arbitrate before src/dst, where the important safety functions are low valued and broadcast (i.e. Vendor=All=0, MessageID=0 is like FunctionGroup=Safety=0, Function=Halt=0, Dest=Everybody=0–it has been almost 8 yrs since this was worked out so this is from memory).

In practice, CAN is usually limited to speeds up to 500 kbps, but will reach speeds up to 1 Mbps.

FRC CAN is 1 Mb/s.

Make sure your wires have a consistent twist ratio, otherwise, it is possible to have the P and N signals arrive out of phase.

This is where you use those awesome formulas from your physics classes regarding the speed of light and velocity factors through copper transmission mediums.

The seller admitted the mistake and is resenting the wire. You should be okay.

???

You want to ensure that both lengths of the positive and negative wires in the differential pair are the same.

It’s common practice to ensure you don’t have data skew.

Kiet,
At higher data rates that is true. At 1 MPS, the wavelength is approaching 1000 ft. so you would have to fudge the twist by several feet to skew the data.

Definitely true. I’ve been working on much higher speed busses for too long :slight_smile:

CAN is pretty robust.