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
[](https://www.repostatus.org/#active)
7
7
8
8
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.
9
9
@@ -14,7 +14,7 @@ Currently included modules:
14
14
- Arduino **Leonardo** Shield
15
15
- Arduino **M0** Shield
16
16
- Arduino **M0 Pro** Shield
17
-
- Arduino **Mega 2560** Shield
17
+
- Arduino **Mega 2560 R3** Shield
18
18
- Arduino **Micro** Socket
19
19
- Arduino **Mini** Socket
20
20
- Arduino **MKR 1000 WiFi** Socket
@@ -41,14 +41,17 @@ Currently included modules:
41
41
- Arduino **Uno R2** Shield
42
42
- Arduino **Uno R3** Shield
43
43
- Arduino **Uno R3 SMD** Shield
44
+
- Arduino **Uno R4 Minima** Shield
45
+
- Arduino **Uno R4 WiFi** Shield
44
46
- Arduino **Uno WiFi R2** Shield
45
47
- Arduino **Zero** Shield
48
+
- Clone **Mega 2560 Pro** Socket
46
49
- Clone **Pro Mini** Socket
47
50
48
51
*"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.*
49
52
50
53
## KiCad Version Compatibility
51
-
This library requires at least KiCad 6 to function, and is tested on KiCad versions 6.0.8 and 7.0.0. Note that the installation procedure is different for KiCad 6 and 7; please see the [Library Installation](#library-installation) section below.
54
+
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](#library-installation) section below.
52
55
53
56
## Comments, Requests, Bugs & Contributions
54
57
All are welcome!
@@ -132,27 +135,36 @@ Original Images: Copyright 2013, [Arduino](https://www.arduino.cc/). Derived Ima
132
135
133
136
The word "Arduino" is a registered trademark of [Arduino](https://www.arduino.cc/). 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.
134
137
135
-
## A note about Power and Reset pins
138
+
## FAQ
136
139
137
-
### Power
138
-
On Arduino modules it is not possible to categorically state the appropriate electrical type for some power pins, as that depends on exactly which module you're using and how it's connected in your design. Sometimes a pin must necessarily be a power input or output, or is internally disconnected by default, but some pins may be either depending on how you are using the module.
140
+
Answers to some common questions about this library.
139
141
140
-
Regardless, 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" can mean it objects to you joining pins together even when that's okay in some situations.
142
+
### Is this library in active development?
141
143
142
-
Therefore, I have adopted the following methodology for deciding the electrical type of a given power pin:
143
-
1. Where I have been able to determine that a given power pin is internally disconnected by default, I have set the electrical type to "Unconnected".
144
-
2. Where I have been able to determine that a given power pin must necessarily be a Power Output, I have set the electrical type to "Power Output".
145
-
3. In any other circumstance, or where I am lacking information, I have set the electrical type to "Power Input" as this presents the least issues. This means if you're actually using any of these 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.
146
-
147
-
Two concrete examples:
148
-
- For the Arduino Nano 33 BLE, the 5V pin is disconnected by default so it is assigned "Unconnected". The GND and 3.3V pins can be either inputs or outputs depending on how the module is being powered, so they are assigned "Power Input". VIN can only ever be used as an input, so it too is assigned "Power Input".
149
-
- For the Arduino 101, both the 5V and 3.3V rails are used by internal circuitry of the module, and the module will create its own 3.3V rail from the 5V rail, thus the 3.3V pins must necessarily be a "Power Output" and is assigned as such. The GND, 5V and VIN pins can be either inputs or outputs depending on how the module is being powered, so they are assigned "Power Input".
144
+
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.
150
145
151
-
### Reset
152
-
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. 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). 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 through the microcontroller, and that would be very bad.
146
+
### What does the license exception in the License & Legal section mean?
153
147
154
-
### TL;DR:
148
+
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](https://www.kicad.org/libraries/license/). My version of the exception uses slightly better wording, but the effect is the same.
155
149
156
-
*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 it's OK, double check it manually.*
150
+
### Why do the footprints not have an `Edge.Cuts` outline?
157
151
158
-
*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.*
152
+
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`.
153
+
154
+
### Why do the Nicla Vision and Nicla Voice tile footprints have cut-outs?
155
+
156
+
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.
157
+
158
+
### Why does the whole footprint have an `F.Courtyard` or `B.Courtyard` outline? I can't place my components where I need to!
159
+
160
+
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.
161
+
162
+
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.
163
+
164
+
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.
165
+
166
+
### Why is this Power Pin set to Power Input/Power Output/Unconnected? I get DRC errors because of it!
167
+
168
+
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.
169
+
170
+
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.
0 commit comments