How to connect boards with wire flat ribbon cable

Hello,

I got a case with multiple boards, and wish to connect them together using a wire flat ribbon jumper cable, like this:
image

Here is a sketch example:


As this connection is not standardized (not like computer devices with IDE, parallel, …), the pinout of the cable and connector is chosen to make the pcb traces simple. This means, I can choose wire 1 for vcc and later, after progressing in the layout of the first card, move vcc to wire 2.
This pinout is constrained by the layout of the two cards which means a lot of back and forth…

The problem is when I change on a side it needs to change on the other side.

So far my solutions are not good enough. Do someone have ideas, experiences, … and recommendations ?

What I tested:

  • create a connector with “functional” pin. Then when I want to move the position of the wire, I just move the pin in the connector and reopen the sketch(es). That works great but it’s not a simple design process.

  • use net labels only on connectors and copy/paste the connector with net labels from board to board… that’s not efficient neither reliable.

  • use colors on wires. not reliable either.

Thanks for your ideas and suggestions.

Stéphane

1 Like

Maybe use a generic header connector (it should fit the cable). You can configure the number of pins etc.

image

image

1 Like

Thanks Kjell,

That’s what I mean by connectors, but there no link between the connectors.

Look at this example:

S1 light Led1, S2 light Led2, …
The PCBs look like this:

As it’s a bit messy on the right board I decide to swap some pins and to make the board single sided.


As you can see this change does not have effect on the left side. Because the left board is routed, when I move these connection, I would love to see dashed lines (unrouted), warning, … to do not forget to review the routing, on the second board. A bit like this:

Fritzing really isn’t designed to do this, but you can maybe get close enough like this:

this ugly thing simulates the ribbon cable connecting two 8pin connectors. That causes rats nest lines to reflect in to schematic like this and tells Fritzing what the connections are so it can create rats nest lines for new connections (which I think may do what you want):

with that in place I think the rats nest lines you want should appear (because Fritzing is aware of the connections) the down side is that it only allows you to make the changes in 1 view (schematic or pcb) as the other view needs to be simulating the ribbon cable (the traces for which will be removed in the final sketch!) In this case pcb is simulating the ribbon cable allowing the changes to be made in schematic. If you now delete all traces in pcb (leaving the connections in schematic) you can change pcb to get the desired layout and the rats nest lines will reflect in from schematic:

Here pcb know what the ribbon cable connections are from schematic and will thus show rats nest lines for them as you move traces around in pcb.

Here is the above sketch to experiment with:

ribbon-cable.fzz (7.8 KB)

EditL I’m not thinking! The correct answer is to simulate the ribbon cable in breadboard, then the rats nest lines appear in both schematic and pcb which I think will do what you want.

Make the ribbon cable connections in breadboard

and they appear as rats nest lines in schematic

and pcb

Now if you make connections between the boards, the connections will light up yellow when clicked because the rats nest lines are reflecting in from breadboard. Updated copy of the sketch:

ribbon-cable.fzz (2.6 KB)

Peter

Please also note: It is common and perfectly fine to leave the connectors open in the schematic. This is a popular way to keep the schematics clean and readable.

Schematics can be separated into sub-circuits this way. A flat cable like you are using is a good natural interface where you could split the schematic.

If you see the connector symbol (the “Y”) and a label, like J1 above, then there is often a different page in the schematic, were the circuit behind J1 is described.

Thanks for these feed backs. To avoid messing up my cards, the only solution I found to modify the pinout on both sides is:

  1. to have my own connector
  2. to rename the pins
  3. generate a new version of the part
  4. remove the part from fritzing
  5. close fritzing
  6. open fritzing
  7. import the new version of the part
  8. reopen the sketch => automatically update the part and force me to reroute the pcb

This is a long scenario. Even if it works I use to do mistakes, forget, … and then half of my issues come from errors in connections…

BTW, Fritzing seems to be able to automatically update parts from github (never really saw it, a popup should say it ;-). If it could be possible to add my own repo, that would be so great !

Stéphane

Just for future reference, can you post the new version of the part and how you integrated it? Your scenario sounds indeed more complicated than it should be. We plan on improving Fritzing support for cables and connectors, and once we do, such information can be helpful.

I don’t know if it can help. I made a copy of the shrouded header and rename the pin on the pcb svg file. Actually only 0,1,2,3 are swapped.

shrouded-header-12.fzpz (5.9 KB)


Flat ribbon connector
If you want to add a flat ribbon cable connector, for multi board sketch, I would suggest to create twin connectors and offer to add labels on pins. So in the sketch we’ll have this situation:

How twin connectors would work
In the Inspector of a connector we would have three additional widgets:

  • checkbox: to declare Part1 has a twin part
  • dropbox: to choose another part with same features to be the twin connector.
  • a textfield : to specify the order of pins ex: “pin0,pin1,pin8,pin2”. (not very user friendly, but maybe easy for a draft)
    When a modification is made on a part, in the inspector, the same modification is applied on the twin part.

It would also be valuable to have functional labels on pins (vcc, gnd sda, …). Dynamically adding a textfield for each pin in the Inspector can be a solution… These labels might also be “net label” which can facilitate the schematic diagram.

NB: have twin part is maybe also applicable for other kind of parts.

Hello @vanepp @KjellM,

I went further on this topic. I’m now able to connect 2 boards in one single fritzing sketch, with a flat ribbon cable, which also support Gerber export for production. :tada:

This is a prototype which may need some graphical improvement.

The concept is to have 1 part with 2 headers and header’s pin are bused (very important).

Part editor view:


Usage
Schematic (this can be improved graphically):

PCB: (you can see the two boards)

Change
If I change the schematic, I see a ratsnest line to fix, on both schematic and pcb.



After removing the ratsnest from the schematic the behaviour is correct on the pcb:

Constraints

  • Because the part is not as flexible as a real ribbon cable, moving the part on the first board moves it on the second board. This implies to position the “second” board regarding the second connector position (like moving a house relatively to the gate of the garden)

  • The distance between headers is fixed. This can be annoying if boards are too large.

  • Need to create one part per header pin count.

  • Need to have the same orientation for the two boards. So if we need to have two boards stacked in a box with a ribbon cable in the middle, we need to make a variant to flip the headers.

Stephane

Here is the prototype. That might worth to have some feedbacks.
flat-ribbon-12.fzpz (5.2 KB)

Appears to work about as well as it can given the Fritzing limitations. The fzp file needs a label of J to give it a J# type part label is the only thing I see. Part1 comes from no label element in the fzp file.

Peter