From 57c18700e477e28888cd68cbd5f624d316ebd6a3 Mon Sep 17 00:00:00 2001
From: Krisjanis Rijnieks <krisjanis.rijnieks@gmail.com>
Date: Fri, 8 Jan 2021 14:20:57 +0200
Subject: [PATCH] Add Arduino UNO

---
 fab.dcm                                       |   6 +
 fab.lib                                       |  47 ++++++++
 ...Arduino_UNO_R3_WithMountingHoles.kicad_mod | 105 ++++++++++++++++++
 3 files changed, 158 insertions(+)
 create mode 100644 fab.pretty/Arduino_UNO_R3_WithMountingHoles.kicad_mod

diff --git a/fab.dcm b/fab.dcm
index 39558b0..c7e665e 100644
--- a/fab.dcm
+++ b/fab.dcm
@@ -12,6 +12,12 @@ K AVR 8bit Microcontroller tinyAVR
 F http://ww1.microchip.com/downloads/en/DeviceDoc/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf
 $ENDCMP
 #
+$CMP Arduino_UNO_R3
+D Arduino UNO Microcontroller Module, release 3
+K Arduino UNO R3 Microcontroller Module Atmel AVR USB
+F https://www.arduino.cc/en/Main/arduinoBoardUno
+$ENDCMP
+#
 $CMP BUTTON_B3SN
 D Push button switch, Omron B3SN, Sealed Tactile Switch (SMT), SPST-NO Top Actuated Surface Mount
 K switch normally-open pushbutton push-button button tactile spst single pole single throw
diff --git a/fab.lib b/fab.lib
index 50ddf3c..fe0747b 100644
--- a/fab.lib
+++ b/fab.lib
@@ -394,6 +394,53 @@ X GND 6 200 -100 100 L 40 40 1 1 P I
 ENDDRAW
 ENDDEF
 #
+# Arduino_UNO_R3
+#
+DEF Arduino_UNO_R3 A 0 20 Y Y 1 F N
+F0 "A" -400 925 50 H V L BNN
+F1 "Arduino_UNO_R3" 200 -1050 50 H V L TNN
+F2 "Module:Arduino_UNO_R3" 0 0 50 H I C CIN
+F3 "" 0 0 50 H I C CNN
+$FPLIST
+ Arduino*UNO*R3*
+$ENDFPLIST
+DRAW
+S -400 900 400 -1000 0 1 10 f
+X NC 1 -400 -800 100 R 50 50 1 1 N N
+X A1 10 500 -100 100 L 50 50 1 1 B
+X A2 11 500 -200 100 L 50 50 1 1 B
+X A3 12 500 -300 100 L 50 50 1 1 B
+X SDA/A4 13 500 -400 100 L 50 50 1 1 B
+X SCL/A5 14 500 -500 100 L 50 50 1 1 B
+X D0/RX 15 -500 600 100 R 50 50 1 1 B
+X D1/TX 16 -500 500 100 R 50 50 1 1 B
+X D2 17 -500 400 100 R 50 50 1 1 B
+X D3 18 -500 300 100 R 50 50 1 1 B
+X D4 19 -500 200 100 R 50 50 1 1 B
+X IOREF 2 500 400 100 L 50 50 1 1 O
+X D5 20 -500 100 100 R 50 50 1 1 B
+X D6 21 -500 0 100 R 50 50 1 1 B
+X D7 22 -500 -100 100 R 50 50 1 1 B
+X D8 23 -500 -200 100 R 50 50 1 1 B
+X D9 24 -500 -300 100 R 50 50 1 1 B
+X D10 25 -500 -400 100 R 50 50 1 1 B
+X D11 26 -500 -500 100 R 50 50 1 1 B
+X D12 27 -500 -600 100 R 50 50 1 1 B
+X D13 28 -500 -700 100 R 50 50 1 1 B
+X GND 29 -100 -1100 100 U 50 50 1 1 W
+X ~RESET 3 500 600 100 L 50 50 1 1 I
+X AREF 30 500 200 100 L 50 50 1 1 I
+X SDA/A4 31 500 -700 100 L 50 50 1 1 B
+X SCL/A5 32 500 -800 100 L 50 50 1 1 B
+X 3V3 4 100 1000 100 D 50 50 1 1 w
+X +5V 5 200 1000 100 D 50 50 1 1 w
+X GND 6 0 -1100 100 U 50 50 1 1 W
+X GND 7 100 -1100 100 U 50 50 1 1 W
+X VIN 8 -100 1000 100 D 50 50 1 1 W
+X A0 9 500 0 100 L 50 50 1 1 B
+ENDDRAW
+ENDDEF
+#
 # BUTTON_B3SN
 #
 DEF BUTTON_B3SN SW 0 40 N N 1 F N
