Giter VIP home page Giter VIP logo

alarm-siren / arduino-kicad-library Goto Github PK

View Code? Open in Web Editor NEW
309.0 23.0 97.0 519 KB

KiCad Symbol & Footprint Library for Arduino Modules (Shields, Sockets and Tiles)

License: Creative Commons Attribution Share Alike 4.0 International

kicad arduino uno zero leonardo footprints mega micro shield mini nano socket kicad-footprints kicad-library arduino-uno mkr-family pcb-footprints pcb nicla

arduino-kicad-library's Introduction

KiCad Library for Arduino banner logo

KiCad Symbol & Footprint Library for Arduino Modules

Version 4.2.0

Project Status: Active โ€“ The project has reached a stable, usable state and is being actively developed. Required KiCad Version License GitHub release (latest SemVer) Symbols Downloads

This is a library of KiCad schematic symbols and PCB footprints for most Arduino modules. You can use them to make your own PCB design which will effortlessly connect with your chosen Arduino module.

Currently included modules:

  • Arduino 101 Shield
  • Arduino Due Shield
  • Arduino Giga R1 WiFi Shield
  • Arduino Leonardo Shield
  • Arduino M0 Shield
  • Arduino M0 Pro Shield
  • Arduino Mega 2560 R3 Shield
  • Arduino Micro Socket
  • Arduino Mini Socket
  • Arduino MKR 1000 WiFi Socket
  • Arduino MKR WiFi 1010 Socket
  • Arduino MKR FOX 1200 Socket
  • Arduino MKR WAN 1300 Socket
  • Arduino MKR WAN 1310 Socket
  • Arduino MKR GSM 1400 Socket
  • Arduino MKR NB 1500 Socket
  • Arduino MKR Vidor 4000 Socket
  • Arduino MKR Zero Socket
  • Arduino Nano Socket
  • Arduino Nano 33 BLE Socket / Tile
  • Arduino Nano 33 BLE Sense Socket / Tile
  • Arduino Nano 33 BLE Sense R2 Socket / Tile
  • Arduino Nano 33 IoT Socket / Tile
  • Arduino Nano ESP32 Socket / Tile
  • Arduino Nano Every Socket / Tile
  • Arduino Nano RP2040 Connect Socket / Tile
  • Arduino Nicla Sense ME Socket / Tile
  • Arduino Nicla Vision Socket / Tile
  • Arduino Nicla Voice Socket / Tile
  • Arduino Pro Mini Socket
  • Arduino Uno R1 Shield
  • Arduino Uno R2 Shield
  • Arduino Uno R3 Shield
  • Arduino Uno R3 SMD Shield
  • Arduino Uno R4 Minima Shield
  • Arduino Uno R4 WiFi Shield
  • Arduino Uno WiFi R2 Shield
  • Arduino Zero Shield
  • Clone Mega 2560 Pro Socket
  • Clone Pro Mini Socket

"Shield" means the module is designed to plug in from beneath your PCB. "Socket" means the module is designed to plug in from above your PCB. "Tile" means the module is designed to be soldered directly on to your PCB using surface-mount pads.

KiCad Version Compatibility

This library requires at least KiCad 6 to function, and is tested on KiCad versions 6.0.8 and 7.0.2. Note that the installation procedure is different for KiCad 6 and 7; please see the Library Installation section below.

Comments, Requests, Bugs & Contributions

All are welcome! Please open an Issue or Pull Request, as appropriate.

Library Installation

To install this library in your copy of KiCad, choose the correct section for your version of KiCad and follow the steps given. These instructions only cover automated installation using KiCad's built-in Package and Content Manager (PCM); manual installation is possible but not supported.

KiCad 7

