I'm trying to build a network of interactive LED matrices which will communicate to each other. Each node will be a circular PCB containing an 8x8 RGB LED matrix that is connected through a vertical connector. On the circular PCB, I will have 6 connectors around the perimeter such that I can connect the next node with one FPC cable. My goal is to connect up to 60 nodes in any overall shape/orientation I want through a single bus.

enter image description here

The diameter of the board will be approximately 20mm. Each perimeter connector will contain CAN_H, CAN_L, GND and VCC. The distance between each PCB will be at most 5mm (distance from PCB perimeter to PCB perimeter). I received alot of inspiration from the skin panels of the iCub robot.

Before I start with the design I wanted to clear up some things that are confusing me:

  1. CAN nodes are supposed to be connected through twisted pair for noise immunity, but given that the distance between nodes is super short and I'm using FPC cables, will not having the twisted pair be detrimental?

  2. the CAN_H and CAN_L lines are supposed to have characteristic impedance of 120 ohms but I am bit confused as to how to route them on the PCB (trace thickness and spacing?) - should they be routed as close as possible to each other? Wouldn't this give them differential impedance like USB DP/DN pairs? In the application notes I have read I only see CAN lines referred to their 120 Ohm characteristic impedance rather than differential.

  3. With this 120 ohm characteristic impedance requirement, is it possible that there could be too many connectors which would introduce too large of an impedance mismatch ? (Every node will have two connectors - 60 nodes x 2 connectors = 120 connectors)

  4. Because I want to connect to the next node to any connector I want, the CAN_H and CAN_L lines will create a loop around the perimeter of the board (shown by black connections between the blue connectors). Is there any way to mitigate this? I'm concerned that if I connect to the connector nearest the transceiver I will have a long stub that isn't connected to anything which could act as an antenna.

  5. In the document "CAN Primer: Creating Your Own Network" by Keil, they recommend as a tip to keep the drops randomly spaced to reduce standing waves. In this application nearly all the drops are spaced equally. Will this become a problem?

  • \$\begingroup\$ 60x6mm = 300mm. Why are you using CAN for this? Why must each node be intelligent? \$\endgroup\$
    – Lundin
    Commented Sep 10, 2019 at 8:53
  • \$\begingroup\$ @Lundin also have to take into account the diameter of the circle so it becomes 20+6mm x 60 = 1560mm (maximum). I thought that CAN would be good solution since it is robust over long distances. Each node is NOT intelligent, I just need a robust way to send messages from one side of the chain to the other - very open to other suggestions. \$\endgroup\$
    – VanGo
    Commented Sep 10, 2019 at 16:55
  • \$\begingroup\$ That's still just 1.5m. SPI daisy chain with shift registers might be an option, if you can keep the baudrate down. Certainly a far cheaper solution than CAN anyway. There's various tricks one can use, like using RS485 transceivers for driving, but SPI signals. See electronics.stackexchange.com/questions/163468/spi-max-distance \$\endgroup\$
    – Lundin
    Commented Sep 11, 2019 at 6:41

1 Answer 1


1: that part should be OK.

2: They mean differential impedance. There are trace calculators that should let you achieve this -- or you can just figure that the on-PCB traces will be short.

3: I'm not sure if the right word is "possible" or "certainly". You can probably mitigate this a lot by dialing the data rate way down, but basically, all the parallel, electrically short connections will show as high capacitance on the bus (and, hence, low impedance). If you terminate your busses, you will certainly have problems.

4: See (3). Stubs are, IMHO, the least of your problems.

5: See (3) and (4). Again, least of your problems.

If you can, I think you are better off with a bus that will handle your proposed topology. For a lot of short connections, it may be best to use a micro with a bazillion serial ports, and just communicate using CMOS-level signaling. Write software that just echos any message out if it comes in any port (or get fancier if that would lead to never-ending chains of messages).

  • \$\begingroup\$ Regarding #3: How do cars mitigate this when they have hundreds of nodes and connectors on their CAN bus ? \$\endgroup\$
    – VanGo
    Commented Sep 9, 2019 at 23:01
  • \$\begingroup\$ @VanGo CAN bus repeaters do exist. \$\endgroup\$
    – DKNguyen
    Commented Sep 9, 2019 at 23:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.