diff --git a/fab.pretty/Arduino_UNO_R3_WithMountingHoles.kicad_mod b/fab.pretty/Arduino_UNO_R3_WithMountingHoles.kicad_mod
new file mode 100644
index 0000000..511768a
--- /dev/null
+++ b/fab.pretty/Arduino_UNO_R3_WithMountingHoles.kicad_mod
@@ -0,0 +1,105 @@
+(module Arduino_UNO_R3_WithMountingHoles (layer F.Cu) (tedit 5B3F95CF)
+  (descr "Arduino UNO R3, http://www.mouser.com/pdfdocs/Gravitech_Arduino_Nano3_0.pdf")
+  (tags "Arduino UNO R3")
+  (fp_text reference REF** (at 1.27 -3.81 180) (layer F.SilkS)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (fp_text value Arduino_UNO_R3_WithMountingHoles (at 0 22.86) (layer F.Fab)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (fp_line (start -27.94 -2.54) (end 38.1 -2.54) (layer F.Fab) (width 0.1))
+  (fp_line (start -27.94 50.8) (end -27.94 -2.54) (layer F.Fab) (width 0.1))
+  (fp_line (start 36.58 50.8) (end -27.94 50.8) (layer F.Fab) (width 0.1))
+  (fp_line (start 38.1 49.28) (end 36.58 50.8) (layer F.Fab) (width 0.1))
+  (fp_line (start 38.1 0) (end 40.64 2.54) (layer F.Fab) (width 0.1))
+  (fp_line (start 38.1 -2.54) (end 38.1 0) (layer F.Fab) (width 0.1))
+  (fp_line (start 40.64 35.31) (end 38.1 37.85) (layer F.Fab) (width 0.1))
+  (fp_line (start 40.64 2.54) (end 40.64 35.31) (layer F.Fab) (width 0.1))
+  (fp_line (start 38.1 37.85) (end 38.1 49.28) (layer F.Fab) (width 0.1))
+  (fp_line (start -29.84 9.53) (end -29.84 0.64) (layer F.Fab) (width 0.1))
+  (fp_line (start -16.51 9.53) (end -29.84 9.53) (layer F.Fab) (width 0.1))
+  (fp_line (start -16.51 0.64) (end -16.51 9.53) (layer F.Fab) (width 0.1))
+  (fp_line (start -29.84 0.64) (end -16.51 0.64) (layer F.Fab) (width 0.1))
+  (fp_line (start -34.29 41.27) (end -34.29 29.84) (layer F.Fab) (width 0.1))
+  (fp_line (start -18.41 41.27) (end -34.29 41.27) (layer F.Fab) (width 0.1))
+  (fp_line (start -18.41 29.84) (end -18.41 41.27) (layer F.Fab) (width 0.1))
+  (fp_line (start -34.29 29.84) (end -18.41 29.84) (layer F.Fab) (width 0.1))
+  (fp_line (start 38.23 37.85) (end 40.77 35.31) (layer F.SilkS) (width 0.12))
+  (fp_line (start 38.23 49.28) (end 38.23 37.85) (layer F.SilkS) (width 0.12))
+  (fp_line (start 36.58 50.93) (end 38.23 49.28) (layer F.SilkS) (width 0.12))
+  (fp_line (start -28.07 50.93) (end 36.58 50.93) (layer F.SilkS) (width 0.12))
+  (fp_line (start -28.07 41.4) (end -28.07 50.93) (layer F.SilkS) (width 0.12))
+  (fp_line (start -34.42 41.4) (end -28.07 41.4) (layer F.SilkS) (width 0.12))
+  (fp_line (start -34.42 29.72) (end -34.42 41.4) (layer F.SilkS) (width 0.12))
+  (fp_line (start -28.07 29.72) (end -34.42 29.72) (layer F.SilkS) (width 0.12))
+  (fp_line (start -28.07 9.65) (end -28.07 29.72) (layer F.SilkS) (width 0.12))
+  (fp_line (start -29.97 9.65) (end -28.07 9.65) (layer F.SilkS) (width 0.12))
+  (fp_line (start -29.97 0.51) (end -29.97 9.65) (layer F.SilkS) (width 0.12))
+  (fp_line (start -28.07 0.51) (end -29.97 0.51) (layer F.SilkS) (width 0.12))
+  (fp_line (start -28.07 -2.67) (end -28.07 0.51) (layer F.SilkS) (width 0.12))
+  (fp_line (start 38.23 -2.67) (end -28.07 -2.67) (layer F.SilkS) (width 0.12))
+  (fp_line (start 38.23 0) (end 38.23 -2.67) (layer F.SilkS) (width 0.12))
+  (fp_line (start 40.77 2.54) (end 38.23 0) (layer F.SilkS) (width 0.12))
+  (fp_line (start 40.77 35.31) (end 40.77 2.54) (layer F.SilkS) (width 0.12))
+  (fp_line (start -28.19 -2.79) (end 38.35 -2.79) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -28.19 0.38) (end -28.19 -2.79) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -30.1 0.38) (end -28.19 0.38) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -30.1 9.78) (end -30.1 0.38) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -28.19 9.78) (end -30.1 9.78) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -28.19 29.59) (end -28.19 9.78) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -34.54 29.59) (end -28.19 29.59) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -34.54 41.53) (end -34.54 29.59) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -28.19 41.53) (end -34.54 41.53) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -28.19 51.05) (end -28.19 41.53) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 36.58 51.05) (end -28.19 51.05) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 38.35 49.28) (end 36.58 51.05) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 38.35 37.85) (end 38.35 49.28) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 40.89 35.31) (end 38.35 37.85) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 40.89 2.54) (end 40.89 35.31) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 38.35 0) (end 40.89 2.54) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 38.35 -2.79) (end 38.35 0) (layer F.CrtYd) (width 0.05))
+  (fp_text user %R (at 0 20.32 180) (layer F.Fab)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (pad 32 thru_hole oval (at -9.14 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 31 thru_hole oval (at -6.6 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 1 thru_hole rect (at 0 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 17 thru_hole oval (at 30.48 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 2 thru_hole oval (at 2.54 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 18 thru_hole oval (at 27.94 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 3 thru_hole oval (at 5.08 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 19 thru_hole oval (at 25.4 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 4 thru_hole oval (at 7.62 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 20 thru_hole oval (at 22.86 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 5 thru_hole oval (at 10.16 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 21 thru_hole oval (at 20.32 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 6 thru_hole oval (at 12.7 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 22 thru_hole oval (at 17.78 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 7 thru_hole oval (at 15.24 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 23 thru_hole oval (at 13.72 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 8 thru_hole oval (at 17.78 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 24 thru_hole oval (at 11.18 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 9 thru_hole oval (at 22.86 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 25 thru_hole oval (at 8.64 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 10 thru_hole oval (at 25.4 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 26 thru_hole oval (at 6.1 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 11 thru_hole oval (at 27.94 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 27 thru_hole oval (at 3.56 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 12 thru_hole oval (at 30.48 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 28 thru_hole oval (at 1.02 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 13 thru_hole oval (at 33.02 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 29 thru_hole oval (at -1.52 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 14 thru_hole oval (at 35.56 0 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 30 thru_hole oval (at -4.06 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 15 thru_hole oval (at 35.56 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad 16 thru_hole oval (at 33.02 48.26 90) (size 1.6 1.6) (drill 1) (layers *.Cu *.Mask))
+  (pad "" np_thru_hole circle (at -13.97 0 90) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
+  (pad "" np_thru_hole circle (at -12.7 48.26 90) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
+  (pad "" np_thru_hole circle (at 38.1 33.02 90) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
+  (pad "" np_thru_hole circle (at 38.1 5.08 90) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
+  (model ${KISYS3DMOD}/Module.3dshapes/Arduino_UNO_R3_WithMountingHoles.wrl
+    (at (xyz 0 0 0))
+    (scale (xyz 1 1 1))
+    (rotate (xyz 0 0 0))
+  )
+)
-- 
GitLab