How do I add IEEE 315 to my preferences?

I’m one of those ‘annoyed’ Americans using the latest v0.1.1 release but I can only see the ‘DIN EN 81346’ entry in the Preferred Norms dropdown list. How do I load/select the IEEE 315 library to my installation?

I’d suggest revising the UI a little bit to make that option a little more obvious. Everyone understands what Preferred Language means but I doubt many of us are familiar with DIN or IEEE codes and what they represent. Either expand that dropdown list to include short descriptions of each choice or make the field label more descriptive.


Oh, that’s actually only an example what one could write there, but I absolutely agree that it’s pretty confusing.

Just replace the “DIN EN 81346” by “IEEE 315” (type into the text field) and click on the “Add” button. Btw, this does not load or select a different library to your installation, the libraries contain symbols of all norms, and selecting your preferred norm is just a hint for the “Add Component” dialog to pre-select the symbol variant of the specified norm.

Either expand that dropdown list to include short descriptions of each choice or make the field label more descriptive.

Currently LibrePCB doesn’t know anything about norms, thus we can’t show descriptions about the available norms. The norm is just a string propery of component symbol variants, so it can contain arbitrary text.

This might be OK for the moment (it solves the problem with pre-selected European symbol variants), but I think we could make it even more powerful, and hopefully also more intuitive. For example like that:

  1. Call it “tags” instead of “norm” and allow specifying multiple tags (e.g. comma-separated). Same functionality, but more generic wording. So instead of selecting preferred norms, the user would specify preferred tags.
  2. Also allow footprints of packages to specify tags. When adding devices to a board, the board editor would then pre-select the footprint which matches the preferred tags.
  3. Still allow arbitrary strings as tags, but provide a built-in list of tags, including a description. So the drop-down would contain much more informative items. Examples:
    • ieee315: American symbols
    • iec60617: European symbols
    • singlesymbol: Single-symbol components
    • multisymbol: Multi-symbol components
    • reflow: Reflow soldering footprints
    • handsolder: Hand soldering footprints
    • ipc7351-densitylevel-a: IPC7351 density level A
    • ipc7351-densitylevel-b: IPC7351 density level B
    • ipc7351-densitylevel-c: IPC7351 density level C

A component symbol variant could then have tags like ieee,ieee315,singlesymbol, and a footprint for example reflow,ipc7351-densitylevel-b.

The cool thing would be that you specify only once what kind of symbols and footprints you prefer, and then the editors always pre-select the variant which matches your preferred style best. For example a European hobbyist which only creates hand-soldered boards just sets the preferred tags to iec60617,handsolder, or an American company which has the guideline to use IPC density level A uses ieee315,ipc7351-densitylevel-a,reflow,smt.

Any thoughts? :slightly_smiling_face:

1 Like

I typed in ‘IEEE 315’ and added it to the Preferred Norms box above but nothing really changed. Still seeing the rectangle-style resistor symbols on the palette and found myself dropping the same shapes onto the schematic editor. Also, if the European style is the default it should be shown in the field, not just in the dropdown list.

I think the UI validation needs to be beefed up, there is no confirmation that my entered tag/value is recognized or not. Adding the description on the items would be an improvement but not sure why you’d mix symbols, components, footprints, density levels, etc within the same preference list - this field seems too open-ended to provide any guidance.

I think an expandable tree widget would work better here, root nodes would denote the aspects (symbol, components, density, etc) and the leaf values would be user-editable and sortable. You gain the extensibility you’re after and users get to see everything in context. When the nodes are collapsed the topmost choice for each aspect would be rendered beside the aspect name.

Where did you enter this, in the project settings or workspace settings? The workspace settings are only taken into account when creating new projects - for already existing projects, you need to enter it in the project settings manually.

Just to be sure - you’re using the resistor from our official “LibrePCB Base” library, right?

The thing is, European style is not “by design” the default style. In fact, LibrePCB does not define a default style. If no component symbol variant matches the preferred norms, it just takes the first one. And as the order of symbol variants is defined by the libraries, it’s a matter of the libraries which norm is default. Our official libraries just use the European variants as default to enforce consistency.

What kind of confirmation would you expect? If you click on the “+” button, the new item is added to the list, isn’t this confirmation enough?

Maybe we could extract a list of all used norms from the workspace library database. Then one would at least see which norms are used in the installed libraries. The drawback would be that then the list depends on the installed libraries, e.g. if no libraries are installed yet, the list is empty. Do you think this would help?

Regarding the topic “tags vs. norm” I think I’ll open a new discussion to brainstorm and elaborate it in more detail…

A small improvement regarding this topic will be available in the next LibrePCB release:

Great, when you anticipate cutting the next release? I’d like to test out the improvement.

Probably in the next few weeks. See progress in milestone 0.1.2.

I asked about support for IEEE 315 support but its still not functional in v0.1.4.
I can select it in the application preferences but the symbols on the toolbars and
schematic editor only show IEC symbols.

I haven’t seen any screenshots or videos showing IEEE 315 symbols in use.

It seems minor but I kind of equate the issue with how Europeans might have felt with
US software not having support for umlauts or diacritics in their names before Unicode
came out.

I want to use LibrePCB but I’m not inclined to until I can work with basic symbols I’m familiar
with. Hope it can be fixed.

Since LibrePCB 0.1.2 the “Add Component” dialog automatically chooses the IEEE 315 symbols if you configured it in the workspace settings. But yes, the symbols indeed do not yet respect this workspace setting, so currently you’d have to add symbols with the “Add Component” dialog. Sorry, I simply forgot the toolbar :slight_smile:

I opened an issue so we don’t forget to fix this in the next release: