Skip to content

Commit 45f20d6

Browse files
authored
Update the readme to include v1.1 changes
Also added some description about the pitfalls of the Reset and Power pins, why I made the decisions I did and how to work around them if necessary.
1 parent 2de8591 commit 45f20d6

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

README.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
# Arduino KiCad Library
2+
*Version 1.1*
3+
24
Library of schematic components and footprints of common Arduino boards for KiCAD.
35

46
Currently included are:
@@ -24,7 +26,28 @@ To add this library to your KiCad Project, do the following steps:
2426
8. All done: you are now ready to use these schematic components and footprints!
2527

2628
## Comments, Requests, Bugs & Contributions
27-
All are welcome. Please file an "Issue" in the Bug Tracker.
29+
All are welcome. Please file an Issue or Pull Request at https://github.com/Alarm-Siren/arduino-kicad-library
2830

2931
## License
32+
Copyright 2017, Nicholas Parks Young. Some Rights Reserved.
3033
This library is licensed under the GNU LGPL v2.1, which can be found in file LICENSE.txt.
34+
35+
## A note about Power and Reset pins
36+
37+
### Power
38+
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 Sheild then VIN and GND are power inputs whilst +5V and +3.3V are power outputs. There are other, more esoteric possibilities too.
39+
40+
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.
41+
42+
Therefore, I have decided to use Power Input as this presents the least issues.
43+
44+
### Reset
45+
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.
46+
47+
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 sheild.
48+
49+
### TL;DR:
50+
51+
*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.*
52+
53+
*If the ERC says that your power pins are undriven, first manually check they are. If they are, then add a "PWR_FLAG" component to the net to make the error go away.*

0 commit comments

Comments
 (0)