Assigning connectors in Parts editor

Hi, I’m trying to create a new part (breakout board) starting from Generic IC in Fritzing (filling form inside Connectors tab too). I’ve created the svg breadboard view in Inkscape and I’ve loaded the svg file using parts editor inside fritzing but when I try to save the new part, I get the following message:

This part has 6 unassigned connectors across 1 views. Until all connectors are assigned to SVG elements, the part will not work correctly. Exiting the parts editor now is fine, as long as you remember to finish the assignments later.

How can I assign connectors into Fritzing in order to show the part properly?

fritzing_message

Upload the .fzpz file for the part (upload is 7th icon from the left in the reply menu) and one of us will tell you what is wrong. Clicking OK on the error message will write the part to your mine parts bin. From there right click on the part and select Export part which will write the .fzpz file to the local file system for upload.

Peter

1 Like

Ok, here is the fzpz part (Sparkfun MCP4725) as appearing in Fritzing:

DIP - 6 pins.fzpz (5.8 KB)

And here is also .svg as it should appear properly and as created in Inkscape:

mcp4725_new

Your svg is misconfigured, as is the fzp file. The svg currently looks like this:

Which is missing the breadboard layerid (the top red circle) and the connector names as set in the fzp file. It should look like this:

which is this svg

6a7da637aae4ecc11b5f87ea92a29665ee863159-fixed

If you unzip the .fzpz file you will find a file called

part.MCP4725_0b209649dd860fe342f521e54cf50b68_2.fzp

which specifies the names of the layerID (breadboard) and pins (connector0pin - connector5pin) that need to be in the svg.

<breadboardView>
 <layers image="breadboard/MCP4725_0b209649dd860fe342f521e54cf50b68_2_breadboard.svg">
  <layer layerId="breadboard"/>

and the required pin names in the svg file in the connectors section (the svgId field in this case):

<connector id="connector0" name="pin1" type="male">
 <description>Vout</description>
 <views>
  <breadboardView>
   <p svgId="connector0pin" terminalId="connector0terminal" layer="breadboard"/>
  </breadboardView>
   </layers>
  </breadboardView>

In this case you don’t need the terminalId and it could be removed from the .fzp file, but will be ignored if it isn’t in the svg. As well you need to change the family from Generic IC to something else as Generic IC will replace your part with a Generic IC if you change a field in Inspector. Changing the family to MCP4725 is what I would do here.

 <properties>
  <property name="family">Generic IC</property>
  <property name="variant">variant 47</property>

to

 <properties>
  <property name="family">MCP4725</property>
  <property name="variant">variant 47</property>

This can be done in Parts Editor in the meta data section as well. These tutorials (which applies to the current version of Fritzing) may help as well

edit:

In addition both schematic and pcb are incorrect. Schematic I replaced via this Inkscape extension:

using these paramaters

pcb is a copy of breadboard modified to the requirements of pcb. Note the mounting holes are not drilled, if you want mounting holes you need to drag a hole part from pcb in core parts in to the sketch. Pin names are the same as your .fzp file (and don’t match any breakout board I see!) All these changes are in this part

MCP4725-fixed.fzpz (4.4 KB)

Peter

Your svg is misconfigured, as is the fzp file. The svg currently looks like this:

Which is missing the breadboard layerid (the top red circle) and the connector names as set in the fzp file. It should look like this:

When I I fix xml code inside Inkscape (as shown by the second picture), the six connectors disappear from svg picture :disappointed:

If you unzip the .fzpz file you will find a file called

part.MCP4725_0b209649dd860fe342f521e54cf50b68_2.fzp

which specifies the names of the layerID (breadboard) and pins (connector0pin - connector5pin) that need to be in the svg.

<breadboardView>
 <layers image="breadboard/MCP4725_0b209649dd860fe342f521e54cf50b68_2_breadboard.svg">
  <layer layerId="breadboard"/>

Fortunately, these lines allready appear inside .fpz file.

and the required pin names in the svg file in the connectors section (the svgId field in this case):

