How do I make sub-parts with a common pin?

I’ve got a question/challenge…
I have created a resistor network with 8 resistors networked together, connected to one common pin (pin1).
https://forum.fritzing.org/t/8-resistor-network-bussed/14069/2
8 Resistor Network

These resistors are used all over my schematic for tying up signals to 15V. Ideally I need subparts so I can place each resistor where it is needed, but I’m not sure how to do this as all the subparts would share a common pin. I was wondering if a Net Label could be used as part of the subpart?

Has anything like this been done before? Any suggestions?
Thanks

I think what you want is a bus.

I’m not aware of anyone doing this before (subparts have been fairly rare) and I’m not sure how to do it. You might try a netlabel and see if that works. I would suggest a bus, but buses and subparts are mutually exclusive (I am not sure why that is, but you can only have one or the other.) I also don’t know how to define a netlabel in a part which will likely be a problem (the netlabels may only be available in a sketch.)

Peter

I have done come experimenting with subparts. I started it for a DPDT relay, so the switch contacts and coil could be moved separately.

I saw a post that said the problem mixing sub-parts and buses has been fixed, but I have not tested it.

You “may” not need a bus to do this. There is only one physical pin that is common to all of the resistors in the SIP package. So in theory you could do this as 9 sub parts. One for each resistor, and one for the common. Not sure what a ‘single ended’ resistor would look and act like in a schematic though. To do this with bus plus sub part, you could create duplicate common pins that are bused together, then implement as 8 sub parts. In breadboard and pcb, the duplicate pins can be suppressed, or stacked on top of each other. Assuming the bus + subpart problem has been fixed.

I do not think parts editor has any way to work with sub-parts, so implementing would require manual editing of the fzp file to add the subpart section. See “Split schematic symbols” in the 2.1 Part file format article for the details. That is all I used as a reference. At a high level, it is not complicated. Each separate movable piece in the schematic is wrapped in a group (sometimes called layer) in the svg file, then each piece gets a matching block in the schematic-subparts section of the fzp. That id of the block matches the id in the svg, and it contains a list of all of the connectors that are to be included in the piece. That’s it.

The svg template in the referenced article is misleading. The subpart groups should not be nested inside of each other. This should be closer:

<svg>
  <g id="schematic">
    <g id="subpart1">
    </g>
    <g id="subpart2">
    </g>
    <g id="subpart3">
    </g>
  </g>
</svg>

@microMerlin appears to be correct, on Fritzing 0.9.9 a quick test indicates buses are now allowed in subpart parts, so a bus for the connections would be the best bet I expect. On0.9.3b the part crashes Fritzing so the bug must have been fixed.

Peter

Thanks for all your suggestions.

I’m not familiar with busses. Are there any parts available that use buses, so I can have a look how they work? In core parts for example.

Now that buses are now allowed in subpart parts, has anyone ever made a part with buses and subparts?

The arduino Uno is one in core parts that uses buses. Buses are pretty easy, the fzp file looks like this:

<buses>
  <bus id="bus0">
    <nodeMember connectorId="connector1"/>
    <nodeMember connectorId="connector2"/>
  </bus>
</buses>

you set the pins you want in the bus as nodeMembers. Here is the test part I tried last night (it shorts the gate output and the input so isn’t a real part though!) out of a subpart part to see if this was fixed. That should give you most of what you need. The difficult part will likely be figuring out how to represent the bus part in the subparts. I expect something like a net label with “bus” in it at the top of the resistor will work best. The fzp file from this test part should give you everything you need.

74x125_test.fzpz (9.7 KB)

here pin 2 is bused to pin 3 and thus both light yellow when either is selected (this is on Fritzing 0.9.9 I don’t know when this was fixed though.)

Peter

<bus id="bus0">
  <nodeMember connectorId="connector1"/>
  <nodeMember connectorId="connector2"/>
  <nodeMember connectorId="connector3"/>
  <nodeMember connectorId="connector4"/>
</bus>

By adding a couple more lines to your fzp joins together pins 3 & 4 on the second subpart too, but I notice that it doesn’t join all four pins together though. That would have made things very easy!

Here is a functional SPST relay part with 2 subparts and 2 buses. I had some cleanup planned for this part that I never got around to, but it seems to be working, and includes examples of all of the sections you should need.

SPST-D31A-Relay_1.fzpz (5.4 KB)

Here is what the schematic from that looks like:

svg.schematic.D31A-relay_schematic

@vanepp That is a direct paste of the svg image. I did not even resize it after upload. The forum software was updated a while ago, and now handles the small svg images with units of “in” and dimensions of less than 1 inch.

SPST-D31A-Relay_1.fzpz
I’m struggling to see how this part works, what is the purpose of pins 3 and 4? Is there a way to change this to a normally closed relay? It only opens as a normally open relay in Fritzing and pins 3 & 4 are hidden.

It doesn’t connect them together physically in the drawing, but does do so logically, so a connection to any pin is also a connection to all the rest. That is why I suggested that the bus pin in each resistor may need a net label type tag to indicate it is part of a bus. In schematic this has a consequence: if you have two pins in the same bus it will only connect to the bus once, so you may not be able to make a connection to an open pin if there is already another connection to that bus. The usual way this is handled is putting all the pins on top of each other in schematic (or as I usually do just remember that if a connection won’t complete it is already connected to that bus somewhere else!) So in the case of your sip resistor you can only connect the power source to one of the bus pins, it won’t accept a connection to any of the other 7 as there is already a connection so you need a way to indicate it is connected to a bus. Ideally you would be able to have a net label that took its name from the connected pin, but that functionality (AFAIK) doesn’t currently exist.

Peter

SPST-D31A-Relay_1.fzpz
Ok, I have just checked out the datasheet for the D31A and I can see that each side of the relay goes to two pins. I see why you (@microMerlin) want to common the pins now.
D31A

Ah yes, placing the part in schematic only a pair light up yellow, but I can see all four connecting in PCB view.

A strange thing I noticed is that if you connect any of the bussed pins to anything else, then the rats-nest doesn’t appear in PCB view unless you move one of the parts.

I will have a play with it over the weekend.
Thanks

I realized while I knew what I was suggesting, without a part/picture it wasn’t going to make much sense to anyone else. So a picture and a part of what I mean:

The “net label” is actually schematic text (with the size reduced to fit in the box.) The down side is that it doesn’t move with the subpart, if you move the subpart you have to manually move the label (which is a PITA!) but I don’t know any other way to do it. Here is the part that creates the above

8 Resistor Network-multipart.fzpz (6.1 KB)

it has the same moduleId as your posted part so you will need to delete that before you can load the new one. The 8 bused connections have 7 new connectors which are all overlaid on pin 1 and included in the bus (and the same happens in breadboard and pcb, 8 pins overlaid on pin 1) You probably don’t actually need the 7 overlaid pins in the bus, I expect this would work with just the image circled in red above and only one pin in the subpart definition although I haven’t tried that.

Peter