You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
General clean-up and improvement update: fix a few mistakes, add the Nano Every to the list of included modules, change terminology to be more internally consistent, and update the licensing section with more and clearer information.
# KiCad Symbol & Footprint Library for Arduino modules
2
2
*Version 2.3.0*
3
3
4
-
Library of schematic components and footprints of common Arduino boards for KiCad.
4
+
This is a library of KiCad schematic symbols and PCB footprints for common Arduino modules. You can use them to make your own PCB design which will effortlessly connect with your chosen Arduino module.
5
5
6
-
Currently included are:
6
+
Currently included modules:
7
7
- Arduino 101 Shield
8
8
- Arduino Due Shield
9
-
- Arduino Leonardo Shied
9
+
- Arduino Leonardo Shield
10
10
- Arduino M0 Shield
11
11
- Arduino M0 Pro Shield
12
12
- Arduino Mega 2560 Shield
13
13
- Arduino Micro Socket
14
14
- Arduino Mini Socket
15
15
- Arduino MKR Zero Socket
16
-
- Arduino MKR 1000 WiFi
17
-
- Arduino MKR WiFi 1010
18
-
- Arduino MKR FOX 1200
19
-
- Arduino MKR WAN 1300
20
-
- Arduino MKR WAN 1310
21
-
- Arduino MKR GSM 1400
22
-
- Arduino MKR NB 1500
23
-
- Arduino MKR Vidor 4000
16
+
- Arduino MKR 1000 WiFi Socket
17
+
- Arduino MKR WiFi 1010 Socket
18
+
- Arduino MKR FOX 1200 Socket
19
+
- Arduino MKR WAN 1300 Socket
20
+
- Arduino MKR WAN 1310 Socket
21
+
- Arduino MKR GSM 1400 Socket
22
+
- Arduino MKR NB 1500 Socket
23
+
- Arduino MKR Vidor 4000 Socket
24
24
- Arduino Nano Socket
25
+
- Arduino Nano Every SMD
26
+
- Arduino Nano Every Socket
25
27
- Arduino Pro Mini Socket
26
28
- Arduino Uno R3 Shield
27
29
- Arduino Uno R3 SMD Shield
28
30
- Arduino Uno WiFi R2 Shield
29
31
- Arduino Zero Shield
30
32
- Pro Mini Clone Socket
31
33
32
-
Shield means the Arduino is designed to plug in from beneath your PCB; socket means it is designed to plug in from above.
34
+
*"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. "SMD" means the module is designed to be soldered directly on to your PCB using surface-mount pads.*
33
35
34
36
## Compatibility with KiCad 5
35
37
This library is in the new KiCad 6 "S-Expressions" format, and is not compatible with KiCad 5. If you need compatibility with KiCad 5, please use version 1.4.1 of this repository - but be aware that said version does not contain all features and is not being maintained.
36
38
37
39
## Comments, Requests, Bugs & Contributions
38
40
All are welcome!
39
-
Please file an [Issue](https://github.com/Alarm-Siren/arduino-kicad-library/issues) or [Pull Request](https://github.com/Alarm-Siren/arduino-kicad-library/pulls), as appropriate.
41
+
Please open an [Issue](https://github.com/Alarm-Siren/arduino-kicad-library/issues) or [Pull Request](https://github.com/Alarm-Siren/arduino-kicad-library/pulls), as appropriate.
40
42
41
-
## License
42
-
Copyright 2017-2022, [Nicholas Parks Young](https://github.com/Alarm-Siren). All Rights Reserved.
43
+
## Legal Information & License
44
+
Copyright 2017-2022, [Nicholas Parks Young](https://github.com/Alarm-Siren). All Rights Reserved.
43
45
44
-
This work is licensed under a
45
-
[Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
46
+
Except as otherwise noted, the content of this library is licensed under the
47
+
[Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/), with the following exception:
48
+
> To the extent that the creation of electronic designs that use 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 use data provided as part of the Licensed Material.
The word "Arduino" is a registered trademark of Arduino SA. 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](https://www.arduino.cc/en/trademark). This project is not affiliated with nor endorsed by Arduino.
53
+
49
54
## Donations
50
55
51
56
If you've found this library useful and you'd like to make a donation towards its continued upkeep, click the button below:
@@ -72,21 +77,21 @@ To add this library to your KiCad Project, do the following steps:
72
77
## A note about Power and Reset pins
73
78
74
79
### Power
75
-
On the Arduino Platform, it is not possible to categorically state that the power pins are "power inputs" or "power outputs", as that depends on exactly how you're using the Arduino. For example, if you're powering the Arduino from USB then GND, +3.3V and +5V would be power outputs and VIN would do nothing, whereas if you're powering the Arduino from a battery via your Shield then VIN and GND are power inputs whilst +5V and +3.3V are power outputs. There are other, more esoteric possibilities too.
80
+
On Arduino modules, it is not possible to categorically state that the power pins are "power inputs" or "power outputs", as that depends on exactly how you're using the module in your design. For example, if you're powering the module from the USB connector then GND, +3.3V and +5V would be power outputs and VIN would do nothing, whereas if you're powering the module from a battery via your PCB then VIN and GND are power inputs whilst +5V and +3.3V are power outputs. There are other, more esoteric possibilities too.
76
81
77
-
Regardless of the above, I needed to make a decision about what electrical type to apply to these pins. I could use something like Passive or Unspecified, but then KiCad's Electrical Rules Checker (ERC) tool would not be effective in catching errors on these pins at all, whilst using Power Output means it objects to you joining pins together (for example, joining all the GND pins into a common net) even when that's OK in some situations.
82
+
Regardless of the above, I needed to make a decision about what electrical type to apply to these pins. I could use something like "passive" or "unspecified", but then KiCad's electrical rules checker (ERC) tool would not be effective in catching errors on these pins at all, whilst using "power output" means it objects to you joining pins together (for example, joining all the GND pins into a common net) even when that's okay in some situations.
78
83
79
-
Therefore, I have decided to use Power Input as this presents the least issues. This means if you're actually using any of the power pins as Power Outputs in your schematic, by default the ERC will complain that the relevant nets are undriven. To fix this you will need to add the special "PWR_FLAG" component to the affected net.
84
+
Therefore, I have decided to use 'power input' as this presents the least issues. This means if you're actually using any of the power pins as 'power outputs' in your design, by default the ERC will complain that the relevant nets are undriven. To fix this you will need to add the special "PWR_FLAG" component to the affected net.
80
85
81
-
NOTE: As of version 2.0.0, on the 5V-based Arduino boards the 3.3V output pin has been changed to Power Output, as these will be powered by an on-board regulator and should not have external power fed into them.
86
+
*Note: as of version 2.0.0, on 5V-based modules the +3.3V output pin has been changed to "power output", as these will be powered by an on-board regulator and should not have external power fed into them.*
82
87
83
88
### Reset
84
-
Reset pins on the Arduino Platform have interesting electrical characteristics, which mean that no KiCad electrical type exactly matches their functionality. I settled on Open Collector as the nearest candidate, but unlike a true Open Collector pin on an integrated circuit, the reset pins on the Arduino Platform have an internal weak pull-up, and the reset button that can strongly pull low, so your circuit needs to be able to cope with all these situations.
89
+
Reset pins on Arduino modules have interesting electrical characteristics, which mean that no KiCad electrical type exactly matches their functionality. I settled on "open collector" as the nearest candidate, but unlike a true open collector pin on an integrated circuit, the reset pins on Arduino modules have an internal weak pull-up and a reset button that can strongly pull low, so your design needs to be able to cope with all these situations.
85
90
86
-
In other words, if you use the reset pin as an input to your shield then you do not need to add a pull-up (doing so will actually make it less responsive if not break it); conversely if you want to drive the reset line in order to reset the Arduino you need to ensure that you only ever pull it low - if you pull it high at the same time as an unwitting user hits the physical reset button, you've created a short between power and ground which will likely fry whatever chip is on your shield.
91
+
In other words, if you use the reset pin as an input to your PCB then you do not need to add a pull-up (doing so will actually make it less responsive if not break it); conversely if you want to drive the reset line in order to reset the module from your PCB, you need to ensure that you only ever pull it low: if you pull it high at the same time as an unwitting user hits the physical reset button, you've created a short between power and ground which will likely fry whatever chip is on your PCB.
87
92
88
93
### TL;DR:
89
94
90
-
*The KiCad ERC cannot catch all the possible electrical errors on your schematic as it doesn't natively support the reset and power pins' electrical types. Even if the ERC says its OK, double check it manually.*
95
+
*The KiCad ERC cannot catch all the possible electrical errors on your design as it doesn't natively support the reset and power pins' electrical types. Even if the ERC says its OK, double check it manually.*
91
96
92
97
*If the ERC says that your power pins are undriven, first manually check they are being driven. If they are driven, then add a "PWR_FLAG" component to the net to make the error go away.*
0 commit comments