LibrePCB-Libraries / RaspberryPi.lplib

Raspberry Pi boards (unofficial).
Creative Commons Zero v1.0 Universal
5 stars 4 forks source link

RPI 2/3/4 improvements #4

Closed ubruhin closed 4 years ago

ubruhin commented 5 years ago

Since #2 was merged before I was able to review them, here my review in a separate PR ;)

First, I added the term "GPIO" to the symbol/component names since they only represent the GPIO connector of a Raspberry Pi (some models have more than just that connector, so we should distinguish between them).

@dbrgn wrote in https://github.com/LibrePCB-Libraries/RaspberryPi.lplib/pull/2#pullrequestreview-253091305:

Among other things, I'd put some of the alternative functions in the symbol pin and component signal name.

GPIO02_SDA GPIO03_SCL [...]

Yes, but until now we used / as separator, not _ -> changed in this PR.

@dbrgn wrote in https://github.com/LibrePCB-Libraries/RaspberryPi.lplib/pull/2#pullrequestreview-253091305:

[3.2.7] In order to keep the required clearance between silkscreen and copper, the pads need to be shrunk a bit. I would suggest 2.1x1.5mm. (The drill diameter of 1mm is a good choice according to my experience.)

No! As I already told you some time ago, never ever adjust pads to fix clearance issues with silkscreen. Pads are much more important than the silkscreen, so always fix such issues by adjusting the silkscreen.

@rnestler wrote in https://github.com/LibrePCB-Libraries/RaspberryPi.lplib/pull/2#issuecomment-505869549:

Yeah we had some trouble locally exactly because of that and didn't realize that we need to adjust the names in the component as well see_no_evil We then pushed our work in progress and checked it out again in a fresh workspace to debug the problem

TL;DR Renaming signals is a PITA

Because of that, in case of pins with multiple functions we mention alternate functions only in the component, not in the symbol. This way the symbol is more generic and we have less duplication of pin names. -> adjusted in this PR.

So far my review for the symbol and the component. With the package I have some trouble to understand how it is intended to be used ;)

For me it's not clear what the "Raspberry Pi GPIO 40-Pin" package actually represents. Is it a pin header, a pin socket, or only "naked" pads? As there are silkscreen and documentation on the top layer, it suggests that something gets mounted on the top. But wouldn't then the pads need to be mirrored to get connected to the corresponding pin headers when plugging onto a Raspberry Pi?

@rnestler @dbrgn @mwit-a

dbrgn commented 5 years ago

Since #2 was merged before I was able to review them, here my review in a separate PR ;)

That's good, since we have parts versioning we can always improve parts later on :slightly_smiling_face:

dbrgn commented 5 years ago

No! As I already told you some time ago, never ever adjust pads to fix clearance issues with silkscreen. Pads are much more important than the silkscreen, so always fix such issues by adjusting the silkscreen.

The silkscreen is fully outside the plastic the pin header body. It's a standard 2x20 pin header. If the silkscreen conflicts with the pads, that means that they almost stick out under the plastic pin header package. In that case they're too big in my opinion.

(For the iC880A backplane project we used round 1.8x1.8mm pads and soldering them works fine. By using 2.1x1.5mm obround pads, they should be even easier to solder while at the same time providing more space if you need to route a trace through the space between two pads.)

I agree about not shrinking pads relative to the manufacturer specification, but in this case there are no specifications that I know of, so we just need to pick a value that works well.

For me it's not clear what the "Raspberry Pi GPIO 40-Pin" package actually represents. Is it a pin header, a pin socket, or only "naked" pads?

The way I understood it, this package is a female connector that will fit the standard 40-pin header that's present on every Raspberry Pi. It's not a full HAT though, since that would also contain the shape of the HAT on the documentation layer.

As there are silkscreen and documentation on the top layer, it suggests that something gets mounted on the top. But wouldn't then the pads need to be mirrored to get connected to the corresponding pin headers when plugging onto a Raspberry Pi?

Usually the female connector is mounted on the bottom side using through-hole components. Often connectors with long pins are used, so that these extension boards can be stacked. The silkscreen should be on the top side though, not on the bottom side.

ubruhin commented 4 years ago

Usually the female connector is mounted on the bottom side using through-hole components. Often connectors with long pins are used, so that these extension boards can be stacked. The silkscreen should be on the top side though, not on the bottom side.

If the connector is mounted from the bottom side, the silkscreen has to be on the bottom side too (the layer is called "placement", i.e. it indicates where and how a device has to be placed - if it's on the wrong side, the component will be mounted on the wrong side too).

I opened #6 to handle the package issue separately, and rebased this branch so it should be ready now.