Just thought I would share what Team 5338 has been working on for this past season. Particularly after we lost a couple Talon SRXs last year, we decided that our CAN bus should be more resilient. We designed and got fabricated our own hub PCBs to connect all the CAN devices in a star configuration. That way, we can hopefully lose a device with no issues and the bus intact. We also made a holder so we could mount them down well. These boards have served us pretty well at two district events. Iāve added a few photos to this post.
Ideally there should be a terminating resistor on each pair, but if the wire lengths are so short that it isnāt critical. If your wire length start to approach 1.0 m you should definitely terminate.
Here is the logic:
Speed of light equals 300 m/microsecond (m/us)
Electrons in wire travel at about 60% of that, so 180 m/microsecond
CAN bus speed is 1 MHz (1 cycle per microsecond - or is that 1 Mbps?), and you want lots of harmonics to make a square wave (letās use 10) so thatās
180 m/us / 10 cycles/us = 18 m is the wavelength of the CAN signal
You want to avoid any unterminated cable lengths longer than 1/20 of a wavelength (due to reflections bouncing back up the cable, but now we are really getting technical),
so use terminations on cables longer than 0.9 meters. Terminations stop the reflections.
Twisted pair wires have much better noise rejection (from motors, etc.) than wires that are not twisted.
All that said, the beauty of CAN is that a single bus can have multiple devices and they wonāt mess each other up. That single bus needs to be wired very reliably though, otherwise all bets are off.
These look really cool! If you plan on giving any out at DCMP like the readme says, Iād love to get my hands on one. We currently have 11 CAN devices, but only use 10. Iād love to tell judges how helpful your board is.
Would you happen to have some waveforms captured with an oscilloscope at your RoboRio, at your star point and at some of the ends of the stubs that you can share?
Wow these look great. I was unaware that star network topology is acceptable for CAN. For some reason I was under the impression that only daisy chain works. We might have to look into doing something similar, as the reliability and ease of wiring probably makes a huge difference.
We have been relying on the terminating resistors built into the RoboRIO and the PDP, and thus havenāt added our own.
We havenāt really had any issues with our CAN wires even though we should be twisting them. As JohnD mentioned, the wires lengths involved in our wiring have been super short intentionally to avoid any issues.
We have tested with an oscilloscope, but mostly to check that signals were being sent properly. We can probably grab some waveforms this weekend and share them here.
I know of at least one other CHS team using the Star configuration.
Maybe if thereās time at College Park, Iāll bring our electrical team (2 students) by to take a look.
Iām really glad someone tried this and is actually using it!
We had reliability issues with our CAN connectors last year and took a very similar design through prototyping. We used Weidmuller connectors and a black plastic case to match the rest of the controls system. In the end though we wound up using latching polarized 0.1" pitch molex connectors instead since it ended up being more cost efficient and we can stock Molex parts and not have to reorder PCBs every year.
Are there any concerns about swarf causing issues with an open board like this?
When using a star configuration, you would only need one of the sets cables provided by the Talon SRX. What do you guys do with the other one? Coil it up? Hide it? Cut it?
We havenāt faced any issues with it, but we are aware the risk exists with the ESD issues on the field. Just wondering, why would you have to re-order the PCBs every year? At least for us, our fab lets us reorder at a discount if we order the exact same board, and that is what we plan to do.
Do you by chance know what the other team is? I would love to see how they implemented it. We also would be happy to show your our setup. :]
Since itās being manufactured by a third party using an open design Iām wondering if it might be worth asking for a clarification. It doesnāt seem to match the letter of the ālawā but Iād argue it doesnāt violate the spirit.
As Arvind indicated the team uses the term resistors in the PDP and RoboRio. The PCB does have solder points for attaching up to two resistors that can be enabled/disabled using a header.
See the very beginning of section 8.1, on page 64.
I would think that this covers the PCB scenario. Your PCB house doesnāt normally stock the PCB you designed, so it would fall under example 2, and non-COTS has to be done in-season. Otherwise if you are making the PCB somehow then it would fall under example 3, as itās being made pre-kickoff. Though their verbage with āprofessional publicationā is a bit weird, so I am not 100% sure.
From what I understand, the PCB files would be a raw material (along with the FR4 or whatever you make the PCBs out of) that are used to make a fabricated part (the PCB), and therefore the PCB must be made in-season. If itās not COTS it would have to be remade I think. I am not an official source though, so it would probably be a good idea to ask Q+A this year and next year.
Worst case scenario (they donāt let you reuse) you put the old ones on for testing and then replace them when the legal ones come in from the PCB house.
Iām splitting hairs, I apologize. It probably doesnāt matter but itās good to be fully in compliance :).