<connector id="connector0" name="pin1" type="male">
 <description>Vout</description>
 <views>
  <breadboardView>
   <p svgId="connector0pin" terminalId="connector0terminal" layer="breadboard"/>
  </breadboardView>
   </layers>
  </breadboardView>

Unfortunately, there are some differences for this block inside .fzp file. My .fzp file appears as the following instead:

  <connector id="connector0" name="pin1" type="male">
   <description>Vout</description>
   <views>
    <breadboardView>
     <p svgId="connector0pin" terminalId="connector0terminal" layer="breadboard"/>
    </breadboardView>
    <schematicView>
     <p svgId="connector0pin" terminalId="connector0terminal" layer="schematic"/>
    </schematicView>
    <pcbView>
     <p svgId="connector0pin" layer="copper0"/>
     <p svgId="connector0pin" layer="copper1"/>
    </pcbView>
   </views>
  </connector>

As well you need to change the family from Generic IC to something else as Generic IC will replace your part with a Generic IC if you change a field in Inspector. Changing the family to MCP4725 is what I would do here.

<properties>
  <property name="family">MCP4725</property>
  <property name="variant">variant 47</property>

Ok, I’ve fixed this quite easily, thanks.

These tutorials (which applies to the current version of Fritzing) may help as well

I already looked at first two youtube videos from the first link some days ago.

If you post the modified svg that doesn’t work I will tell you what is wrong with it. One possibility for “missing” parts is that they are covered by something else and need to be moved down in the svg xml order.

The point is that there needs to be a group in the breadboard svg file that contains all the elements in the svg which has the name “breadboard” which is the layerId for breadboard set in the .fzp file. Your original svg did not have that, my new svg does. Without the layerId the part will not export from Fritzing as an image which causes questions when someone else uses your part and it doesn’t export.

I only showed the part that refers to breadboard, the schematic and pcb sections need to be there as well, they just are not relevant to the terminalId in breadboard. As noted as there is no element called connector0terminal in the breadboard svg, the "terminalId =“connector0terminal” needs to be removed from the .fzp file for all the connectors. The issue is that the svg file needs to also have the elements that are specified in the svg file for the part to be correct. FritzingCheckPart.py (described in my tutorial) will check the part for you and flag various errors.

Peter

If you post the modified svg that doesn’t work I will tell you what is wrong with it. One possibility for “missing” parts is that they are covered by something else and need to be moved down in the svg xml order.

mcp4725_new

I only showed the part that refers to breadboard, the schematic and pcb sections need to be there as well, they just are not relevant to the terminalId in breadboard.

I was just talking about this line:

   </layers>

Cut and paste error, the bottom two lines shouldn’t be there …

Peter

The svg elements with the connector pin ids are empty. They contain the id, but no coordinates or any graphics. That is why they are invisible.

Those are also svg ‘path’ elements. That should technically work, but sometimes there are issues with path elements for the Fritzing ‘special’ elements. Circle, line, rect are all safer options. If something more complex is needed, a simple element plus additional graphics without the special id tag overlapping the simple element also works. The centre of the element with the id is the ‘snap’ point used by Fritzing for connecting wires. Circle elements aligned with the pin ‘holes’ in the background path is probably what you want.

      <path id="connector0pin"/>
      <path id="connector1pin"/>
      <path id="connector2pin"/>
      <path id="connector3pin"/>
      <path id="connector4pin"/>
      <path id="connector5pin"/>

Oh, ok. It could be not guessed by the screenshot (https://forum.fritzing.org/uploads/default/original/2X/9/906ed0d9d346b537bc1da8f35924b0555854cf67.jpeg). Btw, thanks to Profile - vanepp - fritzing forum for MCP4725-fixed.fzpz :slightly_smiling_face:

I’ve made another part that showed similar issue with connectors and I’ve fixed breadboard view using Inkscape xml editor as suggested by vanepp:
sdcard_breakout

That looks fine. I would probably add a fill of #ffffff to the pads like this so there is an indication of the hole though. That is purely cosmetic, it will work fine without it.

The pins however are not on a 0.1in boundary and they should be. Here I changed tool bar units to in and the x is 0.52in on connector0,

on connector1 x is 0.156in when it should be 0.152in

capture2

Peter