# How do I add IEEE 315 to my preferences?

**URL:** <https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88>\
**Category:** Help\
**Created:** [May 2, 2019, 5:11am UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88 "2019-05-02T05:11:50Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![hooperbloob](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/hooperbloob/32/48_2.png) [@hooperbloob](https://librepcb.discourse.group/u/hooperbloob)\
**Post date:** [May 2, 2019, 5:11am UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/1 "2019-05-02T05:11:50Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [May 3, 2019, 2:17pm UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/2 "2019-05-03T14:17:31Z")

</div>

Hi,

> [@hooperbloob](#):
>
> but I can only see the ‘DIN EN 81346’ entry in the Preferred Norms dropdown list.

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

> [@hooperbloob](#):
>
> How do I load/select the IEEE 315 library to my installation

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? 🙂

---

<div class="post-metadata">

**Author:** ![hooperbloob](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/hooperbloob/32/48_2.png) [@hooperbloob](https://librepcb.discourse.group/u/hooperbloob)\
**Post date:** [May 3, 2019, 9:42pm UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/3 "2019-05-03T21:42:41Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [May 5, 2019, 2:21pm UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/4 "2019-05-05T14:21:30Z")

</div>

> [@hooperbloob](#):
>
> I typed in ‘IEEE 315’ and added it to the Preferred Norms box above but nothing really changed.

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?

> [@hooperbloob](#):
>
> Also, if the European style is the default it should be shown in the field, not just in the dropdown list.

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.

> [@hooperbloob](#):
>
> I think the UI validation needs to be beefed up, there is no confirmation that my entered tag/value is recognized or not.

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…

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [May 25, 2019, 5:34pm UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/5 "2019-05-25T17:34:32Z")

</div>

A small improvement regarding this topic will be available in the next LibrePCB release: [https://github.com/LibrePCB/LibrePCB/pull/455](https://github.com/LibrePCB/LibrePCB/pull/455)

---

<div class="post-metadata">

**Author:** ![hooperbloob](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/hooperbloob/32/48_2.png) [@hooperbloob](https://librepcb.discourse.group/u/hooperbloob)\
**Post date:** [July 2, 2019, 3:17am UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/6 "2019-07-02T03:17:00Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [July 2, 2019, 5:20am UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/7 "2019-07-02T05:20:30Z")

</div>

Probably in the next few weeks. See progress in [milestone 0.1.2](https://github.com/LibrePCB/LibrePCB/milestone/4).

---

<div class="post-metadata">

**Author:** ![hooperbloob](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/hooperbloob/32/48_2.png) [@hooperbloob](https://librepcb.discourse.group/u/hooperbloob)\
**Post date:** [May 4, 2020, 11:51pm UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/8 "2020-05-04T23:51:45Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)\
**Post date:** [May 12, 2020, 5:26pm UTC](https://librepcb.discourse.group/t/how-do-i-add-ieee-315-to-my-preferences/88/9 "2020-05-12T17:26:27Z")

</div>

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 🙂

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

> <https://github.com/LibrePCB/LibrePCB/issues/697>
>
> SUMMARY
> The "Add Component" toolbar in the schematic editor always shows and adds IEC symbols, no matter what preferred norm is configured...