Warning: Do not change the nickname prefix from that given in step 4 below. If you do so KiCad will not assign the correct footprints to the symbols by default.

  1. Open KiCad and open the Preferences window at "Preferences" -> "Preferences..."
  2. Select the "Plugin and Content Manager" section in the left-hand pane.
  3. Ensure that the "Automatically add installed libraries to the global lib table" option is ticked.
  4. Ensure that the "Library nickname prefix" is set to "PCM_".
  5. Ensuring that the "Check for package updates on startup" option is ticked is recommended. (Optional)
  6. Click "OK" to close the Preferences window.
  7. Click the "Plugin and Content Manager" button.
  8. Select the "KiCad official repository" from the top drop-down box (if not already selected).
  9. Go the Libraries tab and locate the "KiCad Library for Arduino Modules" in the list.
  10. Click the "Install" button for that entry in the list.
  11. Click "Apply Pending Changes".
  12. Close the "Applying Package Changes" window once it has finished.
  13. You should now find that this library is listed in the "Installed" tab.
  14. Close the Plugin and Content Manager.
  15. You may need to restart KiCad for the library installation to fully take effect. (Optional)
  16. All done: you are now ready to use these schematic components and footprints in your projects!

KiCad 6

Recommendation: If you can, you should upgrade to KiCad 7.

Warning: Do not change the Nicknames from those given in steps 12 and 18 below. If you do so KiCad will not assign the correct footprints to the symbols by default.

  1. Open KiCad and click the "Plugin and Content Manager" button.
  2. Select the "KiCad official repository" from the top drop-down box (if not already selected).
  3. Go the Libraries tab and locate the "KiCad Library for Arduino Modules" in the list.
  4. Click the "Install" button for that entry in the list.
  5. Click "Apply Changes".
  6. Close the "Applying Package Changes" window once it has finished.
  7. You should now find that this library is listed in the "Installed" tab.
  8. Close the Plugin and Content Manager.
  9. Go to the "Preferences" -> "Manage Symbol Libraries..." menu option.
  10. In the Symbol Libraries dialogue that appears, switch to the "Global Libraries" tab (if not already selected).
  11. Click "Add empty row to table" button (the button with a big cross in it, beneath the table).
  12. In the new line of the table, set the Nickname to "PCM_arduino-library", and ensure the Library Format is set to "KiCad".
  13. In the same line of the table, set Library Path to "${KICAD6_3RD_PARTY}/symbols/com_github_alarm-siren_arduino-kicad-library/arduino-library.kicad_sym".
  14. Click "OK" to close the Symbol Libraries dialogue.
  15. Go to "Preferences" -> "Manage Footprint Libraries..." menu option.
  16. In the Footprint Libraries dialogue that appears, switch to the "Global Libraries" tab (if not already selected).
  17. Click "Add empty row to table" button (the button with a big cross in it, beneath the table).
  18. In the new line of the table, set the Nickname to "PCM_arduino-library", and ensure the Library Format is set to "KiCad".
  19. In the same line of the table, set Library Path to "${KICAD6_3RD_PARTY}/footprints/com_github_alarm-siren_arduino-kicad-library/arduino-library.pretty".
  20. Click "OK" to close the Footprint Libraries dialogue.
  21. All done: you are now ready to use these schematic components and footprints in your projects!

Donations

I really hope you've found this library useful. If you'd like to buy me a beer in thanks for the work I put into it, you can make a donation using the button below:

paypal

License & Legal

Copyright 2017-2023, Nicholas Parks Young.

Except as otherwise noted, all content of this library is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License, with the following additional exception:

To the extent that the creation of electronic designs that use the Licensed Material can be considered to be Adapted Material, the Licensor waives Section 3 of the Public License with respect to these electronic designs and any generated files which incorporate data provided as part of the Licensed Material.

CC BY-SA 4.0

"KiCad Library for Arduino" Banner & Icon

The two images "resources/banner.png" and "resources/icon.png" are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. These images are derivatives of "Arduino Open-Source Community: Main Logotype RGB Colors" originally created by Arduino.

Original Images: Copyright 2013, Arduino. Derived Images: Copyright 2023, Nicholas Parks Young.

CC BY-SA-NC 4.0

Arduino Trademark

