CAN Bus PCBs

Hi everyone,

Just thought I would share what Team 5338 has been working on for this past season. :slight_smile: 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.

Find out more at this link.


1 Like

Whoops, looks like the image links didn’t work properly. Here are them again:
https://imgur.com/a/egSzk
https://imgur.com/a/RUanL

Very interesting! I do have a couple questions about the usage though:

  1. Do you have termination resistors for each part of the star?
  2. Have you found that the lack of twisting on some CAN wires causes issues?
    Looks like a very useful project.

We sat dead in one of our matches because the CAN bus daisychain got disconnected. So, consider us interested…

I always thought that you couldn’t do a star configuration with CAN bus.

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. :wink:

1 Like

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.

  1. We have been relying on the terminating resistors built into the RoboRIO and the PDP, and thus haven’t added our own.
  2. 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.

Thank you. We will definitely make sure to get one to you and your team :).

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 just take the other cable and coil it up, while wrapping the ends in electrical tape. Then, we hide it :wink:

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. :]

Due to R14 you would have to manufacture this custom part in-season as it isn’t covered by exemptions in A-D.

Obligatory ā€˜the rules only apply this year’ disclaimer

1885

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.

Nope, but they’re all pretty short.

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 :).