Add Raspberry Pi Pico and Pico W
Add Raspberry Pi Pico and Pico W from Ki-Lime Pi Pico 2.0.0
Datasheets:
https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf
https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf
Source repository: https://gitlab.com/recursivenomad/ki-lime-pi-pico
These are some of the symbols being added, but there are more worth interrogating in this submission that are not imaged here.
- Related footprint merge request: kicad-footprints!3697
- Related model merge request: kicad-packages3D!1047
- Related model source merge request: kicad-packages3D-source!437
Responses to errors produced by the KLC checker scripts:
S3.1 - All qualify for exception, and multi-part elements are centred around final compound symbol
S3.6 - Offset increased to accommodate functional diagrams, still within range
S4.2 - AGND intentionally grouped with analog IO... thoughts?
S4.3 - Undocumented flagging; No mention of non-numeric pins in pinstacks in KLC v3.0.43
S4.4 - False flagging...? Rule does not match KLC v3.0.43 online.
S4.6 - Intentionally made NC pin visible as it has (albeit not recommended) alternate pin functions... thoughts?
S5.1 - All qualify for exception under G2.1
S5.2 - Footprint filters intentionally do not contain wildcards due to specific nature of matching footprints. Is that okay?
S6.2 - Undocumented flagging; The component name is RaspberryPi_Pico(_W), and it intentionally does not match the symbol names because of the variations.
S6.2 - Additional erroneous flagging (belongs in S7.2) Multi-part module symbols are not graphic nor power symbols.
S7.2 - Multi-part module symbols are not graphic symbols, but virtual symbols
Any additional deviations from the KLC were mostly conscious decisions to follow the existing norms within the MCU_Module library.
Okay, so...
I have spent an unreasonable amount of time developing a library for the Raspberry Pi Pico recently, and it covers a lot of fringe edge cases that I assume would be unnecessarily specific to include in a core library. That said, I wanted to first open this merge request with all the offerings on the table, to then work with the KiCad library team to trim it down once you've had a chance to review what's available.
Some of the most stand-out oddities of this symbol library are:
- 3 primary variants of each module; one with the basic 40-pin pinout, one with the 40-pin pinout plus the 3 SWD debug pins, and one with all available SMD pads/test points as documented in the datasheet. I needed to have these variants in order to support the wide range of footprints on offer (see associated merge request linked above)
- Multi-part assembly. A user of my repository requested a symbol which produces 2 distinct socket footprints so that 2 position file entries are produced for pick n' place. So I made a 3-/4-part modular symbol that you overlap together to have a drop-in replacement with distinct footprint elements.
I respect that this is a dense library with a lot to take in (and a lot to filter out). Please take your time, and I look forward to your feedback and refining this contribution together!