The word "Arduino" is a registered trademark of Arduino. This trademark is used in this library to refer to Arduino products and to identify Arduino-related non-commercial content, as permitted by Arduino's trademark guidelines. This project is not affiliated with nor endorsed by Arduino.

Warranty Disclaimer

This library is provided in the hope that it will be useful, but without any warranties of any kind. Your use of this library is at your own risk. For the full warranty disclaimer, see Section 5 of the Creative Commons Attribution-ShareAlike 4.0 International License.

FAQ

Answers to some common questions about this library.

Is this library in active development?

Yes. For the foreseeable future, I will be providing support, bug-fixes and updating the library with any new Arduino modules as they are released.

What does the license exception in the License & Legal section mean?

This library uses the same license as KiCad's own built-in parts library does, including the exception. The KiCad Libraries team have a page which explains the meaning of the exception. My version of the exception uses slightly better wording, but the effect is the same.

Why do the footprints not have an Edge.Cuts outline?

If I put in an Edge.Cuts outline, then those users who want to have a PCB larger than the module footprint would have to modify the footprint to do so. In my experience, it is far more common for users to want a PCB larger than the module anyway, so I prefer to cater to those users. If you want your PCB to be the same size and shape as the Arduino module, you can trace the F.Silkscreen or B.Silkscreen layer (as appropriate) out in the Edge.Cuts layer yourself, or you can modify the footprint to change the outline from F.Silkscreen or B.Silkscreen layer to Edge.Cuts.

Why do the Nicla Vision and Nicla Voice tile footprints have cut-outs?

The cut-outs are necessary to accommodate components on the back of those modules; without them the components would physically prevent you from getting the module's pads down to the footprint's SMD pads.

Why does the whole footprint have an F.Courtyard or B.Courtyard outline? I can't place my components where I need to!

Firstly, this does not stop you from placing your components wherever you want. It does mean that the KiCad DRC will, by default, report errors or warnings in some circumstances because the module footprint and your circuit's footprints' courtyards are overlapping, but you can ignore or disable these errors/warnings without issue.

Secondly, the intention is that it acts as a warning to the user that they've put components in the 'danger zone' between their PCB and the Module. I do not model all of the tall components on the module, so it is possible that a user might unknowingly place their own tall component in a position that would conflict with one on the module. My hope is that the DRC errors/warnings will flag this potential problem to the user to manually check that their placement does not conflict with the module.

In principle I'm open to marking the taller components specifically, which would remove this issue, but this is a lot of work and requires data I don't have access to for all the modules.

Why is this Power Pin set to Power Input/Power Output/Unconnected? I get DRC errors because of it!

The short answer is that some power pins on some modules can be used as either inputs or outputs, depending on your circuit design / where you're powering the assembly from.

For those pins where I've been able to categorically confirm that the given power pin is Unconnected by default, or must necessarily be a Power Input or a Power Output, I have set it as such. For those pins that can be used as either an input or output, I have set it to Power Input as this is the more flexible option whilst still preserving some element of DRC capability. If you're using one of these Power Input pins as a Power Output from the module, you'll need to add the special PWR_FLAG component to the affected net to make the DRC error go away.

arduino-kicad-library's People

Contributors

akreager avatar alarm-siren avatar azzazy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduino-kicad-library's Issues

Update documentation links

Though the old links still work, they're now redirects to the "real" page. Since its safe to assume these redirects won't work forever, the links need to be updated to the new style.

Reset pins should be Open Collector

Reset pins are currently set to Input, but they should be Open Collector to reflect the fact that they can be pulled low by the Arduino, both by the reset button and by the serial controller resetting it during programming. Doesn't fully encompass the behaviour (since there's also an internal pullup) but its closer at least.

Arduino M0 Pro footprint is incorrect

The Arduino M0 Pro footprint is not correct.

At the moment it 'borrows' the Leonardo footprint, but the Leonardo only has one Micro-USB port not two like the M0 Pro does.

The closest match would be the Arduino Zero, however that has an ATN pin which the M0 Pro lacks. Therefore it looks like the M0 Pro needs its own footprint which is basically identical to the Zero but with the ATN pin removed.

