# Naming of packages

**URL:** <https://librepcb.discourse.group/t/naming-of-packages/167>\
**Category:** Libraries\
**Created:** [December 29, 2019, 6:10pm UTC](https://librepcb.discourse.group/t/naming-of-packages/167 "2019-12-29T18:10:10Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [December 29, 2019, 6:10pm UTC](https://librepcb.discourse.group/t/naming-of-packages/167/1 "2019-12-29T18:10:11Z")

</div>

We generally used [IPC landpattern naming](http://www.pcblibraries.com/downloads/temp/Library-Expert-Land-Pattern-Naming-Convention_.pdf) so far. That means, that a polarized radial capacitor with 1.5 mm lead spacing, a lead diameter of 0.45 mm, a diameter of 4.0 mm and a height of 11.0 mm is called `CAPPRD150W45D400H1100`.

The landpattern naming scheme works well since it’s consistent across different package types. They also have a system for naming manufacturer-specific landpatterns. For example, the Sensirion SHTC3 would be called `SENSIRION_SHTC3`.

In a [recent GitHub thread](https://github.com/LibrePCB-Libraries/AiThinker.lplib/pull/1) the question arose whether this makes sense in the context of LibrePCB:

> But actually the IPC7351 naming convention for manufacturer-specific packages doesn’t make much sense IMHO. I mean, why should we use uppercase letters and underscores instead of spaces if our EDA tool has no issues with spaces or other special characters? (@ubruhin)

While I think that having consistent naming even across different EDA tools, spaces might look a bit more readable. With the following two changes:

- Replace underscores with spaces
- Don’t require capital case manufacturer names

…the following packages:

![before](https://global.discourse-cdn.com/free1/uploads/librepcb1/original/1X/059d38521f3536d1d6056a1a4f8bbde1503ebe1d.png)

…would look like this:

![after](https://global.discourse-cdn.com/free1/uploads/librepcb1/original/1X/b20811e2ecb2a7d874b13df59d99a9d7d3eaea08.png)

Is this better or not? I’m actually not sure, it does look a bit inconsistent to me.

---

<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:** [December 30, 2019, 12:04am UTC](https://librepcb.discourse.group/t/naming-of-packages/167/2 "2019-12-30T00:04:33Z")

</div>

> [@dbrgn](#):
>
> Is this better or not? I’m actually not sure, it does look a bit inconsistent to me.

True, now I’m not sure too 😭

If there are no other opinions, I guess for now I’m fine with using IPC7351 naming even for manufacturer specific packages. But of course only for packages, so e.g. the package would be named “SENSIRION\_SHTC3” and the corresponding device “Sensirion SHTC3”.

Haha I just realized that IPC7351 even provides a huge list of manufacturer names and their corresponding package name prefix, that’s funny 😁

---

<div class="post-metadata">

**Author:** ![EdizonTN](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/edizontn/32/222_2.png) [@EdizonTN](https://librepcb.discourse.group/u/EdizonTN)\
**Post date:** [December 30, 2019, 1:25am UTC](https://librepcb.discourse.group/t/naming-of-packages/167/3 "2019-12-30T01:25:15Z")

</div>

Looks better style B.  
But, IPC7351 advise naming convention with manufacturer prefix too. Quick view is [here](http://ohm.bu.edu/~pbohn/__Engineering_Reference/pcb_layout/pcbmatrix/IPC-7x51%20&%20PCBM%20Land%20Pattern%20Naming%20Convention.pdf).  
So, style A is more logical/compatible.

p.s. I’m don’t use exactlu all IPC7351 naming convention. Name of the manufacturer of begining of the name, is no good to find it in alphabetical sort. Due this, I moved manufacturer name at the end of string. And add clearly pkg name.  
This is my libs…  
 ![LibrePCB Editor](https://global.discourse-cdn.com/free1/uploads/librepcb1/original/1X/d0e8d5dbeeadb6b68f15eb503d39120d52e187da.png)

p.s.2. would be better and more clear, if can be add (in listbox) also short description close to name. That would be something!  
Like this:

 ![Browse Libraries](https://global.discourse-cdn.com/free1/uploads/librepcb1/original/1X/274af014dcc59ffe75bee70d47979feb2c0a9942.png)

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [December 30, 2019, 8:17am UTC](https://librepcb.discourse.group/t/naming-of-packages/167/4 "2019-12-30T08:17:20Z")

</div>

> [@ubruhin](#):
>
> Haha I just realized that IPC7351 even provides a huge list of manufacturer names and their corresponding package name prefix, that’s funny 😁

I think that’s not from the IPC spec, but from Library Expert. Nevertheless, it’s useful.

---

<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:** [January 6, 2020, 9:01pm UTC](https://librepcb.discourse.group/t/naming-of-packages/167/5 "2020-01-06T21:01:05Z")

</div>

> [@dbrgn](#):
>
> I think that’s not from the IPC spec, but from Library Expert. Nevertheless, it’s useful.

Ah, true!

So what’s the conclusion now, using exactly the IPC recommendation and Library Expert manufacturer names?

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [January 7, 2020, 9:00am UTC](https://librepcb.discourse.group/t/naming-of-packages/167/6 "2020-01-07T09:00:50Z")

</div>

> [@ubruhin](#):
>
> So what’s the conclusion now, using exactly the IPC recommendation and Library Expert manufacturer names?

That would be my suggestion, yes.

And for symbols / devices / components: Use the manufacturer prefix if the part is manufacturer-specific (e.g. `Sensirion SHTC3`) and leave it away if it’s somewhat generic (e.g. `Resistor 2012 (0805)`).

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [January 7, 2020, 9:01am UTC](https://librepcb.discourse.group/t/naming-of-packages/167/7 "2020-01-07T09:01:46Z")

</div>

Alternatively, we could add a separate metadata field for the manufacturer. The GUI could then show it as a prefix or leave it away, depending on the situation. What do you think, @ubruhin?

---

<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:** [January 8, 2020, 9:38pm UTC](https://librepcb.discourse.group/t/naming-of-packages/167/8 "2020-01-08T21:38:38Z")

</div>

> [@dbrgn](#):
>
> That would be my suggestion, yes.
> 
> And for symbols / devices / components: Use the manufacturer prefix if the part is manufacturer-specific (e.g. `Sensirion SHTC3` ) and leave it away if it’s somewhat generic (e.g. `Resistor 2012 (0805)` ).

👍

> [@dbrgn](#):
>
> Alternatively, we could add a separate metadata field for the manufacturer. The GUI could then show it as a prefix or leave it away, depending on the situation. What do you think, @ubruhin?

Yeah I think that would be nice. In the “add component” dialog you probably want to see the manufacturer of components/devices, but in schematics not (to keep the `{{VALUE}}` label short). But until there is a manufacturer field, we have add the manufacturer to the name instead…

---

<div class="post-metadata">

**Author:** ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)\
**Post date:** [January 9, 2020, 8:56am UTC](https://librepcb.discourse.group/t/naming-of-packages/167/9 "2020-01-09T08:56:48Z")

</div>

> [@ubruhin](#):
>
> Yeah I think that would be nice. In the “add component” dialog you probably want to see the manufacturer of components/devices, but in schematics not (to keep the `{{VALUE}}` label short). But until there is a manufacturer field, we have add the manufacturer to the name instead…

I agree! I created an issue on GitHub so we don’t forget about it:

> <https://github.com/LibrePCB/LibrePCB/issues/653>
>
> \### SUMMARY
> 
> As discussed in https://librepcb.discourse.group/t/naming-of-pack…ages/167/, the manufacturer field could be included in the library file format for the following entities:
> 
> \- Symbol
> \- Component
> \- Package
> \- Device
> 
> \##### SOLUTION
> 
> \- The field should be optional
> \- This requires a file format change, so it should probably be part of the v0.2 release
> \- The field can be used for filtering (e.g. in the "add component" dialog), but it should probably not be shown in the schematics or board editor by default