Note that the M0 is not affected and can continue to borrow the Leonardo footprint.

New Boards

Add parts for the Arduino Nano & Mini as Sockets. Need to investigate these parts, find physical dimensions and pinouts etc.

Define default footprint data

Define a "default" footprint, in addition to footprint filters. This is a new feature in KiCad 6 which I was previously unaware of. It allows enables footprint preview in the symbol selection dialogue.

Footprint general clean-up and consistency pass

On review of the library, there is a startling lack of consistency between the different footprints.

This issue encompasses the following work:

  • Add courtyards / fab outlines for screw holes
  • Use rectangular pads for all GND pins, and only GND pins
  • Use silkscreen to mark the location of the D0 pin only. Put the label on both back and front silkscreen.
  • Add Fablayer labels for Barrel Jack / USB. Remove any that already exist on the Silkscreen layer.
  • any outlines or reserved space for protruding components that are on the Silkscreen layer should be moved to Fab or Courtyard. Also ensure that the outer courtyard conforms to the relevant reserved space.
  • Add B.Fab layer outlines for the pin headers on Shield footprints - this will help the user to reserve the space for the pin sockets on their PCB.
  • Add F.Fab layer outlines for pin sockets on Socket footprints - this will help the user to reserve the space for the pin sockets on their PCB.
  • Add B.Courtyard outlines for shields.
  • Shields should have their silkscreen on the Back.Silkscreen layer, not front!

Arduino_Micro_Socket footprint has wrong sized screw holes

The screw holes in the Arduino_Micro_Socket footprint are 1.016mm in diameter, but the Arduino Micro itself has 1.2mm holes.
Change hole size to 1.4mm (0.2mm bigger than Arduino's own size, to match with standard KiCad practice and the rest of the library).

Pro Mini Clone

Since there are many Pro Mini Clones on ebay (and I have more then 10 of them) it would be nice to support it here.
All of my board's are about 33x18mm in size
Pro_Mini_Clone

Arduino Mega 3.3V power pin is an input instead of output

I thought the Arduino 3.3V pin serves as a 3.3V output from the on board regulator. If I make a circuit and try to get a 3.3V out, the DRC keeps popping up an error claiming that I've not connected an output to the input. I don't know if it's Kicad that could have the issue, but that's where I'm at

Update power pins to eliminate ERC errors

Change the power pins on all schematic components to Power Input so that joining them together will not cause ERC errors, as discussed in issue #1 . This will mean that in some cases the user will have to attach a PWR_FLAG to the relevant net, but that's less of an issue than having an unavoidable error for joining together pins in such a way that is not an error.

Use standard reference designators

According to standard IEEE 315-1975, these components should use the reference designator XA?, where X means "socket", A means sub-assembly and ? is a placeholder for the part's unique number within the schematic.

Pin/Label consistency on power rails

For consistency, change all 3.3V power pins to use 3V3 as the pin number (or 3V3x if there's more than one 3.3V pin, e.g. 3V31) and 3.3V as the pin name.
This affects all existing boards.

Arduino Micro Adjustments

Expand the front courtyard a little and add USB area to silkscreen to make it easier to plug it in the right way around.

How to join GND1, GND2 and GND3 together?

Thank you very much for creating arduino-kicad-library. It looks like just what I need.

Having created a schematic with your Uno Shield, I am having trouble with the Electrical Rules Checker. There seem to be a couple of problems:

  • It doesn't seem to like that I am joining the GND1, GND2 and GND3 nets together
  • I am trying to take the 12v power supply connected to VIN and connect it to some 2N7002 MOSFETs, however it doesn't think the 12V power net is driven

I have found Kicad to be really difficult to get started with. If you are able to provide any help, that would be fantastic!

screenshot 2017-11-22 22 43 14

Arduino Micro IOREF pin doesn't exist

The schematic for the Arduino Micro has an IOREF pin, but the Arduino Micro footprint does not causing a mismatch. In this case the footprint is correct: the schematic needs to have the IOREF pin removed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.